@magmamath/students-features 1.3.4-rc.3 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js +2 -1
- package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +2 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/commonjs/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js +1 -1
- package/dist/commonjs/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js.map +1 -1
- package/dist/commonjs/features/pmProgress/PmProgress.js +42 -0
- package/dist/commonjs/features/pmProgress/PmProgress.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/chart.helpers.js +24 -0
- package/dist/commonjs/features/pmProgress/components/chart/chart.helpers.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/chart.types.js +2 -0
- package/dist/commonjs/features/pmProgress/components/chart/chart.types.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +44 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js +26 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js +91 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +38 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +21 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js +55 -0
- package/dist/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.js +49 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/PieChartManager.js +23 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/PieChartManager.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js +79 -0
- package/dist/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/content/PmContent.js +50 -0
- package/dist/commonjs/features/pmProgress/components/content/PmContent.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/header/NextUp.js +127 -0
- package/dist/commonjs/features/pmProgress/components/header/NextUp.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +133 -0
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/header/StartButton.js +126 -0
- package/dist/commonjs/features/pmProgress/components/header/StartButton.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/insights/PmInsights.js +70 -0
- package/dist/commonjs/features/pmProgress/components/insights/PmInsights.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js +99 -0
- package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js +72 -0
- package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/list/Fluency.js +82 -0
- package/dist/commonjs/features/pmProgress/components/list/Fluency.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/list/ListCard.js +207 -0
- package/dist/commonjs/features/pmProgress/components/list/ListCard.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/list/ListItem.js +139 -0
- package/dist/commonjs/features/pmProgress/components/list/ListItem.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js +96 -0
- package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/locked/PmStatusOverlay.js +101 -0
- package/dist/commonjs/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js +134 -0
- package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/standard/StandardTag.js +203 -0
- package/dist/commonjs/features/pmProgress/components/standard/StandardTag.js.map +1 -0
- package/dist/commonjs/features/pmProgress/context/PmProgressContext.js +18 -0
- package/dist/commonjs/features/pmProgress/context/PmProgressContext.js.map +1 -0
- package/dist/commonjs/features/pmProgress/index.js +64 -0
- package/dist/commonjs/features/pmProgress/index.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmHighlightModel.js +15 -0
- package/dist/commonjs/features/pmProgress/model/PmHighlightModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmInsightsModel.js +22 -0
- package/dist/commonjs/features/pmProgress/model/PmInsightsModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmProgressApi.js +18 -0
- package/dist/commonjs/features/pmProgress/model/PmProgressApi.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmProgressModel.js +43 -0
- package/dist/commonjs/features/pmProgress/model/PmProgressModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmRecommendationsModel.js +47 -0
- package/dist/commonjs/features/pmProgress/model/PmRecommendationsModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmSolvingFlowModel.js +104 -0
- package/dist/commonjs/features/pmProgress/model/PmSolvingFlowModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/model/PmTreeModel.js +176 -0
- package/dist/commonjs/features/pmProgress/model/PmTreeModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/shared/TreeNormalizer.js +52 -0
- package/dist/commonjs/features/pmProgress/shared/TreeNormalizer.js.map +1 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.constants.js +65 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.constants.js.map +1 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js +234 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js.map +1 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js +12 -0
- package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js.map +1 -0
- package/dist/commonjs/features/voice/constants.js +3 -15
- package/dist/commonjs/features/voice/constants.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecord.js +5 -19
- package/dist/commonjs/features/voice/recording/components/VoiceRecord.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +26 -81
- package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
- package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
- package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
- package/dist/commonjs/features/voice/recording/model/VoiceRecord.model.js +0 -5
- package/dist/commonjs/features/voice/recording/model/VoiceRecord.model.js.map +1 -1
- package/dist/commonjs/features/voice/types.js +0 -6
- package/dist/commonjs/features/voice/types.js.map +1 -1
- package/dist/commonjs/index.js +15 -3
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/shared/icons/MenuIcon.js +30 -0
- package/dist/commonjs/shared/icons/MenuIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/PentagonIcon.js +29 -0
- package/dist/commonjs/shared/icons/PentagonIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/SketchArrowRight.js +33 -0
- package/dist/commonjs/shared/icons/SketchArrowRight.js.map +1 -0
- package/dist/commonjs/shared/icons/SliceDiamondIcon.js +29 -0
- package/dist/commonjs/shared/icons/SliceDiamondIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/StarIcon.js +32 -0
- package/dist/commonjs/shared/icons/StarIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/TimerIcon.js +35 -0
- package/dist/commonjs/shared/icons/TimerIcon.js.map +1 -0
- package/dist/commonjs/shared/translation/localization/ca.json +24 -0
- package/dist/commonjs/shared/translation/localization/de.json +24 -0
- package/dist/commonjs/shared/translation/localization/en.json +24 -0
- package/dist/commonjs/shared/translation/localization/gb.json +24 -0
- package/dist/commonjs/shared/translation/localization/sct.json +24 -0
- package/dist/commonjs/shared/translation/localization/sw.json +24 -0
- package/dist/module/features/chatbot/components/ChatInput/ChatInput.js +2 -1
- package/dist/module/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +2 -1
- package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
- package/dist/module/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js +2 -2
- package/dist/module/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.js.map +1 -1
- package/dist/module/features/pmProgress/PmProgress.js +36 -0
- package/dist/module/features/pmProgress/PmProgress.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/chart.helpers.js +17 -0
- package/dist/module/features/pmProgress/components/chart/chart.helpers.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/chart.types.js +2 -0
- package/dist/module/features/pmProgress/components/chart/chart.types.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js +38 -0
- package/dist/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js +20 -0
- package/dist/module/features/pmProgress/components/chart/components/SlicesClipPaths.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js +85 -0
- package/dist/module/features/pmProgress/components/chart/components/SlicesPaths.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js +32 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js +15 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js +49 -0
- package/dist/module/features/pmProgress/components/chart/components/layers/SliceFillColor.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/model/ArcPatternGenerator.js +44 -0
- package/dist/module/features/pmProgress/components/chart/model/ArcPatternGenerator.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/model/PieChartManager.js +18 -0
- package/dist/module/features/pmProgress/components/chart/model/PieChartManager.js.map +1 -0
- package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js +74 -0
- package/dist/module/features/pmProgress/components/chart/model/SliceShapeGenerator.js.map +1 -0
- package/dist/module/features/pmProgress/components/content/PmContent.js +44 -0
- package/dist/module/features/pmProgress/components/content/PmContent.js.map +1 -0
- package/dist/module/features/pmProgress/components/header/NextUp.js +121 -0
- package/dist/module/features/pmProgress/components/header/NextUp.js.map +1 -0
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +126 -0
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -0
- package/dist/module/features/pmProgress/components/header/StartButton.js +119 -0
- package/dist/module/features/pmProgress/components/header/StartButton.js.map +1 -0
- package/dist/module/features/pmProgress/components/insights/PmInsights.js +63 -0
- package/dist/module/features/pmProgress/components/insights/PmInsights.js.map +1 -0
- package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js +94 -0
- package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -0
- package/dist/module/features/pmProgress/components/insights/StatsCard.js +66 -0
- package/dist/module/features/pmProgress/components/insights/StatsCard.js.map +1 -0
- package/dist/module/features/pmProgress/components/list/Fluency.js +76 -0
- package/dist/module/features/pmProgress/components/list/Fluency.js.map +1 -0
- package/dist/module/features/pmProgress/components/list/ListCard.js +200 -0
- package/dist/module/features/pmProgress/components/list/ListCard.js.map +1 -0
- package/dist/module/features/pmProgress/components/list/ListItem.js +132 -0
- package/dist/module/features/pmProgress/components/list/ListItem.js.map +1 -0
- package/dist/module/features/pmProgress/components/list/PmDomainList.js +90 -0
- package/dist/module/features/pmProgress/components/list/PmDomainList.js.map +1 -0
- package/dist/module/features/pmProgress/components/locked/PmStatusOverlay.js +95 -0
- package/dist/module/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -0
- package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js +128 -0
- package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -0
- package/dist/module/features/pmProgress/components/standard/StandardTag.js +197 -0
- package/dist/module/features/pmProgress/components/standard/StandardTag.js.map +1 -0
- package/dist/module/features/pmProgress/context/PmProgressContext.js +13 -0
- package/dist/module/features/pmProgress/context/PmProgressContext.js.map +1 -0
- package/dist/module/features/pmProgress/index.js +9 -0
- package/dist/module/features/pmProgress/index.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmHighlightModel.js +10 -0
- package/dist/module/features/pmProgress/model/PmHighlightModel.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmInsightsModel.js +17 -0
- package/dist/module/features/pmProgress/model/PmInsightsModel.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmProgressApi.js +13 -0
- package/dist/module/features/pmProgress/model/PmProgressApi.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmProgressModel.js +38 -0
- package/dist/module/features/pmProgress/model/PmProgressModel.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmRecommendationsModel.js +42 -0
- package/dist/module/features/pmProgress/model/PmRecommendationsModel.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmSolvingFlowModel.js +99 -0
- package/dist/module/features/pmProgress/model/PmSolvingFlowModel.js.map +1 -0
- package/dist/module/features/pmProgress/model/PmTreeModel.js +171 -0
- package/dist/module/features/pmProgress/model/PmTreeModel.js.map +1 -0
- package/dist/module/features/pmProgress/shared/TreeNormalizer.js +47 -0
- package/dist/module/features/pmProgress/shared/TreeNormalizer.js.map +1 -0
- package/dist/module/features/pmProgress/shared/pmProgress.constants.js +62 -0
- package/dist/module/features/pmProgress/shared/pmProgress.constants.js.map +1 -0
- package/dist/module/features/pmProgress/shared/pmProgress.helpers.js +214 -0
- package/dist/module/features/pmProgress/shared/pmProgress.helpers.js.map +1 -0
- package/dist/module/features/pmProgress/shared/pmProgress.types.js +8 -0
- package/dist/module/features/pmProgress/shared/pmProgress.types.js.map +1 -0
- package/dist/module/features/voice/constants.js +2 -14
- package/dist/module/features/voice/constants.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecord.js +6 -20
- package/dist/module/features/voice/recording/components/VoiceRecord.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecordButton.js +28 -83
- package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
- package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
- package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
- package/dist/module/features/voice/recording/model/VoiceRecord.model.js +0 -5
- package/dist/module/features/voice/recording/model/VoiceRecord.model.js.map +1 -1
- package/dist/module/features/voice/types.js +1 -5
- package/dist/module/features/voice/types.js.map +1 -1
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/shared/icons/MenuIcon.js +22 -0
- package/dist/module/shared/icons/MenuIcon.js.map +1 -0
- package/dist/module/shared/icons/PentagonIcon.js +21 -0
- package/dist/module/shared/icons/PentagonIcon.js.map +1 -0
- package/dist/module/shared/icons/SketchArrowRight.js +25 -0
- package/dist/module/shared/icons/SketchArrowRight.js.map +1 -0
- package/dist/module/shared/icons/SliceDiamondIcon.js +21 -0
- package/dist/module/shared/icons/SliceDiamondIcon.js.map +1 -0
- package/dist/module/shared/icons/StarIcon.js +24 -0
- package/dist/module/shared/icons/StarIcon.js.map +1 -0
- package/dist/module/shared/icons/TimerIcon.js +27 -0
- package/dist/module/shared/icons/TimerIcon.js.map +1 -0
- package/dist/module/shared/translation/localization/ca.json +24 -0
- package/dist/module/shared/translation/localization/de.json +24 -0
- package/dist/module/shared/translation/localization/en.json +24 -0
- package/dist/module/shared/translation/localization/gb.json +24 -0
- package/dist/module/shared/translation/localization/sct.json +24 -0
- package/dist/module/shared/translation/localization/sw.json +24 -0
- package/dist/typescript/commonjs/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/PmProgress.d.ts +9 -0
- package/dist/typescript/commonjs/features/pmProgress/PmProgress.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.helpers.d.ts +4 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts +36 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/chart.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts +9 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +10 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesPaths.d.ts +11 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +12 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +8 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +14 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts +12 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/PieChartManager.d.ts +14 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/PieChartManager.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +17 -0
- package/dist/typescript/commonjs/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/content/PmContent.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/content/PmContent.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/NextUp.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/NextUp.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/StartButton.d.ts +11 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/StartButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/PmInsights.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/PmInsights.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/PmTimeframeStats.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts +12 -0
- package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/Fluency.d.ts +8 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/Fluency.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts +31 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts +12 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/PmDomainList.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/locked/PmStatusOverlay.d.ts +8 -0
- package/dist/typescript/commonjs/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/recs/PmTeacherRecs.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts +9 -0
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts +15 -0
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/index.d.ts +7 -0
- package/dist/typescript/commonjs/features/pmProgress/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmHighlightModel.d.ts +7 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmHighlightModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmInsightsModel.d.ts +14 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmInsightsModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmProgressApi.d.ts +17 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmProgressApi.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmProgressModel.d.ts +23 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmProgressModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmRecommendationsModel.d.ts +102 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmRecommendationsModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmSolvingFlowModel.d.ts +22 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmSolvingFlowModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmTreeModel.d.ts +25 -0
- package/dist/typescript/commonjs/features/pmProgress/model/PmTreeModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/TreeNormalizer.d.ts +17 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/TreeNormalizer.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.constants.d.ts +49 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts +73 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.types.d.ts +193 -0
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/voice/constants.d.ts +2 -12
- package/dist/typescript/commonjs/features/voice/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts +3 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +1 -2
- package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/model/VoiceRecord.model.d.ts +1 -3
- package/dist/typescript/commonjs/features/voice/recording/model/VoiceRecord.model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/types.d.ts +0 -4
- package/dist/typescript/commonjs/features/voice/types.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/icons/MenuIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/MenuIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/PentagonIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/PentagonIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/SketchArrowRight.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/SketchArrowRight.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/SliceDiamondIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/SliceDiamondIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/StarIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/StarIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/TimerIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/TimerIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts +144 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/translation/model.d.ts +48 -0
- package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/PmProgress.d.ts +9 -0
- package/dist/typescript/module/features/pmProgress/PmProgress.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/chart.helpers.d.ts +4 -0
- package/dist/typescript/module/features/pmProgress/components/chart/chart.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts +36 -0
- package/dist/typescript/module/features/pmProgress/components/chart/chart.types.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts +9 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/PracticeProgressPieChart.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts +10 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesClipPaths.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesPaths.d.ts +11 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/SlicesPaths.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts +12 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceArcPattern.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts +8 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts +14 -0
- package/dist/typescript/module/features/pmProgress/components/chart/components/layers/SliceFillColor.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts +12 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/ArcPatternGenerator.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/PieChartManager.d.ts +14 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/PieChartManager.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts +17 -0
- package/dist/typescript/module/features/pmProgress/components/chart/model/SliceShapeGenerator.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/content/PmContent.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/content/PmContent.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/header/NextUp.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/header/NextUp.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/header/StartButton.d.ts +11 -0
- package/dist/typescript/module/features/pmProgress/components/header/StartButton.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/insights/PmInsights.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/insights/PmInsights.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/insights/PmTimeframeStats.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts +12 -0
- package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/list/Fluency.d.ts +8 -0
- package/dist/typescript/module/features/pmProgress/components/list/Fluency.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts +31 -0
- package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts +12 -0
- package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/list/PmDomainList.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/locked/PmStatusOverlay.d.ts +8 -0
- package/dist/typescript/module/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/recs/PmTeacherRecs.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts +9 -0
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts +15 -0
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/index.d.ts +7 -0
- package/dist/typescript/module/features/pmProgress/index.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmHighlightModel.d.ts +7 -0
- package/dist/typescript/module/features/pmProgress/model/PmHighlightModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmInsightsModel.d.ts +14 -0
- package/dist/typescript/module/features/pmProgress/model/PmInsightsModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmProgressApi.d.ts +17 -0
- package/dist/typescript/module/features/pmProgress/model/PmProgressApi.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmProgressModel.d.ts +23 -0
- package/dist/typescript/module/features/pmProgress/model/PmProgressModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmRecommendationsModel.d.ts +102 -0
- package/dist/typescript/module/features/pmProgress/model/PmRecommendationsModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmSolvingFlowModel.d.ts +22 -0
- package/dist/typescript/module/features/pmProgress/model/PmSolvingFlowModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/model/PmTreeModel.d.ts +25 -0
- package/dist/typescript/module/features/pmProgress/model/PmTreeModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/shared/TreeNormalizer.d.ts +17 -0
- package/dist/typescript/module/features/pmProgress/shared/TreeNormalizer.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.constants.d.ts +49 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.constants.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts +73 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.types.d.ts +193 -0
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -0
- package/dist/typescript/module/features/voice/constants.d.ts +2 -12
- package/dist/typescript/module/features/voice/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts +3 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +1 -2
- package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/model/VoiceRecord.model.d.ts +1 -3
- package/dist/typescript/module/features/voice/recording/model/VoiceRecord.model.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/types.d.ts +0 -4
- package/dist/typescript/module/features/voice/types.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/shared/icons/MenuIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/MenuIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/PentagonIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/PentagonIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/SketchArrowRight.d.ts +4 -0
- package/dist/typescript/module/shared/icons/SketchArrowRight.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/SliceDiamondIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/SliceDiamondIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/StarIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/StarIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/TimerIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/TimerIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/translation/constants.d.ts +144 -0
- package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/module/shared/translation/model.d.ts +48 -0
- package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
- package/package.json +21 -13
- package/src/features/chatbot/components/ChatInput/ChatInput.tsx +2 -1
- package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +2 -1
- package/src/features/endOfAssignment/components/AssessmentScoreCard/AssessmentScoreCard.tsx +2 -2
- package/src/features/pmProgress/PmProgress.tsx +30 -0
- package/src/features/pmProgress/__tests__/.keep +0 -0
- package/src/features/pmProgress/components/chart/chart.helpers.ts +16 -0
- package/src/features/pmProgress/components/chart/chart.types.ts +37 -0
- package/src/features/pmProgress/components/chart/components/PracticeProgressPieChart.tsx +32 -0
- package/src/features/pmProgress/components/chart/components/SlicesClipPaths.tsx +22 -0
- package/src/features/pmProgress/components/chart/components/SlicesPaths.tsx +90 -0
- package/src/features/pmProgress/components/chart/components/layers/SliceArcPattern.tsx +44 -0
- package/src/features/pmProgress/components/chart/components/layers/SliceBackgroundColor.tsx +11 -0
- package/src/features/pmProgress/components/chart/components/layers/SliceFillColor.tsx +60 -0
- package/src/features/pmProgress/components/chart/model/ArcPatternGenerator.ts +48 -0
- package/src/features/pmProgress/components/chart/model/PieChartManager.ts +17 -0
- package/src/features/pmProgress/components/chart/model/SliceShapeGenerator.ts +90 -0
- package/src/features/pmProgress/components/content/PmContent.tsx +44 -0
- package/src/features/pmProgress/components/header/NextUp.tsx +109 -0
- package/src/features/pmProgress/components/header/PmProgressHeader.tsx +135 -0
- package/src/features/pmProgress/components/header/StartButton.tsx +160 -0
- package/src/features/pmProgress/components/insights/PmInsights.tsx +65 -0
- package/src/features/pmProgress/components/insights/PmTimeframeStats.tsx +88 -0
- package/src/features/pmProgress/components/insights/StatsCard.tsx +54 -0
- package/src/features/pmProgress/components/list/Fluency.tsx +72 -0
- package/src/features/pmProgress/components/list/ListCard.tsx +231 -0
- package/src/features/pmProgress/components/list/ListItem.tsx +164 -0
- package/src/features/pmProgress/components/list/PmDomainList.tsx +76 -0
- package/src/features/pmProgress/components/locked/PmStatusOverlay.tsx +101 -0
- package/src/features/pmProgress/components/recs/PmTeacherRecs.tsx +127 -0
- package/src/features/pmProgress/components/standard/StandardTag.tsx +181 -0
- package/src/features/pmProgress/context/PmProgressContext.tsx +26 -0
- package/src/features/pmProgress/index.ts +6 -0
- package/src/features/pmProgress/model/PmHighlightModel.ts +11 -0
- package/src/features/pmProgress/model/PmInsightsModel.ts +23 -0
- package/src/features/pmProgress/model/PmProgressApi.ts +34 -0
- package/src/features/pmProgress/model/PmProgressModel.ts +48 -0
- package/src/features/pmProgress/model/PmRecommendationsModel.ts +47 -0
- package/src/features/pmProgress/model/PmSolvingFlowModel.ts +140 -0
- package/src/features/pmProgress/model/PmTreeModel.ts +171 -0
- package/src/features/pmProgress/shared/TreeNormalizer.ts +64 -0
- package/src/features/pmProgress/shared/pmProgress.constants.ts +100 -0
- package/src/features/pmProgress/shared/pmProgress.helpers.ts +307 -0
- package/src/features/pmProgress/shared/pmProgress.types.ts +217 -0
- package/src/features/voice/constants.ts +2 -14
- package/src/features/voice/recording/components/VoiceRecord.tsx +5 -28
- package/src/features/voice/recording/components/VoiceRecordButton.tsx +30 -114
- package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +2 -2
- package/src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts +4 -8
- package/src/features/voice/recording/model/VoiceRecord.model.ts +0 -7
- package/src/features/voice/types.ts +0 -5
- package/src/index.ts +1 -0
- package/src/shared/icons/MenuIcon.tsx +15 -0
- package/src/shared/icons/PentagonIcon.tsx +14 -0
- package/src/shared/icons/SketchArrowRight.tsx +18 -0
- package/src/shared/icons/SliceDiamondIcon.tsx +14 -0
- package/src/shared/icons/StarIcon.tsx +17 -0
- package/src/shared/icons/TimerIcon.tsx +21 -0
- package/src/shared/translation/localization/ca.json +24 -0
- package/src/shared/translation/localization/de.json +24 -0
- package/src/shared/translation/localization/en.json +24 -0
- package/src/shared/translation/localization/gb.json +24 -0
- package/src/shared/translation/localization/sct.json +24 -0
- package/src/shared/translation/localization/sw.json +24 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { sample } from 'effector';
|
|
4
|
+
import { createGate } from 'effector-react';
|
|
5
|
+
import { PmProgressApi } from "./PmProgressApi.js";
|
|
6
|
+
import { PmTreeModel } from "./PmTreeModel.js";
|
|
7
|
+
import { PmInsightsModel } from "./PmInsightsModel.js";
|
|
8
|
+
import { PmRecommendationsModel } from "./PmRecommendationsModel.js";
|
|
9
|
+
import { PmSolvingFlowModel } from "./PmSolvingFlowModel.js";
|
|
10
|
+
import { PmHighlightModel } from "./PmHighlightModel.js";
|
|
11
|
+
export class PmProgressModel {
|
|
12
|
+
gate = createGate();
|
|
13
|
+
constructor({
|
|
14
|
+
api
|
|
15
|
+
}) {
|
|
16
|
+
this.api = new PmProgressApi(api);
|
|
17
|
+
this.highlight = new PmHighlightModel();
|
|
18
|
+
this.insights = new PmInsightsModel(this.api);
|
|
19
|
+
this.tree = new PmTreeModel(this.api);
|
|
20
|
+
this.recommendations = new PmRecommendationsModel(this.api);
|
|
21
|
+
this.solving = new PmSolvingFlowModel(this.tree, this.recommendations);
|
|
22
|
+
this.init();
|
|
23
|
+
}
|
|
24
|
+
init() {
|
|
25
|
+
sample({
|
|
26
|
+
clock: this.gate.open,
|
|
27
|
+
target: [this.tree.initTreeFx, this.api.getUserInsightsFx]
|
|
28
|
+
});
|
|
29
|
+
sample({
|
|
30
|
+
clock: this.tree.initTreeFx.done,
|
|
31
|
+
fn: ({
|
|
32
|
+
result: [tree]
|
|
33
|
+
}) => tree,
|
|
34
|
+
target: this.recommendations.initRecommendationsFx
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PmProgressModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sample","createGate","PmProgressApi","PmTreeModel","PmInsightsModel","PmRecommendationsModel","PmSolvingFlowModel","PmHighlightModel","PmProgressModel","gate","constructor","api","highlight","insights","tree","recommendations","solving","init","clock","open","target","initTreeFx","getUserInsightsFx","done","fn","result","initRecommendationsFx"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmProgressModel.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,UAAU;AACjC,SAASC,UAAU,QAAQ,gBAAgB;AAE3C,SAASC,aAAa,QAAiC,oBAAiB;AACxE,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AAMrD,OAAO,MAAMC,eAAe,CAAC;EACXC,IAAI,GAAGR,UAAU,CAAsB,CAAC;EASxDS,WAAWA,CAAC;IAAEC;EAA0B,CAAC,EAAE;IACzC,IAAI,CAACA,GAAG,GAAG,IAAIT,aAAa,CAACS,GAAG,CAAC;IACjC,IAAI,CAACC,SAAS,GAAG,IAAIL,gBAAgB,CAAC,CAAC;IACvC,IAAI,CAACM,QAAQ,GAAG,IAAIT,eAAe,CAAC,IAAI,CAACO,GAAG,CAAC;IAC7C,IAAI,CAACG,IAAI,GAAG,IAAIX,WAAW,CAAC,IAAI,CAACQ,GAAG,CAAC;IACrC,IAAI,CAACI,eAAe,GAAG,IAAIV,sBAAsB,CAAC,IAAI,CAACM,GAAG,CAAC;IAC3D,IAAI,CAACK,OAAO,GAAG,IAAIV,kBAAkB,CAAC,IAAI,CAACQ,IAAI,EAAE,IAAI,CAACC,eAAe,CAAC;IAEtE,IAAI,CAACE,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAG;IACbjB,MAAM,CAAC;MACLkB,KAAK,EAAE,IAAI,CAACT,IAAI,CAACU,IAAI;MACrBC,MAAM,EAAE,CAAC,IAAI,CAACN,IAAI,CAACO,UAAU,EAAE,IAAI,CAACV,GAAG,CAACW,iBAAiB;IAC3D,CAAC,CAAC;IAEFtB,MAAM,CAAC;MACLkB,KAAK,EAAE,IAAI,CAACJ,IAAI,CAACO,UAAU,CAACE,IAAI;MAChCC,EAAE,EAAEA,CAAC;QAAEC,MAAM,EAAE,CAACX,IAAI;MAAE,CAAC,KAAKA,IAAI;MAChCM,MAAM,EAAE,IAAI,CAACL,eAAe,CAACW;IAC/B,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -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,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createEvent, restore } from 'effector';
|
|
4
|
+
import { persist } from 'effector-storage/session';
|
|
5
|
+
import { SessionStorageKeys, SolvingFlow } from "../shared/pmProgress.constants.js";
|
|
6
|
+
import { getAllSkillsFromStandard, getAllUncompletedSkills, getDomainStructure, getUncompletedSkillsFromDomain, getUncompletedSkillsFromStandard, startGradesFrom, shiftToBeginningOfArray, withoutDuplicates } from "../shared/pmProgress.helpers.js";
|
|
7
|
+
import { enhanceProgressMatrixData } from '@matteappen/skills-utils';
|
|
8
|
+
import { isWeb } from "../../../shared/common.constants.js";
|
|
9
|
+
export class PmSolvingFlowModel {
|
|
10
|
+
reset = createEvent();
|
|
11
|
+
setQueue = createEvent();
|
|
12
|
+
advance = createEvent();
|
|
13
|
+
setLoaderOpeningId = createEvent();
|
|
14
|
+
$loaderOpeningId = restore(this.setLoaderOpeningId, null);
|
|
15
|
+
$queue = restore(this.setQueue, []).on(this.advance, queue => queue.slice(1)).reset(this.reset);
|
|
16
|
+
constructor(treeModel, recommendationsModel) {
|
|
17
|
+
this.treeModel = treeModel;
|
|
18
|
+
this.recommendationsModel = recommendationsModel;
|
|
19
|
+
if (isWeb) {
|
|
20
|
+
persist({
|
|
21
|
+
key: SessionStorageKeys.SOLVING_QUEUE,
|
|
22
|
+
store: this.$queue
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async start(props) {
|
|
27
|
+
const buildQueue = await this.getBuilder(props);
|
|
28
|
+
const queue = buildQueue[props.type]();
|
|
29
|
+
this.setQueue(queue);
|
|
30
|
+
return queue[0];
|
|
31
|
+
}
|
|
32
|
+
async next() {
|
|
33
|
+
this.advance();
|
|
34
|
+
return this.$queue.getState()[0];
|
|
35
|
+
}
|
|
36
|
+
buildTeacherQueue({
|
|
37
|
+
domains,
|
|
38
|
+
context,
|
|
39
|
+
skillId
|
|
40
|
+
}) {
|
|
41
|
+
const teacherSkills = this.recommendationsModel.$teacher.getState().items;
|
|
42
|
+
const magmaRecommendations = this.recommendationsModel.$magma.getState().items;
|
|
43
|
+
const fromUncompletedDomains = getAllUncompletedSkills(domains, context.tree.skillsMapping);
|
|
44
|
+
const teacherRecommendations = skillId ? shiftToBeginningOfArray(skillId, teacherSkills) : teacherSkills;
|
|
45
|
+
return withoutDuplicates([...teacherRecommendations, ...magmaRecommendations, ...fromUncompletedDomains]);
|
|
46
|
+
}
|
|
47
|
+
buildMagmaQueue({
|
|
48
|
+
domains,
|
|
49
|
+
context
|
|
50
|
+
}) {
|
|
51
|
+
const magmaRecommendations = this.recommendationsModel.$magma.getState().items;
|
|
52
|
+
const fromUncompletedDomains = getAllUncompletedSkills(domains, context.tree.skillsMapping);
|
|
53
|
+
return withoutDuplicates([...magmaRecommendations, ...fromUncompletedDomains]);
|
|
54
|
+
}
|
|
55
|
+
buildStandardQueue({
|
|
56
|
+
domains,
|
|
57
|
+
context,
|
|
58
|
+
standardId
|
|
59
|
+
}) {
|
|
60
|
+
const domain = domains.find(d => d.standards.some(s => s.standardId === standardId));
|
|
61
|
+
if (!domain) return [];
|
|
62
|
+
const standard = domain.standards.find(s => s.standardId === standardId);
|
|
63
|
+
if (!standard) return [];
|
|
64
|
+
const fromStandard = standard.isCompleted ? getAllSkillsFromStandard(standard, context.tree.skillsMapping) : getUncompletedSkillsFromStandard(standard, context.tree.skillsMapping);
|
|
65
|
+
const fromDomain = getUncompletedSkillsFromDomain(domain, context.tree.skillsMapping, standardId);
|
|
66
|
+
const fromOtherDomains = domains.filter(d => d !== domain).flatMap(domain => getUncompletedSkillsFromDomain(domain, context.tree.skillsMapping));
|
|
67
|
+
return withoutDuplicates([...fromStandard, ...fromDomain, ...fromOtherDomains]);
|
|
68
|
+
}
|
|
69
|
+
getAllGradeDomains(context) {
|
|
70
|
+
const grade = this.treeModel.$grade.getState();
|
|
71
|
+
const treeGrades = this.treeModel.$grades.getState();
|
|
72
|
+
const grades = startGradesFrom(treeGrades, grade).filter(({
|
|
73
|
+
isLocked
|
|
74
|
+
}) => !isLocked);
|
|
75
|
+
const treeNodes = Object.values(context.tree.treeMapping);
|
|
76
|
+
return grades.flatMap(grade => {
|
|
77
|
+
const [treeWithStats] = enhanceProgressMatrixData(treeNodes, context.stats, [{
|
|
78
|
+
entityId: context.user._id,
|
|
79
|
+
name: context.user.fullName
|
|
80
|
+
}], grade.value);
|
|
81
|
+
return getDomainStructure(treeWithStats, context.tree.treeMapping);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async getBuilder(props) {
|
|
85
|
+
const context = await this.treeModel.getTreeContextFx();
|
|
86
|
+
const domains = this.getAllGradeDomains(context);
|
|
87
|
+
const data = {
|
|
88
|
+
domains,
|
|
89
|
+
context,
|
|
90
|
+
...props
|
|
91
|
+
};
|
|
92
|
+
return {
|
|
93
|
+
[SolvingFlow.TEACHER]: () => this.buildTeacherQueue(data),
|
|
94
|
+
[SolvingFlow.MAGMA]: () => this.buildMagmaQueue(data),
|
|
95
|
+
[SolvingFlow.STANDARD]: () => this.buildStandardQueue(data)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=PmSolvingFlowModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createEvent","restore","persist","SessionStorageKeys","SolvingFlow","getAllSkillsFromStandard","getAllUncompletedSkills","getDomainStructure","getUncompletedSkillsFromDomain","getUncompletedSkillsFromStandard","startGradesFrom","shiftToBeginningOfArray","withoutDuplicates","enhanceProgressMatrixData","isWeb","PmSolvingFlowModel","reset","setQueue","advance","setLoaderOpeningId","$loaderOpeningId","$queue","on","queue","slice","constructor","treeModel","recommendationsModel","key","SOLVING_QUEUE","store","start","props","buildQueue","getBuilder","type","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","isCompleted","fromDomain","fromOtherDomains","filter","flatMap","getAllGradeDomains","grade","$grade","treeGrades","$grades","grades","isLocked","treeNodes","Object","values","treeMapping","treeWithStats","stats","entityId","user","_id","name","fullName","value","getTreeContextFx","data","TEACHER","MAGMA","STANDARD"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmSolvingFlowModel.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,171 @@
|
|
|
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, getTreeGrades, isTreeDataReady } from "../shared/pmProgress.helpers.js";
|
|
7
|
+
import { TreeNormalizer } from "../shared/TreeNormalizer.js";
|
|
8
|
+
import { persist } from 'effector-storage/session';
|
|
9
|
+
import { PmProgressStatus, SessionStorageKeys } from "../shared/pmProgress.constants.js";
|
|
10
|
+
import { isWeb } from "../../../shared/common.constants.js";
|
|
11
|
+
export class PmTreeModel {
|
|
12
|
+
$tree = createStore(null);
|
|
13
|
+
$stats = createStore(null);
|
|
14
|
+
$user = createStore(null);
|
|
15
|
+
setupInitialGrade = createEvent();
|
|
16
|
+
setDomains = createEvent();
|
|
17
|
+
setGrade = createEvent();
|
|
18
|
+
$isInitialized = createStore(false);
|
|
19
|
+
$grade = restore(this.setGrade, null);
|
|
20
|
+
$domains = restore(this.setDomains, []);
|
|
21
|
+
$grades = createStore([]);
|
|
22
|
+
$status = createStore(null);
|
|
23
|
+
constructor(api) {
|
|
24
|
+
this.api = api;
|
|
25
|
+
if (isWeb) {
|
|
26
|
+
persist({
|
|
27
|
+
key: SessionStorageKeys.GRADE,
|
|
28
|
+
store: this.$grade
|
|
29
|
+
});
|
|
30
|
+
persist({
|
|
31
|
+
key: SessionStorageKeys.DOMAINS,
|
|
32
|
+
store: this.$domains
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
this.setupFailedAndLockedStatus();
|
|
36
|
+
this.setupTreeInit();
|
|
37
|
+
this.setupGradeInit();
|
|
38
|
+
this.setupDomainStructure();
|
|
39
|
+
}
|
|
40
|
+
initTreeFx = createEffect(async ({
|
|
41
|
+
user
|
|
42
|
+
}) => {
|
|
43
|
+
if (!user.setting.practiceModeTreeId) {
|
|
44
|
+
throw new Error('practiceModeTreeId is not set');
|
|
45
|
+
}
|
|
46
|
+
const [tree, stats] = await Promise.all([this.api.getTreeFx(user.setting.practiceModeTreeId), this.api.getStatisticsFx({
|
|
47
|
+
entityIds: [user._id]
|
|
48
|
+
})]);
|
|
49
|
+
return [TreeNormalizer.normalize(tree), stats];
|
|
50
|
+
});
|
|
51
|
+
getTreeContextFx = attach({
|
|
52
|
+
source: {
|
|
53
|
+
tree: this.$tree,
|
|
54
|
+
stats: this.$stats,
|
|
55
|
+
user: this.$user,
|
|
56
|
+
grade: this.$grade
|
|
57
|
+
},
|
|
58
|
+
mapParams: (_, source) => {
|
|
59
|
+
if (!isTreeDataReady(source)) {
|
|
60
|
+
throw new Error('Cannot create treeWithUserStats in getTreeWithStatsFx - tree data is not ready.');
|
|
61
|
+
}
|
|
62
|
+
return source;
|
|
63
|
+
},
|
|
64
|
+
effect: createEffect(({
|
|
65
|
+
tree,
|
|
66
|
+
stats,
|
|
67
|
+
user,
|
|
68
|
+
grade
|
|
69
|
+
}) => {
|
|
70
|
+
const [treeWithStats] = enhanceProgressMatrixData(Object.values(tree.treeMapping), stats, [{
|
|
71
|
+
entityId: user._id,
|
|
72
|
+
name: user.fullName
|
|
73
|
+
}], grade);
|
|
74
|
+
return {
|
|
75
|
+
tree,
|
|
76
|
+
stats,
|
|
77
|
+
user,
|
|
78
|
+
treeWithStats
|
|
79
|
+
};
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
setupFailedAndLockedStatus() {
|
|
83
|
+
sample({
|
|
84
|
+
clock: this.initTreeFx.fail,
|
|
85
|
+
fn: () => PmProgressStatus.ERROR,
|
|
86
|
+
target: this.$status
|
|
87
|
+
});
|
|
88
|
+
sample({
|
|
89
|
+
clock: this.$grades,
|
|
90
|
+
filter: grades => grades.length > 0 && grades.every(g => g.isLocked),
|
|
91
|
+
fn: () => PmProgressStatus.LOCKED,
|
|
92
|
+
target: this.$status
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
setupTreeInit() {
|
|
96
|
+
createAction(this.initTreeFx.done, {
|
|
97
|
+
target: {
|
|
98
|
+
$tree: this.$tree,
|
|
99
|
+
$stats: this.$stats,
|
|
100
|
+
$user: this.$user,
|
|
101
|
+
$grades: this.$grades,
|
|
102
|
+
$isInitialized: this.$isInitialized,
|
|
103
|
+
setupInitialGrade: this.setupInitialGrade
|
|
104
|
+
},
|
|
105
|
+
fn: (target, {
|
|
106
|
+
params: {
|
|
107
|
+
user
|
|
108
|
+
},
|
|
109
|
+
result: [tree, stats]
|
|
110
|
+
}) => {
|
|
111
|
+
target.$tree(tree);
|
|
112
|
+
target.$stats(stats);
|
|
113
|
+
target.$user(user);
|
|
114
|
+
target.$grades(getTreeGrades(tree, user));
|
|
115
|
+
target.setupInitialGrade({
|
|
116
|
+
tree,
|
|
117
|
+
user
|
|
118
|
+
});
|
|
119
|
+
target.$isInitialized(true);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
setupGradeInit() {
|
|
124
|
+
sample({
|
|
125
|
+
clock: this.setupInitialGrade,
|
|
126
|
+
source: this.$grade,
|
|
127
|
+
fn: (grade, {
|
|
128
|
+
tree,
|
|
129
|
+
user
|
|
130
|
+
}) => {
|
|
131
|
+
const userLockedGrades = user.setting.practiceModeLockedGrades;
|
|
132
|
+
const isPersistedGradeValid = isWeb && grade !== null && !userLockedGrades.includes(grade);
|
|
133
|
+
if (isPersistedGradeValid) return grade;
|
|
134
|
+
const treeGrades = Object.values(tree.treeMapping).filter(node => node.type === 'grade').map(node => node.attributes.grade);
|
|
135
|
+
return getInitialPmGrade({
|
|
136
|
+
userGrade: user.grade,
|
|
137
|
+
treeGrades,
|
|
138
|
+
lockedGrades: userLockedGrades,
|
|
139
|
+
enrolledGrades: user.enrolledGrades
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
target: this.setGrade
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
setupDomainStructure() {
|
|
146
|
+
sample({
|
|
147
|
+
clock: [this.$grade, this.initTreeFx.doneData],
|
|
148
|
+
source: {
|
|
149
|
+
tree: this.$tree,
|
|
150
|
+
stats: this.$stats,
|
|
151
|
+
user: this.$user,
|
|
152
|
+
grade: this.$grade
|
|
153
|
+
},
|
|
154
|
+
filter: isTreeDataReady,
|
|
155
|
+
fn: ({
|
|
156
|
+
tree,
|
|
157
|
+
stats,
|
|
158
|
+
user,
|
|
159
|
+
grade
|
|
160
|
+
}) => {
|
|
161
|
+
const [treeWithUserStats] = enhanceProgressMatrixData(Object.values(tree.treeMapping), stats, [{
|
|
162
|
+
entityId: user._id,
|
|
163
|
+
name: user.fullName
|
|
164
|
+
}], grade);
|
|
165
|
+
return getDomainStructure(treeWithUserStats, tree.treeMapping);
|
|
166
|
+
},
|
|
167
|
+
target: this.setDomains
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=PmTreeModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["attach","createEffect","createEvent","createStore","restore","sample","createAction","enhanceProgressMatrixData","getDomainStructure","getInitialPmGrade","getTreeGrades","isTreeDataReady","TreeNormalizer","persist","PmProgressStatus","SessionStorageKeys","isWeb","PmTreeModel","$tree","$stats","$user","setupInitialGrade","setDomains","setGrade","$isInitialized","$grade","$domains","$grades","$status","constructor","api","key","GRADE","store","DOMAINS","setupFailedAndLockedStatus","setupTreeInit","setupGradeInit","setupDomainStructure","initTreeFx","user","setting","practiceModeTreeId","Error","tree","stats","Promise","all","getTreeFx","getStatisticsFx","entityIds","_id","normalize","getTreeContextFx","source","grade","mapParams","_","effect","treeWithStats","Object","values","treeMapping","entityId","name","fullName","clock","fail","fn","ERROR","target","filter","grades","length","every","g","isLocked","LOCKED","done","params","result","userLockedGrades","practiceModeLockedGrades","isPersistedGradeValid","includes","treeGrades","node","type","map","attributes","userGrade","lockedGrades","enrolledGrades","doneData","treeWithUserStats"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/model/PmTreeModel.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Some skills from the API lack a valid ability (missing sectionId and functionName),
|
|
5
|
+
* making them impossible to open in the solving flow. This normalizer strips those skills
|
|
6
|
+
* and cascades the cleanup - removing standards, domains, etc. that end up empty.
|
|
7
|
+
*
|
|
8
|
+
* Acts as a single place to sanitize the tree API response before it enters the app.
|
|
9
|
+
* Can be extended with additional normalizations as new edge cases arise.
|
|
10
|
+
*/
|
|
11
|
+
export class TreeNormalizer {
|
|
12
|
+
static normalize(response) {
|
|
13
|
+
const skillsMapping = this.getOnlyValidSkills(response.skillsMapping);
|
|
14
|
+
const validIds = new Set(Object.keys(skillsMapping));
|
|
15
|
+
const treeMapping = this.removeEmptyNodes(response.treeMapping, validIds);
|
|
16
|
+
return {
|
|
17
|
+
...response,
|
|
18
|
+
skillsMapping,
|
|
19
|
+
treeMapping
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static isSkillValid(skill) {
|
|
23
|
+
return Boolean(skill?.ability && (skill.ability.sectionId || skill.ability.functionName));
|
|
24
|
+
}
|
|
25
|
+
static getOnlyValidSkills(mapping) {
|
|
26
|
+
return Object.fromEntries(Object.entries(mapping).filter(([, skill]) => this.isSkillValid(skill)));
|
|
27
|
+
}
|
|
28
|
+
static removeEmptyNodes(treeMapping, validIds) {
|
|
29
|
+
const emptyIds = this.getEmptyNodeIds(treeMapping, validIds);
|
|
30
|
+
return Object.fromEntries(Object.entries(treeMapping).filter(([id]) => !emptyIds.has(id)).map(([id, node]) => [id, {
|
|
31
|
+
...node,
|
|
32
|
+
skills: node.skills.filter(sid => validIds.has(sid)),
|
|
33
|
+
children: node.children.filter(cid => !emptyIds.has(cid))
|
|
34
|
+
}]));
|
|
35
|
+
}
|
|
36
|
+
static getEmptyNodeIds(treeMapping, validIds) {
|
|
37
|
+
const empty = new Set();
|
|
38
|
+
const leafToRoot = Object.entries(treeMapping).sort(([, a], [, b]) => b.parents.length - a.parents.length);
|
|
39
|
+
for (const [id, node] of leafToRoot) {
|
|
40
|
+
const isEmptyLeaf = node.skills.length > 0 && node.skills.every(s => !validIds.has(s));
|
|
41
|
+
const isEmptyParent = node.children.length > 0 && node.children.every(c => empty.has(c));
|
|
42
|
+
if (isEmptyLeaf || isEmptyParent) empty.add(id);
|
|
43
|
+
}
|
|
44
|
+
return empty;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=TreeNormalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TreeNormalizer","normalize","response","skillsMapping","getOnlyValidSkills","validIds","Set","Object","keys","treeMapping","removeEmptyNodes","isSkillValid","skill","Boolean","ability","sectionId","functionName","mapping","fromEntries","entries","filter","emptyIds","getEmptyNodeIds","id","has","map","node","skills","sid","children","cid","empty","leafToRoot","sort","a","b","parents","length","isEmptyLeaf","every","s","isEmptyParent","c","add"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/TreeNormalizer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { COLORS } from '@magmamath/react-native-ui';
|
|
4
|
+
import { Dimensions } from 'react-native';
|
|
5
|
+
export const STATS_MAX_HEIGHT = 136;
|
|
6
|
+
export const RECOMMENDATIONS_LIMIT_PARAM = 150;
|
|
7
|
+
export const MAX_PIE_CHART_SIZE = 505;
|
|
8
|
+
export let CustomDomain = /*#__PURE__*/function (CustomDomain) {
|
|
9
|
+
CustomDomain["TEACHER"] = "TEACHER";
|
|
10
|
+
CustomDomain["FLUENCY"] = "FLUENCY";
|
|
11
|
+
return CustomDomain;
|
|
12
|
+
}({});
|
|
13
|
+
export let InsightsTimeframe = /*#__PURE__*/function (InsightsTimeframe) {
|
|
14
|
+
InsightsTimeframe["ALL"] = "all";
|
|
15
|
+
InsightsTimeframe["WEEK"] = "week";
|
|
16
|
+
InsightsTimeframe["LAST_WEEK"] = "lastWeek";
|
|
17
|
+
return InsightsTimeframe;
|
|
18
|
+
}({});
|
|
19
|
+
export let SolvingFlow = /*#__PURE__*/function (SolvingFlow) {
|
|
20
|
+
SolvingFlow["TEACHER"] = "TEACHER";
|
|
21
|
+
SolvingFlow["MAGMA"] = "MAGMA";
|
|
22
|
+
SolvingFlow["STANDARD"] = "STANDARD";
|
|
23
|
+
return SolvingFlow;
|
|
24
|
+
}({});
|
|
25
|
+
export let OpeningLoaderId = /*#__PURE__*/function (OpeningLoaderId) {
|
|
26
|
+
OpeningLoaderId["START_BUTTON"] = "START_BUTTON";
|
|
27
|
+
OpeningLoaderId["PRACTICE_BUTTON"] = "PRACTICE_BUTTON";
|
|
28
|
+
return OpeningLoaderId;
|
|
29
|
+
}({});
|
|
30
|
+
export let PmProgressStatus = /*#__PURE__*/function (PmProgressStatus) {
|
|
31
|
+
PmProgressStatus["LOCKED"] = "LOCKED";
|
|
32
|
+
PmProgressStatus["ERROR"] = "ERROR";
|
|
33
|
+
return PmProgressStatus;
|
|
34
|
+
}({});
|
|
35
|
+
export let SessionStorageKeys = /*#__PURE__*/function (SessionStorageKeys) {
|
|
36
|
+
SessionStorageKeys["SOLVING_QUEUE"] = "PM_SOLVING_QUEUE";
|
|
37
|
+
SessionStorageKeys["GRADE"] = "PM_GRADE";
|
|
38
|
+
SessionStorageKeys["DOMAINS"] = "PM_DOMAINS";
|
|
39
|
+
return SessionStorageKeys;
|
|
40
|
+
}({});
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Primary → _4 → _6 variants, cycling through 7 base colors.
|
|
44
|
+
* Supports up to 21 unique colors before repeating.
|
|
45
|
+
*/
|
|
46
|
+
export const DOMAIN_COLORS = [COLORS.PRIMARY_RED, COLORS.PRIMARY_MAGENTA, COLORS.PRIMARY_PURPLE, COLORS.PRIMARY_INDIGO, COLORS.PRIMARY_TURQUOISE, COLORS.PRIMARY_GREEN, COLORS.RED_4, COLORS.MAGENTA_4, COLORS.PURPLE_4, COLORS.INDIGO_4, COLORS.TURQUOISE_4, COLORS.GREEN_4, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6];
|
|
47
|
+
export const EMPTY_PIE_CHART_DATA = Array.from({
|
|
48
|
+
length: 5
|
|
49
|
+
}, () => ({
|
|
50
|
+
value: 1,
|
|
51
|
+
fillPercent: 0,
|
|
52
|
+
fillColor: COLORS.NEUTRAL_4,
|
|
53
|
+
borderColor: COLORS.NEUTRAL_4,
|
|
54
|
+
backgroundColor: COLORS.NEUTRAL_3
|
|
55
|
+
}));
|
|
56
|
+
export const DOMAIN_BORDER_COLORS = [COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6, COLORS.RED_6, COLORS.MAGENTA_6, COLORS.PURPLE_6, COLORS.INDIGO_6, COLORS.TURQUOISE_6, COLORS.GREEN_6];
|
|
57
|
+
export const BURGER_MENU_BREAKPOINT = 1024;
|
|
58
|
+
export const SMALL_SCREEN_THRESHOLD = 568;
|
|
59
|
+
export const SMALL_SCREEN_MENU_MAX_HEIGHT = 300;
|
|
60
|
+
export const WINDOW_HEIGHT = Dimensions.get('window').height;
|
|
61
|
+
export const MENU_MAX_HEIGHT = WINDOW_HEIGHT <= SMALL_SCREEN_THRESHOLD ? SMALL_SCREEN_MENU_MAX_HEIGHT : WINDOW_HEIGHT * 0.8;
|
|
62
|
+
//# sourceMappingURL=pmProgress.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["COLORS","Dimensions","STATS_MAX_HEIGHT","RECOMMENDATIONS_LIMIT_PARAM","MAX_PIE_CHART_SIZE","CustomDomain","InsightsTimeframe","SolvingFlow","OpeningLoaderId","PmProgressStatus","SessionStorageKeys","DOMAIN_COLORS","PRIMARY_RED","PRIMARY_MAGENTA","PRIMARY_PURPLE","PRIMARY_INDIGO","PRIMARY_TURQUOISE","PRIMARY_GREEN","RED_4","MAGENTA_4","PURPLE_4","INDIGO_4","TURQUOISE_4","GREEN_4","RED_6","MAGENTA_6","PURPLE_6","INDIGO_6","TURQUOISE_6","GREEN_6","EMPTY_PIE_CHART_DATA","Array","from","length","value","fillPercent","fillColor","NEUTRAL_4","borderColor","backgroundColor","NEUTRAL_3","DOMAIN_BORDER_COLORS","BURGER_MENU_BREAKPOINT","SMALL_SCREEN_THRESHOLD","SMALL_SCREEN_MENU_MAX_HEIGHT","WINDOW_HEIGHT","get","height","MENU_MAX_HEIGHT"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.constants.ts"],"mappings":"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","ignoreList":[]}
|