@magmamath/students-features 0.10.0 → 0.11.0-rc.0
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/dist/commonjs/features/celebrations/helpers.js +4 -1
- package/dist/commonjs/features/celebrations/helpers.js.map +1 -1
- package/dist/commonjs/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js +66 -30
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js +61 -0
- package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js.map +1 -0
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +44 -54
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js +3 -1
- package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +2 -2
- package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +16 -4
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js +12 -20
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +13 -8
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js +29 -7
- package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/commonjs/features/chatbot/constants.js +2 -1
- package/dist/commonjs/features/chatbot/constants.js.map +1 -1
- package/dist/commonjs/features/chatbot/helpers/ttsHighlight.js +29 -0
- package/dist/commonjs/features/chatbot/helpers/ttsHighlight.js.map +1 -0
- package/dist/commonjs/features/chatbot/helpers.js +19 -2
- package/dist/commonjs/features/chatbot/helpers.js.map +1 -1
- package/dist/commonjs/features/chatbot/index.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js +59 -17
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js +2 -2
- package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatTTSHighlightModel.js +56 -0
- package/dist/commonjs/features/chatbot/model/ChatTTSHighlightModel.js.map +1 -0
- package/dist/commonjs/features/chatbot/model/ChatTTSModel.js +154 -0
- package/dist/commonjs/features/chatbot/model/ChatTTSModel.js.map +1 -0
- package/dist/commonjs/features/chatbot/model/ChatbotApi.js +1 -1
- package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +9 -0
- package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +1 -1
- package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
- package/dist/commonjs/features/chatbot/types/t2s.types.js.map +1 -1
- package/dist/commonjs/features/feedback/model/model.js.map +1 -1
- package/dist/commonjs/features/feedback/model/sockets.js +8 -5
- package/dist/commonjs/features/feedback/model/sockets.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
- package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/Keyboard.js +4 -2
- package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js +1 -6
- package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitTabs.js +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js +3 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
- package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js +1 -0
- package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js.map +1 -1
- package/dist/commonjs/features/keyboard/constants/constants.js +1 -1
- package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js +2 -1
- package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +20 -4
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/commonjs/features/keyboard/helpers.js +7 -0
- package/dist/commonjs/features/keyboard/helpers.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -3
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js +6 -3
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
- package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +34 -0
- package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -0
- package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +77 -0
- package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -0
- package/dist/commonjs/features/openEnded/index.js +48 -0
- package/dist/commonjs/features/openEnded/index.js.map +1 -0
- package/dist/commonjs/features/openEnded/oe.helpers.js +26 -0
- package/dist/commonjs/features/openEnded/oe.helpers.js.map +1 -0
- package/dist/commonjs/features/openEnded/oe.types.js +14 -0
- package/dist/commonjs/features/openEnded/oe.types.js.map +1 -0
- package/dist/commonjs/index.js +13 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/components/ConditionalWrapper.js +23 -0
- package/dist/commonjs/lib/components/ConditionalWrapper.js.map +1 -0
- package/dist/commonjs/shared/common.constants.js +9 -0
- package/dist/commonjs/shared/common.constants.js.map +1 -0
- package/dist/commonjs/shared/icons/TimeIcon.js +37 -0
- package/dist/commonjs/shared/icons/TimeIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
- package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
- package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +32 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +32 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
- package/dist/commonjs/shared/translation/localization/ca.json +2 -1
- package/dist/commonjs/shared/translation/localization/de.json +2 -1
- package/dist/commonjs/shared/translation/localization/en.json +2 -1
- package/dist/commonjs/shared/translation/localization/gb.json +2 -1
- package/dist/commonjs/shared/translation/localization/sct.json +2 -1
- package/dist/commonjs/shared/translation/localization/sw.json +2 -1
- package/dist/commonjs/types/common.types.js +4 -0
- package/dist/module/features/celebrations/helpers.js +4 -1
- package/dist/module/features/celebrations/helpers.js.map +1 -1
- package/dist/module/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
- package/dist/module/features/chatbot/components/Chat/Chat.js +66 -30
- package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/module/features/chatbot/components/Chat/CloseButton.js +55 -0
- package/dist/module/features/chatbot/components/Chat/CloseButton.js.map +1 -0
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +44 -55
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatInput/ChatInput.js +3 -1
- package/dist/module/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +2 -2
- package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +16 -4
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js +12 -20
- package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +13 -8
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js +27 -6
- package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/module/features/chatbot/constants.js +1 -0
- package/dist/module/features/chatbot/constants.js.map +1 -1
- package/dist/module/features/chatbot/helpers/ttsHighlight.js +23 -0
- package/dist/module/features/chatbot/helpers/ttsHighlight.js.map +1 -0
- package/dist/module/features/chatbot/helpers.js +19 -2
- package/dist/module/features/chatbot/helpers.js.map +1 -1
- package/dist/module/features/chatbot/index.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotModel.js +59 -17
- package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotThreadManager.js +2 -2
- package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatTTSHighlightModel.js +52 -0
- package/dist/module/features/chatbot/model/ChatTTSHighlightModel.js.map +1 -0
- package/dist/module/features/chatbot/model/ChatTTSModel.js +149 -0
- package/dist/module/features/chatbot/model/ChatTTSModel.js.map +1 -0
- package/dist/module/features/chatbot/model/ChatbotApi.js +1 -1
- package/dist/module/features/chatbot/model/ChatbotApi.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatsCacheModel.js +9 -0
- package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +1 -1
- package/dist/module/features/chatbot/types/model.types.js.map +1 -1
- package/dist/module/features/chatbot/types/t2s.types.js.map +1 -1
- package/dist/module/features/feedback/model/model.js.map +1 -1
- package/dist/module/features/feedback/model/sockets.js +8 -5
- package/dist/module/features/feedback/model/sockets.js.map +1 -1
- package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +3 -3
- package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
- package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
- package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/Keyboard.js +4 -2
- package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/module/features/keyboard/components/KeysList/KeysList.js.map +1 -1
- package/dist/module/features/keyboard/components/MainLayout/MainLayout.js +2 -7
- package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/UnitTabs.js +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/helpers.js +2 -1
- package/dist/module/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
- package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
- package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/types.js +1 -0
- package/dist/module/features/keyboard/components/UnitsLayout/types.js.map +1 -1
- package/dist/module/features/keyboard/constants/constants.js +1 -1
- package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js +3 -2
- package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
- package/dist/module/features/keyboard/constants/keyboardLayouts.js +19 -4
- package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/module/features/keyboard/helpers.js +5 -0
- package/dist/module/features/keyboard/helpers.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -3
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/units.js +6 -3
- package/dist/module/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
- package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +28 -0
- package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -0
- package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +71 -0
- package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -0
- package/dist/module/features/openEnded/index.js +7 -0
- package/dist/module/features/openEnded/index.js.map +1 -0
- package/dist/module/features/openEnded/oe.helpers.js +21 -0
- package/dist/module/features/openEnded/oe.helpers.js.map +1 -0
- package/dist/module/features/openEnded/oe.types.js +10 -0
- package/dist/module/features/openEnded/oe.types.js.map +1 -0
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/components/ConditionalWrapper.js +17 -0
- package/dist/module/lib/components/ConditionalWrapper.js.map +1 -0
- package/dist/module/shared/common.constants.js +5 -0
- package/dist/module/shared/common.constants.js.map +1 -0
- package/dist/module/shared/icons/TimeIcon.js +29 -0
- package/dist/module/shared/icons/TimeIcon.js.map +1 -0
- package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
- package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
- package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +24 -0
- package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
- package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +24 -0
- package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
- package/dist/module/shared/translation/localization/ca.json +2 -1
- package/dist/module/shared/translation/localization/de.json +2 -1
- package/dist/module/shared/translation/localization/en.json +2 -1
- package/dist/module/shared/translation/localization/gb.json +2 -1
- package/dist/module/shared/translation/localization/sct.json +2 -1
- package/dist/module/shared/translation/localization/sw.json +2 -1
- package/dist/module/types/common.types.js +2 -0
- package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts +7 -2
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts +7 -0
- package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts +3 -2
- package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts +1 -6
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +4 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/constants.d.ts +1 -0
- package/dist/typescript/commonjs/features/chatbot/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/helpers/ttsHighlight.d.ts +8 -0
- package/dist/typescript/commonjs/features/chatbot/helpers/ttsHighlight.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/index.d.ts +3 -2
- package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +6 -3
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts +4 -3
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatTTSHighlightModel.d.ts +25 -0
- package/dist/typescript/commonjs/features/chatbot/model/ChatTTSHighlightModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/model/ChatTTSModel.d.ts +38 -0
- package/dist/typescript/commonjs/features/chatbot/model/ChatTTSModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +1 -0
- package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +28 -16
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +14 -11
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +25 -0
- package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +1 -0
- package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/model.d.ts +4 -1
- package/dist/typescript/commonjs/features/feedback/model/model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts +2 -1
- package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/constants.d.ts +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/helpers.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +10 -0
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +7 -0
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts +12 -0
- package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/openEnded/index.d.ts +5 -0
- package/dist/typescript/commonjs/features/openEnded/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts +13 -0
- package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts +7 -0
- package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts +9 -0
- package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts +1 -1
- package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/common.constants.d.ts +2 -0
- package/dist/typescript/commonjs/shared/common.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts +6 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/translation/model.d.ts +2 -0
- package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
- package/dist/typescript/commonjs/types/common.types.d.ts +2 -0
- package/dist/typescript/commonjs/types/common.types.d.ts.map +1 -1
- package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts +7 -2
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts +7 -0
- package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts +3 -2
- package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts +1 -6
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +4 -1
- package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/constants.d.ts +1 -0
- package/dist/typescript/module/features/chatbot/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/helpers/ttsHighlight.d.ts +8 -0
- package/dist/typescript/module/features/chatbot/helpers/ttsHighlight.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/index.d.ts +3 -2
- package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +6 -3
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts +4 -3
- package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatTTSHighlightModel.d.ts +25 -0
- package/dist/typescript/module/features/chatbot/model/ChatTTSHighlightModel.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/model/ChatTTSModel.d.ts +38 -0
- package/dist/typescript/module/features/chatbot/model/ChatTTSModel.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +1 -0
- package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts +28 -16
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts +14 -11
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +25 -0
- package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/units.types.d.ts +1 -0
- package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/model.d.ts +4 -1
- package/dist/typescript/module/features/feedback/model/model.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/sockets.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts +2 -1
- package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/constants/constants.d.ts +1 -1
- package/dist/typescript/module/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/helpers.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +10 -0
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
- package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +7 -0
- package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -0
- package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts +12 -0
- package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -0
- package/dist/typescript/module/features/openEnded/index.d.ts +5 -0
- package/dist/typescript/module/features/openEnded/index.d.ts.map +1 -0
- package/dist/typescript/module/features/openEnded/oe.helpers.d.ts +13 -0
- package/dist/typescript/module/features/openEnded/oe.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/openEnded/oe.types.d.ts +7 -0
- package/dist/typescript/module/features/openEnded/oe.types.d.ts.map +1 -0
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts +9 -0
- package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts.map +1 -0
- package/dist/typescript/module/lib/effector/createControllerEffect.d.ts +1 -1
- package/dist/typescript/module/lib/effector/createControllerEffect.d.ts.map +1 -1
- package/dist/typescript/module/shared/common.constants.d.ts +2 -0
- package/dist/typescript/module/shared/common.constants.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/TimeIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/TimeIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/translation/constants.d.ts +6 -0
- package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/module/shared/translation/model.d.ts +2 -0
- package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
- package/dist/typescript/module/types/common.types.d.ts +2 -0
- package/dist/typescript/module/types/common.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/celebrations/helpers.ts +35 -33
- package/src/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
- package/src/features/chatbot/components/Chat/Chat.tsx +76 -33
- package/src/features/chatbot/components/Chat/CloseButton.tsx +60 -0
- package/src/features/chatbot/components/ChatControls/ChatControls.tsx +45 -60
- package/src/features/chatbot/components/ChatInput/ChatInput.tsx +3 -1
- package/src/features/chatbot/components/ChatInput/FreeText/ChatTextInput.tsx +2 -2
- package/src/features/chatbot/components/ChatInput/FreeText/SendMessageButton.tsx +1 -1
- package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +3 -1
- package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +25 -3
- package/src/features/chatbot/components/ChatMessage/MessageLoader.tsx +9 -21
- package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +11 -6
- package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +1 -1
- package/src/features/chatbot/components/Chatbot.tsx +28 -3
- package/src/features/chatbot/constants.ts +2 -0
- package/src/features/chatbot/helpers/ttsHighlight.ts +25 -0
- package/src/features/chatbot/helpers.ts +14 -1
- package/src/features/chatbot/index.ts +17 -2
- package/src/features/chatbot/model/ChatBotModel.ts +67 -16
- package/src/features/chatbot/model/ChatBotThreadManager.ts +12 -4
- package/src/features/chatbot/model/ChatTTSHighlightModel.ts +64 -0
- package/src/features/chatbot/model/ChatTTSModel.ts +168 -0
- package/src/features/chatbot/model/ChatbotApi.ts +1 -1
- package/src/features/chatbot/model/ChatsCacheModel.ts +11 -0
- package/src/features/chatbot/types/api.types.ts +25 -19
- package/src/features/chatbot/types/model.types.ts +23 -12
- package/src/features/chatbot/types/t2s.types.ts +33 -0
- package/src/features/chatbot/types/units.types.ts +1 -0
- package/src/features/feedback/model/model.ts +4 -1
- package/src/features/feedback/model/sockets.ts +8 -6
- package/src/features/keyboard/components/AlgebraLayout/AlgebraLayout.tsx +4 -3
- package/src/features/keyboard/components/BasicLayout/BasicLayout.tsx +2 -2
- package/src/features/keyboard/components/BasicPlusLayout/keyboardGroups.ts +27 -17
- package/src/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.tsx +3 -2
- package/src/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.ts +30 -24
- package/src/features/keyboard/components/Keyboard.tsx +14 -4
- package/src/features/keyboard/components/KeysList/KeysList.tsx +1 -1
- package/src/features/keyboard/components/MainLayout/MainLayout.tsx +2 -6
- package/src/features/keyboard/components/UnitsLayout/UnitTabs.tsx +1 -1
- package/src/features/keyboard/components/UnitsLayout/helpers.tsx +3 -0
- package/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts +36 -22
- package/src/features/keyboard/components/UnitsLayout/keyboardGroups.ts +11 -0
- package/src/features/keyboard/components/UnitsLayout/types.ts +7 -0
- package/src/features/keyboard/constants/constants.ts +1 -1
- package/src/features/keyboard/constants/keyboardGroupsByLocale.ts +2 -0
- package/src/features/keyboard/constants/keyboardLayouts.ts +18 -1
- package/src/features/keyboard/helpers.ts +6 -0
- package/src/features/keyboard/types/MathKeysGroups/basicOperators.tsx +15 -3
- package/src/features/keyboard/types/MathKeysGroups/units.tsx +3 -0
- package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +26 -0
- package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +81 -0
- package/src/features/openEnded/index.ts +4 -0
- package/src/features/openEnded/oe.helpers.ts +31 -0
- package/src/features/openEnded/oe.types.ts +6 -0
- package/src/index.ts +1 -0
- package/src/lib/components/ConditionalWrapper.tsx +15 -0
- package/src/lib/effector/createControllerEffect.ts +1 -1
- package/src/shared/common.constants.ts +3 -0
- package/src/shared/icons/TimeIcon.tsx +23 -0
- package/src/shared/icons/keyboard/CDotIcon/CDotIcon.tsx +2 -2
- package/src/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.tsx +18 -0
- package/src/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.tsx +18 -0
- package/src/shared/translation/localization/ca.json +2 -1
- package/src/shared/translation/localization/de.json +2 -1
- package/src/shared/translation/localization/en.json +2 -1
- package/src/shared/translation/localization/gb.json +2 -1
- package/src/shared/translation/localization/sct.json +2 -1
- package/src/shared/translation/localization/sw.json +2 -1
- package/src/types/common.types.ts +4 -0
- package/dist/commonjs/features/chatbot/model/t2s.js +0 -107
- package/dist/commonjs/features/chatbot/model/t2s.js.map +0 -1
- package/dist/module/features/chatbot/model/t2s.js +0 -102
- package/dist/module/features/chatbot/model/t2s.js.map +0 -1
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +0 -34
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +0 -1
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts +0 -34
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +0 -1
- package/src/features/chatbot/model/t2s.ts +0 -123
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ChatTextToSpeechModel = void 0;
|
|
7
|
-
var _effector = require("effector");
|
|
8
|
-
var _constants = require("../constants.js");
|
|
9
|
-
var _t2sTypes = require("../types/t2s.types.js");
|
|
10
|
-
class ChatTextToSpeechModel {
|
|
11
|
-
audioCache = {};
|
|
12
|
-
audioProvider = null;
|
|
13
|
-
setCurrentPlayingId = (0, _effector.createEvent)();
|
|
14
|
-
$currentPlayingId = (0, _effector.restore)(this.setCurrentPlayingId, null);
|
|
15
|
-
setStatus = (0, _effector.createEvent)();
|
|
16
|
-
$status = (0, _effector.restore)(this.setStatus, _t2sTypes.AudioStatus.STOPPED);
|
|
17
|
-
audioConfig = null;
|
|
18
|
-
textSanitizer = value => value;
|
|
19
|
-
constructor({
|
|
20
|
-
api
|
|
21
|
-
}) {
|
|
22
|
-
this.api = api;
|
|
23
|
-
}
|
|
24
|
-
setAudioConfig(config) {
|
|
25
|
-
this.audioConfig = config;
|
|
26
|
-
}
|
|
27
|
-
setConfig({
|
|
28
|
-
audioProvider,
|
|
29
|
-
textSanitizer
|
|
30
|
-
}) {
|
|
31
|
-
if (audioProvider) this.audioProvider = audioProvider;
|
|
32
|
-
if (textSanitizer) this.textSanitizer = textSanitizer;
|
|
33
|
-
}
|
|
34
|
-
getCacheKey = (messageId, isTranslated) => {
|
|
35
|
-
return `${messageId}-${isTranslated ? 'translated' : 'original'}`;
|
|
36
|
-
};
|
|
37
|
-
async play({
|
|
38
|
-
message,
|
|
39
|
-
isTranslated
|
|
40
|
-
}) {
|
|
41
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setConfig.');
|
|
42
|
-
const messageText = isTranslated ? message.translatedMessage : message.message;
|
|
43
|
-
const messageId = message.id;
|
|
44
|
-
const text = this.textSanitizer(messageText);
|
|
45
|
-
try {
|
|
46
|
-
const status = this.$status.getState();
|
|
47
|
-
const playingId = this.$currentPlayingId.getState();
|
|
48
|
-
const isPlaying = status === _t2sTypes.AudioStatus.PLAYING;
|
|
49
|
-
const isPaused = status === _t2sTypes.AudioStatus.PAUSED;
|
|
50
|
-
const isCurrentMessage = messageId === playingId;
|
|
51
|
-
if (isPlaying && isCurrentMessage) {
|
|
52
|
-
this.audioProvider.pause();
|
|
53
|
-
this.setStatus(_t2sTypes.AudioStatus.PAUSED);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (isPaused && isCurrentMessage) {
|
|
57
|
-
this.audioProvider.resume();
|
|
58
|
-
this.setStatus(_t2sTypes.AudioStatus.PLAYING);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (messageId && !isCurrentMessage) {
|
|
62
|
-
this.audioProvider.stop();
|
|
63
|
-
}
|
|
64
|
-
const cacheKey = this.getCacheKey(messageId, isTranslated);
|
|
65
|
-
let audioPath = this.audioCache[cacheKey];
|
|
66
|
-
this.setCurrentPlayingId(messageId);
|
|
67
|
-
if (!audioPath) {
|
|
68
|
-
const config = this.audioConfig;
|
|
69
|
-
const response = await this.api.textToSpeechTextFx({
|
|
70
|
-
input: {
|
|
71
|
-
text
|
|
72
|
-
},
|
|
73
|
-
voice: config?.voice ?? _constants.DEFAULT_VOICE,
|
|
74
|
-
audioConfig: config?.audioConfig ?? _constants.AUDIO_CONFIG,
|
|
75
|
-
enableTimePointing: []
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
// Response might be different type based on provided AUDIO_CONFIG
|
|
79
|
-
if (typeof response.audioContent === 'string') {
|
|
80
|
-
audioPath = `data:audio/mpeg;base64,${response.audioContent}`;
|
|
81
|
-
} else {
|
|
82
|
-
audioPath = response?.audioContent ?? '';
|
|
83
|
-
}
|
|
84
|
-
this.audioCache[cacheKey] = audioPath;
|
|
85
|
-
}
|
|
86
|
-
this.setStatus(_t2sTypes.AudioStatus.PLAYING);
|
|
87
|
-
await this.audioProvider.play(audioPath, () => {
|
|
88
|
-
this.setStatus(_t2sTypes.AudioStatus.STOPPED);
|
|
89
|
-
this.setCurrentPlayingId(null);
|
|
90
|
-
});
|
|
91
|
-
} catch (error) {
|
|
92
|
-
this.reset();
|
|
93
|
-
console.error('Error playing text-to-speech: ', error);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
stop() {
|
|
97
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setAudioProvider.');
|
|
98
|
-
this.audioProvider.stop();
|
|
99
|
-
}
|
|
100
|
-
reset = (0, _effector.createEffect)(() => {
|
|
101
|
-
this.stop();
|
|
102
|
-
this.setStatus(_t2sTypes.AudioStatus.STOPPED);
|
|
103
|
-
this.setCurrentPlayingId(null);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
exports.ChatTextToSpeechModel = ChatTextToSpeechModel;
|
|
107
|
-
//# sourceMappingURL=t2s.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_constants","_t2sTypes","ChatTextToSpeechModel","audioCache","audioProvider","setCurrentPlayingId","createEvent","$currentPlayingId","restore","setStatus","$status","AudioStatus","STOPPED","audioConfig","textSanitizer","value","constructor","api","setAudioConfig","config","setConfig","getCacheKey","messageId","isTranslated","play","message","Error","messageText","translatedMessage","id","text","status","getState","playingId","isPlaying","PLAYING","isPaused","PAUSED","isCurrentMessage","pause","resume","stop","cacheKey","audioPath","response","textToSpeechTextFx","input","voice","DEFAULT_VOICE","AUDIO_CONFIG","enableTimePointing","audioContent","error","reset","console","createEffect","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/t2s.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { restore, createEvent, createEffect } from 'effector';
|
|
4
|
-
import { AUDIO_CONFIG, DEFAULT_VOICE } from "../constants.js";
|
|
5
|
-
import { AudioStatus } from "../types/t2s.types.js";
|
|
6
|
-
export class ChatTextToSpeechModel {
|
|
7
|
-
audioCache = {};
|
|
8
|
-
audioProvider = null;
|
|
9
|
-
setCurrentPlayingId = createEvent();
|
|
10
|
-
$currentPlayingId = restore(this.setCurrentPlayingId, null);
|
|
11
|
-
setStatus = createEvent();
|
|
12
|
-
$status = restore(this.setStatus, AudioStatus.STOPPED);
|
|
13
|
-
audioConfig = null;
|
|
14
|
-
textSanitizer = value => value;
|
|
15
|
-
constructor({
|
|
16
|
-
api
|
|
17
|
-
}) {
|
|
18
|
-
this.api = api;
|
|
19
|
-
}
|
|
20
|
-
setAudioConfig(config) {
|
|
21
|
-
this.audioConfig = config;
|
|
22
|
-
}
|
|
23
|
-
setConfig({
|
|
24
|
-
audioProvider,
|
|
25
|
-
textSanitizer
|
|
26
|
-
}) {
|
|
27
|
-
if (audioProvider) this.audioProvider = audioProvider;
|
|
28
|
-
if (textSanitizer) this.textSanitizer = textSanitizer;
|
|
29
|
-
}
|
|
30
|
-
getCacheKey = (messageId, isTranslated) => {
|
|
31
|
-
return `${messageId}-${isTranslated ? 'translated' : 'original'}`;
|
|
32
|
-
};
|
|
33
|
-
async play({
|
|
34
|
-
message,
|
|
35
|
-
isTranslated
|
|
36
|
-
}) {
|
|
37
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setConfig.');
|
|
38
|
-
const messageText = isTranslated ? message.translatedMessage : message.message;
|
|
39
|
-
const messageId = message.id;
|
|
40
|
-
const text = this.textSanitizer(messageText);
|
|
41
|
-
try {
|
|
42
|
-
const status = this.$status.getState();
|
|
43
|
-
const playingId = this.$currentPlayingId.getState();
|
|
44
|
-
const isPlaying = status === AudioStatus.PLAYING;
|
|
45
|
-
const isPaused = status === AudioStatus.PAUSED;
|
|
46
|
-
const isCurrentMessage = messageId === playingId;
|
|
47
|
-
if (isPlaying && isCurrentMessage) {
|
|
48
|
-
this.audioProvider.pause();
|
|
49
|
-
this.setStatus(AudioStatus.PAUSED);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (isPaused && isCurrentMessage) {
|
|
53
|
-
this.audioProvider.resume();
|
|
54
|
-
this.setStatus(AudioStatus.PLAYING);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (messageId && !isCurrentMessage) {
|
|
58
|
-
this.audioProvider.stop();
|
|
59
|
-
}
|
|
60
|
-
const cacheKey = this.getCacheKey(messageId, isTranslated);
|
|
61
|
-
let audioPath = this.audioCache[cacheKey];
|
|
62
|
-
this.setCurrentPlayingId(messageId);
|
|
63
|
-
if (!audioPath) {
|
|
64
|
-
const config = this.audioConfig;
|
|
65
|
-
const response = await this.api.textToSpeechTextFx({
|
|
66
|
-
input: {
|
|
67
|
-
text
|
|
68
|
-
},
|
|
69
|
-
voice: config?.voice ?? DEFAULT_VOICE,
|
|
70
|
-
audioConfig: config?.audioConfig ?? AUDIO_CONFIG,
|
|
71
|
-
enableTimePointing: []
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Response might be different type based on provided AUDIO_CONFIG
|
|
75
|
-
if (typeof response.audioContent === 'string') {
|
|
76
|
-
audioPath = `data:audio/mpeg;base64,${response.audioContent}`;
|
|
77
|
-
} else {
|
|
78
|
-
audioPath = response?.audioContent ?? '';
|
|
79
|
-
}
|
|
80
|
-
this.audioCache[cacheKey] = audioPath;
|
|
81
|
-
}
|
|
82
|
-
this.setStatus(AudioStatus.PLAYING);
|
|
83
|
-
await this.audioProvider.play(audioPath, () => {
|
|
84
|
-
this.setStatus(AudioStatus.STOPPED);
|
|
85
|
-
this.setCurrentPlayingId(null);
|
|
86
|
-
});
|
|
87
|
-
} catch (error) {
|
|
88
|
-
this.reset();
|
|
89
|
-
console.error('Error playing text-to-speech: ', error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
stop() {
|
|
93
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setAudioProvider.');
|
|
94
|
-
this.audioProvider.stop();
|
|
95
|
-
}
|
|
96
|
-
reset = createEffect(() => {
|
|
97
|
-
this.stop();
|
|
98
|
-
this.setStatus(AudioStatus.STOPPED);
|
|
99
|
-
this.setCurrentPlayingId(null);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=t2s.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["restore","createEvent","createEffect","AUDIO_CONFIG","DEFAULT_VOICE","AudioStatus","ChatTextToSpeechModel","audioCache","audioProvider","setCurrentPlayingId","$currentPlayingId","setStatus","$status","STOPPED","audioConfig","textSanitizer","value","constructor","api","setAudioConfig","config","setConfig","getCacheKey","messageId","isTranslated","play","message","Error","messageText","translatedMessage","id","text","status","getState","playingId","isPlaying","PLAYING","isPaused","PAUSED","isCurrentMessage","pause","resume","stop","cacheKey","audioPath","response","textToSpeechTextFx","input","voice","enableTimePointing","audioContent","error","reset","console"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/t2s.ts"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,WAAW,EAAEC,YAAY,QAAQ,UAAU;AAC7D,SAASC,YAAY,EAAEC,aAAa,QAAQ,iBAAc;AAC1D,SAAwBC,WAAW,QAA+B,uBAAoB;AAiBtF,OAAO,MAAMC,qBAAqB,CAAC;EAEhBC,UAAU,GAA2B,CAAC,CAAC;EAChDC,aAAa,GAAyB,IAAI;EAEzCC,mBAAmB,GAAGR,WAAW,CAAgB,CAAC;EAClDS,iBAAiB,GAAGV,OAAO,CAAC,IAAI,CAACS,mBAAmB,EAAE,IAAI,CAAC;EAC3DE,SAAS,GAAGV,WAAW,CAAc,CAAC;EACtCW,OAAO,GAAGZ,OAAO,CAAC,IAAI,CAACW,SAAS,EAAEN,WAAW,CAACQ,OAAO,CAAC;EAEvDC,WAAW,GAAuB,IAAI;EACtCC,aAAa,GAAIC,KAAa,IAAKA,KAAK;EAEhDC,WAAWA,CAAC;IAAEC;EAAgC,CAAC,EAAE;IAC/C,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAEOC,cAAcA,CAACC,MAA0B,EAAE;IAChD,IAAI,CAACN,WAAW,GAAGM,MAAM;EAC3B;EAEOC,SAASA,CAAC;IAAEb,aAAa;IAAEO;EAAyB,CAAC,EAAE;IAC5D,IAAIP,aAAa,EAAE,IAAI,CAACA,aAAa,GAAGA,aAAa;IACrD,IAAIO,aAAa,EAAE,IAAI,CAACA,aAAa,GAAGA,aAAa;EACvD;EAEQO,WAAW,GAAGA,CAACC,SAAiB,EAAEC,YAAqB,KAAK;IAClE,OAAO,GAAGD,SAAS,IAAIC,YAAY,GAAG,YAAY,GAAG,UAAU,EAAE;EACnE,CAAC;EAED,MAAaC,IAAIA,CAAC;IAAEC,OAAO;IAAEF;EAAoC,CAAC,EAAE;IAClE,IAAI,CAAC,IAAI,CAAChB,aAAa,EAAE,MAAM,IAAImB,KAAK,CAAC,2CAA2C,CAAC;IACrF,MAAMC,WAAW,GAAGJ,YAAY,GAAGE,OAAO,CAACG,iBAAiB,GAAIH,OAAO,CAACA,OAAO;IAC/E,MAAMH,SAAS,GAAGG,OAAO,CAACI,EAAE;IAC5B,MAAMC,IAAI,GAAG,IAAI,CAAChB,aAAa,CAACa,WAAW,CAAC;IAE5C,IAAI;MACF,MAAMI,MAAM,GAAG,IAAI,CAACpB,OAAO,CAACqB,QAAQ,CAAC,CAAC;MACtC,MAAMC,SAAS,GAAG,IAAI,CAACxB,iBAAiB,CAACuB,QAAQ,CAAC,CAAC;MACnD,MAAME,SAAS,GAAGH,MAAM,KAAK3B,WAAW,CAAC+B,OAAO;MAChD,MAAMC,QAAQ,GAAGL,MAAM,KAAK3B,WAAW,CAACiC,MAAM;MAC9C,MAAMC,gBAAgB,GAAGhB,SAAS,KAAKW,SAAS;MAEhD,IAAIC,SAAS,IAAII,gBAAgB,EAAE;QACjC,IAAI,CAAC/B,aAAa,CAACgC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC7B,SAAS,CAACN,WAAW,CAACiC,MAAM,CAAC;QAClC;MACF;MAEA,IAAID,QAAQ,IAAIE,gBAAgB,EAAE;QAChC,IAAI,CAAC/B,aAAa,CAACiC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC9B,SAAS,CAACN,WAAW,CAAC+B,OAAO,CAAC;QACnC;MACF;MAEA,IAAIb,SAAS,IAAI,CAACgB,gBAAgB,EAAE;QAClC,IAAI,CAAC/B,aAAa,CAACkC,IAAI,CAAC,CAAC;MAC3B;MAEA,MAAMC,QAAQ,GAAG,IAAI,CAACrB,WAAW,CAACC,SAAS,EAAEC,YAAY,CAAC;MAC1D,IAAIoB,SAAS,GAAG,IAAI,CAACrC,UAAU,CAACoC,QAAQ,CAAC;MACzC,IAAI,CAAClC,mBAAmB,CAACc,SAAS,CAAC;MAEnC,IAAI,CAACqB,SAAS,EAAE;QACd,MAAMxB,MAAM,GAAG,IAAI,CAACN,WAAW;QAC/B,MAAM+B,QAAQ,GAAG,MAAM,IAAI,CAAC3B,GAAG,CAAC4B,kBAAkB,CAAC;UACjDC,KAAK,EAAE;YAAEhB;UAAK,CAAC;UACfiB,KAAK,EAAE5B,MAAM,EAAE4B,KAAK,IAAI5C,aAAa;UACrCU,WAAW,EAAEM,MAAM,EAAEN,WAAW,IAAIX,YAAY;UAChD8C,kBAAkB,EAAE;QACtB,CAAC,CAAC;;QAEF;QACA,IAAI,OAAOJ,QAAQ,CAACK,YAAY,KAAK,QAAQ,EAAE;UAC7CN,SAAS,GAAG,0BAA0BC,QAAQ,CAACK,YAAY,EAAE;QAC/D,CAAC,MAAM;UACLN,SAAS,GAAGC,QAAQ,EAAEK,YAAY,IAAI,EAAE;QAC1C;QAEA,IAAI,CAAC3C,UAAU,CAACoC,QAAQ,CAAC,GAAGC,SAAS;MACvC;MAEA,IAAI,CAACjC,SAAS,CAACN,WAAW,CAAC+B,OAAO,CAAC;MACnC,MAAM,IAAI,CAAC5B,aAAa,CAACiB,IAAI,CAACmB,SAAS,EAAE,MAAM;QAC7C,IAAI,CAACjC,SAAS,CAACN,WAAW,CAACQ,OAAO,CAAC;QACnC,IAAI,CAACJ,mBAAmB,CAAC,IAAI,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO0C,KAAK,EAAE;MACd,IAAI,CAACC,KAAK,CAAC,CAAC;MACZC,OAAO,CAACF,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;IACxD;EACF;EAEOT,IAAIA,CAAA,EAAG;IACZ,IAAI,CAAC,IAAI,CAAClC,aAAa,EAAE,MAAM,IAAImB,KAAK,CAAC,kDAAkD,CAAC;IAC5F,IAAI,CAACnB,aAAa,CAACkC,IAAI,CAAC,CAAC;EAC3B;EAEgBU,KAAK,GAAGlD,YAAY,CAAC,MAAM;IACzC,IAAI,CAACwC,IAAI,CAAC,CAAC;IACX,IAAI,CAAC/B,SAAS,CAACN,WAAW,CAACQ,OAAO,CAAC;IACnC,IAAI,CAACJ,mBAAmB,CAAC,IAAI,CAAC;EAChC,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants';
|
|
2
|
-
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types';
|
|
3
|
-
import { ChatbotAPI } from './ChatbotApi';
|
|
4
|
-
type ChatTextToSpeechModelProps = {
|
|
5
|
-
api: ChatbotAPI;
|
|
6
|
-
};
|
|
7
|
-
export type T2SConfig = {
|
|
8
|
-
audioProvider?: AudioProvider;
|
|
9
|
-
textSanitizer?: (speech: string) => string;
|
|
10
|
-
};
|
|
11
|
-
type AudioConfig = {
|
|
12
|
-
voice?: typeof DEFAULT_VOICE;
|
|
13
|
-
audioConfig?: typeof AUDIO_CONFIG;
|
|
14
|
-
};
|
|
15
|
-
export declare class ChatTextToSpeechModel {
|
|
16
|
-
private readonly api;
|
|
17
|
-
private readonly audioCache;
|
|
18
|
-
private audioProvider;
|
|
19
|
-
readonly setCurrentPlayingId: import("effector").EventCallable<string | null>;
|
|
20
|
-
readonly $currentPlayingId: import("effector").StoreWritable<string | null>;
|
|
21
|
-
readonly setStatus: import("effector").EventCallable<AudioStatus>;
|
|
22
|
-
readonly $status: import("effector").StoreWritable<AudioStatus>;
|
|
23
|
-
private audioConfig;
|
|
24
|
-
private textSanitizer;
|
|
25
|
-
constructor({ api }: ChatTextToSpeechModelProps);
|
|
26
|
-
setAudioConfig(config: AudioConfig | null): void;
|
|
27
|
-
setConfig({ audioProvider, textSanitizer }: T2SConfig): void;
|
|
28
|
-
private getCacheKey;
|
|
29
|
-
play({ message, isTranslated }: PlayTextToSpeechProps): Promise<void>;
|
|
30
|
-
stop(): void;
|
|
31
|
-
readonly reset: import("effector").Effect<void, void, Error>;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=t2s.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAA6B;IAElD,QAAQ,CAAC,mBAAmB,kDAA+B;IAC3D,QAAQ,CAAC,iBAAiB,kDAA0C;IACpE,QAAQ,CAAC,SAAS,gDAA6B;IAC/C,QAAQ,CAAC,OAAO,gDAA+C;IAE/D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,EAAE,0BAA0B;IAIxC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS;IAK5D,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IA+D3D,IAAI;IAKX,SAAgB,KAAK,+CAInB;CACH"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants';
|
|
2
|
-
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types';
|
|
3
|
-
import { ChatbotAPI } from './ChatbotApi';
|
|
4
|
-
type ChatTextToSpeechModelProps = {
|
|
5
|
-
api: ChatbotAPI;
|
|
6
|
-
};
|
|
7
|
-
export type T2SConfig = {
|
|
8
|
-
audioProvider?: AudioProvider;
|
|
9
|
-
textSanitizer?: (speech: string) => string;
|
|
10
|
-
};
|
|
11
|
-
type AudioConfig = {
|
|
12
|
-
voice?: typeof DEFAULT_VOICE;
|
|
13
|
-
audioConfig?: typeof AUDIO_CONFIG;
|
|
14
|
-
};
|
|
15
|
-
export declare class ChatTextToSpeechModel {
|
|
16
|
-
private readonly api;
|
|
17
|
-
private readonly audioCache;
|
|
18
|
-
private audioProvider;
|
|
19
|
-
readonly setCurrentPlayingId: import("effector").EventCallable<string | null>;
|
|
20
|
-
readonly $currentPlayingId: import("effector").StoreWritable<string | null>;
|
|
21
|
-
readonly setStatus: import("effector").EventCallable<AudioStatus>;
|
|
22
|
-
readonly $status: import("effector").StoreWritable<AudioStatus>;
|
|
23
|
-
private audioConfig;
|
|
24
|
-
private textSanitizer;
|
|
25
|
-
constructor({ api }: ChatTextToSpeechModelProps);
|
|
26
|
-
setAudioConfig(config: AudioConfig | null): void;
|
|
27
|
-
setConfig({ audioProvider, textSanitizer }: T2SConfig): void;
|
|
28
|
-
private getCacheKey;
|
|
29
|
-
play({ message, isTranslated }: PlayTextToSpeechProps): Promise<void>;
|
|
30
|
-
stop(): void;
|
|
31
|
-
readonly reset: import("effector").Effect<void, void, Error>;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=t2s.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,KAAK,0BAA0B,GAAG;IAChC,GAAG,EAAE,UAAU,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAA;CAClC,CAAA;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAA6B;IAElD,QAAQ,CAAC,mBAAmB,kDAA+B;IAC3D,QAAQ,CAAC,iBAAiB,kDAA0C;IACpE,QAAQ,CAAC,SAAS,gDAA6B;IAC/C,QAAQ,CAAC,OAAO,gDAA+C;IAE/D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,EAAE,GAAG,EAAE,EAAE,0BAA0B;IAIxC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIzC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS;IAK5D,OAAO,CAAC,WAAW,CAElB;IAEY,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB;IA+D3D,IAAI;IAKX,SAAgB,KAAK,+CAInB;CACH"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { restore, createEvent, createEffect } from 'effector'
|
|
2
|
-
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants'
|
|
3
|
-
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types'
|
|
4
|
-
import { ChatbotAPI } from './ChatbotApi'
|
|
5
|
-
|
|
6
|
-
type ChatTextToSpeechModelProps = {
|
|
7
|
-
api: ChatbotAPI
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export type T2SConfig = {
|
|
11
|
-
audioProvider?: AudioProvider
|
|
12
|
-
textSanitizer?: (speech: string) => string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
type AudioConfig = {
|
|
16
|
-
voice?: typeof DEFAULT_VOICE
|
|
17
|
-
audioConfig?: typeof AUDIO_CONFIG
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export class ChatTextToSpeechModel {
|
|
21
|
-
private readonly api: ChatbotAPI
|
|
22
|
-
private readonly audioCache: Record<string, string> = {}
|
|
23
|
-
private audioProvider: AudioProvider | null = null
|
|
24
|
-
|
|
25
|
-
readonly setCurrentPlayingId = createEvent<string | null>()
|
|
26
|
-
readonly $currentPlayingId = restore(this.setCurrentPlayingId, null)
|
|
27
|
-
readonly setStatus = createEvent<AudioStatus>()
|
|
28
|
-
readonly $status = restore(this.setStatus, AudioStatus.STOPPED)
|
|
29
|
-
|
|
30
|
-
private audioConfig: AudioConfig | null = null
|
|
31
|
-
private textSanitizer = (value: string) => value
|
|
32
|
-
|
|
33
|
-
constructor({ api }: ChatTextToSpeechModelProps) {
|
|
34
|
-
this.api = api
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public setAudioConfig(config: AudioConfig | null) {
|
|
38
|
-
this.audioConfig = config
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public setConfig({ audioProvider, textSanitizer }: T2SConfig) {
|
|
42
|
-
if (audioProvider) this.audioProvider = audioProvider
|
|
43
|
-
if (textSanitizer) this.textSanitizer = textSanitizer
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
private getCacheKey = (messageId: string, isTranslated: boolean) => {
|
|
47
|
-
return `${messageId}-${isTranslated ? 'translated' : 'original'}`
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public async play({ message, isTranslated }: PlayTextToSpeechProps) {
|
|
51
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setConfig.')
|
|
52
|
-
const messageText = isTranslated ? message.translatedMessage! : message.message
|
|
53
|
-
const messageId = message.id
|
|
54
|
-
const text = this.textSanitizer(messageText)
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
const status = this.$status.getState()
|
|
58
|
-
const playingId = this.$currentPlayingId.getState()
|
|
59
|
-
const isPlaying = status === AudioStatus.PLAYING
|
|
60
|
-
const isPaused = status === AudioStatus.PAUSED
|
|
61
|
-
const isCurrentMessage = messageId === playingId
|
|
62
|
-
|
|
63
|
-
if (isPlaying && isCurrentMessage) {
|
|
64
|
-
this.audioProvider.pause()
|
|
65
|
-
this.setStatus(AudioStatus.PAUSED)
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
if (isPaused && isCurrentMessage) {
|
|
70
|
-
this.audioProvider.resume()
|
|
71
|
-
this.setStatus(AudioStatus.PLAYING)
|
|
72
|
-
return
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (messageId && !isCurrentMessage) {
|
|
76
|
-
this.audioProvider.stop()
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const cacheKey = this.getCacheKey(messageId, isTranslated)
|
|
80
|
-
let audioPath = this.audioCache[cacheKey]
|
|
81
|
-
this.setCurrentPlayingId(messageId)
|
|
82
|
-
|
|
83
|
-
if (!audioPath) {
|
|
84
|
-
const config = this.audioConfig
|
|
85
|
-
const response = await this.api.textToSpeechTextFx({
|
|
86
|
-
input: { text },
|
|
87
|
-
voice: config?.voice ?? DEFAULT_VOICE,
|
|
88
|
-
audioConfig: config?.audioConfig ?? AUDIO_CONFIG,
|
|
89
|
-
enableTimePointing: [],
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
// Response might be different type based on provided AUDIO_CONFIG
|
|
93
|
-
if (typeof response.audioContent === 'string') {
|
|
94
|
-
audioPath = `data:audio/mpeg;base64,${response.audioContent}`
|
|
95
|
-
} else {
|
|
96
|
-
audioPath = response?.audioContent ?? ''
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
this.audioCache[cacheKey] = audioPath
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
this.setStatus(AudioStatus.PLAYING)
|
|
103
|
-
await this.audioProvider.play(audioPath, () => {
|
|
104
|
-
this.setStatus(AudioStatus.STOPPED)
|
|
105
|
-
this.setCurrentPlayingId(null)
|
|
106
|
-
})
|
|
107
|
-
} catch (error) {
|
|
108
|
-
this.reset()
|
|
109
|
-
console.error('Error playing text-to-speech: ', error)
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
public stop() {
|
|
114
|
-
if (!this.audioProvider) throw new Error('Audio provider is not set. Use setAudioProvider.')
|
|
115
|
-
this.audioProvider.stop()
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
public readonly reset = createEffect(() => {
|
|
119
|
-
this.stop()
|
|
120
|
-
this.setStatus(AudioStatus.STOPPED)
|
|
121
|
-
this.setCurrentPlayingId(null)
|
|
122
|
-
})
|
|
123
|
-
}
|