(levels, courseID)
| 937 | } |
| 938 | |
| 939 | const createLevelNumberMap = function (levels, courseID) { |
| 940 | const levelNumberMap = {} |
| 941 | let practiceLevelTotalCount = 0 |
| 942 | let practiceLevelCurrentCount = 0 |
| 943 | const isCoco = !showOzaria() && !OZ_COURSE_IDS.includes(courseID || '') |
| 944 | for (let i = 0; i < levels.length; i++) { |
| 945 | const level = levels[i] |
| 946 | let levelNumber = (i - practiceLevelTotalCount) + 1 |
| 947 | if (isCoco && level.practice) { |
| 948 | levelNumber = (i - practiceLevelTotalCount) + String.fromCharCode('a'.charCodeAt(0) + practiceLevelCurrentCount) |
| 949 | practiceLevelTotalCount++ |
| 950 | practiceLevelCurrentCount++ |
| 951 | } else if (level.assessment && isCoco) { |
| 952 | practiceLevelCurrentCount = 0 |
| 953 | const helpText = level.assessment === 'cumulative' ? $.t('play_level.combo_challenge') : $.t('play_level.concept_challenge') |
| 954 | levelNumber = `${levelNumber}. ${helpText}` |
| 955 | } else { |
| 956 | practiceLevelCurrentCount = 0 |
| 957 | } |
| 958 | if (level.key) { |
| 959 | levelNumberMap[level.key] = levelNumber |
| 960 | } else { |
| 961 | levelNumberMap[level.key] = '' |
| 962 | } |
| 963 | |
| 964 | if (courseID) { |
| 965 | levelNumberMap[courseID + ':' + level.key] = levelNumberMap[level.key] |
| 966 | } |
| 967 | } |
| 968 | return levelNumberMap |
| 969 | } |
| 970 | |
| 971 | const isOptional = level => level != null ? level.optional : undefined |
| 972 | const isLocked = level => (level != null ? level.locked : undefined) && !isOptional(level) |
nothing calls this directly
no test coverage detected