@magmamath/students-features 0.4.0-rc.0 → 0.4.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.
Files changed (623) hide show
  1. package/dist/commonjs/features/celebrations/components/Celebrations.js +51 -0
  2. package/dist/commonjs/features/celebrations/components/Celebrations.js.map +1 -0
  3. package/dist/commonjs/features/celebrations/components/Particle.js +84 -0
  4. package/dist/commonjs/features/celebrations/components/Particle.js.map +1 -0
  5. package/dist/commonjs/features/celebrations/components/ParticleBatch.js +45 -0
  6. package/dist/commonjs/features/celebrations/components/ParticleBatch.js.map +1 -0
  7. package/dist/commonjs/features/celebrations/components/Spark.js +23 -0
  8. package/dist/commonjs/features/celebrations/components/Spark.js.map +1 -0
  9. package/dist/commonjs/features/celebrations/config.js +199 -0
  10. package/dist/commonjs/features/celebrations/config.js.map +1 -0
  11. package/dist/commonjs/features/celebrations/helpers.js +94 -0
  12. package/dist/commonjs/features/celebrations/helpers.js.map +1 -0
  13. package/dist/commonjs/features/celebrations/index.js +28 -0
  14. package/dist/commonjs/features/celebrations/index.js.map +1 -0
  15. package/dist/commonjs/features/celebrations/types.js +15 -0
  16. package/dist/commonjs/features/celebrations/types.js.map +1 -0
  17. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  18. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +4 -6
  19. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  20. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js +1 -12
  21. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  22. package/dist/commonjs/features/chatbot/components/Chatbot.js +1 -5
  23. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  24. package/dist/commonjs/features/chatbot/index.js +7 -0
  25. package/dist/commonjs/features/chatbot/index.js.map +1 -1
  26. package/dist/commonjs/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +17 -28
  27. package/dist/commonjs/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  28. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +117 -136
  29. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  30. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js +1 -0
  31. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  32. package/dist/commonjs/features/chatbot/model/ThreadItem.js +8 -21
  33. package/dist/commonjs/features/chatbot/model/ThreadItem.js.map +1 -1
  34. package/dist/commonjs/features/chatbot/model/{ChatbotApi.js → api.js} +1 -16
  35. package/dist/commonjs/features/chatbot/model/api.js.map +1 -0
  36. package/dist/commonjs/features/chatbot/model/messagesHelper.js +5 -1
  37. package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -1
  38. package/dist/commonjs/features/chatbot/model/t2s.js +6 -0
  39. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  40. package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -1
  41. package/dist/commonjs/features/chatbot/model/translation.js +45 -54
  42. package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
  43. package/dist/commonjs/features/chatbot/types/api.types.js +0 -4
  44. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  45. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js +58 -0
  46. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -0
  47. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +247 -0
  48. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -0
  49. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +131 -0
  50. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -0
  51. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +56 -0
  52. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +1 -0
  53. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +68 -0
  54. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +1 -0
  55. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js +53 -0
  56. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +1 -0
  57. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js +47 -0
  58. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js.map +1 -0
  59. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js +69 -0
  60. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -0
  61. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js +55 -0
  62. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -0
  63. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +102 -0
  64. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -0
  65. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +83 -0
  66. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +1 -0
  67. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  68. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js +96 -0
  69. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js.map +1 -0
  70. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js +44 -0
  71. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js.map +1 -0
  72. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +233 -0
  73. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -0
  74. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +63 -0
  75. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -0
  76. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js +34 -0
  77. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js.map +1 -0
  78. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +91 -0
  79. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -0
  80. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +107 -0
  81. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +1 -0
  82. package/dist/commonjs/features/endOfAssignment/constants.js +55 -0
  83. package/dist/commonjs/features/endOfAssignment/constants.js.map +1 -0
  84. package/dist/commonjs/features/endOfAssignment/helpers.js +64 -0
  85. package/dist/commonjs/features/endOfAssignment/helpers.js.map +1 -0
  86. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js +51 -0
  87. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js.map +1 -0
  88. package/dist/commonjs/features/endOfAssignment/index.js +40 -0
  89. package/dist/commonjs/features/endOfAssignment/index.js.map +1 -0
  90. package/dist/commonjs/features/endOfAssignment/model/model.js +53 -0
  91. package/dist/commonjs/features/endOfAssignment/model/model.js.map +1 -0
  92. package/dist/commonjs/features/endOfAssignment/types.js +33 -0
  93. package/dist/commonjs/features/endOfAssignment/types.js.map +1 -0
  94. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js +43 -0
  95. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js.map +1 -0
  96. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js +30 -0
  97. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js.map +1 -0
  98. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +65 -0
  99. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -0
  100. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js +29 -0
  101. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js.map +1 -0
  102. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js +32 -0
  103. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js.map +1 -0
  104. package/dist/commonjs/index.js +24 -0
  105. package/dist/commonjs/index.js.map +1 -1
  106. package/dist/commonjs/lib/effector/createEntityFieldStore.js +0 -4
  107. package/dist/commonjs/lib/effector/createEntityFieldStore.js.map +1 -1
  108. package/dist/commonjs/shared/icons/Halloween.js +54 -0
  109. package/dist/commonjs/shared/icons/Halloween.js.map +1 -0
  110. package/dist/commonjs/shared/icons/Pi.js +30 -0
  111. package/dist/commonjs/shared/icons/Pi.js.map +1 -0
  112. package/dist/commonjs/shared/icons/Star.js +30 -0
  113. package/dist/commonjs/shared/icons/Star.js.map +1 -0
  114. package/dist/commonjs/shared/icons/{StopIcon.js → Valentine.js} +9 -12
  115. package/dist/commonjs/shared/icons/Valentine.js.map +1 -0
  116. package/dist/commonjs/shared/icons/Winter.js +32 -0
  117. package/dist/commonjs/shared/icons/Winter.js.map +1 -0
  118. package/dist/commonjs/shared/icons/icon.types.js +0 -4
  119. package/dist/module/features/celebrations/components/Celebrations.js +45 -0
  120. package/dist/module/features/celebrations/components/Celebrations.js.map +1 -0
  121. package/dist/module/features/celebrations/components/Particle.js +76 -0
  122. package/dist/module/features/celebrations/components/Particle.js.map +1 -0
  123. package/dist/module/features/celebrations/components/ParticleBatch.js +38 -0
  124. package/dist/module/features/celebrations/components/ParticleBatch.js.map +1 -0
  125. package/dist/module/features/celebrations/components/Spark.js +17 -0
  126. package/dist/module/features/celebrations/components/Spark.js.map +1 -0
  127. package/dist/module/features/celebrations/config.js +194 -0
  128. package/dist/module/features/celebrations/config.js.map +1 -0
  129. package/dist/module/features/celebrations/helpers.js +87 -0
  130. package/dist/module/features/celebrations/helpers.js.map +1 -0
  131. package/dist/module/features/celebrations/index.js +5 -0
  132. package/dist/module/features/celebrations/index.js.map +1 -0
  133. package/dist/module/features/celebrations/types.js +11 -0
  134. package/dist/module/features/celebrations/types.js.map +1 -0
  135. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  136. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +4 -6
  137. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  138. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js +1 -12
  139. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  140. package/dist/module/features/chatbot/components/Chatbot.js +2 -6
  141. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  142. package/dist/module/features/chatbot/index.js +1 -0
  143. package/dist/module/features/chatbot/index.js.map +1 -1
  144. package/dist/module/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +15 -26
  145. package/dist/module/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  146. package/dist/module/features/chatbot/model/ChatBotModel.js +119 -138
  147. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  148. package/dist/module/features/chatbot/model/DefaultMessageCreator.js +1 -0
  149. package/dist/module/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  150. package/dist/module/features/chatbot/model/ThreadItem.js +8 -21
  151. package/dist/module/features/chatbot/model/ThreadItem.js.map +1 -1
  152. package/dist/module/features/chatbot/model/{ChatbotApi.js → api.js} +1 -16
  153. package/dist/module/features/chatbot/model/api.js.map +1 -0
  154. package/dist/module/features/chatbot/model/messagesHelper.js +5 -1
  155. package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -1
  156. package/dist/module/features/chatbot/model/t2s.js +7 -1
  157. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  158. package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -1
  159. package/dist/module/features/chatbot/model/translation.js +45 -54
  160. package/dist/module/features/chatbot/model/translation.js.map +1 -1
  161. package/dist/module/features/chatbot/types/api.types.js +0 -2
  162. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  163. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js +52 -0
  164. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -0
  165. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +241 -0
  166. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -0
  167. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +124 -0
  168. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -0
  169. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +50 -0
  170. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +1 -0
  171. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +62 -0
  172. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +1 -0
  173. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js +47 -0
  174. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +1 -0
  175. package/dist/module/features/endOfAssignment/components/EOAModal.js +41 -0
  176. package/dist/module/features/endOfAssignment/components/EOAModal.js.map +1 -0
  177. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js +63 -0
  178. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -0
  179. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js +49 -0
  180. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -0
  181. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +96 -0
  182. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -0
  183. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +77 -0
  184. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +1 -0
  185. package/dist/module/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  186. package/dist/module/features/endOfAssignment/components/Modal/Modal.js +89 -0
  187. package/dist/module/features/endOfAssignment/components/Modal/Modal.js.map +1 -0
  188. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js +38 -0
  189. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js.map +1 -0
  190. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +226 -0
  191. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -0
  192. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +56 -0
  193. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -0
  194. package/dist/module/features/endOfAssignment/components/Modal/model.js +29 -0
  195. package/dist/module/features/endOfAssignment/components/Modal/model.js.map +1 -0
  196. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +85 -0
  197. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -0
  198. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +100 -0
  199. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +1 -0
  200. package/dist/module/features/endOfAssignment/constants.js +51 -0
  201. package/dist/module/features/endOfAssignment/constants.js.map +1 -0
  202. package/dist/module/features/endOfAssignment/helpers.js +58 -0
  203. package/dist/module/features/endOfAssignment/helpers.js.map +1 -0
  204. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js +46 -0
  205. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js.map +1 -0
  206. package/dist/module/features/endOfAssignment/index.js +6 -0
  207. package/dist/module/features/endOfAssignment/index.js.map +1 -0
  208. package/dist/module/features/endOfAssignment/model/model.js +48 -0
  209. package/dist/module/features/endOfAssignment/model/model.js.map +1 -0
  210. package/dist/module/features/endOfAssignment/types.js +29 -0
  211. package/dist/module/features/endOfAssignment/types.js.map +1 -0
  212. package/dist/module/features/endOfAssignment/ui/EOABadge.js +37 -0
  213. package/dist/module/features/endOfAssignment/ui/EOABadge.js.map +1 -0
  214. package/dist/module/features/endOfAssignment/ui/PracticeButton.js +24 -0
  215. package/dist/module/features/endOfAssignment/ui/PracticeButton.js.map +1 -0
  216. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +58 -0
  217. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -0
  218. package/dist/module/features/endOfAssignment/ui/SparkIcon.js +21 -0
  219. package/dist/module/features/endOfAssignment/ui/SparkIcon.js.map +1 -0
  220. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js +24 -0
  221. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js.map +1 -0
  222. package/dist/module/index.js +2 -0
  223. package/dist/module/index.js.map +1 -1
  224. package/dist/module/lib/effector/createEntityFieldStore.js +0 -4
  225. package/dist/module/lib/effector/createEntityFieldStore.js.map +1 -1
  226. package/dist/module/shared/icons/Halloween.js +47 -0
  227. package/dist/module/shared/icons/Halloween.js.map +1 -0
  228. package/dist/module/shared/icons/Pi.js +23 -0
  229. package/dist/module/shared/icons/Pi.js.map +1 -0
  230. package/dist/module/shared/icons/Star.js +23 -0
  231. package/dist/module/shared/icons/Star.js.map +1 -0
  232. package/dist/module/shared/icons/Valentine.js +23 -0
  233. package/dist/module/shared/icons/Valentine.js.map +1 -0
  234. package/dist/module/shared/icons/Winter.js +25 -0
  235. package/dist/module/shared/icons/Winter.js.map +1 -0
  236. package/dist/module/shared/icons/icon.types.js +0 -2
  237. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts +10 -0
  238. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts.map +1 -0
  239. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts +19 -0
  240. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts.map +1 -0
  241. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts +26 -0
  242. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts.map +1 -0
  243. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts +4 -0
  244. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts.map +1 -0
  245. package/dist/typescript/commonjs/features/celebrations/config.d.ts +167 -0
  246. package/dist/typescript/commonjs/features/celebrations/config.d.ts.map +1 -0
  247. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts +6 -0
  248. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -0
  249. package/dist/typescript/commonjs/features/celebrations/index.d.ts +3 -0
  250. package/dist/typescript/commonjs/features/celebrations/index.d.ts.map +1 -0
  251. package/dist/typescript/commonjs/features/celebrations/types.d.ts +11 -0
  252. package/dist/typescript/commonjs/features/celebrations/types.d.ts.map +1 -0
  253. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +0 -1
  254. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  256. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  258. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/features/chatbot/index.d.ts +3 -4
  260. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/features/chatbot/model/{ChatBotThreadManager.d.ts → ChatBotMessageHandler.d.ts} +8 -11
  262. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  263. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +14 -19
  264. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts +2 -3
  266. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts +6 -12
  268. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  270. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -0
  271. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +4 -3
  272. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +4 -2
  274. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +8 -7
  276. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +1 -2
  278. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +11 -2
  280. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +19 -26
  282. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +1 -2
  284. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +4 -0
  286. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -0
  287. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +15 -0
  288. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -0
  289. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +4 -0
  290. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -0
  291. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +8 -0
  292. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +1 -0
  293. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +8 -0
  294. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +1 -0
  295. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +12 -0
  296. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +1 -0
  297. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts +11 -0
  298. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts.map +1 -0
  299. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +4 -0
  300. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -0
  301. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +4 -0
  302. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -0
  303. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +4 -0
  304. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -0
  305. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +8 -0
  306. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +1 -0
  307. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts +20 -0
  308. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -0
  309. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts +3 -0
  310. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +1 -0
  311. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +4 -0
  312. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -0
  313. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +4 -0
  314. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -0
  315. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts +14 -0
  316. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts.map +1 -0
  317. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +4 -0
  318. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -0
  319. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +8 -0
  320. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +1 -0
  321. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts +41 -0
  322. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts.map +1 -0
  323. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts +9 -0
  324. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts.map +1 -0
  325. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts +27 -0
  326. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +1 -0
  327. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts +4 -0
  328. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts.map +1 -0
  329. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts +14 -0
  330. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts.map +1 -0
  331. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts +60 -0
  332. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts.map +1 -0
  333. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts +11 -0
  334. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts.map +1 -0
  335. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts +10 -0
  336. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -0
  337. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +14 -0
  338. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -0
  339. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts +4 -0
  340. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts.map +1 -0
  341. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts +4 -0
  342. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +1 -0
  343. package/dist/typescript/commonjs/index.d.ts +2 -0
  344. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  345. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts +0 -2
  346. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  347. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts +5 -0
  348. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts.map +1 -0
  349. package/dist/typescript/commonjs/shared/icons/Pi.d.ts +5 -0
  350. package/dist/typescript/commonjs/shared/icons/Pi.d.ts.map +1 -0
  351. package/dist/typescript/commonjs/shared/icons/Star.d.ts +5 -0
  352. package/dist/typescript/commonjs/shared/icons/Star.d.ts.map +1 -0
  353. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts +5 -0
  354. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts.map +1 -0
  355. package/dist/typescript/commonjs/shared/icons/Winter.d.ts +5 -0
  356. package/dist/typescript/commonjs/shared/icons/Winter.d.ts.map +1 -0
  357. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts +0 -2
  358. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts.map +1 -1
  359. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts +10 -0
  360. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts.map +1 -0
  361. package/dist/typescript/module/features/celebrations/components/Particle.d.ts +19 -0
  362. package/dist/typescript/module/features/celebrations/components/Particle.d.ts.map +1 -0
  363. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts +26 -0
  364. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts.map +1 -0
  365. package/dist/typescript/module/features/celebrations/components/Spark.d.ts +4 -0
  366. package/dist/typescript/module/features/celebrations/components/Spark.d.ts.map +1 -0
  367. package/dist/typescript/module/features/celebrations/config.d.ts +167 -0
  368. package/dist/typescript/module/features/celebrations/config.d.ts.map +1 -0
  369. package/dist/typescript/module/features/celebrations/helpers.d.ts +6 -0
  370. package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -0
  371. package/dist/typescript/module/features/celebrations/index.d.ts +3 -0
  372. package/dist/typescript/module/features/celebrations/index.d.ts.map +1 -0
  373. package/dist/typescript/module/features/celebrations/types.d.ts +11 -0
  374. package/dist/typescript/module/features/celebrations/types.d.ts.map +1 -0
  375. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +0 -1
  376. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  377. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  378. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  379. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  380. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  381. package/dist/typescript/module/features/chatbot/index.d.ts +3 -4
  382. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  383. package/dist/typescript/module/features/chatbot/model/{ChatBotThreadManager.d.ts → ChatBotMessageHandler.d.ts} +8 -11
  384. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  385. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +14 -19
  386. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  387. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts +2 -3
  388. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  389. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts +6 -12
  390. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  391. package/dist/typescript/module/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  392. package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -0
  393. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +4 -3
  394. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  395. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +4 -2
  396. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  397. package/dist/typescript/module/features/chatbot/model/translation.d.ts +8 -7
  398. package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
  399. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +1 -2
  400. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  401. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +11 -2
  402. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  403. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +19 -26
  404. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  405. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +1 -2
  406. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
  407. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +4 -0
  408. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -0
  409. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +15 -0
  410. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -0
  411. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +4 -0
  412. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -0
  413. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +8 -0
  414. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +1 -0
  415. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +8 -0
  416. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +1 -0
  417. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +12 -0
  418. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +1 -0
  419. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts +11 -0
  420. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts.map +1 -0
  421. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +4 -0
  422. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -0
  423. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +4 -0
  424. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -0
  425. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +4 -0
  426. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -0
  427. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +8 -0
  428. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +1 -0
  429. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts +20 -0
  430. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -0
  431. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts +3 -0
  432. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +1 -0
  433. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +4 -0
  434. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -0
  435. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +4 -0
  436. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -0
  437. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts +14 -0
  438. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts.map +1 -0
  439. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +4 -0
  440. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -0
  441. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +8 -0
  442. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +1 -0
  443. package/dist/typescript/module/features/endOfAssignment/constants.d.ts +41 -0
  444. package/dist/typescript/module/features/endOfAssignment/constants.d.ts.map +1 -0
  445. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts +9 -0
  446. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts.map +1 -0
  447. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts +27 -0
  448. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +1 -0
  449. package/dist/typescript/module/features/endOfAssignment/index.d.ts +4 -0
  450. package/dist/typescript/module/features/endOfAssignment/index.d.ts.map +1 -0
  451. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts +14 -0
  452. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts.map +1 -0
  453. package/dist/typescript/module/features/endOfAssignment/types.d.ts +60 -0
  454. package/dist/typescript/module/features/endOfAssignment/types.d.ts.map +1 -0
  455. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts +11 -0
  456. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts.map +1 -0
  457. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts +10 -0
  458. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -0
  459. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +14 -0
  460. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -0
  461. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts +4 -0
  462. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts.map +1 -0
  463. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts +4 -0
  464. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +1 -0
  465. package/dist/typescript/module/index.d.ts +2 -0
  466. package/dist/typescript/module/index.d.ts.map +1 -1
  467. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts +0 -2
  468. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  469. package/dist/typescript/module/shared/icons/Halloween.d.ts +5 -0
  470. package/dist/typescript/module/shared/icons/Halloween.d.ts.map +1 -0
  471. package/dist/typescript/module/shared/icons/Pi.d.ts +5 -0
  472. package/dist/typescript/module/shared/icons/Pi.d.ts.map +1 -0
  473. package/dist/typescript/module/shared/icons/Star.d.ts +5 -0
  474. package/dist/typescript/module/shared/icons/Star.d.ts.map +1 -0
  475. package/dist/typescript/module/shared/icons/Valentine.d.ts +5 -0
  476. package/dist/typescript/module/shared/icons/Valentine.d.ts.map +1 -0
  477. package/dist/typescript/module/shared/icons/Winter.d.ts +5 -0
  478. package/dist/typescript/module/shared/icons/Winter.d.ts.map +1 -0
  479. package/dist/typescript/module/shared/icons/icon.types.d.ts +0 -2
  480. package/dist/typescript/module/shared/icons/icon.types.d.ts.map +1 -1
  481. package/package.json +4 -2
  482. package/src/features/celebrations/components/Celebrations.tsx +62 -0
  483. package/src/features/celebrations/components/Particle.tsx +99 -0
  484. package/src/features/celebrations/components/ParticleBatch.tsx +56 -0
  485. package/src/features/celebrations/components/Spark.tsx +14 -0
  486. package/src/features/celebrations/config.ts +199 -0
  487. package/src/features/celebrations/helpers.ts +96 -0
  488. package/src/features/celebrations/index.ts +2 -0
  489. package/src/features/celebrations/types.ts +11 -0
  490. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +0 -1
  491. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +0 -3
  492. package/src/features/chatbot/components/ChatMessages/ChatbotMessages.tsx +0 -14
  493. package/src/features/chatbot/components/Chatbot.tsx +2 -3
  494. package/src/features/chatbot/index.ts +3 -3
  495. package/src/features/chatbot/model/{ChatBotThreadManager.ts → ChatBotMessageHandler.ts} +16 -28
  496. package/src/features/chatbot/model/ChatBotModel.ts +124 -123
  497. package/src/features/chatbot/model/DefaultMessageCreator.ts +3 -3
  498. package/src/features/chatbot/model/ThreadItem.ts +9 -20
  499. package/src/features/chatbot/model/{ChatbotApi.ts → api.ts} +2 -19
  500. package/src/features/chatbot/model/messagesHelper.ts +6 -2
  501. package/src/features/chatbot/model/t2s.ts +10 -3
  502. package/src/features/chatbot/model/translation.helpers.ts +1 -2
  503. package/src/features/chatbot/model/translation.ts +46 -52
  504. package/src/features/chatbot/types/api.types.ts +12 -2
  505. package/src/features/chatbot/types/model.types.ts +26 -38
  506. package/src/features/chatbot/types/translation.types.ts +1 -2
  507. package/src/features/endOfAssignment/components/CheatDetected/CheatDetected.tsx +48 -0
  508. package/src/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.tsx +293 -0
  509. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.tsx +128 -0
  510. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.tsx +39 -0
  511. package/src/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.tsx +40 -0
  512. package/src/features/endOfAssignment/components/CorrectAnswer/Spark.tsx +45 -0
  513. package/src/features/endOfAssignment/components/EOAModal.tsx +64 -0
  514. package/src/features/endOfAssignment/components/ExamLeave/ExamLeave.tsx +56 -0
  515. package/src/features/endOfAssignment/components/ExamPaused/ExamPaused.tsx +46 -0
  516. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmit.tsx +102 -0
  517. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.tsx +69 -0
  518. package/src/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  519. package/src/features/endOfAssignment/components/Modal/Modal.tsx +105 -0
  520. package/src/features/endOfAssignment/components/Modal/ModalBackground.tsx +33 -0
  521. package/src/features/endOfAssignment/components/Modal/assets/SunrisingIcon.tsx +196 -0
  522. package/src/features/endOfAssignment/components/Modal/assets/TrophyIcon.tsx +62 -0
  523. package/src/features/endOfAssignment/components/Modal/model.ts +34 -0
  524. package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +85 -0
  525. package/src/features/endOfAssignment/components/NoAnswer/NoAnswerContent.tsx +107 -0
  526. package/src/features/endOfAssignment/constants.ts +53 -0
  527. package/src/features/endOfAssignment/helpers.ts +28 -0
  528. package/src/features/endOfAssignment/hooks/useSparkAnimation.tsx +78 -0
  529. package/src/features/endOfAssignment/index.ts +3 -0
  530. package/src/features/endOfAssignment/model/model.ts +57 -0
  531. package/src/features/endOfAssignment/types.ts +65 -0
  532. package/src/features/endOfAssignment/ui/EOABadge.tsx +47 -0
  533. package/src/features/endOfAssignment/ui/PracticeButton.tsx +27 -0
  534. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +75 -0
  535. package/src/features/endOfAssignment/ui/SparkIcon.tsx +15 -0
  536. package/src/features/endOfAssignment/ui/ThumbUpIcon.tsx +17 -0
  537. package/src/index.ts +2 -0
  538. package/src/lib/effector/createEntityFieldStore.ts +1 -9
  539. package/src/shared/icons/Halloween.tsx +33 -0
  540. package/src/shared/icons/Pi.tsx +16 -0
  541. package/src/shared/icons/Star.tsx +16 -0
  542. package/src/shared/icons/Valentine.tsx +16 -0
  543. package/src/shared/icons/Winter.tsx +19 -0
  544. package/src/shared/icons/icon.types.ts +6 -9
  545. package/dist/commonjs/features/chatbot/context/ChatBotContext.js +0 -17
  546. package/dist/commonjs/features/chatbot/context/ChatBotContext.js.map +0 -1
  547. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -58
  548. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  549. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -99
  550. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  551. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  552. package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +0 -1
  553. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +0 -110
  554. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  555. package/dist/commonjs/features/chatbot/types/units.types.js +0 -2
  556. package/dist/commonjs/features/chatbot/types/units.types.js.map +0 -1
  557. package/dist/commonjs/lib/helpers/randomElements.js +0 -24
  558. package/dist/commonjs/lib/helpers/randomElements.js.map +0 -1
  559. package/dist/commonjs/shared/icons/HighlighterIcon.js +0 -36
  560. package/dist/commonjs/shared/icons/HighlighterIcon.js.map +0 -1
  561. package/dist/commonjs/shared/icons/StopIcon.js.map +0 -1
  562. package/dist/module/features/chatbot/context/ChatBotContext.js +0 -12
  563. package/dist/module/features/chatbot/context/ChatBotContext.js.map +0 -1
  564. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -52
  565. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  566. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -94
  567. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  568. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  569. package/dist/module/features/chatbot/model/ChatbotApi.js.map +0 -1
  570. package/dist/module/features/chatbot/model/ChatsCacheModel.js +0 -104
  571. package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  572. package/dist/module/features/chatbot/types/units.types.js +0 -2
  573. package/dist/module/features/chatbot/types/units.types.js.map +0 -1
  574. package/dist/module/lib/helpers/randomElements.js +0 -20
  575. package/dist/module/lib/helpers/randomElements.js.map +0 -1
  576. package/dist/module/shared/icons/HighlighterIcon.js +0 -29
  577. package/dist/module/shared/icons/HighlighterIcon.js.map +0 -1
  578. package/dist/module/shared/icons/StopIcon.js +0 -26
  579. package/dist/module/shared/icons/StopIcon.js.map +0 -1
  580. package/dist/typescript/commonjs/features/chatbot/context/ChatBotContext.d.ts +0 -8
  581. package/dist/typescript/commonjs/features/chatbot/context/ChatBotContext.d.ts.map +0 -1
  582. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -3
  583. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  584. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -28
  585. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  586. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  587. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  588. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +0 -26
  589. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  590. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +0 -31
  591. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +0 -1
  592. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts +0 -2
  593. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts.map +0 -1
  594. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts +0 -4
  595. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts.map +0 -1
  596. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts +0 -4
  597. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts.map +0 -1
  598. package/dist/typescript/module/features/chatbot/context/ChatBotContext.d.ts +0 -8
  599. package/dist/typescript/module/features/chatbot/context/ChatBotContext.d.ts.map +0 -1
  600. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -3
  601. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  602. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -28
  603. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  604. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  605. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  606. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +0 -26
  607. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  608. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +0 -31
  609. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +0 -1
  610. package/dist/typescript/module/lib/helpers/randomElements.d.ts +0 -2
  611. package/dist/typescript/module/lib/helpers/randomElements.d.ts.map +0 -1
  612. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts +0 -4
  613. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts.map +0 -1
  614. package/dist/typescript/module/shared/icons/StopIcon.d.ts +0 -4
  615. package/dist/typescript/module/shared/icons/StopIcon.d.ts.map +0 -1
  616. package/src/features/chatbot/context/ChatBotContext.ts +0 -18
  617. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +0 -53
  618. package/src/features/chatbot/errorSpotting/ErrorSpottingModel.ts +0 -116
  619. package/src/features/chatbot/model/ChatsCacheModel.ts +0 -94
  620. package/src/features/chatbot/types/units.types.ts +0 -34
  621. package/src/lib/helpers/randomElements.ts +0 -22
  622. package/src/shared/icons/HighlighterIcon.tsx +0 -21
  623. package/src/shared/icons/StopIcon.tsx +0 -17
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  attach,
3
- combine,
4
- createEffect,
5
3
  createEvent,
6
- createStore,
7
4
  restore,
8
5
  sample,
9
6
  type Store,
7
+ createStore,
8
+ createEffect,
9
+ combine,
10
10
  } from 'effector'
11
- import { createControllerEffect } from '../../../lib/effector'
11
+ import { createControllerEffect, createEntityFieldStore } from '../../../lib/effector'
12
12
  import {
13
13
  ChatbotContext,
14
14
  ChatbotModelProps,
15
- IChatDrawBoardAdapter,
15
+ ConversationMessage,
16
16
  SendHelpParams,
17
17
  SendHelpProps,
18
18
  SetHintMessageProps,
@@ -20,26 +20,20 @@ import {
20
20
  StartConversationProps,
21
21
  } from '../types/model.types'
22
22
  import { GetAlternativesResponse } from '../types/api.types'
23
- import { ChatbotAPI } from './ChatbotApi'
23
+ import { ChatbotAPI } from './api'
24
24
  import { ChatbotTranslation } from './translation'
25
25
  import { ChatTextToSpeechModel } from './t2s'
26
26
  import { AudioProvider } from '../types/t2s.types'
27
27
  import { messagesHelper } from './messagesHelper'
28
- import { ChatBotThreadManager } from './ChatBotThreadManager'
29
- import { ChatsCacheModel, defaultChatData } from './ChatsCacheModel'
30
- import { ErrorSpottingModel } from '../errorSpotting/ErrorSpottingModel'
31
28
 
32
29
  type ReinitConversationProps = {
33
30
  key: string
34
31
  }
35
32
 
36
33
  export class ChatbotModel {
37
- public readonly threadManager: ChatBotThreadManager
38
- public readonly api: ChatbotAPI
39
-
40
- public readonly translation: ChatbotTranslation
41
- public readonly t2s: ChatTextToSpeechModel
42
- public readonly errorSpotting
34
+ readonly api: ChatbotAPI
35
+ readonly translation: ChatbotTranslation
36
+ readonly t2s: ChatTextToSpeechModel
43
37
 
44
38
  public readonly $currentKey = createStore('')
45
39
 
@@ -61,82 +55,92 @@ export class ChatbotModel {
61
55
  readonly setScrollActive = createEvent<boolean>()
62
56
  readonly $isScrollActive = restore(this.setScrollActive, false)
63
57
 
58
+ readonly sendHelpRequestFx
59
+
64
60
  readonly defaultMessages: ChatbotModelProps['messages']
65
- private readonly cache = new ChatsCacheModel()
61
+
62
+ readonly messages = createEntityFieldStore<ConversationMessage[]>()
63
+ readonly threadIds = createEntityFieldStore<string>()
64
+ readonly availableChats = createEntityFieldStore<boolean>()
66
65
 
67
66
  public readonly $currentChatData = combine(
68
- { data: this.cache.$data, key: this.$currentKey },
69
- ({ data, key }) => (data[key] ? { ...data[key], key } : { ...defaultChatData(), key }),
67
+ {
68
+ messages: this.messages.$state,
69
+ threadIds: this.threadIds.$state,
70
+ availableChats: this.availableChats.$state,
71
+ key: this.$currentKey,
72
+ },
73
+ ({ messages, threadIds, availableChats, key }) => {
74
+ return {
75
+ messages: messages[key] ?? [],
76
+ threadId: threadIds[key] ?? null,
77
+ isAvailable: availableChats[key] ?? false,
78
+ key,
79
+ }
80
+ },
70
81
  )
71
82
 
72
- constructor({ api, messages, $key, threadMessagesLimit }: ChatbotModelProps) {
73
- this.threadManager = new ChatBotThreadManager({
74
- api: { getHint: api.requestHint },
75
- messages,
76
- messagesLimit: threadMessagesLimit,
77
- })
78
- this.api = new ChatbotAPI({ ...api, postMessage: this.threadManager.postMessage })
83
+ constructor({ api, messages, $key }: ChatbotModelProps) {
84
+ this.api = new ChatbotAPI(api)
79
85
 
80
86
  this.defaultMessages = messages
87
+ if ($key) sample({ source: $key, target: this.$currentKey })
88
+
81
89
  this.$alternatives = restore(this.api.getAlternativesFx.doneData, null)
82
90
  .on(this.setAlternatives, (_, payload) => payload)
83
91
  .reset(this.resetAlternatives)
84
92
 
85
- this.t2s = new ChatTextToSpeechModel({ api: this.api })
86
93
  this.translation = new ChatbotTranslation({
87
94
  $context: this.$context,
88
95
  defaultMessages: messages,
89
96
  $key: this.$currentKey,
90
97
  api: this.api,
98
+ messagesModel: this.messages,
91
99
  alternativesModel: {
92
100
  $store: this.$alternatives,
93
101
  set: this.setAlternatives,
94
102
  },
95
- chats: this.cache,
96
- })
97
- this.errorSpotting = new ErrorSpottingModel({
98
- api: this.api,
99
- $currentChatData: this.$currentChatData,
100
103
  })
101
104
 
102
- if ($key) this.bindKey($key)
105
+ this.t2s = new ChatTextToSpeechModel({ $isOpen: this.$isOpen, api: this.api })
103
106
 
104
- sample({
105
- source: this.$isOpen.updates,
106
- filter: (isOpen) => !isOpen,
107
- target: this.t2s.reset,
108
- })
109
-
110
- sample({
111
- clock: this.removeLastMessage,
112
- source: [this.$lastMessageKey, this.cache.$data] as const,
113
- fn: ([lastMessageKey, chatsData]) => {
114
- const chat = chatsData[lastMessageKey ?? '']
115
- if (!chat) return { key: '', data: {} }
116
- const updatedMessages = [...chat.messages]
117
- updatedMessages.pop()
118
- return { key: lastMessageKey ?? '', data: { messages: updatedMessages } }
119
- },
120
- filter: ([lastMessageKey]) => !!lastMessageKey,
121
- target: this.cache.update,
122
- })
107
+ this.sendHelpRequestFx = this.createSendHelpRequestFx()
108
+ this.initChatReplyWatcher()
123
109
  }
124
110
 
125
111
  private createSendHelpRequestFx() {
126
112
  const effect = attach({
127
- source: [this.$currentKey, this.$context],
128
- mapParams: (params: SendHelpParams, [key, context]) => ({
113
+ source: [
114
+ this.$currentKey,
115
+ this.translation.$isTranslated,
116
+ this.$currentChatData,
117
+ this.$context,
118
+ ],
119
+ mapParams: (params: SendHelpParams, [key, isTranslated, currentData, context]) => ({
129
120
  message: params.message,
130
121
  translatedMessage: params.translatedMessage,
131
122
  context,
132
123
  key,
124
+ isTranslated,
125
+ threadId: currentData.threadId,
133
126
  }),
134
127
  effect: createControllerEffect(
135
- async ({ message, translatedMessage, key, context }: SendHelpProps) => {
128
+ async ({
129
+ message,
130
+ translatedMessage,
131
+ key,
132
+ isTranslated,
133
+ threadId,
134
+ context,
135
+ }: SendHelpProps) => {
136
136
  if (!context) throw new Error('Context is required')
137
137
  this.setLastMessageKey(key)
138
- this.cache.addMessages(key, {
139
- messages: [messagesHelper.createOwn({ message, translatedMessage })],
138
+ this.messages.setField({
139
+ key,
140
+ fn: (currentMessages) => [
141
+ ...(currentMessages || []),
142
+ messagesHelper.createOwn({ message, translatedMessage, threadId }),
143
+ ],
140
144
  })
141
145
 
142
146
  const response = await this.api.postMessageFx({
@@ -144,18 +148,25 @@ export class ChatbotModel {
144
148
  language: context.language,
145
149
  problemAnswer: context.problemAnswer,
146
150
  answer: context.answer,
151
+ threadId,
147
152
  imageAltText: context.imageDescription,
148
153
  })
149
154
  let messages = [messagesHelper.createAnswer(response)]
150
155
  if (response.endMessage) {
151
156
  messages.push(messagesHelper.createLast(this.defaultMessages.endMessage))
152
157
  }
153
- messages = await this.translation.applyTranslationFx({
154
- targetLanguage: context.translationTargetLanguage,
155
- messages,
156
- })
158
+ if (isTranslated) {
159
+ messages = await this.translation.translateMessagesFx({
160
+ targetLanguage: context.translationTargetLanguage,
161
+ messages,
162
+ })
163
+ }
157
164
 
158
- this.cache.addMessages(key, { messages, thread: response.thread })
165
+ this.messages.setField({
166
+ key,
167
+ fn: (currentMessages) => [...(currentMessages || []), ...messages],
168
+ })
169
+ this.threadIds.setField({ key, data: response.threadId })
159
170
  },
160
171
  ),
161
172
  })
@@ -163,39 +174,29 @@ export class ChatbotModel {
163
174
  sample({
164
175
  clock: effect.fail,
165
176
  source: this.$currentChatData,
166
- fn: ({ key, messages }) => ({
167
- key,
168
- data: { messages: [...messages, this.defaultMessages.error] },
169
- }),
177
+ fn: ({ key, messages }) => ({ key, data: [...messages, this.defaultMessages.error] }),
170
178
  filter: (_, { error }) => error.message !== 'Request aborted manually',
171
- target: this.cache.update,
179
+ target: this.messages.setField,
172
180
  })
173
181
 
174
182
  return effect
175
183
  }
176
184
 
177
- public bindKey($store: Store<string>) {
185
+ private initChatReplyWatcher() {
178
186
  sample({
179
- source: $store,
180
- target: this.$currentKey,
187
+ clock: this.removeLastMessage,
188
+ source: [this.$lastMessageKey, this.messages.$state] as const,
189
+ fn: ([lastMessageKey, messages]) => {
190
+ if (!lastMessageKey) return { key: '', data: [] }
191
+ const updatedMessages = [...messages[lastMessageKey]]
192
+ updatedMessages.pop()
193
+ return { key: lastMessageKey, data: updatedMessages }
194
+ },
195
+ filter: ([lastMessageKey]) => !!lastMessageKey,
196
+ target: this.messages.setField,
181
197
  })
182
- this.threadManager.bindKeyStore($store)
183
- return this
184
- }
185
-
186
- public setT2SAudioProvider(audioProvider: AudioProvider) {
187
- this.t2s.setAudioProvider(audioProvider)
188
- return this
189
198
  }
190
199
 
191
- public setDrawBoardAdapter(adapter: IChatDrawBoardAdapter) {
192
- this.threadManager.setDrawBoardAdapter(adapter)
193
- this.errorSpotting.bindStrokesValidation(adapter.$strokesValidationKey)
194
- return this
195
- }
196
-
197
- public readonly sendHelpRequestFx = this.createSendHelpRequestFx()
198
-
199
200
  public readonly startConversation = attach({
200
201
  source: this.$currentChatData,
201
202
  mapParams: (props: StartConversationProps | void, source) => ({
@@ -207,54 +208,54 @@ export class ChatbotModel {
207
208
  if (initOnly) return
208
209
  return this.reinitConversation({ key })
209
210
  }
210
- this.cache.add(key, {
211
- messages: [this.defaultMessages.start],
212
- isAvailable: true,
213
- currentThread: null,
214
- })
211
+ this.messages.setField({ key, data: [this.defaultMessages.start] })
212
+ this.availableChats.setField({ key, data: true })
215
213
  }),
216
214
  })
217
215
 
218
216
  public setHintMessage({ key, ...message }: SetHintMessageProps) {
219
217
  const options = this.$alternatives.getState()?.options.hints ?? message.options
220
- this.cache.setSingleMessage(key, { ...message, options })
218
+ this.messages.setField({
219
+ key,
220
+ fn: (messages) => {
221
+ if (!messages || messages.length > 1) return
222
+ return [{ ...message, options }]
223
+ },
224
+ })
221
225
  }
222
226
 
223
- public readonly reinitConversation = ({ key }: ReinitConversationProps) => {
224
- this.cache.reinitChatThread(key, { initialOption: this.defaultMessages.anotherHintOption })
225
- this.threadManager.resetThread({ key })
226
- }
227
+ public readonly reinitConversation = createEffect(({ key }: ReinitConversationProps) => {
228
+ this.messages.setField({
229
+ key,
230
+ fn: (messages) => {
231
+ if (!messages?.length || messages.length === 1) return
232
+ const copy = [...messages]
233
+ while (copy.at(-1)?.endMessage) {
234
+ copy.pop()
235
+ }
236
+
237
+ const lastMessage = copy.at(-1)
238
+ if (!lastMessage) return
239
+
240
+ copy.splice(copy.length - 1, 1, {
241
+ ...lastMessage,
242
+ options: [this.defaultMessages.anotherHintOption],
243
+ })
244
+ return copy
245
+ },
246
+ })
247
+ })
227
248
 
228
- public disableChat(key: string) {
229
- this.t2s.stop()
230
- void this.t2s.reset()
231
- this.cache.disableChat(key)
249
+ public bindKey($store: Store<string>) {
250
+ sample({
251
+ source: $store,
252
+ target: this.$currentKey,
253
+ })
254
+ return this
232
255
  }
233
256
 
234
- public softReset = attach({
235
- source: {
236
- isLoading: this.sendHelpRequestFx.pending,
237
- lastMessageKey: this.$lastMessageKey,
238
- },
239
- mapParams: (_: void, { isLoading, lastMessageKey }) => !!(isLoading && lastMessageKey),
240
- effect: createEffect((hasPendingMessage: boolean) => {
241
- if (hasPendingMessage) {
242
- this.api.postMessageFx.controller.abort()
243
- this.removeLastMessage()
244
- }
245
- this.errorSpotting.abortPendingRequest()
246
-
247
- this.t2s.stop()
248
- void this.t2s.reset()
249
- this.translation.reset()
250
- this.setScrollActive(false)
251
- }),
252
- })
253
-
254
- public readonly reset = () => {
255
- this.cache.reset()
256
- this.resetAlternatives()
257
- this.threadManager.resetAll()
258
- this.errorSpotting.reset()
257
+ public setT2SAudioProvider(audioProvider: AudioProvider) {
258
+ this.t2s.setAudioProvider(audioProvider)
259
+ return this
259
260
  }
260
261
  }
@@ -1,8 +1,7 @@
1
- import { PostMessageResponse } from '../types/api.types'
1
+ import { ChatAnswer, PostMessageResponse } from '../types/api.types'
2
2
  import { createEvent } from 'effector'
3
- import { ChatAnswer } from '../types/units.types'
4
3
 
5
- type ChatMessage = Omit<PostMessageResponse, 'thread'> & {
4
+ type ChatMessage = PostMessageResponse & {
6
5
  id: string
7
6
  isOwnMessage: boolean
8
7
  }
@@ -39,6 +38,7 @@ export class DefaultMessagesCreator<K extends string> {
39
38
  const message: ChatMessage = {
40
39
  id: this.list.size.toString(),
41
40
  message: this.getter(key),
41
+ threadId: '',
42
42
  options: [],
43
43
  isOwnMessage: isOwn,
44
44
  }
@@ -1,39 +1,28 @@
1
- import { FullStrokeData, IThreadItem } from '../types/units.types'
1
+ import { Stroke } from '../types/api.types'
2
2
 
3
3
  type ThreadItemProps = {
4
- strokes: FullStrokeData[]
5
- key: string
4
+ strokes?: Stroke[] | null
6
5
  }
7
6
 
8
7
  export class ThreadItem {
9
- public readonly key: string | null = null
10
- public readonly strokes: FullStrokeData[] | null
11
- public readonly history: string[] = []
8
+ public readonly strokes: Stroke[] | null
9
+ public readonly hints: string[] = []
12
10
 
13
- public constructor(props?: ThreadItemProps | null) {
14
- this.strokes = props?.strokes ?? null
15
- this.key = props?.key ?? null
11
+ public constructor({ strokes }: ThreadItemProps = {}) {
12
+ this.strokes = strokes ?? null
16
13
  }
17
14
 
18
15
  public getNextHintProps() {
19
- if (this.history.length) {
16
+ if (this.hints.length) {
20
17
  return {
21
- previousHint: this.history[this.history.length - 1],
18
+ previousHint: this.hints[this.hints.length - 1],
22
19
  }
23
20
  }
24
21
 
25
22
  if (this.strokes) {
26
- return { stroke: this.strokes.map(({ x, y }) => ({ x, y })) }
23
+ return { stroke: this.strokes }
27
24
  }
28
25
 
29
26
  return {}
30
27
  }
31
-
32
- public toObject(): IThreadItem {
33
- return {
34
- key: this.key,
35
- strokes: this.strokes,
36
- history: [...this.history],
37
- }
38
- }
39
28
  }
@@ -1,9 +1,8 @@
1
1
  import { createEffect } from 'effector'
2
2
  import { createControllerEffect } from '../../../lib/effector'
3
- import { ChatbotApiRequests, SpotErrorPayload, SpotErrorResponse } from '../types/model.types'
3
+ import { ChatbotModelProps } from '../types/model.types'
4
4
  import { GoogleTranslatePayload, GoogleTranslateResponse } from '../types/api.types'
5
5
  import { replaceKatexSyntax } from '../helpers'
6
- import { getRandomElements } from '../../../lib/helpers/randomElements'
7
6
 
8
7
  export class ChatbotAPI {
9
8
  public readonly postMessageFx
@@ -11,23 +10,7 @@ export class ChatbotAPI {
11
10
  public readonly translateTextFx
12
11
  public readonly textToSpeechTextFx
13
12
 
14
- public readonly spotErrorFx
15
-
16
- constructor(api: ChatbotApiRequests) {
17
- this.spotErrorFx = createControllerEffect(
18
- (props: SpotErrorPayload): Promise<SpotErrorResponse> => {
19
- return new Promise<SpotErrorResponse>((res) => {
20
- if (props.strokes.length <= 3) return res({ strokesIds: [] })
21
- setTimeout(() => {
22
- const randomStrokes = getRandomElements(props.strokes, 4)
23
- res({
24
- strokesIds: randomStrokes.map((stroke) => stroke.id ?? ''),
25
- })
26
- }, 1000)
27
- })
28
- },
29
- )
30
- // this.spotErrorFx = createControllerEffect(api.spotError)
13
+ constructor(api: ChatbotModelProps['api']) {
31
14
  this.postMessageFx = createControllerEffect(api.postMessage)
32
15
  this.getAlternativesFx = createEffect(api.getAlternatives)
33
16
  this.translateTextFx = createEffect(
@@ -1,10 +1,10 @@
1
1
  import { generateRandomId } from '../../../lib/helpers/helpers'
2
- import { CreateMessageResponse } from '../types/model.types'
3
- import { ConversationMessage } from '../types/units.types'
2
+ import { ConversationMessage, CreateMessageResponse } from '../types/model.types'
4
3
 
5
4
  type OwnMessageProps = {
6
5
  message?: string
7
6
  translatedMessage?: string
7
+ threadId?: string | null
8
8
  }
9
9
 
10
10
  export class messagesHelper {
@@ -13,6 +13,7 @@ export class messagesHelper {
13
13
  id: generateRandomId(),
14
14
  isOwnMessage: false,
15
15
  message: data.message,
16
+ threadId: data.threadId,
16
17
  options: data.options,
17
18
  translatedMessage: data.translatedMessage,
18
19
  }
@@ -25,6 +26,7 @@ export class messagesHelper {
25
26
  translatedMessage: data.translatedMessage,
26
27
  isOwnMessage: false,
27
28
  options: [],
29
+ threadId: '',
28
30
  endMessage: true,
29
31
  }
30
32
  }
@@ -32,11 +34,13 @@ export class messagesHelper {
32
34
  public static createOwn({
33
35
  message = '',
34
36
  translatedMessage,
37
+ threadId,
35
38
  }: OwnMessageProps): ConversationMessage {
36
39
  return {
37
40
  id: generateRandomId(),
38
41
  message,
39
42
  translatedMessage,
43
+ threadId: threadId || '',
40
44
  isOwnMessage: true,
41
45
  options: [],
42
46
  }
@@ -1,9 +1,10 @@
1
- import { restore, createEvent, createEffect } from 'effector'
1
+ import { restore, createEvent, Store, sample, createEffect } from 'effector'
2
2
  import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants'
3
3
  import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types'
4
- import { ChatbotAPI } from './ChatbotApi'
4
+ import { ChatbotAPI } from './api'
5
5
 
6
6
  type ChatTextToSpeechModelProps = {
7
+ $isOpen: Store<boolean>
7
8
  api: ChatbotAPI
8
9
  }
9
10
 
@@ -17,8 +18,14 @@ export class ChatTextToSpeechModel {
17
18
  readonly setStatus = createEvent<AudioStatus>()
18
19
  readonly $status = restore(this.setStatus, AudioStatus.STOPPED)
19
20
 
20
- constructor({ api }: ChatTextToSpeechModelProps) {
21
+ constructor({ $isOpen, api }: ChatTextToSpeechModelProps) {
21
22
  this.api = api
23
+
24
+ sample({
25
+ source: $isOpen.updates,
26
+ filter: isOpen => !isOpen,
27
+ target: this.reset,
28
+ })
22
29
  }
23
30
 
24
31
  public setAudioProvider(audioProvider: AudioProvider) {
@@ -3,8 +3,7 @@ import {
3
3
  GetOptionsProps,
4
4
  GetOptionsResult,
5
5
  } from '../types/translation.types'
6
- import { GetAlternativesResponse } from '../types/api.types'
7
- import { ChatAnswer } from '../types/units.types'
6
+ import { ChatAnswer, GetAlternativesResponse } from '../types/api.types'
8
7
 
9
8
  export function getOptionsForTranslation({
10
9
  lastMessage,