@magmamath/students-features 1.2.0 → 1.2.1-rc.10

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 (398) hide show
  1. package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js +2 -1
  2. package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
  3. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +2 -1
  4. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  5. package/dist/commonjs/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js +1 -1
  6. package/dist/commonjs/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js.map +1 -1
  7. package/dist/commonjs/features/pmProgress/PmProgress.js +62 -0
  8. package/dist/commonjs/features/pmProgress/PmProgress.js.map +1 -0
  9. package/dist/commonjs/features/pmProgress/components/chart/chart.helpers.js +22 -0
  10. package/dist/commonjs/features/pmProgress/components/chart/chart.helpers.js.map +1 -0
  11. package/dist/commonjs/features/pmProgress/components/chart/chart.types.js +2 -0
  12. package/dist/commonjs/features/pmProgress/components/chart/chart.types.js.map +1 -0
  13. package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +44 -0
  14. package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -0
  15. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js +26 -0
  16. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -0
  17. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js +69 -0
  18. package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -0
  19. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +38 -0
  20. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -0
  21. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +21 -0
  22. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -0
  23. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js +82 -0
  24. package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -0
  25. package/dist/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.js +49 -0
  26. package/dist/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.js.map +1 -0
  27. package/dist/commonjs/features/pmProgress/components/chart/model/PieChartManager.js +25 -0
  28. package/dist/commonjs/features/pmProgress/components/chart/model/PieChartManager.js.map +1 -0
  29. package/dist/commonjs/features/pmProgress/components/chart/model/SliceHighlight.js +20 -0
  30. package/dist/commonjs/features/pmProgress/components/chart/model/SliceHighlight.js.map +1 -0
  31. package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js +79 -0
  32. package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -0
  33. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +199 -0
  34. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -0
  35. package/dist/commonjs/features/pmProgress/components/insights/PmInsights.js +71 -0
  36. package/dist/commonjs/features/pmProgress/components/insights/PmInsights.js.map +1 -0
  37. package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js +95 -0
  38. package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -0
  39. package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js +71 -0
  40. package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js.map +1 -0
  41. package/dist/commonjs/features/pmProgress/components/list/Fluency.js +70 -0
  42. package/dist/commonjs/features/pmProgress/components/list/Fluency.js.map +1 -0
  43. package/dist/commonjs/features/pmProgress/components/list/ListCard.js +187 -0
  44. package/dist/commonjs/features/pmProgress/components/list/ListCard.js.map +1 -0
  45. package/dist/commonjs/features/pmProgress/components/list/ListItem.js +119 -0
  46. package/dist/commonjs/features/pmProgress/components/list/ListItem.js.map +1 -0
  47. package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js +86 -0
  48. package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js.map +1 -0
  49. package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js +118 -0
  50. package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -0
  51. package/dist/commonjs/features/pmProgress/context/PmProgressContext.js +18 -0
  52. package/dist/commonjs/features/pmProgress/context/PmProgressContext.js.map +1 -0
  53. package/dist/commonjs/features/pmProgress/index.js +36 -0
  54. package/dist/commonjs/features/pmProgress/index.js.map +1 -0
  55. package/dist/commonjs/features/pmProgress/model/PmInsightsModel.js +22 -0
  56. package/dist/commonjs/features/pmProgress/model/PmInsightsModel.js.map +1 -0
  57. package/dist/commonjs/features/pmProgress/model/PmProgressApi.js +18 -0
  58. package/dist/commonjs/features/pmProgress/model/PmProgressApi.js.map +1 -0
  59. package/dist/commonjs/features/pmProgress/model/PmProgressModel.js +45 -0
  60. package/dist/commonjs/features/pmProgress/model/PmProgressModel.js.map +1 -0
  61. package/dist/commonjs/features/pmProgress/model/PmRecommendationsModel.js +47 -0
  62. package/dist/commonjs/features/pmProgress/model/PmRecommendationsModel.js.map +1 -0
  63. package/dist/commonjs/features/pmProgress/model/PmSolvingFlowModel.js +79 -0
  64. package/dist/commonjs/features/pmProgress/model/PmSolvingFlowModel.js.map +1 -0
  65. package/dist/commonjs/features/pmProgress/model/PmTreeModel.js +148 -0
  66. package/dist/commonjs/features/pmProgress/model/PmTreeModel.js.map +1 -0
  67. package/dist/commonjs/features/pmProgress/shared/pmProgress.constants.js +33 -0
  68. package/dist/commonjs/features/pmProgress/shared/pmProgress.constants.js.map +1 -0
  69. package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js +193 -0
  70. package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js.map +1 -0
  71. package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js +12 -0
  72. package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js.map +1 -0
  73. package/dist/commonjs/index.js +15 -3
  74. package/dist/commonjs/index.js.map +1 -1
  75. package/dist/commonjs/shared/icons/PentagonIcon.js +32 -0
  76. package/dist/commonjs/shared/icons/PentagonIcon.js.map +1 -0
  77. package/dist/commonjs/shared/icons/SketchArrowRight.js +33 -0
  78. package/dist/commonjs/shared/icons/SketchArrowRight.js.map +1 -0
  79. package/dist/commonjs/shared/icons/SliceDiamondIcon.js +32 -0
  80. package/dist/commonjs/shared/icons/SliceDiamondIcon.js.map +1 -0
  81. package/dist/commonjs/shared/icons/StarIcon.js +32 -0
  82. package/dist/commonjs/shared/icons/StarIcon.js.map +1 -0
  83. package/dist/commonjs/shared/icons/TimerIcon.js +35 -0
  84. package/dist/commonjs/shared/icons/TimerIcon.js.map +1 -0
  85. package/dist/commonjs/shared/translation/localization/ca.json +19 -0
  86. package/dist/commonjs/shared/translation/localization/de.json +19 -0
  87. package/dist/commonjs/shared/translation/localization/en.json +19 -0
  88. package/dist/commonjs/shared/translation/localization/gb.json +19 -0
  89. package/dist/commonjs/shared/translation/localization/sct.json +19 -0
  90. package/dist/commonjs/shared/translation/localization/sw.json +19 -0
  91. package/dist/module/features/chatbot/components/ChatInput/ChatInput.js +2 -1
  92. package/dist/module/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
  93. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +2 -1
  94. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  95. package/dist/module/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js +2 -2
  96. package/dist/module/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js.map +1 -1
  97. package/dist/module/features/pmProgress/PmProgress.js +56 -0
  98. package/dist/module/features/pmProgress/PmProgress.js.map +1 -0
  99. package/dist/module/features/pmProgress/components/chart/chart.helpers.js +15 -0
  100. package/dist/module/features/pmProgress/components/chart/chart.helpers.js.map +1 -0
  101. package/dist/module/features/pmProgress/components/chart/chart.types.js +2 -0
  102. package/dist/module/features/pmProgress/components/chart/chart.types.js.map +1 -0
  103. package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +38 -0
  104. package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -0
  105. package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js +20 -0
  106. package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -0
  107. package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js +63 -0
  108. package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -0
  109. package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +32 -0
  110. package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -0
  111. package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +15 -0
  112. package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -0
  113. package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js +76 -0
  114. package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -0
  115. package/dist/module/features/pmProgress/components/chart/model/ArcPatternGenerator.js +44 -0
  116. package/dist/module/features/pmProgress/components/chart/model/ArcPatternGenerator.js.map +1 -0
  117. package/dist/module/features/pmProgress/components/chart/model/PieChartManager.js +20 -0
  118. package/dist/module/features/pmProgress/components/chart/model/PieChartManager.js.map +1 -0
  119. package/dist/module/features/pmProgress/components/chart/model/SliceHighlight.js +15 -0
  120. package/dist/module/features/pmProgress/components/chart/model/SliceHighlight.js.map +1 -0
  121. package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js +74 -0
  122. package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -0
  123. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +192 -0
  124. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -0
  125. package/dist/module/features/pmProgress/components/insights/PmInsights.js +64 -0
  126. package/dist/module/features/pmProgress/components/insights/PmInsights.js.map +1 -0
  127. package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js +90 -0
  128. package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -0
  129. package/dist/module/features/pmProgress/components/insights/StatsCard.js +65 -0
  130. package/dist/module/features/pmProgress/components/insights/StatsCard.js.map +1 -0
  131. package/dist/module/features/pmProgress/components/list/Fluency.js +64 -0
  132. package/dist/module/features/pmProgress/components/list/Fluency.js.map +1 -0
  133. package/dist/module/features/pmProgress/components/list/ListCard.js +180 -0
  134. package/dist/module/features/pmProgress/components/list/ListCard.js.map +1 -0
  135. package/dist/module/features/pmProgress/components/list/ListItem.js +112 -0
  136. package/dist/module/features/pmProgress/components/list/ListItem.js.map +1 -0
  137. package/dist/module/features/pmProgress/components/list/PmDomainList.js +80 -0
  138. package/dist/module/features/pmProgress/components/list/PmDomainList.js.map +1 -0
  139. package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js +112 -0
  140. package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -0
  141. package/dist/module/features/pmProgress/context/PmProgressContext.js +13 -0
  142. package/dist/module/features/pmProgress/context/PmProgressContext.js.map +1 -0
  143. package/dist/module/features/pmProgress/index.js +9 -0
  144. package/dist/module/features/pmProgress/index.js.map +1 -0
  145. package/dist/module/features/pmProgress/model/PmInsightsModel.js +17 -0
  146. package/dist/module/features/pmProgress/model/PmInsightsModel.js.map +1 -0
  147. package/dist/module/features/pmProgress/model/PmProgressApi.js +13 -0
  148. package/dist/module/features/pmProgress/model/PmProgressApi.js.map +1 -0
  149. package/dist/module/features/pmProgress/model/PmProgressModel.js +40 -0
  150. package/dist/module/features/pmProgress/model/PmProgressModel.js.map +1 -0
  151. package/dist/module/features/pmProgress/model/PmRecommendationsModel.js +42 -0
  152. package/dist/module/features/pmProgress/model/PmRecommendationsModel.js.map +1 -0
  153. package/dist/module/features/pmProgress/model/PmSolvingFlowModel.js +74 -0
  154. package/dist/module/features/pmProgress/model/PmSolvingFlowModel.js.map +1 -0
  155. package/dist/module/features/pmProgress/model/PmTreeModel.js +143 -0
  156. package/dist/module/features/pmProgress/model/PmTreeModel.js.map +1 -0
  157. package/dist/module/features/pmProgress/shared/pmProgress.constants.js +30 -0
  158. package/dist/module/features/pmProgress/shared/pmProgress.constants.js.map +1 -0
  159. package/dist/module/features/pmProgress/shared/pmProgress.helpers.js +177 -0
  160. package/dist/module/features/pmProgress/shared/pmProgress.helpers.js.map +1 -0
  161. package/dist/module/features/pmProgress/shared/pmProgress.types.js +10 -0
  162. package/dist/module/features/pmProgress/shared/pmProgress.types.js.map +1 -0
  163. package/dist/module/index.js +1 -0
  164. package/dist/module/index.js.map +1 -1
  165. package/dist/module/shared/icons/PentagonIcon.js +24 -0
  166. package/dist/module/shared/icons/PentagonIcon.js.map +1 -0
  167. package/dist/module/shared/icons/SketchArrowRight.js +25 -0
  168. package/dist/module/shared/icons/SketchArrowRight.js.map +1 -0
  169. package/dist/module/shared/icons/SliceDiamondIcon.js +24 -0
  170. package/dist/module/shared/icons/SliceDiamondIcon.js.map +1 -0
  171. package/dist/module/shared/icons/StarIcon.js +24 -0
  172. package/dist/module/shared/icons/StarIcon.js.map +1 -0
  173. package/dist/module/shared/icons/TimerIcon.js +27 -0
  174. package/dist/module/shared/icons/TimerIcon.js.map +1 -0
  175. package/dist/module/shared/translation/localization/ca.json +19 -0
  176. package/dist/module/shared/translation/localization/de.json +19 -0
  177. package/dist/module/shared/translation/localization/en.json +19 -0
  178. package/dist/module/shared/translation/localization/gb.json +19 -0
  179. package/dist/module/shared/translation/localization/sct.json +19 -0
  180. package/dist/module/shared/translation/localization/sw.json +19 -0
  181. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
  182. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  183. package/dist/typescript/commonjs/features/pmProgress/PmProgress.d.ts +9 -0
  184. package/dist/typescript/commonjs/features/pmProgress/PmProgress.d.ts.map +1 -0
  185. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.helpers.d.ts +4 -0
  186. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.helpers.d.ts.map +1 -0
  187. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts +36 -0
  188. package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts.map +1 -0
  189. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts +9 -0
  190. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts.map +1 -0
  191. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +10 -0
  192. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -0
  193. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesPaths.d.ts +11 -0
  194. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -0
  195. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +12 -0
  196. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -0
  197. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +8 -0
  198. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -0
  199. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +14 -0
  200. package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -0
  201. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts +12 -0
  202. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts.map +1 -0
  203. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/PieChartManager.d.ts +16 -0
  204. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/PieChartManager.d.ts.map +1 -0
  205. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceHighlight.d.ts +10 -0
  206. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceHighlight.d.ts.map +1 -0
  207. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +17 -0
  208. package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -0
  209. package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts +3 -0
  210. package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -0
  211. package/dist/typescript/commonjs/features/pmProgress/components/insights/PmInsights.d.ts +3 -0
  212. package/dist/typescript/commonjs/features/pmProgress/components/insights/PmInsights.d.ts.map +1 -0
  213. package/dist/typescript/commonjs/features/pmProgress/components/insights/PmTimeframeStats.d.ts +3 -0
  214. package/dist/typescript/commonjs/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -0
  215. package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts +10 -0
  216. package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -0
  217. package/dist/typescript/commonjs/features/pmProgress/components/list/Fluency.d.ts +8 -0
  218. package/dist/typescript/commonjs/features/pmProgress/components/list/Fluency.d.ts.map +1 -0
  219. package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts +26 -0
  220. package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts.map +1 -0
  221. package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts +10 -0
  222. package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts.map +1 -0
  223. package/dist/typescript/commonjs/features/pmProgress/components/list/PmDomainList.d.ts +3 -0
  224. package/dist/typescript/commonjs/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -0
  225. package/dist/typescript/commonjs/features/pmProgress/components/recs/PmTeacherRecs.d.ts +3 -0
  226. package/dist/typescript/commonjs/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -0
  227. package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts +12 -0
  228. package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts.map +1 -0
  229. package/dist/typescript/commonjs/features/pmProgress/index.d.ts +4 -0
  230. package/dist/typescript/commonjs/features/pmProgress/index.d.ts.map +1 -0
  231. package/dist/typescript/commonjs/features/pmProgress/model/PmInsightsModel.d.ts +14 -0
  232. package/dist/typescript/commonjs/features/pmProgress/model/PmInsightsModel.d.ts.map +1 -0
  233. package/dist/typescript/commonjs/features/pmProgress/model/PmProgressApi.d.ts +17 -0
  234. package/dist/typescript/commonjs/features/pmProgress/model/PmProgressApi.d.ts.map +1 -0
  235. package/dist/typescript/commonjs/features/pmProgress/model/PmProgressModel.d.ts +21 -0
  236. package/dist/typescript/commonjs/features/pmProgress/model/PmProgressModel.d.ts.map +1 -0
  237. package/dist/typescript/commonjs/features/pmProgress/model/PmRecommendationsModel.d.ts +102 -0
  238. package/dist/typescript/commonjs/features/pmProgress/model/PmRecommendationsModel.d.ts.map +1 -0
  239. package/dist/typescript/commonjs/features/pmProgress/model/PmSolvingFlowModel.d.ts +19 -0
  240. package/dist/typescript/commonjs/features/pmProgress/model/PmSolvingFlowModel.d.ts.map +1 -0
  241. package/dist/typescript/commonjs/features/pmProgress/model/PmTreeModel.d.ts +24 -0
  242. package/dist/typescript/commonjs/features/pmProgress/model/PmTreeModel.d.ts.map +1 -0
  243. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.constants.d.ts +23 -0
  244. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.constants.d.ts.map +1 -0
  245. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts +59 -0
  246. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -0
  247. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.types.d.ts +185 -0
  248. package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -0
  249. package/dist/typescript/commonjs/index.d.ts +1 -0
  250. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  251. package/dist/typescript/commonjs/shared/icons/PentagonIcon.d.ts +4 -0
  252. package/dist/typescript/commonjs/shared/icons/PentagonIcon.d.ts.map +1 -0
  253. package/dist/typescript/commonjs/shared/icons/SketchArrowRight.d.ts +4 -0
  254. package/dist/typescript/commonjs/shared/icons/SketchArrowRight.d.ts.map +1 -0
  255. package/dist/typescript/commonjs/shared/icons/SliceDiamondIcon.d.ts +4 -0
  256. package/dist/typescript/commonjs/shared/icons/SliceDiamondIcon.d.ts.map +1 -0
  257. package/dist/typescript/commonjs/shared/icons/StarIcon.d.ts +4 -0
  258. package/dist/typescript/commonjs/shared/icons/StarIcon.d.ts.map +1 -0
  259. package/dist/typescript/commonjs/shared/icons/TimerIcon.d.ts +4 -0
  260. package/dist/typescript/commonjs/shared/icons/TimerIcon.d.ts.map +1 -0
  261. package/dist/typescript/commonjs/shared/translation/constants.d.ts +114 -0
  262. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  263. package/dist/typescript/commonjs/shared/translation/model.d.ts +38 -0
  264. package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
  265. package/dist/typescript/module/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
  266. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  267. package/dist/typescript/module/features/pmProgress/PmProgress.d.ts +9 -0
  268. package/dist/typescript/module/features/pmProgress/PmProgress.d.ts.map +1 -0
  269. package/dist/typescript/module/features/pmProgress/components/chart/chart.helpers.d.ts +4 -0
  270. package/dist/typescript/module/features/pmProgress/components/chart/chart.helpers.d.ts.map +1 -0
  271. package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts +36 -0
  272. package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts.map +1 -0
  273. package/dist/typescript/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts +9 -0
  274. package/dist/typescript/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts.map +1 -0
  275. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +10 -0
  276. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -0
  277. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesPaths.d.ts +11 -0
  278. package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -0
  279. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +12 -0
  280. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -0
  281. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +8 -0
  282. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -0
  283. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +14 -0
  284. package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -0
  285. package/dist/typescript/module/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts +12 -0
  286. package/dist/typescript/module/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts.map +1 -0
  287. package/dist/typescript/module/features/pmProgress/components/chart/model/PieChartManager.d.ts +16 -0
  288. package/dist/typescript/module/features/pmProgress/components/chart/model/PieChartManager.d.ts.map +1 -0
  289. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceHighlight.d.ts +10 -0
  290. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceHighlight.d.ts.map +1 -0
  291. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +17 -0
  292. package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -0
  293. package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts +3 -0
  294. package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -0
  295. package/dist/typescript/module/features/pmProgress/components/insights/PmInsights.d.ts +3 -0
  296. package/dist/typescript/module/features/pmProgress/components/insights/PmInsights.d.ts.map +1 -0
  297. package/dist/typescript/module/features/pmProgress/components/insights/PmTimeframeStats.d.ts +3 -0
  298. package/dist/typescript/module/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -0
  299. package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts +10 -0
  300. package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -0
  301. package/dist/typescript/module/features/pmProgress/components/list/Fluency.d.ts +8 -0
  302. package/dist/typescript/module/features/pmProgress/components/list/Fluency.d.ts.map +1 -0
  303. package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts +26 -0
  304. package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts.map +1 -0
  305. package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts +10 -0
  306. package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts.map +1 -0
  307. package/dist/typescript/module/features/pmProgress/components/list/PmDomainList.d.ts +3 -0
  308. package/dist/typescript/module/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -0
  309. package/dist/typescript/module/features/pmProgress/components/recs/PmTeacherRecs.d.ts +3 -0
  310. package/dist/typescript/module/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -0
  311. package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts +12 -0
  312. package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts.map +1 -0
  313. package/dist/typescript/module/features/pmProgress/index.d.ts +4 -0
  314. package/dist/typescript/module/features/pmProgress/index.d.ts.map +1 -0
  315. package/dist/typescript/module/features/pmProgress/model/PmInsightsModel.d.ts +14 -0
  316. package/dist/typescript/module/features/pmProgress/model/PmInsightsModel.d.ts.map +1 -0
  317. package/dist/typescript/module/features/pmProgress/model/PmProgressApi.d.ts +17 -0
  318. package/dist/typescript/module/features/pmProgress/model/PmProgressApi.d.ts.map +1 -0
  319. package/dist/typescript/module/features/pmProgress/model/PmProgressModel.d.ts +21 -0
  320. package/dist/typescript/module/features/pmProgress/model/PmProgressModel.d.ts.map +1 -0
  321. package/dist/typescript/module/features/pmProgress/model/PmRecommendationsModel.d.ts +102 -0
  322. package/dist/typescript/module/features/pmProgress/model/PmRecommendationsModel.d.ts.map +1 -0
  323. package/dist/typescript/module/features/pmProgress/model/PmSolvingFlowModel.d.ts +19 -0
  324. package/dist/typescript/module/features/pmProgress/model/PmSolvingFlowModel.d.ts.map +1 -0
  325. package/dist/typescript/module/features/pmProgress/model/PmTreeModel.d.ts +24 -0
  326. package/dist/typescript/module/features/pmProgress/model/PmTreeModel.d.ts.map +1 -0
  327. package/dist/typescript/module/features/pmProgress/shared/pmProgress.constants.d.ts +23 -0
  328. package/dist/typescript/module/features/pmProgress/shared/pmProgress.constants.d.ts.map +1 -0
  329. package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts +59 -0
  330. package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -0
  331. package/dist/typescript/module/features/pmProgress/shared/pmProgress.types.d.ts +185 -0
  332. package/dist/typescript/module/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -0
  333. package/dist/typescript/module/index.d.ts +1 -0
  334. package/dist/typescript/module/index.d.ts.map +1 -1
  335. package/dist/typescript/module/shared/icons/PentagonIcon.d.ts +4 -0
  336. package/dist/typescript/module/shared/icons/PentagonIcon.d.ts.map +1 -0
  337. package/dist/typescript/module/shared/icons/SketchArrowRight.d.ts +4 -0
  338. package/dist/typescript/module/shared/icons/SketchArrowRight.d.ts.map +1 -0
  339. package/dist/typescript/module/shared/icons/SliceDiamondIcon.d.ts +4 -0
  340. package/dist/typescript/module/shared/icons/SliceDiamondIcon.d.ts.map +1 -0
  341. package/dist/typescript/module/shared/icons/StarIcon.d.ts +4 -0
  342. package/dist/typescript/module/shared/icons/StarIcon.d.ts.map +1 -0
  343. package/dist/typescript/module/shared/icons/TimerIcon.d.ts +4 -0
  344. package/dist/typescript/module/shared/icons/TimerIcon.d.ts.map +1 -0
  345. package/dist/typescript/module/shared/translation/constants.d.ts +114 -0
  346. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  347. package/dist/typescript/module/shared/translation/model.d.ts +38 -0
  348. package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
  349. package/package.json +13 -2
  350. package/src/features/chatbot/components/ChatInput/ChatInput.tsx +2 -1
  351. package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +2 -1
  352. package/src/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.tsx +2 -2
  353. package/src/features/pmProgress/PmProgress.tsx +52 -0
  354. package/src/features/pmProgress/__tests__/.keep +0 -0
  355. package/src/features/pmProgress/components/chart/chart.helpers.ts +14 -0
  356. package/src/features/pmProgress/components/chart/chart.types.ts +37 -0
  357. package/src/features/pmProgress/components/chart/components/PracticeProgressPieChart.tsx +32 -0
  358. package/src/features/pmProgress/components/chart/components/SlicesClipPaths.tsx +22 -0
  359. package/src/features/pmProgress/components/chart/components/SlicesPaths.tsx +75 -0
  360. package/src/features/pmProgress/components/chart/components/layers/SliceArcPattern.tsx +44 -0
  361. package/src/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.tsx +11 -0
  362. package/src/features/pmProgress/components/chart/components/layers/SliceFillColor.tsx +88 -0
  363. package/src/features/pmProgress/components/chart/model/ArcPatternGenerator.ts +48 -0
  364. package/src/features/pmProgress/components/chart/model/PieChartManager.ts +20 -0
  365. package/src/features/pmProgress/components/chart/model/SliceHighlight.ts +17 -0
  366. package/src/features/pmProgress/components/chart/model/SliceShapeGenerator.ts +90 -0
  367. package/src/features/pmProgress/components/header/PmProgressHeader.tsx +187 -0
  368. package/src/features/pmProgress/components/insights/PmInsights.tsx +60 -0
  369. package/src/features/pmProgress/components/insights/PmTimeframeStats.tsx +85 -0
  370. package/src/features/pmProgress/components/insights/StatsCard.tsx +53 -0
  371. package/src/features/pmProgress/components/list/Fluency.tsx +59 -0
  372. package/src/features/pmProgress/components/list/ListCard.tsx +216 -0
  373. package/src/features/pmProgress/components/list/ListItem.tsx +132 -0
  374. package/src/features/pmProgress/components/list/PmDomainList.tsx +66 -0
  375. package/src/features/pmProgress/components/recs/PmTeacherRecs.tsx +108 -0
  376. package/src/features/pmProgress/context/PmProgressContext.tsx +23 -0
  377. package/src/features/pmProgress/index.ts +6 -0
  378. package/src/features/pmProgress/model/PmInsightsModel.ts +23 -0
  379. package/src/features/pmProgress/model/PmProgressApi.ts +34 -0
  380. package/src/features/pmProgress/model/PmProgressModel.ts +50 -0
  381. package/src/features/pmProgress/model/PmRecommendationsModel.ts +47 -0
  382. package/src/features/pmProgress/model/PmSolvingFlowModel.ts +105 -0
  383. package/src/features/pmProgress/model/PmTreeModel.ts +148 -0
  384. package/src/features/pmProgress/shared/pmProgress.constants.ts +73 -0
  385. package/src/features/pmProgress/shared/pmProgress.helpers.ts +239 -0
  386. package/src/features/pmProgress/shared/pmProgress.types.ts +207 -0
  387. package/src/index.ts +1 -0
  388. package/src/shared/icons/PentagonIcon.tsx +17 -0
  389. package/src/shared/icons/SketchArrowRight.tsx +18 -0
  390. package/src/shared/icons/SliceDiamondIcon.tsx +16 -0
  391. package/src/shared/icons/StarIcon.tsx +17 -0
  392. package/src/shared/icons/TimerIcon.tsx +21 -0
  393. package/src/shared/translation/localization/ca.json +19 -0
  394. package/src/shared/translation/localization/de.json +19 -0
  395. package/src/shared/translation/localization/en.json +19 -0
  396. package/src/shared/translation/localization/gb.json +19 -0
  397. package/src/shared/translation/localization/sct.json +19 -0
  398. package/src/shared/translation/localization/sw.json +19 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ import { createEffect, createStore } from 'effector';
4
+ import { RECOMMENDATIONS_LIMIT_PARAM, SolvingFlow } from "../shared/pmProgress.constants.js";
5
+ const INITIAL_RECOMMENDATION_STATE = {
6
+ items: [],
7
+ offset: 0,
8
+ limit: 0,
9
+ total: 0
10
+ };
11
+ export class PmRecommendationsModel {
12
+ $teacher = createStore(INITIAL_RECOMMENDATION_STATE);
13
+ $magma = createStore(INITIAL_RECOMMENDATION_STATE);
14
+ constructor(api) {
15
+ this.api = api;
16
+ this.$teacher.on(this.fetchTeacherRecsFx.doneData, (_, data) => data);
17
+ this.$magma.on(this.fetchMagmaRecsFx.doneData, (_, data) => data);
18
+ }
19
+ fetchTeacherRecsFx = createEffect(tree => this.fetchRecs(tree, SolvingFlow.TEACHER, () => this.api.getTeacherRecsFx({
20
+ limit: RECOMMENDATIONS_LIMIT_PARAM
21
+ })));
22
+ fetchMagmaRecsFx = createEffect(tree => this.fetchRecs(tree, SolvingFlow.MAGMA, () => this.api.getMagmaRecsFx({
23
+ limit: RECOMMENDATIONS_LIMIT_PARAM
24
+ })));
25
+ initRecommendationsFx = createEffect(tree => Promise.all([this.fetchTeacherRecsFx(tree), this.fetchMagmaRecsFx(tree)]));
26
+ fetchRecs = async (tree, type, fetcher) => {
27
+ const recommendations = await fetcher();
28
+ return {
29
+ ...recommendations,
30
+ items: recommendations.items.flatMap(({
31
+ skillId
32
+ }) => {
33
+ const skill = tree.skillsMapping[skillId];
34
+ return skill ? [{
35
+ ...skill,
36
+ type
37
+ }] : [];
38
+ })
39
+ };
40
+ };
41
+ }
42
+ //# sourceMappingURL=PmRecommendationsModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEffect","createStore","RECOMMENDATIONS_LIMIT_PARAM","SolvingFlow","INITIAL_RECOMMENDATION_STATE","items","offset","limit","total","PmRecommendationsModel","$teacher","$magma","constructor","api","on","fetchTeacherRecsFx","doneData","_","data","fetchMagmaRecsFx","tree","fetchRecs","TEACHER","getTeacherRecsFx","MAGMA","getMagmaRecsFx","initRecommendationsFx","Promise","all","type","fetcher","recommendations","flatMap","skillId","skill","skillsMapping"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmRecommendationsModel.ts"],"mappings":";;AACA,SAASA,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAEpD,SAASC,2BAA2B,EAAEC,WAAW,QAAQ,mCAAgC;AAEzF,MAAMC,4BAA6C,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,MAAM,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,KAAK,EAAE;AAAE,CAAC;AAElG,OAAO,MAAMC,sBAAsB,CAAC;EAClBC,QAAQ,GAAGT,WAAW,CAAkBG,4BAA4B,CAAC;EACrEO,MAAM,GAAGV,WAAW,CAAkBG,4BAA4B,CAAC;EAEnFQ,WAAWA,CAAkBC,GAAkB,EAAE;IAAA,KAApBA,GAAkB,GAAlBA,GAAkB;IAC7C,IAAI,CAACH,QAAQ,CAACI,EAAE,CAAC,IAAI,CAACC,kBAAkB,CAACC,QAAQ,EAAE,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAAC;IACrE,IAAI,CAACP,MAAM,CAACG,EAAE,CAAC,IAAI,CAACK,gBAAgB,CAACH,QAAQ,EAAE,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAAC;EACnE;EAEgBH,kBAAkB,GAAGf,YAAY,CAAEoB,IAAyB,IAC1E,IAAI,CAACC,SAAS,CAACD,IAAI,EAAEjB,WAAW,CAACmB,OAAO,EAAE,MACxC,IAAI,CAACT,GAAG,CAACU,gBAAgB,CAAC;IAAEhB,KAAK,EAAEL;EAA4B,CAAC,CAClE,CACF,CAAC;EAEeiB,gBAAgB,GAAGnB,YAAY,CAAEoB,IAAyB,IACxE,IAAI,CAACC,SAAS,CAACD,IAAI,EAAEjB,WAAW,CAACqB,KAAK,EAAE,MACtC,IAAI,CAACX,GAAG,CAACY,cAAc,CAAC;IAAElB,KAAK,EAAEL;EAA4B,CAAC,CAChE,CACF,CAAC;EAEewB,qBAAqB,GAAG1B,YAAY,CAAEoB,IAAyB,IAC7EO,OAAO,CAACC,GAAG,CAAC,CAAC,IAAI,CAACb,kBAAkB,CAACK,IAAI,CAAC,EAAE,IAAI,CAACD,gBAAgB,CAACC,IAAI,CAAC,CAAC,CAC1E,CAAC;EAEOC,SAAS,GAAG,MAAAA,CAClBD,IAAyB,EACzBS,IAAiB,EACjBC,OAAoC,KACjC;IACH,MAAMC,eAAe,GAAG,MAAMD,OAAO,CAAC,CAAC;IACvC,OAAO;MACL,GAAGC,eAAe;MAClB1B,KAAK,EAAE0B,eAAe,CAAC1B,KAAK,CAAC2B,OAAO,CAAC,CAAC;QAAEC;MAAQ,CAAC,KAAK;QACpD,MAAMC,KAAK,GAAGd,IAAI,CAACe,aAAa,CAACF,OAAO,CAAC;QACzC,OAAOC,KAAK,GAAG,CAAC;UAAE,GAAGA,KAAK;UAAEL;QAAK,CAAC,CAAC,GAAG,EAAE;MAC1C,CAAC;IACH,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ import { createEvent, restore } from 'effector';
4
+ import { SolvingFlow } from "../shared/pmProgress.constants.js";
5
+ import { getAllUncompletedSkills, getUncompletedSkillsFromDomain, getUncompletedSkillsFromStandard, shiftToBeginningOfArray, withoutDuplicates } from "../shared/pmProgress.helpers.js";
6
+ export class PmSolvingFlowModel {
7
+ reset = createEvent();
8
+ setQueue = createEvent();
9
+ advance = createEvent();
10
+ $queue = restore(this.setQueue, []).on(this.advance, queue => queue.slice(1)).reset(this.reset);
11
+ constructor(treeModel, recommendationsModel) {
12
+ this.treeModel = treeModel;
13
+ this.recommendationsModel = recommendationsModel;
14
+ }
15
+ async start(props) {
16
+ const buildQueue = await this.getBuilder(props);
17
+ const queue = buildQueue[props.type]();
18
+ this.setQueue(queue);
19
+ console.log('queue', queue);
20
+ return queue[0];
21
+ }
22
+ async next() {
23
+ this.advance();
24
+ return this.$queue.getState()[0];
25
+ }
26
+ buildTeacherQueue({
27
+ domains,
28
+ context,
29
+ skillId
30
+ }) {
31
+ const teacherSkills = this.recommendationsModel.$teacher.getState().items;
32
+ const magmaRecommendations = this.recommendationsModel.$magma.getState().items;
33
+ const fromUncompletedDomains = getAllUncompletedSkills(domains, context.tree.skillsMapping);
34
+ const teacherRecommendations = skillId ? shiftToBeginningOfArray(skillId, teacherSkills) : teacherSkills;
35
+ return withoutDuplicates([...teacherRecommendations, ...magmaRecommendations, ...fromUncompletedDomains]);
36
+ }
37
+ buildMagmaQueue({
38
+ domains,
39
+ context
40
+ }) {
41
+ const magmaRecommendations = this.recommendationsModel.$magma.getState().items;
42
+ const fromUncompletedDomains = getAllUncompletedSkills(domains, context.tree.skillsMapping);
43
+ return withoutDuplicates([...magmaRecommendations, ...fromUncompletedDomains]);
44
+ }
45
+ buildStandardQueue({
46
+ domains,
47
+ context,
48
+ standardId
49
+ }) {
50
+ const domain = domains.find(d => d.standards.some(s => s.standardId === standardId));
51
+ if (!domain) return [];
52
+ const standard = domain.standards.find(s => s.standardId === standardId);
53
+ if (!standard) return [];
54
+ const fromStandard = getUncompletedSkillsFromStandard(standard, context.tree.skillsMapping);
55
+ const fromDomain = getUncompletedSkillsFromDomain(domain, context.tree.skillsMapping, standardId);
56
+ const fromOtherDomains = domains.filter(d => d !== domain).flatMap(domain => getUncompletedSkillsFromDomain(domain, context.tree.skillsMapping));
57
+ return withoutDuplicates([...fromStandard, ...fromDomain, ...fromOtherDomains]);
58
+ }
59
+ async getBuilder(props) {
60
+ const domains = this.treeModel.$domains.getState();
61
+ const context = await this.treeModel.getTreeContextFx();
62
+ const data = {
63
+ domains,
64
+ context,
65
+ ...props
66
+ };
67
+ return {
68
+ [SolvingFlow.TEACHER]: () => this.buildTeacherQueue(data),
69
+ [SolvingFlow.MAGMA]: () => this.buildMagmaQueue(data),
70
+ [SolvingFlow.STANDARD]: () => this.buildStandardQueue(data)
71
+ };
72
+ }
73
+ }
74
+ //# sourceMappingURL=PmSolvingFlowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEvent","restore","SolvingFlow","getAllUncompletedSkills","getUncompletedSkillsFromDomain","getUncompletedSkillsFromStandard","shiftToBeginningOfArray","withoutDuplicates","PmSolvingFlowModel","reset","setQueue","advance","$queue","on","queue","slice","constructor","treeModel","recommendationsModel","start","props","buildQueue","getBuilder","type","console","log","next","getState","buildTeacherQueue","domains","context","skillId","teacherSkills","$teacher","items","magmaRecommendations","$magma","fromUncompletedDomains","tree","skillsMapping","teacherRecommendations","buildMagmaQueue","buildStandardQueue","standardId","domain","find","d","standards","some","s","standard","fromStandard","fromDomain","fromOtherDomains","filter","flatMap","$domains","getTreeContextFx","data","TEACHER","MAGMA","STANDARD"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmSolvingFlowModel.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ import { attach, createEffect, createEvent, createStore, restore, sample } from 'effector';
4
+ import { createAction } from 'effector-action';
5
+ import { enhanceProgressMatrixData } from '@matteappen/skills-utils';
6
+ import { getDomainStructure, getInitialPmGrade, isTreeDataReady } from "../shared/pmProgress.helpers.js";
7
+ import { getText } from "../../../shared/translation/helpers.js";
8
+ function getTreeGrades(tree, user) {
9
+ const lockedGrades = new Set(user.setting.practiceModeLockedGrades);
10
+ const gradeNodes = Object.values(tree.treeMapping).filter(node => node?.type === 'grade' && node.attributes.grade !== null);
11
+ const uniqueSortedGrades = [...new Set(gradeNodes.map(node => node.attributes.grade))].sort((a, b) => a - b);
12
+ function getGradeName(grade) {
13
+ if (grade === -1) return getText('pmProgress.gradeOther');
14
+ if (grade === 0) return `${getText('pmProgress.grade')} ${getText('pmProgress.gradeK')}`;
15
+ return `${getText('pmProgress.grade')} ${grade}`;
16
+ }
17
+ return uniqueSortedGrades.map(grade => ({
18
+ name: getGradeName(grade),
19
+ value: grade,
20
+ isLocked: lockedGrades.has(grade)
21
+ }));
22
+ }
23
+ export class PmTreeModel {
24
+ $tree = createStore(null);
25
+ $stats = createStore(null);
26
+ $user = createStore(null);
27
+ setupInitialGrade = createEvent();
28
+ setDomains = createEvent();
29
+ setGrade = createEvent();
30
+ setHighlightedId = createEvent();
31
+ $grade = restore(this.setGrade, null);
32
+ $domains = restore(this.setDomains, []);
33
+ $grades = createStore([]);
34
+ $highlightedId = createStore(null).on(this.setHighlightedId, (highlightedId, idToHighlight) => highlightedId === idToHighlight ? null : idToHighlight);
35
+ constructor(api) {
36
+ this.api = api;
37
+ createAction(this.initTreeFx.done, {
38
+ target: {
39
+ $tree: this.$tree,
40
+ $stats: this.$stats,
41
+ $user: this.$user,
42
+ $grades: this.$grades,
43
+ setupInitialGrade: this.setupInitialGrade
44
+ },
45
+ fn: (target, {
46
+ params: {
47
+ user
48
+ },
49
+ result: [tree, stats]
50
+ }) => {
51
+ target.$tree(tree);
52
+ target.$stats(stats);
53
+ target.$user(user);
54
+ target.$grades(getTreeGrades(tree, user));
55
+ target.setupInitialGrade({
56
+ tree,
57
+ user
58
+ });
59
+ }
60
+ });
61
+ sample({
62
+ clock: this.setupInitialGrade,
63
+ fn: ({
64
+ tree,
65
+ user
66
+ }) => {
67
+ const treeGrades = Object.values(tree.treeMapping).filter(node => node.type === 'grade').map(node => node.attributes.grade);
68
+ return getInitialPmGrade({
69
+ userGrade: user.grade,
70
+ treeGrades,
71
+ lockedGrades: user.setting.practiceModeLockedGrades,
72
+ enrolledGrades: user.enrolledGrades
73
+ });
74
+ },
75
+ target: this.setGrade
76
+ });
77
+ sample({
78
+ clock: this.$grade,
79
+ source: {
80
+ tree: this.$tree,
81
+ stats: this.$stats,
82
+ user: this.$user
83
+ },
84
+ filter: isTreeDataReady,
85
+ fn: ({
86
+ tree,
87
+ stats,
88
+ user
89
+ }, grade) => {
90
+ const [treeWithUserStats] = enhanceProgressMatrixData(Object.values(tree.treeMapping), stats, [{
91
+ entityId: user._id,
92
+ name: user.fullName
93
+ }], grade);
94
+ return getDomainStructure(treeWithUserStats, tree.treeMapping);
95
+ },
96
+ target: this.setDomains
97
+ });
98
+ }
99
+ initTreeFx = createEffect(({
100
+ user
101
+ }) => {
102
+ return Promise.all([this.api.getTreeFx(user.setting.practiceModeTreeId), this.api.getStatisticsFx({
103
+ entityIds: [user._id]
104
+ })]);
105
+ });
106
+ getTreeContextFx = attach({
107
+ source: {
108
+ tree: this.$tree,
109
+ stats: this.$stats,
110
+ user: this.$user,
111
+ grade: this.$grade
112
+ },
113
+ mapParams: (_, {
114
+ grade,
115
+ ...source
116
+ }) => {
117
+ if (!isTreeDataReady(source, grade)) {
118
+ throw new Error('Cannot create treeWithUserStats in getTreeWithStatsFx - tree data is not ready.');
119
+ }
120
+ return {
121
+ ...source,
122
+ grade
123
+ };
124
+ },
125
+ effect: createEffect(({
126
+ tree,
127
+ stats,
128
+ user,
129
+ grade
130
+ }) => {
131
+ const [treeWithStats] = enhanceProgressMatrixData(Object.values(tree.treeMapping), stats, [{
132
+ entityId: user._id,
133
+ name: user.fullName
134
+ }], grade);
135
+ return {
136
+ tree,
137
+ stats,
138
+ treeWithStats
139
+ };
140
+ })
141
+ });
142
+ }
143
+ //# sourceMappingURL=PmTreeModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["attach","createEffect","createEvent","createStore","restore","sample","createAction","enhanceProgressMatrixData","getDomainStructure","getInitialPmGrade","isTreeDataReady","getText","getTreeGrades","tree","user","lockedGrades","Set","setting","practiceModeLockedGrades","gradeNodes","Object","values","treeMapping","filter","node","type","attributes","grade","uniqueSortedGrades","map","sort","a","b","getGradeName","name","value","isLocked","has","PmTreeModel","$tree","$stats","$user","setupInitialGrade","setDomains","setGrade","setHighlightedId","$grade","$domains","$grades","$highlightedId","on","highlightedId","idToHighlight","constructor","api","initTreeFx","done","target","fn","params","result","stats","clock","treeGrades","userGrade","enrolledGrades","source","treeWithUserStats","entityId","_id","fullName","Promise","all","getTreeFx","practiceModeTreeId","getStatisticsFx","entityIds","getTreeContextFx","mapParams","_","Error","effect","treeWithStats"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmTreeModel.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { COLORS } from '@magmamath/react-native-ui';
4
+ export const STATS_MAX_HEIGHT = 136;
5
+ export const RECOMMENDATIONS_LIMIT_PARAM = 150;
6
+ export let CustomDomain = /*#__PURE__*/function (CustomDomain) {
7
+ CustomDomain["TEACHER"] = "TEACHER";
8
+ CustomDomain["FLUENCY"] = "FLUENCY";
9
+ return CustomDomain;
10
+ }({});
11
+ export let InsightsTimeframe = /*#__PURE__*/function (InsightsTimeframe) {
12
+ InsightsTimeframe["ALL"] = "all";
13
+ InsightsTimeframe["WEEK"] = "week";
14
+ InsightsTimeframe["LAST_WEEK"] = "lastWeek";
15
+ return InsightsTimeframe;
16
+ }({});
17
+ export let SolvingFlow = /*#__PURE__*/function (SolvingFlow) {
18
+ SolvingFlow["TEACHER"] = "TEACHER";
19
+ SolvingFlow["MAGMA"] = "MAGMA";
20
+ SolvingFlow["STANDARD"] = "STANDARD";
21
+ return SolvingFlow;
22
+ }({});
23
+
24
+ /**
25
+ * Primary → _4 → _6 variants, cycling through 7 base colors.
26
+ * Supports up to 21 unique colors before repeating.
27
+ */
28
+ export const DOMAIN_COLORS = [COLORS.PRIMARY_RED, COLORS.PRIMARY_MAGENTA, COLORS.PRIMARY_PURPLE, COLORS.PRIMARY_INDIGO, COLORS.PRIMARY_TURQUOISE, COLORS.PRIMARY_GREEN, COLORS.PRIMARY_ORANGE, COLORS.RED_4, COLORS.MAGENTA_4, COLORS.PURPLE_4, COLORS.INDIGO_4, COLORS.TURQUOISE_4, COLORS.GREEN_4, COLORS.ORANGE_4, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.ORANGE_6];
29
+ export const DOMAIN_BORDER_COLORS = [COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.ORANGE_6, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.ORANGE_6, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.ORANGE_6];
30
+ //# sourceMappingURL=pmProgress.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COLORS","STATS_MAX_HEIGHT","RECOMMENDATIONS_LIMIT_PARAM","CustomDomain","InsightsTimeframe","SolvingFlow","DOMAIN_COLORS","PRIMARY_RED","PRIMARY_MAGENTA","PRIMARY_PURPLE","PRIMARY_INDIGO","PRIMARY_TURQUOISE","PRIMARY_GREEN","PRIMARY_ORANGE","RED_4","MAGENTA_4","PURPLE_4","INDIGO_4","TURQUOISE_4","GREEN_4","ORANGE_4","RED_6","MAGENTA_6","PURPLE_6","INDIGO_6","TURQUOISE_6","GREEN_6","ORANGE_6","DOMAIN_BORDER_COLORS"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.constants.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,4BAA4B;AAEnD,OAAO,MAAMC,gBAAgB,GAAG,GAAG;AACnC,OAAO,MAAMC,2BAA2B,GAAG,GAAG;AAE9C,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAKxB,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAM7B,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAMvB;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAG,CAC3BN,MAAM,CAACO,WAAW,EAClBP,MAAM,CAACQ,eAAe,EACtBR,MAAM,CAACS,cAAc,EACrBT,MAAM,CAACU,cAAc,EACrBV,MAAM,CAACW,iBAAiB,EACxBX,MAAM,CAACY,aAAa,EACpBZ,MAAM,CAACa,cAAc,EACrBb,MAAM,CAACc,KAAK,EACZd,MAAM,CAACe,SAAS,EAChBf,MAAM,CAACgB,QAAQ,EACfhB,MAAM,CAACiB,QAAQ,EACfjB,MAAM,CAACkB,WAAW,EAClBlB,MAAM,CAACmB,OAAO,EACdnB,MAAM,CAACoB,QAAQ,EACfpB,MAAM,CAACqB,KAAK,EACZrB,MAAM,CAACsB,SAAS,EAChBtB,MAAM,CAACuB,QAAQ,EACfvB,MAAM,CAACwB,QAAQ,EACfxB,MAAM,CAACyB,WAAW,EAClBzB,MAAM,CAAC0B,OAAO,EACd1B,MAAM,CAAC2B,QAAQ,CAChB;AAED,OAAO,MAAMC,oBAAoB,GAAG,CAClC5B,MAAM,CAACqB,KAAK,EACZrB,MAAM,CAACsB,SAAS,EAChBtB,MAAM,CAACuB,QAAQ,EACfvB,MAAM,CAACwB,QAAQ,EACfxB,MAAM,CAACyB,WAAW,EAClBzB,MAAM,CAAC0B,OAAO,EACd1B,MAAM,CAAC2B,QAAQ,EACf3B,MAAM,CAACqB,KAAK,EACZrB,MAAM,CAACsB,SAAS,EAChBtB,MAAM,CAACuB,QAAQ,EACfvB,MAAM,CAACwB,QAAQ,EACfxB,MAAM,CAACyB,WAAW,EAClBzB,MAAM,CAAC0B,OAAO,EACd1B,MAAM,CAAC2B,QAAQ,EACf3B,MAAM,CAACqB,KAAK,EACZrB,MAAM,CAACsB,SAAS,EAChBtB,MAAM,CAACuB,QAAQ,EACfvB,MAAM,CAACwB,QAAQ,EACfxB,MAAM,CAACyB,WAAW,EAClBzB,MAAM,CAAC0B,OAAO,EACd1B,MAAM,CAAC2B,QAAQ,CAChB","ignoreList":[]}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ import { COLORS } from '@magmamath/react-native-ui';
4
+ import { CustomDomain, DOMAIN_BORDER_COLORS, DOMAIN_COLORS } from "./pmProgress.constants.js";
5
+ import { dynamicCornerRadius, dynamicInnerRadius } from "../components/chart/chart.helpers.js";
6
+ function groupStandardsByDomain(standardStats, treeMapping) {
7
+ const grouped = new Map();
8
+ for (const [standardId, stat] of Object.entries(standardStats)) {
9
+ const {
10
+ domainId,
11
+ skillIds,
12
+ skillsCount,
13
+ scorePercentage,
14
+ skillsToPractice
15
+ } = stat;
16
+ if (!grouped.has(domainId)) {
17
+ grouped.set(domainId, []);
18
+ }
19
+ grouped.get(domainId).push({
20
+ standardId,
21
+ title: treeMapping[standardId].shortDescriptionTranslations || treeMapping[standardId].nameTranslations,
22
+ subtitle: treeMapping[standardId].originalId,
23
+ skillIds,
24
+ skillsToPractice,
25
+ skillsCount,
26
+ scorePercentage
27
+ });
28
+ }
29
+ return grouped;
30
+ }
31
+ function sumSkillsCount(standards) {
32
+ return standards.reduce((sum, s) => ({
33
+ total: sum.total + s.skillsCount.total,
34
+ achieved: sum.achieved + s.skillsCount.achieved,
35
+ failed: sum.failed + s.skillsCount.failed
36
+ }), {
37
+ total: 0,
38
+ achieved: 0,
39
+ failed: 0
40
+ });
41
+ }
42
+ function averageScorePercentage(standards) {
43
+ const sum = standards.reduce((acc, s) => acc + s.scorePercentage, 0);
44
+ return Math.round(sum / standards.length * 10) / 10;
45
+ }
46
+ export function getDomainStructure(data, treeMapping) {
47
+ const grouped = groupStandardsByDomain(data.standardStats, treeMapping);
48
+ return Array.from(grouped.entries()).map(([domainId, standards], index) => {
49
+ const title = treeMapping[domainId].nameTranslations;
50
+ const isFluency = title.toLowerCase() === CustomDomain.FLUENCY.toLowerCase();
51
+ return {
52
+ domainId,
53
+ title,
54
+ color: isFluency ? COLORS.PRIMARY_ORANGE : DOMAIN_COLORS[index] ?? DOMAIN_COLORS[DOMAIN_COLORS.length - 1],
55
+ borderColor: isFluency ? COLORS.ORANGE_6 : DOMAIN_BORDER_COLORS[index] ?? DOMAIN_BORDER_COLORS[DOMAIN_BORDER_COLORS.length - 1],
56
+ backgroundColor: COLORS.NEUTRAL_4,
57
+ standards,
58
+ skillsCount: sumSkillsCount(standards),
59
+ scorePercentage: averageScorePercentage(standards)
60
+ };
61
+ });
62
+ }
63
+ /**
64
+ * Resolves which grade a student should practice on.
65
+ *
66
+ * When userGrade is -1, null, or undefined (i.e. not explicitly set), we fall back
67
+ * to the student's enrolled grades and pick the lowest one that isn't locked.
68
+ * If userGrade is set but locked, we find the closest unlocked grade.
69
+ * All candidates are filtered against lockedGrades, so only unlocked grades are ever returned.
70
+ *
71
+ * Examples:
72
+ * locked=[1,2], enrolled=[2,5], grade=4 → 4 (unlocked, use as-is)
73
+ * locked=[1,2], enrolled=[2,5], grade=-1 → 5 (lowest unlocked enrolled)
74
+ * locked=[0,1,2,5], enrolled=[2,5], grade=-1 → 3 (no enrolled available, first unlocked)
75
+ * locked=[0,1], enrolled=[2,5], grade=-1 → 2 (lowest unlocked enrolled)
76
+ * locked=[0,1,2,3], enrolled=[3,9], grade=-1 → 9 (lowest unlocked enrolled)
77
+ * locked=[1,2,3], enrolled=[2,5], grade=2 → 4 (grade locked, closest below=none, above=4)
78
+ */
79
+
80
+ export function getInitialPmGrade({
81
+ treeGrades,
82
+ lockedGrades,
83
+ enrolledGrades,
84
+ userGrade
85
+ }) {
86
+ const locked = new Set(lockedGrades);
87
+ const unlocked = treeGrades.filter(g => !locked.has(g)).sort((a, b) => a - b);
88
+ if (unlocked.length === 0) {
89
+ return null;
90
+ }
91
+ const isUserGradeMissing = userGrade === null || userGrade === -1 || userGrade === undefined;
92
+ if (isUserGradeMissing) {
93
+ const unlockedEnrolled = enrolledGrades.filter(g => unlocked.includes(g));
94
+ return unlockedEnrolled.length > 0 ? Math.min(...unlockedEnrolled) : unlocked[0];
95
+ }
96
+ if (unlocked.includes(userGrade)) return userGrade;
97
+ const nearestBelow = [...unlocked].reverse().find(grade => grade < userGrade);
98
+ const nearestAbove = unlocked.find(grade => grade > userGrade);
99
+ return nearestBelow ?? nearestAbove ?? unlocked[0] ?? 0;
100
+ }
101
+ export function formatTime(ms) {
102
+ const totalMinutes = Math.floor(ms / 60_000);
103
+ if (totalMinutes < 60) return `${totalMinutes}m`;
104
+ const hours = Math.floor(totalMinutes / 60);
105
+ const minutes = totalMinutes % 60;
106
+ return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;
107
+ }
108
+ export const isTreeDataReady = (source, grade) => source.tree !== null && source.stats !== null && source.user !== null && grade !== null;
109
+ const MARGIN = 5;
110
+ export const createChartConfig = size => ({
111
+ size,
112
+ outerRadius: size / 2 - MARGIN,
113
+ innerRadius: dynamicInnerRadius,
114
+ gapBetweenSlices: 8,
115
+ cornerRadius: dynamicCornerRadius,
116
+ pressOffset: 4,
117
+ borderWidth: 4,
118
+ colors: {
119
+ background: 'white',
120
+ highlightedBackground: COLORS.NEUTRAL_6
121
+ },
122
+ outerArc: {
123
+ color: '#FFFFFF40',
124
+ strokeWidth: 11.75,
125
+ dashWidth: 22
126
+ }
127
+ });
128
+
129
+ /**
130
+ * Returns uncompleted skills from a single standard.
131
+ * Failed skills come first, then unattempted.
132
+ */
133
+ export function getUncompletedSkillsFromStandard(standard, skillsMapping) {
134
+ if (!standard.skillsToPractice) return [];
135
+ return [...standard.skillsToPractice.failed, ...standard.skillsToPractice.unattempted].map(({
136
+ skillId
137
+ }) => skillsMapping[skillId]).filter(Boolean).sort((a, b) => skillsMapping[a._id]?.difficulty - skillsMapping[b._id]?.difficulty);
138
+ }
139
+
140
+ /**
141
+ * Returns uncompleted skills from a domain, scanning standards from the beginning.
142
+ * Optionally excludes a standard (used when student selected a specific one).
143
+ */
144
+ export function getUncompletedSkillsFromDomain(domain, skillsMapping, excludeStandardId) {
145
+ const isStandardUncompleted = standard => {
146
+ return standard.skillsCount.achieved < standard.skillsCount.total;
147
+ };
148
+ return domain.standards.filter(s => isStandardUncompleted(s) && s.standardId !== excludeStandardId).flatMap(s => getUncompletedSkillsFromStandard(s, skillsMapping));
149
+ }
150
+
151
+ /**
152
+ * Returns all uncompleted skills across all domains in list order.
153
+ * Used as a fallback when recommendation arrays are empty.
154
+ */
155
+ export function getAllUncompletedSkills(domains, skillsMapping) {
156
+ return domains.filter(d => d.skillsCount.achieved < d.skillsCount.total).flatMap(d => getUncompletedSkillsFromDomain(d, skillsMapping));
157
+ }
158
+
159
+ /** Moves item with the given id to the front: [0,1,2,3,4] with id of 3rd → [3,0,1,2,4] */
160
+ export function shiftToBeginningOfArray(id, items) {
161
+ const index = items.findIndex(item => item._id === id);
162
+ if (index <= 0) return items;
163
+ return [items[index], ...items.slice(0, index), ...items.slice(index + 1)];
164
+ }
165
+ export function withoutDuplicates(skills) {
166
+ const seen = new Set();
167
+ return skills.filter(skill => {
168
+ if (!skill) return false;
169
+ if (seen.has(skill._id)) return false;
170
+ seen.add(skill._id);
171
+ return true;
172
+ });
173
+ }
174
+ export const isFluencyDomain = title => {
175
+ return title.toLowerCase() === CustomDomain.FLUENCY.toLowerCase();
176
+ };
177
+ //# sourceMappingURL=pmProgress.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COLORS","CustomDomain","DOMAIN_BORDER_COLORS","DOMAIN_COLORS","dynamicCornerRadius","dynamicInnerRadius","groupStandardsByDomain","standardStats","treeMapping","grouped","Map","standardId","stat","Object","entries","domainId","skillIds","skillsCount","scorePercentage","skillsToPractice","has","set","get","push","title","shortDescriptionTranslations","nameTranslations","subtitle","originalId","sumSkillsCount","standards","reduce","sum","s","total","achieved","failed","averageScorePercentage","acc","Math","round","length","getDomainStructure","data","Array","from","map","index","isFluency","toLowerCase","FLUENCY","color","PRIMARY_ORANGE","borderColor","ORANGE_6","backgroundColor","NEUTRAL_4","getInitialPmGrade","treeGrades","lockedGrades","enrolledGrades","userGrade","locked","Set","unlocked","filter","g","sort","a","b","isUserGradeMissing","undefined","unlockedEnrolled","includes","min","nearestBelow","reverse","find","grade","nearestAbove","formatTime","ms","totalMinutes","floor","hours","minutes","isTreeDataReady","source","tree","stats","user","MARGIN","createChartConfig","size","outerRadius","innerRadius","gapBetweenSlices","cornerRadius","pressOffset","borderWidth","colors","background","highlightedBackground","NEUTRAL_6","outerArc","strokeWidth","dashWidth","getUncompletedSkillsFromStandard","standard","skillsMapping","unattempted","skillId","Boolean","_id","difficulty","getUncompletedSkillsFromDomain","domain","excludeStandardId","isStandardUncompleted","flatMap","getAllUncompletedSkills","domains","d","shiftToBeginningOfArray","id","items","findIndex","item","slice","withoutDuplicates","skills","seen","skill","add","isFluencyDomain"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.helpers.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ export let RecommendationType = /*#__PURE__*/function (RecommendationType) {
4
+ RecommendationType["MAGMA"] = "magma";
5
+ RecommendationType["TEACHER"] = "teacher";
6
+ return RecommendationType;
7
+ }({});
8
+
9
+ // TODO: to /shared/user.types.ts and create full type? any sense to duplicate it??
10
+ //# sourceMappingURL=pmProgress.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RecommendationType"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.types.ts"],"mappings":";;AAqEA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;;AA6E9B","ignoreList":[]}
@@ -11,6 +11,7 @@ export * from "./features/problemSelector/index.js";
11
11
  export * from "./features/gifCelebrations/index.js";
12
12
  export * from "./features/exampleSolution/index.js";
13
13
  export * from "./features/keyboard/index.js";
14
+ export * from "./features/pmProgress/index.js";
14
15
  export * from "./features/openEnded/index.js";
15
16
  export * from "./shared/icons/index.js";
16
17
  export * from "./features/voice/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["useFeaturesLocalization","setFeaturesLocalization","generateRandomId"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,uBAAuB,EAAEC,uBAAuB,QAAQ,+BAAsB;AACvF,SAASC,gBAAgB,QAAQ,0BAAuB;AACxD,cAAc,6BAAoB;AAClC,cAAc,8BAAqB;AACnC,cAAc,kCAAyB;AACvC,cAAc,qCAA4B;AAC1C,cAAc,kCAAyB;AACvC,cAAc,qCAA4B;AAC1C,cAAc,qCAA4B;AAC1C,cAAc,qCAA4B;AAC1C,cAAc,8BAAqB;AACnC,cAAc,+BAAsB;AACpC,cAAc,yBAAgB;AAC9B,cAAc,2BAAkB","ignoreList":[]}
1
+ {"version":3,"names":["useFeaturesLocalization","setFeaturesLocalization","generateRandomId"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,uBAAuB,EAAEC,uBAAuB,QAAQ,+BAAsB;AACvF,SAASC,gBAAgB,QAAQ,0BAAuB;AACxD,cAAc,6BAAoB;AAClC,cAAc,8BAAqB;AACnC,cAAc,kCAAyB;AACvC,cAAc,qCAA4B;AAC1C,cAAc,kCAAyB;AACvC,cAAc,qCAA4B;AAC1C,cAAc,qCAA4B;AAC1C,cAAc,qCAA4B;AAC1C,cAAc,8BAAqB;AACnC,cAAc,gCAAuB;AACrC,cAAc,+BAAsB;AACpC,cAAc,yBAAgB;AAC9B,cAAc,2BAAkB","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { G, Path, Defs } from 'react-native-svg';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ export const PentagonIcon = ({
7
+ size = 32,
8
+ color
9
+ }) => {
10
+ return /*#__PURE__*/_jsxs(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 32 31",
14
+ fill: "none",
15
+ children: [/*#__PURE__*/_jsx(G, {
16
+ filter: "url(#filter0_dd_2255_6755)",
17
+ children: /*#__PURE__*/_jsx(Path, {
18
+ d: "M14.025 2.573a3 3 0 013.527 0l9.788 7.111a3 3 0 011.09 3.355l-3.74 11.506a3 3 0 01-2.852 2.073H9.739a3 3 0 01-2.853-2.073L3.147 13.038a3 3 0 011.09-3.354l9.788-7.111z",
19
+ fill: color
20
+ })
21
+ }), /*#__PURE__*/_jsx(Defs, {})]
22
+ });
23
+ };
24
+ //# sourceMappingURL=PentagonIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","G","Path","Defs","jsx","_jsx","jsxs","_jsxs","PentagonIcon","size","color","width","height","viewBox","fill","children","filter","d"],"sourceRoot":"../../../../src","sources":["shared/icons/PentagonIcon.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,CAAC,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGrD,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAAiB,CAAC,KAAK;EAC/D,oBACEH,KAAA,CAACP,GAAG;IAACW,KAAK,EAAEF,IAAK;IAACG,MAAM,EAAEH,IAAK;IAACI,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,gBAC7DV,IAAA,CAACJ,CAAC;MAACe,MAAM,EAAC,4BAA4B;MAAAD,QAAA,eACpCV,IAAA,CAACH,IAAI;QACHe,CAAC,EAAC,wKAAwK;QAC1KH,IAAI,EAAEJ;MAAM,CACb;IAAC,CACD,CAAC,eACJL,IAAA,CAACF,IAAI,IAAO,CAAC;EAAA,CACV,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const SketchArrowRight = ({
7
+ size = 46,
8
+ color = '#4D4D63'
9
+ }) => {
10
+ const sizeRatio = 1.65;
11
+ return /*#__PURE__*/_jsx(Svg, {
12
+ width: size,
13
+ height: size * sizeRatio,
14
+ viewBox: "0 0 46 28",
15
+ fill: "none",
16
+ children: /*#__PURE__*/_jsx(Path, {
17
+ d: "M2 14.714c17.875-3.906 41.975-1.466 41.975-1.466m0 0s-7.319-9-11.4-11.248m11.4 11.248s-8.773 6.653-10.562 12.737",
18
+ stroke: color,
19
+ strokeWidth: 4,
20
+ strokeLinecap: "round",
21
+ strokeLinejoin: "round"
22
+ })
23
+ });
24
+ };
25
+ //# sourceMappingURL=SketchArrowRight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","SketchArrowRight","size","color","sizeRatio","width","height","viewBox","fill","children","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"sourceRoot":"../../../../src","sources":["shared/icons/SketchArrowRight.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG5C,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG;AAAqB,CAAC,KAAK;EAC/E,MAAMC,SAAS,GAAG,IAAI;EACtB,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAI,GAAGE,SAAU;IAACG,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,eACzET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,kHAAkH;MACpHC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { G, Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const SliceDiamondIcon = ({
7
+ color,
8
+ size = 28
9
+ }) => {
10
+ return /*#__PURE__*/_jsx(Svg, {
11
+ width: size,
12
+ height: size,
13
+ viewBox: "0 0 28 27",
14
+ fill: "none",
15
+ children: /*#__PURE__*/_jsx(G, {
16
+ filter: "url(#filter0_dd_1929_4175)",
17
+ children: /*#__PURE__*/_jsx(Path, {
18
+ d: "M12.004 22.19a2.25 2.25 0 003.652 0l9.269-12.877a2.578 2.578 0 00-.27-3.329C18.677.005 8.983.005 3.005 5.984a2.578 2.578 0 00-.27 3.33l9.269 12.876z",
19
+ fill: color
20
+ })
21
+ })
22
+ });
23
+ };
24
+ //# sourceMappingURL=SliceDiamondIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","G","Path","jsx","_jsx","SliceDiamondIcon","color","size","width","height","viewBox","fill","children","filter","d"],"sourceRoot":"../../../../src","sources":["shared/icons/SliceDiamondIcon.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,GAAG,IAAIC,CAAC,EAAEC,IAAI,QAAQ,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/C,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,KAAK;EAAEC,IAAI,GAAG;AAAc,CAAC,KAAK;EACnE,oBACEH,IAAA,CAACJ,GAAG;IAACQ,KAAK,EAAED,IAAK;IAACE,MAAM,EAAEF,IAAK;IAACG,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,eAC7DR,IAAA,CAACH,CAAC;MAACY,MAAM,EAAC,4BAA4B;MAAAD,QAAA,eACpCR,IAAA,CAACF,IAAI;QACHY,CAAC,EAAC,sJAAsJ;QACxJH,IAAI,EAAEL;MAAM,CACb;IAAC,CACD;EAAC,CACD,CAAC;AAEV,CAAC","ignoreList":[]}