@magmamath/students-features 0.4.5 → 0.5.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (806) hide show
  1. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js +2 -1
  2. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  3. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  4. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.js +41 -0
  5. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.js.map +1 -0
  6. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +30 -47
  7. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  8. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +32 -32
  9. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  10. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +11 -13
  11. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  12. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js +8 -28
  13. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  14. package/dist/commonjs/features/chatbot/components/Chatbot.js +5 -7
  15. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  16. package/dist/commonjs/features/chatbot/context/ChatBotModelContext.js +17 -0
  17. package/dist/commonjs/features/chatbot/context/ChatBotModelContext.js.map +1 -0
  18. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +57 -0
  19. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -0
  20. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js +130 -0
  21. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +1 -0
  22. package/dist/commonjs/features/chatbot/index.js +0 -7
  23. package/dist/commonjs/features/chatbot/index.js.map +1 -1
  24. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +147 -122
  25. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  26. package/dist/commonjs/features/chatbot/model/{ChatBotMessageHandler.js → ChatBotThreadManager.js} +44 -22
  27. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +1 -0
  28. package/dist/commonjs/features/chatbot/model/ChatBoxTextManager.js +22 -0
  29. package/dist/commonjs/features/chatbot/model/ChatBoxTextManager.js.map +1 -0
  30. package/dist/commonjs/features/chatbot/model/{api.js → ChatbotApi.js} +15 -1
  31. package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +1 -0
  32. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +110 -0
  33. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +1 -0
  34. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js +12 -12
  35. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  36. package/dist/commonjs/features/chatbot/model/ThreadItem.js +16 -8
  37. package/dist/commonjs/features/chatbot/model/ThreadItem.js.map +1 -1
  38. package/dist/commonjs/features/chatbot/model/constants.js.map +1 -1
  39. package/dist/commonjs/features/chatbot/model/messagesHelper.js +7 -7
  40. package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -1
  41. package/dist/commonjs/features/chatbot/model/t2s.js +18 -13
  42. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  43. package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -1
  44. package/dist/commonjs/features/chatbot/model/translation.js +54 -45
  45. package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
  46. package/dist/commonjs/features/chatbot/types/api.types.js +4 -0
  47. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  48. package/dist/commonjs/features/chatbot/types/units.types.js +2 -0
  49. package/dist/commonjs/features/chatbot/types/units.types.js.map +1 -0
  50. package/dist/commonjs/index.js +0 -24
  51. package/dist/commonjs/index.js.map +1 -1
  52. package/dist/commonjs/lib/effector/createEntityFieldStore.js +4 -0
  53. package/dist/commonjs/lib/effector/createEntityFieldStore.js.map +1 -1
  54. package/dist/commonjs/lib/effector/withEvent.js +13 -0
  55. package/dist/commonjs/lib/effector/withEvent.js.map +1 -0
  56. package/dist/commonjs/lib/helpers/helpers.js +1 -3
  57. package/dist/commonjs/lib/helpers/helpers.js.map +1 -1
  58. package/dist/commonjs/lib/helpers/randomElements.js +24 -0
  59. package/dist/commonjs/lib/helpers/randomElements.js.map +1 -0
  60. package/dist/commonjs/lib/types/keys.js +2 -0
  61. package/dist/commonjs/lib/types/keys.js.map +1 -0
  62. package/dist/commonjs/shared/icons/HighlighterIcon.js +36 -0
  63. package/dist/commonjs/shared/icons/HighlighterIcon.js.map +1 -0
  64. package/dist/commonjs/shared/icons/{Valentine.js → StopIcon.js} +12 -9
  65. package/dist/commonjs/shared/icons/StopIcon.js.map +1 -0
  66. package/dist/commonjs/shared/icons/icon.types.js +4 -0
  67. package/dist/commonjs/shared/translation/constants.js +3 -3
  68. package/dist/commonjs/shared/translation/constants.js.map +1 -1
  69. package/dist/commonjs/shared/translation/helpers.js +22 -6
  70. package/dist/commonjs/shared/translation/helpers.js.map +1 -1
  71. package/dist/commonjs/shared/translation/hooks.js +3 -5
  72. package/dist/commonjs/shared/translation/hooks.js.map +1 -1
  73. package/{src/lib → dist/commonjs/shared/translation}/localization/en.json +8 -1
  74. package/dist/{module/lib → commonjs/shared/translation}/localization/gb.json +8 -1
  75. package/dist/commonjs/{lib → shared/translation}/localization/sw.json +8 -1
  76. package/dist/commonjs/shared/translation/model.js +1 -1
  77. package/dist/commonjs/shared/translation/model.js.map +1 -1
  78. package/dist/commonjs/shared/translation/types.js +1 -1
  79. package/dist/commonjs/shared/translation/types.js.map +1 -1
  80. package/dist/commonjs/shared/translation/validation.types.js +6 -0
  81. package/dist/commonjs/shared/translation/validation.types.js.map +1 -0
  82. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js +2 -1
  83. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  84. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  85. package/dist/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.js +35 -0
  86. package/dist/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.js.map +1 -0
  87. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +31 -48
  88. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  89. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +32 -32
  90. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  91. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +11 -13
  92. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  93. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js +8 -28
  94. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  95. package/dist/module/features/chatbot/components/Chatbot.js +6 -8
  96. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  97. package/dist/module/features/chatbot/context/ChatBotModelContext.js +12 -0
  98. package/dist/module/features/chatbot/context/ChatBotModelContext.js.map +1 -0
  99. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +51 -0
  100. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -0
  101. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js +125 -0
  102. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +1 -0
  103. package/dist/module/features/chatbot/index.js +0 -1
  104. package/dist/module/features/chatbot/index.js.map +1 -1
  105. package/dist/module/features/chatbot/model/ChatBotModel.js +149 -124
  106. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  107. package/dist/module/features/chatbot/model/{ChatBotMessageHandler.js → ChatBotThreadManager.js} +42 -20
  108. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +1 -0
  109. package/dist/module/features/chatbot/model/ChatBoxTextManager.js +17 -0
  110. package/dist/module/features/chatbot/model/ChatBoxTextManager.js.map +1 -0
  111. package/dist/module/features/chatbot/model/{api.js → ChatbotApi.js} +15 -1
  112. package/dist/module/features/chatbot/model/ChatbotApi.js.map +1 -0
  113. package/dist/module/features/chatbot/model/ChatsCacheModel.js +104 -0
  114. package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +1 -0
  115. package/dist/module/features/chatbot/model/DefaultMessageCreator.js +12 -12
  116. package/dist/module/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  117. package/dist/module/features/chatbot/model/ThreadItem.js +16 -8
  118. package/dist/module/features/chatbot/model/ThreadItem.js.map +1 -1
  119. package/dist/module/features/chatbot/model/constants.js.map +1 -1
  120. package/dist/module/features/chatbot/model/messagesHelper.js +7 -7
  121. package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -1
  122. package/dist/module/features/chatbot/model/t2s.js +19 -14
  123. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  124. package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -1
  125. package/dist/module/features/chatbot/model/translation.js +54 -45
  126. package/dist/module/features/chatbot/model/translation.js.map +1 -1
  127. package/dist/module/features/chatbot/types/api.types.js +2 -0
  128. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  129. package/dist/module/features/chatbot/types/units.types.js +2 -0
  130. package/dist/module/features/chatbot/types/units.types.js.map +1 -0
  131. package/dist/module/index.js +0 -2
  132. package/dist/module/index.js.map +1 -1
  133. package/dist/module/lib/effector/createEntityFieldStore.js +4 -0
  134. package/dist/module/lib/effector/createEntityFieldStore.js.map +1 -1
  135. package/dist/module/lib/effector/withEvent.js +9 -0
  136. package/dist/module/lib/effector/withEvent.js.map +1 -0
  137. package/dist/module/lib/helpers/helpers.js +0 -1
  138. package/dist/module/lib/helpers/helpers.js.map +1 -1
  139. package/dist/module/lib/helpers/randomElements.js +20 -0
  140. package/dist/module/lib/helpers/randomElements.js.map +1 -0
  141. package/dist/module/lib/types/keys.js +2 -0
  142. package/dist/module/lib/types/keys.js.map +1 -0
  143. package/dist/module/shared/icons/HighlighterIcon.js +29 -0
  144. package/dist/module/shared/icons/HighlighterIcon.js.map +1 -0
  145. package/dist/module/shared/icons/StopIcon.js +26 -0
  146. package/dist/module/shared/icons/StopIcon.js.map +1 -0
  147. package/dist/module/shared/icons/icon.types.js +2 -0
  148. package/dist/module/shared/translation/constants.js +3 -3
  149. package/dist/module/shared/translation/constants.js.map +1 -1
  150. package/dist/module/shared/translation/helpers.js +19 -5
  151. package/dist/module/shared/translation/helpers.js.map +1 -1
  152. package/dist/module/shared/translation/hooks.js +4 -6
  153. package/dist/module/shared/translation/hooks.js.map +1 -1
  154. package/dist/{commonjs/lib → module/shared/translation}/localization/en.json +8 -1
  155. package/{src/lib → dist/module/shared/translation}/localization/gb.json +8 -1
  156. package/dist/module/{lib → shared/translation}/localization/sw.json +8 -1
  157. package/dist/module/shared/translation/model.js +1 -1
  158. package/dist/module/shared/translation/model.js.map +1 -1
  159. package/dist/module/shared/translation/types.js +2 -0
  160. package/dist/module/shared/translation/types.js.map +1 -1
  161. package/dist/module/shared/translation/validation.types.js +4 -0
  162. package/dist/module/shared/translation/validation.types.js.map +1 -0
  163. package/dist/typescript/commonjs/features/chatbot/components/Alternatives/Alternatives.d.ts +1 -3
  164. package/dist/typescript/commonjs/features/chatbot/components/Alternatives/Alternatives.d.ts.map +1 -1
  165. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +5 -5
  166. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  167. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts +11 -0
  168. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts.map +1 -0
  169. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts +7 -3
  170. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  171. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  172. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  173. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts +1 -1
  174. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  175. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts +2 -10
  176. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  177. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +2 -5
  178. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  179. package/dist/typescript/commonjs/features/chatbot/context/ChatBotModelContext.d.ts +4 -0
  180. package/dist/typescript/commonjs/features/chatbot/context/ChatBotModelContext.d.ts.map +1 -0
  181. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +8 -0
  182. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -0
  183. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +35 -0
  184. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +1 -0
  185. package/dist/typescript/commonjs/features/chatbot/index.d.ts +4 -3
  186. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  187. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +24 -18
  188. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  189. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts +33 -0
  190. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -0
  191. package/dist/typescript/commonjs/features/chatbot/model/ChatBoxTextManager.d.ts +6 -0
  192. package/dist/typescript/commonjs/features/chatbot/model/ChatBoxTextManager.d.ts.map +1 -0
  193. package/dist/typescript/commonjs/features/chatbot/model/{api.d.ts → ChatbotApi.d.ts} +4 -3
  194. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +1 -0
  195. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +27 -0
  196. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -0
  197. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts +5 -3
  198. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  199. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts +13 -7
  200. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  201. package/dist/typescript/commonjs/features/chatbot/model/constants.d.ts.map +1 -1
  202. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +7 -5
  203. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  204. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +16 -6
  205. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  206. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +7 -8
  207. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
  208. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +2 -1
  209. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  210. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +12 -11
  211. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  212. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +19 -24
  213. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  214. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +2 -7
  215. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
  216. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +2 -1
  217. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
  218. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +34 -0
  219. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +1 -0
  220. package/dist/typescript/commonjs/index.d.ts +0 -3
  221. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  222. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts +2 -0
  223. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  224. package/dist/typescript/commonjs/lib/effector/withEvent.d.ts +2 -0
  225. package/dist/typescript/commonjs/lib/effector/withEvent.d.ts.map +1 -0
  226. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts +0 -1
  227. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts.map +1 -1
  228. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts +2 -0
  229. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts.map +1 -0
  230. package/dist/typescript/commonjs/lib/types/keys.d.ts +8 -0
  231. package/dist/typescript/commonjs/lib/types/keys.d.ts.map +1 -0
  232. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts +4 -0
  233. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts.map +1 -0
  234. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts +4 -0
  235. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts.map +1 -0
  236. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts +2 -0
  237. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/shared/translation/constants.d.ts +21 -0
  239. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  240. package/dist/typescript/commonjs/shared/translation/helpers.d.ts +3 -2
  241. package/dist/typescript/commonjs/shared/translation/helpers.d.ts.map +1 -1
  242. package/dist/typescript/commonjs/shared/translation/hooks.d.ts +2 -2
  243. package/dist/typescript/commonjs/shared/translation/hooks.d.ts.map +1 -1
  244. package/dist/typescript/commonjs/shared/translation/index.d.ts +0 -1
  245. package/dist/typescript/commonjs/shared/translation/index.d.ts.map +1 -1
  246. package/dist/typescript/commonjs/shared/translation/model.d.ts +43 -3
  247. package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/shared/translation/types.d.ts +4 -4
  249. package/dist/typescript/commonjs/shared/translation/types.d.ts.map +1 -1
  250. package/dist/typescript/commonjs/shared/translation/validation.types.d.ts +17 -0
  251. package/dist/typescript/commonjs/shared/translation/validation.types.d.ts.map +1 -0
  252. package/dist/typescript/module/features/chatbot/components/Alternatives/Alternatives.d.ts +1 -3
  253. package/dist/typescript/module/features/chatbot/components/Alternatives/Alternatives.d.ts.map +1 -1
  254. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +5 -5
  255. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  256. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts +11 -0
  257. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts.map +1 -0
  258. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts +7 -3
  259. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  260. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  261. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  262. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts +1 -1
  263. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  264. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts +2 -10
  265. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  266. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +2 -5
  267. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  268. package/dist/typescript/module/features/chatbot/context/ChatBotModelContext.d.ts +4 -0
  269. package/dist/typescript/module/features/chatbot/context/ChatBotModelContext.d.ts.map +1 -0
  270. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +8 -0
  271. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -0
  272. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +35 -0
  273. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +1 -0
  274. package/dist/typescript/module/features/chatbot/index.d.ts +4 -3
  275. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  276. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +24 -18
  277. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  278. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts +33 -0
  279. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -0
  280. package/dist/typescript/module/features/chatbot/model/ChatBoxTextManager.d.ts +6 -0
  281. package/dist/typescript/module/features/chatbot/model/ChatBoxTextManager.d.ts.map +1 -0
  282. package/dist/typescript/module/features/chatbot/model/{api.d.ts → ChatbotApi.d.ts} +4 -3
  283. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +1 -0
  284. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +27 -0
  285. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -0
  286. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts +5 -3
  287. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  288. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts +13 -7
  289. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  290. package/dist/typescript/module/features/chatbot/model/constants.d.ts.map +1 -1
  291. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +7 -5
  292. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  293. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +16 -6
  294. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  295. package/dist/typescript/module/features/chatbot/model/translation.d.ts +7 -8
  296. package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
  297. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +2 -1
  298. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  299. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +12 -11
  300. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  301. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +19 -24
  302. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  303. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +2 -7
  304. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
  305. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +2 -1
  306. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
  307. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +34 -0
  308. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +1 -0
  309. package/dist/typescript/module/index.d.ts +0 -3
  310. package/dist/typescript/module/index.d.ts.map +1 -1
  311. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts +2 -0
  312. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  313. package/dist/typescript/module/lib/effector/withEvent.d.ts +2 -0
  314. package/dist/typescript/module/lib/effector/withEvent.d.ts.map +1 -0
  315. package/dist/typescript/module/lib/helpers/helpers.d.ts +0 -1
  316. package/dist/typescript/module/lib/helpers/helpers.d.ts.map +1 -1
  317. package/dist/typescript/module/lib/helpers/randomElements.d.ts +2 -0
  318. package/dist/typescript/module/lib/helpers/randomElements.d.ts.map +1 -0
  319. package/dist/typescript/module/lib/types/keys.d.ts +8 -0
  320. package/dist/typescript/module/lib/types/keys.d.ts.map +1 -0
  321. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts +4 -0
  322. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts.map +1 -0
  323. package/dist/typescript/module/shared/icons/StopIcon.d.ts +4 -0
  324. package/dist/typescript/module/shared/icons/StopIcon.d.ts.map +1 -0
  325. package/dist/typescript/module/shared/icons/icon.types.d.ts +2 -0
  326. package/dist/typescript/module/shared/icons/icon.types.d.ts.map +1 -1
  327. package/dist/typescript/module/shared/translation/constants.d.ts +21 -0
  328. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  329. package/dist/typescript/module/shared/translation/helpers.d.ts +3 -2
  330. package/dist/typescript/module/shared/translation/helpers.d.ts.map +1 -1
  331. package/dist/typescript/module/shared/translation/hooks.d.ts +2 -2
  332. package/dist/typescript/module/shared/translation/hooks.d.ts.map +1 -1
  333. package/dist/typescript/module/shared/translation/index.d.ts +0 -1
  334. package/dist/typescript/module/shared/translation/index.d.ts.map +1 -1
  335. package/dist/typescript/module/shared/translation/model.d.ts +43 -3
  336. package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
  337. package/dist/typescript/module/shared/translation/types.d.ts +4 -4
  338. package/dist/typescript/module/shared/translation/types.d.ts.map +1 -1
  339. package/dist/typescript/module/shared/translation/validation.types.d.ts +17 -0
  340. package/dist/typescript/module/shared/translation/validation.types.d.ts.map +1 -0
  341. package/package.json +3 -6
  342. package/src/features/chatbot/components/Alternatives/Alternatives.tsx +2 -4
  343. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +5 -5
  344. package/src/features/chatbot/components/ChatMessage/MessageButtonsBlock.tsx +36 -0
  345. package/src/features/chatbot/components/ChatMessage/MessageTextToSpeech.tsx +37 -47
  346. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +27 -26
  347. package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +9 -9
  348. package/src/features/chatbot/components/ChatMessages/ChatbotMessages.tsx +9 -31
  349. package/src/features/chatbot/components/Chatbot.tsx +5 -11
  350. package/src/features/chatbot/context/ChatBotModelContext.ts +14 -0
  351. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +53 -0
  352. package/src/features/chatbot/errorSpotting/ErrorSpottingModel.ts +150 -0
  353. package/src/features/chatbot/index.ts +3 -4
  354. package/src/features/chatbot/model/ChatBotModel.ts +141 -133
  355. package/src/features/chatbot/model/{ChatBotMessageHandler.ts → ChatBotThreadManager.ts} +53 -27
  356. package/src/features/chatbot/model/ChatBoxTextManager.ts +18 -0
  357. package/src/features/chatbot/model/{api.ts → ChatbotApi.ts} +18 -2
  358. package/src/features/chatbot/model/ChatsCacheModel.ts +95 -0
  359. package/src/features/chatbot/model/DefaultMessageCreator.ts +17 -16
  360. package/src/features/chatbot/model/ThreadItem.ts +15 -10
  361. package/src/features/chatbot/model/constants.ts +2 -0
  362. package/src/features/chatbot/model/messagesHelper.ts +12 -7
  363. package/src/features/chatbot/model/t2s.ts +28 -13
  364. package/src/features/chatbot/model/translation.helpers.ts +2 -1
  365. package/src/features/chatbot/model/translation.ts +52 -46
  366. package/src/features/chatbot/types/api.types.ts +12 -12
  367. package/src/features/chatbot/types/model.types.ts +31 -32
  368. package/src/features/chatbot/types/t2s.types.ts +10 -15
  369. package/src/features/chatbot/types/translation.types.ts +2 -1
  370. package/src/features/chatbot/types/units.types.ts +37 -0
  371. package/src/index.ts +0 -3
  372. package/src/lib/effector/createEntityFieldStore.ts +9 -1
  373. package/src/lib/effector/withEvent.ts +7 -0
  374. package/src/lib/helpers/helpers.ts +0 -2
  375. package/src/lib/helpers/randomElements.ts +22 -0
  376. package/src/lib/types/keys.ts +18 -0
  377. package/src/shared/icons/HighlighterIcon.tsx +21 -0
  378. package/src/shared/icons/StopIcon.tsx +17 -0
  379. package/src/shared/icons/icon.types.ts +9 -6
  380. package/src/shared/translation/constants.ts +3 -3
  381. package/src/shared/translation/helpers.ts +22 -9
  382. package/src/shared/translation/hooks.ts +12 -16
  383. package/src/shared/translation/index.ts +0 -1
  384. package/{dist/module/lib → src/shared/translation}/localization/en.json +8 -1
  385. package/{dist/commonjs/lib → src/shared/translation}/localization/gb.json +8 -1
  386. package/src/{lib → shared/translation}/localization/sw.json +8 -1
  387. package/src/shared/translation/model.ts +8 -8
  388. package/src/shared/translation/types.ts +11 -8
  389. package/src/shared/translation/validation.types.ts +26 -0
  390. package/dist/commonjs/features/celebrations/components/Celebrations.js +0 -51
  391. package/dist/commonjs/features/celebrations/components/Celebrations.js.map +0 -1
  392. package/dist/commonjs/features/celebrations/components/Particle.js +0 -85
  393. package/dist/commonjs/features/celebrations/components/Particle.js.map +0 -1
  394. package/dist/commonjs/features/celebrations/components/ParticleBatch.js +0 -47
  395. package/dist/commonjs/features/celebrations/components/ParticleBatch.js.map +0 -1
  396. package/dist/commonjs/features/celebrations/components/Spark.js +0 -23
  397. package/dist/commonjs/features/celebrations/components/Spark.js.map +0 -1
  398. package/dist/commonjs/features/celebrations/config.js +0 -224
  399. package/dist/commonjs/features/celebrations/config.js.map +0 -1
  400. package/dist/commonjs/features/celebrations/helpers.js +0 -99
  401. package/dist/commonjs/features/celebrations/helpers.js.map +0 -1
  402. package/dist/commonjs/features/celebrations/index.js +0 -28
  403. package/dist/commonjs/features/celebrations/index.js.map +0 -1
  404. package/dist/commonjs/features/celebrations/types.js +0 -15
  405. package/dist/commonjs/features/celebrations/types.js.map +0 -1
  406. package/dist/commonjs/features/chatbot/model/ChatBotMessageHandler.js.map +0 -1
  407. package/dist/commonjs/features/chatbot/model/api.js.map +0 -1
  408. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js +0 -65
  409. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +0 -1
  410. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +0 -255
  411. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +0 -1
  412. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +0 -133
  413. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +0 -1
  414. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +0 -56
  415. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +0 -1
  416. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +0 -68
  417. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +0 -1
  418. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js +0 -53
  419. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +0 -1
  420. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js +0 -47
  421. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js.map +0 -1
  422. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js +0 -76
  423. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +0 -1
  424. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js +0 -62
  425. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +0 -1
  426. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +0 -109
  427. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +0 -1
  428. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +0 -83
  429. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +0 -1
  430. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  431. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js +0 -96
  432. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js.map +0 -1
  433. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js +0 -44
  434. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js.map +0 -1
  435. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +0 -233
  436. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +0 -1
  437. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +0 -63
  438. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +0 -1
  439. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js +0 -34
  440. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js.map +0 -1
  441. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +0 -108
  442. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +0 -1
  443. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +0 -107
  444. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +0 -1
  445. package/dist/commonjs/features/endOfAssignment/constants.js +0 -55
  446. package/dist/commonjs/features/endOfAssignment/constants.js.map +0 -1
  447. package/dist/commonjs/features/endOfAssignment/helpers.js +0 -64
  448. package/dist/commonjs/features/endOfAssignment/helpers.js.map +0 -1
  449. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js +0 -51
  450. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js.map +0 -1
  451. package/dist/commonjs/features/endOfAssignment/index.js +0 -40
  452. package/dist/commonjs/features/endOfAssignment/index.js.map +0 -1
  453. package/dist/commonjs/features/endOfAssignment/model/model.js +0 -53
  454. package/dist/commonjs/features/endOfAssignment/model/model.js.map +0 -1
  455. package/dist/commonjs/features/endOfAssignment/types.js +0 -33
  456. package/dist/commonjs/features/endOfAssignment/types.js.map +0 -1
  457. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js +0 -43
  458. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js.map +0 -1
  459. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js +0 -30
  460. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js.map +0 -1
  461. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +0 -64
  462. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +0 -1
  463. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js +0 -29
  464. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js.map +0 -1
  465. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js +0 -32
  466. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js.map +0 -1
  467. package/dist/commonjs/lib/constants.js +0 -11
  468. package/dist/commonjs/lib/constants.js.map +0 -1
  469. package/dist/commonjs/shared/hooks/useKeyDownListener.js +0 -27
  470. package/dist/commonjs/shared/hooks/useKeyDownListener.js.map +0 -1
  471. package/dist/commonjs/shared/hooks/useKeyboard.js +0 -23
  472. package/dist/commonjs/shared/hooks/useKeyboard.js.map +0 -1
  473. package/dist/commonjs/shared/icons/Halloween.js +0 -54
  474. package/dist/commonjs/shared/icons/Halloween.js.map +0 -1
  475. package/dist/commonjs/shared/icons/Pi.js +0 -30
  476. package/dist/commonjs/shared/icons/Pi.js.map +0 -1
  477. package/dist/commonjs/shared/icons/Star.js +0 -30
  478. package/dist/commonjs/shared/icons/Star.js.map +0 -1
  479. package/dist/commonjs/shared/icons/Valentine.js.map +0 -1
  480. package/dist/commonjs/shared/icons/Winter.js +0 -32
  481. package/dist/commonjs/shared/icons/Winter.js.map +0 -1
  482. package/dist/module/features/celebrations/components/Celebrations.js +0 -45
  483. package/dist/module/features/celebrations/components/Celebrations.js.map +0 -1
  484. package/dist/module/features/celebrations/components/Particle.js +0 -77
  485. package/dist/module/features/celebrations/components/Particle.js.map +0 -1
  486. package/dist/module/features/celebrations/components/ParticleBatch.js +0 -40
  487. package/dist/module/features/celebrations/components/ParticleBatch.js.map +0 -1
  488. package/dist/module/features/celebrations/components/Spark.js +0 -17
  489. package/dist/module/features/celebrations/components/Spark.js.map +0 -1
  490. package/dist/module/features/celebrations/config.js +0 -219
  491. package/dist/module/features/celebrations/config.js.map +0 -1
  492. package/dist/module/features/celebrations/helpers.js +0 -92
  493. package/dist/module/features/celebrations/helpers.js.map +0 -1
  494. package/dist/module/features/celebrations/index.js +0 -5
  495. package/dist/module/features/celebrations/index.js.map +0 -1
  496. package/dist/module/features/celebrations/types.js +0 -11
  497. package/dist/module/features/celebrations/types.js.map +0 -1
  498. package/dist/module/features/chatbot/model/ChatBotMessageHandler.js.map +0 -1
  499. package/dist/module/features/chatbot/model/api.js.map +0 -1
  500. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js +0 -59
  501. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +0 -1
  502. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +0 -249
  503. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +0 -1
  504. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +0 -126
  505. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +0 -1
  506. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +0 -50
  507. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +0 -1
  508. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +0 -62
  509. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +0 -1
  510. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js +0 -47
  511. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +0 -1
  512. package/dist/module/features/endOfAssignment/components/EOAModal.js +0 -41
  513. package/dist/module/features/endOfAssignment/components/EOAModal.js.map +0 -1
  514. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js +0 -70
  515. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +0 -1
  516. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js +0 -56
  517. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +0 -1
  518. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +0 -103
  519. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +0 -1
  520. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +0 -77
  521. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +0 -1
  522. package/dist/module/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  523. package/dist/module/features/endOfAssignment/components/Modal/Modal.js +0 -89
  524. package/dist/module/features/endOfAssignment/components/Modal/Modal.js.map +0 -1
  525. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js +0 -38
  526. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js.map +0 -1
  527. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +0 -226
  528. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +0 -1
  529. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +0 -56
  530. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +0 -1
  531. package/dist/module/features/endOfAssignment/components/Modal/model.js +0 -29
  532. package/dist/module/features/endOfAssignment/components/Modal/model.js.map +0 -1
  533. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +0 -102
  534. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +0 -1
  535. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +0 -100
  536. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +0 -1
  537. package/dist/module/features/endOfAssignment/constants.js +0 -51
  538. package/dist/module/features/endOfAssignment/constants.js.map +0 -1
  539. package/dist/module/features/endOfAssignment/helpers.js +0 -58
  540. package/dist/module/features/endOfAssignment/helpers.js.map +0 -1
  541. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js +0 -46
  542. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js.map +0 -1
  543. package/dist/module/features/endOfAssignment/index.js +0 -6
  544. package/dist/module/features/endOfAssignment/index.js.map +0 -1
  545. package/dist/module/features/endOfAssignment/model/model.js +0 -48
  546. package/dist/module/features/endOfAssignment/model/model.js.map +0 -1
  547. package/dist/module/features/endOfAssignment/types.js +0 -29
  548. package/dist/module/features/endOfAssignment/types.js.map +0 -1
  549. package/dist/module/features/endOfAssignment/ui/EOABadge.js +0 -37
  550. package/dist/module/features/endOfAssignment/ui/EOABadge.js.map +0 -1
  551. package/dist/module/features/endOfAssignment/ui/PracticeButton.js +0 -24
  552. package/dist/module/features/endOfAssignment/ui/PracticeButton.js.map +0 -1
  553. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +0 -57
  554. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +0 -1
  555. package/dist/module/features/endOfAssignment/ui/SparkIcon.js +0 -21
  556. package/dist/module/features/endOfAssignment/ui/SparkIcon.js.map +0 -1
  557. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js +0 -24
  558. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js.map +0 -1
  559. package/dist/module/lib/constants.js +0 -7
  560. package/dist/module/lib/constants.js.map +0 -1
  561. package/dist/module/shared/hooks/useKeyDownListener.js +0 -22
  562. package/dist/module/shared/hooks/useKeyDownListener.js.map +0 -1
  563. package/dist/module/shared/hooks/useKeyboard.js +0 -20
  564. package/dist/module/shared/hooks/useKeyboard.js.map +0 -1
  565. package/dist/module/shared/icons/Halloween.js +0 -47
  566. package/dist/module/shared/icons/Halloween.js.map +0 -1
  567. package/dist/module/shared/icons/Pi.js +0 -23
  568. package/dist/module/shared/icons/Pi.js.map +0 -1
  569. package/dist/module/shared/icons/Star.js +0 -23
  570. package/dist/module/shared/icons/Star.js.map +0 -1
  571. package/dist/module/shared/icons/Valentine.js +0 -23
  572. package/dist/module/shared/icons/Valentine.js.map +0 -1
  573. package/dist/module/shared/icons/Winter.js +0 -25
  574. package/dist/module/shared/icons/Winter.js.map +0 -1
  575. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts +0 -10
  576. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts.map +0 -1
  577. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts +0 -20
  578. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts.map +0 -1
  579. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts +0 -26
  580. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts.map +0 -1
  581. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts +0 -4
  582. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts.map +0 -1
  583. package/dist/typescript/commonjs/features/celebrations/config.d.ts +0 -192
  584. package/dist/typescript/commonjs/features/celebrations/config.d.ts.map +0 -1
  585. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts +0 -6
  586. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +0 -1
  587. package/dist/typescript/commonjs/features/celebrations/index.d.ts +0 -3
  588. package/dist/typescript/commonjs/features/celebrations/index.d.ts.map +0 -1
  589. package/dist/typescript/commonjs/features/celebrations/types.d.ts +0 -11
  590. package/dist/typescript/commonjs/features/celebrations/types.d.ts.map +0 -1
  591. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts +0 -31
  592. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts.map +0 -1
  593. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +0 -1
  594. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +0 -4
  595. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +0 -1
  596. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +0 -15
  597. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +0 -1
  598. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +0 -4
  599. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +0 -1
  600. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +0 -8
  601. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +0 -1
  602. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +0 -8
  603. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +0 -1
  604. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +0 -12
  605. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +0 -1
  606. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts +0 -11
  607. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts.map +0 -1
  608. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +0 -4
  609. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +0 -1
  610. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +0 -4
  611. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +0 -1
  612. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +0 -4
  613. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +0 -1
  614. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +0 -8
  615. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +0 -1
  616. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts +0 -20
  617. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts.map +0 -1
  618. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts +0 -3
  619. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +0 -1
  620. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +0 -4
  621. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +0 -1
  622. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +0 -4
  623. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +0 -1
  624. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts +0 -14
  625. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts.map +0 -1
  626. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +0 -4
  627. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +0 -1
  628. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +0 -8
  629. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +0 -1
  630. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts +0 -41
  631. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts.map +0 -1
  632. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts +0 -9
  633. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts.map +0 -1
  634. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts +0 -27
  635. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +0 -1
  636. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts +0 -4
  637. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts.map +0 -1
  638. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts +0 -14
  639. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts.map +0 -1
  640. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts +0 -60
  641. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts.map +0 -1
  642. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts +0 -11
  643. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts.map +0 -1
  644. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts +0 -10
  645. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts.map +0 -1
  646. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +0 -14
  647. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +0 -1
  648. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts +0 -4
  649. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts.map +0 -1
  650. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts +0 -4
  651. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +0 -1
  652. package/dist/typescript/commonjs/lib/constants.d.ts +0 -4
  653. package/dist/typescript/commonjs/lib/constants.d.ts.map +0 -1
  654. package/dist/typescript/commonjs/shared/hooks/useKeyDownListener.d.ts +0 -3
  655. package/dist/typescript/commonjs/shared/hooks/useKeyDownListener.d.ts.map +0 -1
  656. package/dist/typescript/commonjs/shared/hooks/useKeyboard.d.ts +0 -11
  657. package/dist/typescript/commonjs/shared/hooks/useKeyboard.d.ts.map +0 -1
  658. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts +0 -5
  659. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts.map +0 -1
  660. package/dist/typescript/commonjs/shared/icons/Pi.d.ts +0 -5
  661. package/dist/typescript/commonjs/shared/icons/Pi.d.ts.map +0 -1
  662. package/dist/typescript/commonjs/shared/icons/Star.d.ts +0 -5
  663. package/dist/typescript/commonjs/shared/icons/Star.d.ts.map +0 -1
  664. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts +0 -5
  665. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts.map +0 -1
  666. package/dist/typescript/commonjs/shared/icons/Winter.d.ts +0 -5
  667. package/dist/typescript/commonjs/shared/icons/Winter.d.ts.map +0 -1
  668. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts +0 -10
  669. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts.map +0 -1
  670. package/dist/typescript/module/features/celebrations/components/Particle.d.ts +0 -20
  671. package/dist/typescript/module/features/celebrations/components/Particle.d.ts.map +0 -1
  672. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts +0 -26
  673. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts.map +0 -1
  674. package/dist/typescript/module/features/celebrations/components/Spark.d.ts +0 -4
  675. package/dist/typescript/module/features/celebrations/components/Spark.d.ts.map +0 -1
  676. package/dist/typescript/module/features/celebrations/config.d.ts +0 -192
  677. package/dist/typescript/module/features/celebrations/config.d.ts.map +0 -1
  678. package/dist/typescript/module/features/celebrations/helpers.d.ts +0 -6
  679. package/dist/typescript/module/features/celebrations/helpers.d.ts.map +0 -1
  680. package/dist/typescript/module/features/celebrations/index.d.ts +0 -3
  681. package/dist/typescript/module/features/celebrations/index.d.ts.map +0 -1
  682. package/dist/typescript/module/features/celebrations/types.d.ts +0 -11
  683. package/dist/typescript/module/features/celebrations/types.d.ts.map +0 -1
  684. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts +0 -31
  685. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts.map +0 -1
  686. package/dist/typescript/module/features/chatbot/model/api.d.ts.map +0 -1
  687. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +0 -4
  688. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +0 -1
  689. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +0 -15
  690. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +0 -1
  691. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +0 -4
  692. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +0 -1
  693. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +0 -8
  694. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +0 -1
  695. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +0 -8
  696. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +0 -1
  697. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +0 -12
  698. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +0 -1
  699. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts +0 -11
  700. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts.map +0 -1
  701. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +0 -4
  702. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +0 -1
  703. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +0 -4
  704. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +0 -1
  705. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +0 -4
  706. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +0 -1
  707. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +0 -8
  708. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +0 -1
  709. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts +0 -20
  710. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts.map +0 -1
  711. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts +0 -3
  712. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +0 -1
  713. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +0 -4
  714. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +0 -1
  715. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +0 -4
  716. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +0 -1
  717. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts +0 -14
  718. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts.map +0 -1
  719. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +0 -4
  720. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +0 -1
  721. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +0 -8
  722. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +0 -1
  723. package/dist/typescript/module/features/endOfAssignment/constants.d.ts +0 -41
  724. package/dist/typescript/module/features/endOfAssignment/constants.d.ts.map +0 -1
  725. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts +0 -9
  726. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts.map +0 -1
  727. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts +0 -27
  728. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +0 -1
  729. package/dist/typescript/module/features/endOfAssignment/index.d.ts +0 -4
  730. package/dist/typescript/module/features/endOfAssignment/index.d.ts.map +0 -1
  731. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts +0 -14
  732. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts.map +0 -1
  733. package/dist/typescript/module/features/endOfAssignment/types.d.ts +0 -60
  734. package/dist/typescript/module/features/endOfAssignment/types.d.ts.map +0 -1
  735. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts +0 -11
  736. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts.map +0 -1
  737. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts +0 -10
  738. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts.map +0 -1
  739. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +0 -14
  740. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +0 -1
  741. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts +0 -4
  742. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts.map +0 -1
  743. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts +0 -4
  744. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +0 -1
  745. package/dist/typescript/module/lib/constants.d.ts +0 -4
  746. package/dist/typescript/module/lib/constants.d.ts.map +0 -1
  747. package/dist/typescript/module/shared/hooks/useKeyDownListener.d.ts +0 -3
  748. package/dist/typescript/module/shared/hooks/useKeyDownListener.d.ts.map +0 -1
  749. package/dist/typescript/module/shared/hooks/useKeyboard.d.ts +0 -11
  750. package/dist/typescript/module/shared/hooks/useKeyboard.d.ts.map +0 -1
  751. package/dist/typescript/module/shared/icons/Halloween.d.ts +0 -5
  752. package/dist/typescript/module/shared/icons/Halloween.d.ts.map +0 -1
  753. package/dist/typescript/module/shared/icons/Pi.d.ts +0 -5
  754. package/dist/typescript/module/shared/icons/Pi.d.ts.map +0 -1
  755. package/dist/typescript/module/shared/icons/Star.d.ts +0 -5
  756. package/dist/typescript/module/shared/icons/Star.d.ts.map +0 -1
  757. package/dist/typescript/module/shared/icons/Valentine.d.ts +0 -5
  758. package/dist/typescript/module/shared/icons/Valentine.d.ts.map +0 -1
  759. package/dist/typescript/module/shared/icons/Winter.d.ts +0 -5
  760. package/dist/typescript/module/shared/icons/Winter.d.ts.map +0 -1
  761. package/src/features/celebrations/components/Celebrations.tsx +0 -62
  762. package/src/features/celebrations/components/Particle.tsx +0 -101
  763. package/src/features/celebrations/components/ParticleBatch.tsx +0 -57
  764. package/src/features/celebrations/components/Spark.tsx +0 -14
  765. package/src/features/celebrations/config.ts +0 -224
  766. package/src/features/celebrations/helpers.ts +0 -103
  767. package/src/features/celebrations/index.ts +0 -2
  768. package/src/features/celebrations/types.ts +0 -11
  769. package/src/features/endOfAssignment/components/CheatDetected/CheatDetected.tsx +0 -65
  770. package/src/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.tsx +0 -298
  771. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.tsx +0 -141
  772. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.tsx +0 -39
  773. package/src/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.tsx +0 -40
  774. package/src/features/endOfAssignment/components/CorrectAnswer/Spark.tsx +0 -45
  775. package/src/features/endOfAssignment/components/EOAModal.tsx +0 -64
  776. package/src/features/endOfAssignment/components/ExamLeave/ExamLeave.tsx +0 -77
  777. package/src/features/endOfAssignment/components/ExamPaused/ExamPaused.tsx +0 -62
  778. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmit.tsx +0 -110
  779. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.tsx +0 -69
  780. package/src/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  781. package/src/features/endOfAssignment/components/Modal/Modal.tsx +0 -121
  782. package/src/features/endOfAssignment/components/Modal/ModalBackground.tsx +0 -33
  783. package/src/features/endOfAssignment/components/Modal/assets/SunrisingIcon.tsx +0 -196
  784. package/src/features/endOfAssignment/components/Modal/assets/TrophyIcon.tsx +0 -62
  785. package/src/features/endOfAssignment/components/Modal/model.ts +0 -34
  786. package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +0 -103
  787. package/src/features/endOfAssignment/components/NoAnswer/NoAnswerContent.tsx +0 -107
  788. package/src/features/endOfAssignment/constants.ts +0 -53
  789. package/src/features/endOfAssignment/helpers.ts +0 -28
  790. package/src/features/endOfAssignment/hooks/useSparkAnimation.tsx +0 -78
  791. package/src/features/endOfAssignment/index.ts +0 -3
  792. package/src/features/endOfAssignment/model/model.ts +0 -57
  793. package/src/features/endOfAssignment/types.ts +0 -65
  794. package/src/features/endOfAssignment/ui/EOABadge.tsx +0 -47
  795. package/src/features/endOfAssignment/ui/PracticeButton.tsx +0 -27
  796. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +0 -73
  797. package/src/features/endOfAssignment/ui/SparkIcon.tsx +0 -15
  798. package/src/features/endOfAssignment/ui/ThumbUpIcon.tsx +0 -17
  799. package/src/lib/constants.ts +0 -3
  800. package/src/shared/hooks/useKeyDownListener.ts +0 -27
  801. package/src/shared/hooks/useKeyboard.ts +0 -18
  802. package/src/shared/icons/Halloween.tsx +0 -33
  803. package/src/shared/icons/Pi.tsx +0 -16
  804. package/src/shared/icons/Star.tsx +0 -16
  805. package/src/shared/icons/Valentine.tsx +0 -16
  806. package/src/shared/icons/Winter.tsx +0 -19
@@ -0,0 +1,150 @@
1
+ import { ChatbotAPI } from '../model/ChatbotApi'
2
+ import { createEvent, createStore, sample, createEffect, Store } from 'effector'
3
+ import { ChatItem, ConversationMessage } from '../types/units.types'
4
+ import { ChatbotContext } from '../types/model.types'
5
+
6
+ type ErrorSpottingProps = {
7
+ api: ChatbotAPI
8
+ $currentChatData: Store<ChatItem>
9
+ $currentChatContext: Store<ChatbotContext | null>
10
+ }
11
+
12
+ type ActiveErrorSpottingData = {
13
+ isActive: boolean
14
+ isDisabled: boolean
15
+ strokesIds: string[]
16
+ validationKey: null | string
17
+ }
18
+
19
+ type ErrorSpottingReducerProps = {
20
+ chatData: ChatItem
21
+ activeSpotting: ActiveErrorSpottingData | null
22
+ message: ConversationMessage
23
+ context: ChatbotContext | null
24
+ }
25
+
26
+ const AUTO_CLOSE_TIMEOUT = 5000
27
+
28
+ type ErrorSpottingPressedProps = {
29
+ message: ConversationMessage
30
+ }
31
+
32
+ export class ErrorSpottingModel {
33
+ private readonly api: ChatbotAPI
34
+
35
+ public readonly errorSpottingPressed = createEvent<ErrorSpottingPressedProps>()
36
+ private readonly activeDataChanged = createEvent<ActiveErrorSpottingData | null>()
37
+ private readonly spottingHidden = createEvent()
38
+
39
+ public readonly $validationKey = createStore<string | null>(null)
40
+ public readonly $activeData = createStore<ActiveErrorSpottingData | null>(null)
41
+ .on(this.activeDataChanged, (_, payload) => payload)
42
+ .on(this.spottingHidden, (state) => {
43
+ if (state) return { ...state, isActive: false }
44
+ return null
45
+ })
46
+ .on(this.$validationKey, (state, payload) => {
47
+ if (!state || payload === null) return state
48
+ const isDisabled = payload !== state.validationKey
49
+ return { ...state, isDisabled, isActive: isDisabled ? false : state.isActive }
50
+ })
51
+
52
+ public readonly $isLoading
53
+
54
+ private closeTimeout: NodeJS.Timeout | null = null
55
+
56
+ public constructor({ api, $currentChatData, $currentChatContext }: ErrorSpottingProps) {
57
+ this.api = api
58
+
59
+ this.$isLoading = api.spotErrorFx.pending
60
+
61
+ this.$activeData.on($currentChatData, (state, payload) => {
62
+ if (!state || state.validationKey !== payload.currentThread?.strokesValidationKey) return null
63
+ })
64
+
65
+ sample({
66
+ clock: api.spotErrorFx.doneData,
67
+ source: {
68
+ chatData: $currentChatData,
69
+ activeSpotting: this.$activeData,
70
+ validationKey: this.$validationKey,
71
+ },
72
+ fn: (source, result) => {
73
+ const key = source.chatData.currentThread?.strokesValidationKey || null
74
+ const currentKey = source.validationKey
75
+ const isDisabled = !!currentKey && currentKey !== key
76
+ return {
77
+ validationKey: key,
78
+ strokesIds: result.highlightedStrokeIds,
79
+ isActive: !isDisabled,
80
+ isDisabled,
81
+ }
82
+ },
83
+ target: this.$activeData,
84
+ })
85
+
86
+ sample({
87
+ clock: this.errorSpottingPressed,
88
+ source: {
89
+ context: $currentChatContext,
90
+ chatData: $currentChatData,
91
+ activeSpotting: this.$activeData,
92
+ },
93
+ fn: (source, { message }) => ({ ...source, message }),
94
+ target: createEffect(
95
+ ({ chatData, activeSpotting, message, context }: ErrorSpottingReducerProps) => {
96
+ if (!context) throw new Error('Trying to use error spotting in chat without context')
97
+ if (!chatData.currentThread?.strokes) return
98
+ if (!activeSpotting) {
99
+ return this.api
100
+ .spotErrorFx({
101
+ strokes: chatData.currentThread.strokes,
102
+ problemDescription: context.problem,
103
+ correctAnswer: context.problemAnswer,
104
+ userAnswer: context.answer ?? '',
105
+ hint: message.message,
106
+ })
107
+ .then(() => {
108
+ this.scheduleClose()
109
+ })
110
+ }
111
+ this.activeDataChanged({ ...activeSpotting, isActive: !activeSpotting.isActive })
112
+ this.scheduleClose()
113
+ },
114
+ ),
115
+ })
116
+
117
+ this.activeDataChanged.watch((spotting) => {
118
+ if ((!spotting || !spotting.isActive) && this.closeTimeout) {
119
+ clearTimeout(this.closeTimeout)
120
+ this.closeTimeout = null
121
+ }
122
+ })
123
+ }
124
+
125
+ private scheduleClose() {
126
+ if (this.closeTimeout) clearTimeout(this.closeTimeout)
127
+ this.closeTimeout = setTimeout(() => {
128
+ this.spottingHidden()
129
+ this.closeTimeout = null
130
+ }, AUTO_CLOSE_TIMEOUT)
131
+ }
132
+
133
+ public bindStrokesValidation($store: Store<string | null>) {
134
+ sample({
135
+ source: $store,
136
+ target: this.$validationKey,
137
+ })
138
+ return this
139
+ }
140
+
141
+ public abortPendingRequest() {
142
+ const isPending = this.api.spotErrorFx.pending.getState()
143
+ if (isPending) this.api.spotErrorFx.controller.abort()
144
+ }
145
+
146
+ public reset() {
147
+ this.activeDataChanged(null)
148
+ this.abortPendingRequest()
149
+ }
150
+ }
@@ -3,11 +3,10 @@ export { ChatbotModel } from './model/ChatBotModel'
3
3
  export { AudioStatus, type AudioProvider } from './types/t2s.types'
4
4
  export {
5
5
  MessageVariant,
6
- type ConversationMessage,
7
- type ChatbotRenderer,
8
6
  type ChatbotModelProps,
9
7
  type IChatDrawBoardAdapter,
10
8
  } from './types/model.types'
11
- export type { PostMessageResponse, ChatAnswer } from './types/api.types'
12
- export { ChatMessageHandler } from './model/ChatBotMessageHandler'
9
+ export type { PostMessageResponse } from './types/api.types'
13
10
  export { DefaultMessagesCreator } from './model/DefaultMessageCreator'
11
+ export type { ChatAnswer } from './types/units.types'
12
+ export type { ConversationMessage } from './types/units.types'
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  attach,
3
+ combine,
4
+ createEffect,
3
5
  createEvent,
6
+ createStore,
4
7
  restore,
5
8
  sample,
6
9
  type Store,
7
- createStore,
8
- createEffect,
9
- combine,
10
10
  } from 'effector'
11
- import { createControllerEffect, createEntityFieldStore } from '../../../lib/effector'
11
+ import { createControllerEffect } from '../../../lib/effector'
12
12
  import {
13
13
  ChatbotContext,
14
14
  ChatbotModelProps,
15
- ConversationMessage,
15
+ IChatDrawBoardAdapter,
16
16
  SendHelpParams,
17
17
  SendHelpProps,
18
18
  SetHintMessageProps,
@@ -20,20 +20,32 @@ import {
20
20
  StartConversationProps,
21
21
  } from '../types/model.types'
22
22
  import { GetAlternativesResponse } from '../types/api.types'
23
- import { ChatbotAPI } from './api'
23
+ import { ChatbotAPI } from './ChatbotApi'
24
24
  import { ChatbotTranslation } from './translation'
25
- import { ChatTextToSpeechModel } from './t2s'
26
- import { AudioProvider } from '../types/t2s.types'
25
+ import { ChatTextToSpeechModel, T2SConfig } from './t2s'
27
26
  import { messagesHelper } from './messagesHelper'
27
+ import { ChatBotThreadManager } from './ChatBotThreadManager'
28
+ import { ChatsCacheModel, defaultChatData } from './ChatsCacheModel'
29
+ import { ErrorSpottingModel } from '../errorSpotting/ErrorSpottingModel'
30
+ import { withEvent } from '../../../lib/effector/withEvent'
31
+ import { ChatBotTextManager } from './ChatBoxTextManager'
28
32
 
29
33
  type ReinitConversationProps = {
30
34
  key: string
31
35
  }
32
36
 
33
37
  export class ChatbotModel {
34
- readonly api: ChatbotAPI
35
- readonly translation: ChatbotTranslation
36
- readonly t2s: ChatTextToSpeechModel
38
+ public readonly textManager = new ChatBotTextManager()
39
+ private readonly defaultMessages = this.textManager.messages
40
+
41
+ public readonly threadManager = new ChatBotThreadManager({
42
+ messages: this.defaultMessages,
43
+ })
44
+ public readonly api: ChatbotAPI
45
+
46
+ public readonly translation: ChatbotTranslation
47
+ public readonly t2s: ChatTextToSpeechModel
48
+ public readonly errorSpotting: ErrorSpottingModel
37
49
 
38
50
  public readonly $currentKey = createStore('')
39
51
 
@@ -52,95 +64,85 @@ export class ChatbotModel {
52
64
  public readonly setContext = createEvent<null | ChatbotContext>()
53
65
  public readonly $context = restore(this.setContext, null)
54
66
 
55
- readonly setScrollActive = createEvent<boolean>()
56
- readonly $isScrollActive = restore(this.setScrollActive, false)
67
+ public readonly setScrollActive = createEvent<boolean>()
68
+ public readonly $isScrollActive = restore(this.setScrollActive, false)
57
69
 
58
- readonly sendHelpRequestFx
59
-
60
- readonly defaultMessages: ChatbotModelProps['messages']
61
-
62
- readonly messages = createEntityFieldStore<ConversationMessage[]>()
63
- readonly threadIds = createEntityFieldStore<string>()
64
- readonly availableChats = createEntityFieldStore<boolean>()
70
+ private readonly cache = new ChatsCacheModel()
65
71
 
66
72
  public readonly $currentChatData = combine(
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
- },
73
+ { data: this.cache.$data, key: this.$currentKey },
74
+ ({ data, key }) => (data[key] ? { ...data[key], key } : { ...defaultChatData(), key }),
81
75
  )
82
76
 
83
- constructor({ api, messages, $key }: ChatbotModelProps) {
84
- this.api = new ChatbotAPI(api)
77
+ constructor({ api, $key, threadMessagesLimit }: ChatbotModelProps) {
78
+ this.api = new ChatbotAPI({ ...api, postMessage: this.threadManager.postMessage })
85
79
 
86
- this.defaultMessages = messages
87
- if ($key) sample({ source: $key, target: this.$currentKey })
80
+ this.threadManager.setApi({ getHint: api.requestHint })
81
+ if (threadMessagesLimit) {
82
+ this.threadManager.setMessagesLimit(threadMessagesLimit)
83
+ }
88
84
 
89
85
  this.$alternatives = restore(this.api.getAlternativesFx.doneData, null)
90
86
  .on(this.setAlternatives, (_, payload) => payload)
91
87
  .reset(this.resetAlternatives)
92
88
 
89
+ this.t2s = new ChatTextToSpeechModel({ api: this.api })
93
90
  this.translation = new ChatbotTranslation({
94
91
  $context: this.$context,
95
- defaultMessages: messages,
92
+ defaultMessages: this.defaultMessages,
96
93
  $key: this.$currentKey,
97
94
  api: this.api,
98
- messagesModel: this.messages,
99
95
  alternativesModel: {
100
96
  $store: this.$alternatives,
101
97
  set: this.setAlternatives,
102
98
  },
99
+ chats: this.cache,
100
+ })
101
+
102
+ this.errorSpotting = new ErrorSpottingModel({
103
+ api: this.api,
104
+ $currentChatData: this.$currentChatData,
105
+ $currentChatContext: this.$context,
103
106
  })
104
107
 
105
- this.t2s = new ChatTextToSpeechModel({ $isOpen: this.$isOpen, api: this.api })
108
+ if ($key) this.bindKey($key)
106
109
 
107
- this.sendHelpRequestFx = this.createSendHelpRequestFx()
108
- this.initChatReplyWatcher()
110
+ sample({
111
+ source: this.$isOpen.updates,
112
+ filter: (isOpen) => !isOpen,
113
+ target: this.t2s.reset,
114
+ })
115
+
116
+ sample({
117
+ clock: this.removeLastMessage,
118
+ source: [this.$lastMessageKey, this.cache.$data] as const,
119
+ fn: ([lastMessageKey, chatsData]) => {
120
+ const chat = chatsData[lastMessageKey ?? '']
121
+ if (!chat) return { key: '', data: {} }
122
+ const updatedMessages = [...chat.messages]
123
+ updatedMessages.pop()
124
+ return { key: lastMessageKey ?? '', data: { messages: updatedMessages } }
125
+ },
126
+ filter: ([lastMessageKey]) => !!lastMessageKey,
127
+ target: this.cache.update,
128
+ })
109
129
  }
110
130
 
111
131
  private createSendHelpRequestFx() {
112
132
  const effect = attach({
113
- source: [
114
- this.$currentKey,
115
- this.translation.$isTranslated,
116
- this.$currentChatData,
117
- this.$context,
118
- ],
119
- mapParams: (params: SendHelpParams, [key, isTranslated, currentData, context]) => ({
133
+ source: [this.$currentKey, this.$context],
134
+ mapParams: (params: SendHelpParams, [key, context]) => ({
120
135
  message: params.message,
121
136
  translatedMessage: params.translatedMessage,
122
137
  context,
123
138
  key,
124
- isTranslated,
125
- threadId: currentData.threadId,
126
139
  }),
127
140
  effect: createControllerEffect(
128
- async ({
129
- message,
130
- translatedMessage,
131
- key,
132
- isTranslated,
133
- threadId,
134
- context,
135
- }: SendHelpProps) => {
136
- if (!context) throw new Error('Context is required')
141
+ async ({ message, translatedMessage, key, context }: SendHelpProps) => {
142
+ if (!context) throw new Error('Trying to send message in chat without context')
137
143
  this.setLastMessageKey(key)
138
- this.messages.setField({
139
- key,
140
- fn: (currentMessages) => [
141
- ...(currentMessages || []),
142
- messagesHelper.createOwn({ message, translatedMessage, threadId }),
143
- ],
144
+ this.cache.addMessages(key, {
145
+ messages: [messagesHelper.createOwn({ message, translatedMessage })],
144
146
  })
145
147
 
146
148
  const response = await this.api.postMessageFx({
@@ -148,25 +150,21 @@ export class ChatbotModel {
148
150
  language: context.language,
149
151
  problemAnswer: context.problemAnswer,
150
152
  answer: context.answer,
151
- threadId,
152
153
  imageAltText: context.imageDescription,
153
154
  })
154
- let messages = [messagesHelper.createAnswer(response)]
155
+ const thread = this.threadManager.get(key)
156
+ let messages = [
157
+ messagesHelper.createAnswer(response, { isInitial: thread?.history.length === 1 }),
158
+ ]
155
159
  if (response.endMessage) {
156
160
  messages.push(messagesHelper.createLast(this.defaultMessages.endMessage))
157
161
  }
158
- if (isTranslated) {
159
- messages = await this.translation.translateMessagesFx({
160
- targetLanguage: context.translationTargetLanguage,
161
- messages,
162
- })
163
- }
164
-
165
- this.messages.setField({
166
- key,
167
- fn: (currentMessages) => [...(currentMessages || []), ...messages],
162
+ messages = await this.translation.applyTranslationFx({
163
+ targetLanguage: context.translationTargetLanguage,
164
+ messages,
168
165
  })
169
- this.threadIds.setField({ key, data: response.threadId })
166
+
167
+ this.cache.addMessages(key, { messages, thread })
170
168
  },
171
169
  ),
172
170
  })
@@ -174,29 +172,39 @@ export class ChatbotModel {
174
172
  sample({
175
173
  clock: effect.fail,
176
174
  source: this.$currentChatData,
177
- fn: ({ key, messages }) => ({ key, data: [...messages, this.defaultMessages.error] }),
175
+ fn: ({ key, messages }) => ({
176
+ key,
177
+ data: { messages: [...messages, this.defaultMessages.error] },
178
+ }),
178
179
  filter: (_, { error }) => error.message !== 'Request aborted manually',
179
- target: this.messages.setField,
180
+ target: this.cache.update,
180
181
  })
181
182
 
182
183
  return effect
183
184
  }
184
185
 
185
- private initChatReplyWatcher() {
186
+ public bindKey($store: Store<string>) {
186
187
  sample({
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,
188
+ source: $store,
189
+ target: this.$currentKey,
197
190
  })
191
+ this.threadManager.bindKeyStore($store)
192
+ return this
193
+ }
194
+
195
+ public setUpT2S(config: T2SConfig) {
196
+ this.t2s.setConfig(config)
197
+ return this
198
198
  }
199
199
 
200
+ public setDrawBoardAdapter(adapter: IChatDrawBoardAdapter) {
201
+ this.threadManager.setDrawBoardAdapter(adapter)
202
+ this.errorSpotting.bindStrokesValidation(adapter.$strokesValidationKey)
203
+ return this
204
+ }
205
+
206
+ public readonly sendHelpRequestFx = this.createSendHelpRequestFx()
207
+
200
208
  public readonly startConversation = attach({
201
209
  source: this.$currentChatData,
202
210
  mapParams: (props: StartConversationProps | void, source) => ({
@@ -208,54 +216,54 @@ export class ChatbotModel {
208
216
  if (initOnly) return
209
217
  return this.reinitConversation({ key })
210
218
  }
211
- this.messages.setField({ key, data: [this.defaultMessages.start] })
212
- this.availableChats.setField({ key, data: true })
219
+ this.cache.add(key, {
220
+ messages: [this.defaultMessages.start],
221
+ isAvailable: true,
222
+ currentThread: null,
223
+ })
213
224
  }),
214
225
  })
215
226
 
216
227
  public setHintMessage({ key, ...message }: SetHintMessageProps) {
217
228
  const options = this.$alternatives.getState()?.options.hints ?? message.options
218
- this.messages.setField({
219
- key,
220
- fn: (messages) => {
221
- if (!messages || messages.length > 1) return
222
- return [{ ...message, options }]
223
- },
224
- })
229
+ this.cache.setSingleMessage(key, { ...message, options })
225
230
  }
226
231
 
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
- })
248
-
249
- public bindKey($store: Store<string>) {
250
- sample({
251
- source: $store,
252
- target: this.$currentKey,
253
- })
254
- return this
232
+ public readonly reinitConversation = ({ key }: ReinitConversationProps) => {
233
+ this.cache.reinitChatThread(key, { initialOption: this.defaultMessages.anotherHintOption })
234
+ this.threadManager.reset(key)
255
235
  }
256
236
 
257
- public setT2SAudioProvider(audioProvider: AudioProvider) {
258
- this.t2s.setAudioProvider(audioProvider)
259
- return this
237
+ public disableChat(key: string) {
238
+ this.t2s.stop()
239
+ void this.t2s.reset()
240
+ this.cache.disableChat(key)
260
241
  }
242
+
243
+ public softReset = attach({
244
+ source: {
245
+ isLoading: this.sendHelpRequestFx.pending,
246
+ lastMessageKey: this.$lastMessageKey,
247
+ },
248
+ mapParams: (_: void, { isLoading, lastMessageKey }) => !!(isLoading && lastMessageKey),
249
+ effect: createEffect((hasPendingMessage: boolean) => {
250
+ if (hasPendingMessage) {
251
+ this.api.postMessageFx.controller.abort()
252
+ this.removeLastMessage()
253
+ }
254
+ this.errorSpotting.abortPendingRequest()
255
+
256
+ this.t2s.stop()
257
+ void this.t2s.reset()
258
+ this.translation.reset()
259
+ this.setScrollActive(false)
260
+ }),
261
+ })
262
+
263
+ public readonly reset = withEvent(() => {
264
+ this.cache.reset()
265
+ this.resetAlternatives()
266
+ this.threadManager.reset()
267
+ this.errorSpotting.reset()
268
+ })
261
269
  }
@@ -1,6 +1,5 @@
1
1
  import { ThreadItem } from './ThreadItem'
2
2
  import { Store } from 'effector'
3
- import { createEffect } from 'effector/effector.umd'
4
3
  import {
5
4
  ChatHintPayload,
6
5
  ChatHintResponse,
@@ -10,25 +9,23 @@ import {
10
9
  import { ChatbotMessages, IChatDrawBoardAdapter } from '../types/model.types'
11
10
  import { CHAT_BOT_MODEL_DEFAULTS } from './constants'
12
11
 
13
- type ChatMessageHandlerProps = {
14
- messagesLimit?: number
15
- messages: ChatbotMessages
16
- drawBoardAdapter: IChatDrawBoardAdapter
17
- api: {
18
- getHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
19
- }
12
+ type ThreadManagerApi = {
13
+ getHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
20
14
  }
21
15
 
22
- type ResetCacheProps = {
23
- key: string
16
+ type ChatBotThreadManagerProps = {
17
+ messagesLimit?: number
18
+ drawBoardAdapter?: IChatDrawBoardAdapter
19
+ messages: ChatbotMessages
20
+ api?: ThreadManagerApi
24
21
  }
25
22
 
26
- export class ChatMessageHandler {
27
- private readonly api
28
- private readonly drawBoardAdapter: IChatDrawBoardAdapter
23
+ export class ChatBotThreadManager {
24
+ private api: ThreadManagerApi | null = null
25
+ private drawBoardAdapter: IChatDrawBoardAdapter | null = null
29
26
  private readonly threads = new Map<string, ThreadItem>()
30
27
 
31
- private readonly messagesLimit
28
+ private messagesLimit
32
29
  private currentKey = ''
33
30
  private currentBinding: null | (() => void) = null
34
31
 
@@ -39,9 +36,9 @@ export class ChatMessageHandler {
39
36
  api,
40
37
  messagesLimit = CHAT_BOT_MODEL_DEFAULTS.THREAD_MESSAGES_LIMIT,
41
38
  messages,
42
- }: ChatMessageHandlerProps) {
43
- this.api = api
44
- this.drawBoardAdapter = drawBoardAdapter
39
+ }: ChatBotThreadManagerProps) {
40
+ if (api) this.api = api
41
+ this.drawBoardAdapter = drawBoardAdapter ?? null
45
42
  this.messagesLimit = messagesLimit
46
43
  this.defaultMessages = messages
47
44
  }
@@ -58,9 +55,16 @@ export class ChatMessageHandler {
58
55
  const key = this.currentKey
59
56
  let threadItem = this.threads.get(key)
60
57
  if (threadItem) return threadItem
58
+ if (!this.drawBoardAdapter) {
59
+ threadItem = new ThreadItem()
60
+ this.threads.set(key, threadItem)
61
+ return threadItem
62
+ }
61
63
  try {
62
- const strokes = await this.drawBoardAdapter.getVisibleStrokes()
63
- threadItem = new ThreadItem({ strokes })
64
+ const result = await this.drawBoardAdapter.getVisibleStrokes()
65
+ threadItem = new ThreadItem(
66
+ result ? { strokes: result.strokes, key: result.validationKey } : null,
67
+ )
64
68
  } catch {
65
69
  threadItem = new ThreadItem()
66
70
  }
@@ -68,13 +72,22 @@ export class ChatMessageHandler {
68
72
  return threadItem
69
73
  }
70
74
 
71
- public readonly postMessageFx = async ({
75
+ public setDrawBoardAdapter(adapter: IChatDrawBoardAdapter) {
76
+ this.drawBoardAdapter = adapter
77
+ }
78
+
79
+ public readonly postMessage = async ({
72
80
  problemAnswer,
73
81
  problem,
74
82
  answer,
75
83
  language,
76
84
  imageAltText,
77
85
  }: PostMessagePayload): Promise<PostMessageResponse> => {
86
+ if (!this.api) {
87
+ throw new Error(
88
+ 'API is not set in ThreadManagersApi, pls provide API before sending requests',
89
+ )
90
+ }
78
91
  const threadItem = await this.getThreadItem()
79
92
 
80
93
  const result = await this.api.getHint({
@@ -86,23 +99,36 @@ export class ChatMessageHandler {
86
99
  imageAltText,
87
100
  })
88
101
 
89
- threadItem.hints.push(result.message)
102
+ threadItem.history.push(result.message)
90
103
  const nextOptions =
91
- threadItem.hints.length < this.messagesLimit ? [this.defaultMessages.anotherHintOption] : []
104
+ threadItem.history.length < this.messagesLimit ? [this.defaultMessages.anotherHintOption] : []
92
105
 
93
106
  return {
94
107
  message: result.message,
95
108
  options: nextOptions,
96
- threadId: '',
97
109
  endMessage: !nextOptions.length,
110
+ threadId: threadItem.id,
98
111
  }
99
112
  }
100
113
 
101
- public resetThread = createEffect(({ key }: ResetCacheProps) => {
102
- this.threads.delete(key)
103
- })
114
+ public get(key: string) {
115
+ return this.threads.get(key)
116
+ }
104
117
 
105
- public resetAll() {
118
+ public reset(key?: string) {
119
+ if (typeof key === 'string') {
120
+ this.threads.delete(key)
121
+ return
122
+ }
106
123
  this.threads.clear()
107
124
  }
125
+
126
+ public setMessagesLimit(limit: number) {
127
+ this.messagesLimit = limit
128
+ }
129
+
130
+ public setApi(api: ThreadManagerApi) {
131
+ this.api = api
132
+ return this
133
+ }
108
134
  }