@coorpacademy/player-web 4.22.52 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/es/index.js +1 -8
  2. package/es/index.js.map +1 -1
  3. package/es/map-state-to-props/answer.js +0 -35
  4. package/es/map-state-to-props/answer.js.map +1 -1
  5. package/es/map-state-to-props/error-popin.js +0 -4
  6. package/es/map-state-to-props/error-popin.js.map +1 -1
  7. package/es/map-state-to-props/header.js +3 -14
  8. package/es/map-state-to-props/header.js.map +1 -1
  9. package/es/map-state-to-props/index.js +0 -6
  10. package/es/map-state-to-props/index.js.map +1 -1
  11. package/es/map-state-to-props/loading.js +0 -1
  12. package/es/map-state-to-props/loading.js.map +1 -1
  13. package/es/map-state-to-props/player.js +0 -13
  14. package/es/map-state-to-props/player.js.map +1 -1
  15. package/es/map-state-to-props/popin-correction.js +0 -25
  16. package/es/map-state-to-props/popin-correction.js.map +1 -1
  17. package/es/map-state-to-props/popin-end.js +6 -35
  18. package/es/map-state-to-props/popin-end.js.map +1 -1
  19. package/es/map-state-to-props/resources.js +4 -10
  20. package/es/map-state-to-props/resources.js.map +1 -1
  21. package/es/map-state-to-props/slide.js +0 -2
  22. package/es/map-state-to-props/slide.js.map +1 -1
  23. package/es/map-state-to-props/test/answer.js +0 -21
  24. package/es/map-state-to-props/test/answer.js.map +1 -1
  25. package/es/map-state-to-props/test/header.js +0 -2
  26. package/es/map-state-to-props/test/header.js.map +1 -1
  27. package/es/map-state-to-props/test/index.js +22 -29
  28. package/es/map-state-to-props/test/index.js.map +1 -1
  29. package/es/map-state-to-props/test/player.js +6 -19
  30. package/es/map-state-to-props/test/player.js.map +1 -1
  31. package/es/map-state-to-props/test/popin-correction.create-header-cta.js +0 -15
  32. package/es/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
  33. package/es/map-state-to-props/test/popin-correction.js +0 -8
  34. package/es/map-state-to-props/test/popin-correction.js.map +1 -1
  35. package/es/map-state-to-props/test/popin-end.js +0 -13
  36. package/es/map-state-to-props/test/popin-end.js.map +1 -1
  37. package/es/map-state-to-props/test/popin-error.js.map +1 -1
  38. package/es/map-state-to-props/test/resources.js +0 -2
  39. package/es/map-state-to-props/test/resources.js.map +1 -1
  40. package/es/run-app.js +0 -2
  41. package/es/run-app.js.map +1 -1
  42. package/es/store.js +0 -4
  43. package/es/store.js.map +1 -1
  44. package/es/test/add-timeout.js.map +1 -1
  45. package/es/test/helpers/css-register.js.map +1 -1
  46. package/es/test/helpers/macro.js +0 -1
  47. package/es/test/helpers/macro.js.map +1 -1
  48. package/es/test/index.js.map +1 -1
  49. package/es/test/init-reducers.js.map +1 -1
  50. package/es/test/locales.js.map +1 -1
  51. package/es/test/run-app.js.map +1 -1
  52. package/es/test/store.js.map +1 -1
  53. package/es/views/index.js.map +1 -1
  54. package/es/views/test/helpers/render.js +0 -2
  55. package/es/views/test/helpers/render.js.map +1 -1
  56. package/es/views/test/helpers/state-to-vnode.js +0 -2
  57. package/es/views/test/helpers/state-to-vnode.js.map +1 -1
  58. package/es/views/test/loading.js.map +1 -1
  59. package/es/views/test/popin-correction.js +0 -6
  60. package/es/views/test/popin-correction.js.map +1 -1
  61. package/es/views/test/popin-end.js.map +1 -1
  62. package/es/views/test/router.js.map +1 -1
  63. package/es/views/test/slide.js +0 -1
  64. package/es/views/test/slide.js.map +1 -1
  65. package/lib/index.js +2 -18
  66. package/lib/index.js.map +1 -1
  67. package/lib/map-state-to-props/answer.js +1 -47
  68. package/lib/map-state-to-props/answer.js.map +1 -1
  69. package/lib/map-state-to-props/error-popin.js +2 -10
  70. package/lib/map-state-to-props/error-popin.js.map +1 -1
  71. package/lib/map-state-to-props/header.js +5 -19
  72. package/lib/map-state-to-props/header.js.map +1 -1
  73. package/lib/map-state-to-props/index.js +1 -19
  74. package/lib/map-state-to-props/index.js.map +1 -1
  75. package/lib/map-state-to-props/loading.js +1 -4
  76. package/lib/map-state-to-props/loading.js.map +1 -1
  77. package/lib/map-state-to-props/player.js +2 -22
  78. package/lib/map-state-to-props/player.js.map +1 -1
  79. package/lib/map-state-to-props/popin-correction.js +1 -32
  80. package/lib/map-state-to-props/popin-correction.js.map +1 -1
  81. package/lib/map-state-to-props/popin-end.js +8 -47
  82. package/lib/map-state-to-props/popin-end.js.map +1 -1
  83. package/lib/map-state-to-props/resources.js +6 -20
  84. package/lib/map-state-to-props/resources.js.map +1 -1
  85. package/lib/map-state-to-props/slide.js +2 -11
  86. package/lib/map-state-to-props/slide.js.map +1 -1
  87. package/lib/map-state-to-props/test/answer.js +1 -37
  88. package/lib/map-state-to-props/test/answer.js.map +1 -1
  89. package/lib/map-state-to-props/test/header.js +1 -12
  90. package/lib/map-state-to-props/test/header.js.map +1 -1
  91. package/lib/map-state-to-props/test/index.js +23 -20
  92. package/lib/map-state-to-props/test/index.js.map +1 -1
  93. package/lib/map-state-to-props/test/player.js +12 -52
  94. package/lib/map-state-to-props/test/player.js.map +1 -1
  95. package/lib/map-state-to-props/test/popin-correction.create-header-cta.js +1 -27
  96. package/lib/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
  97. package/lib/map-state-to-props/test/popin-correction.js +1 -11
  98. package/lib/map-state-to-props/test/popin-correction.js.map +1 -1
  99. package/lib/map-state-to-props/test/popin-end.js +1 -26
  100. package/lib/map-state-to-props/test/popin-end.js.map +1 -1
  101. package/lib/map-state-to-props/test/popin-error.js +1 -6
  102. package/lib/map-state-to-props/test/popin-error.js.map +1 -1
  103. package/lib/map-state-to-props/test/resources.js +1 -11
  104. package/lib/map-state-to-props/test/resources.js.map +1 -1
  105. package/lib/run-app.js +1 -5
  106. package/lib/run-app.js.map +1 -1
  107. package/lib/store.js +1 -11
  108. package/lib/store.js.map +1 -1
  109. package/lib/test/add-timeout.js +1 -4
  110. package/lib/test/add-timeout.js.map +1 -1
  111. package/lib/test/helpers/css-register.js +1 -3
  112. package/lib/test/helpers/css-register.js.map +1 -1
  113. package/lib/test/helpers/macro.js +1 -4
  114. package/lib/test/helpers/macro.js.map +1 -1
  115. package/lib/test/index.js +3 -12
  116. package/lib/test/index.js.map +1 -1
  117. package/lib/test/init-reducers.js +1 -5
  118. package/lib/test/init-reducers.js.map +1 -1
  119. package/lib/test/locales.js +1 -8
  120. package/lib/test/locales.js.map +1 -1
  121. package/lib/test/run-app.js +1 -5
  122. package/lib/test/run-app.js.map +1 -1
  123. package/lib/test/store.js +1 -5
  124. package/lib/test/store.js.map +1 -1
  125. package/lib/views/index.js +2 -9
  126. package/lib/views/index.js.map +1 -1
  127. package/lib/views/test/helpers/render.js +2 -10
  128. package/lib/views/test/helpers/render.js.map +1 -1
  129. package/lib/views/test/helpers/state-to-vnode.js +1 -6
  130. package/lib/views/test/helpers/state-to-vnode.js.map +1 -1
  131. package/lib/views/test/loading.js +1 -5
  132. package/lib/views/test/loading.js.map +1 -1
  133. package/lib/views/test/popin-correction.js +1 -18
  134. package/lib/views/test/popin-correction.js.map +1 -1
  135. package/lib/views/test/popin-end.js +1 -10
  136. package/lib/views/test/popin-end.js.map +1 -1
  137. package/lib/views/test/router.js +1 -8
  138. package/lib/views/test/router.js.map +1 -1
  139. package/lib/views/test/slide.js +3 -23
  140. package/lib/views/test/slide.js.map +1 -1
  141. package/package.json +13 -14
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","useButtonTag","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"sources":["../../src/map-state-to-props/player.js"],"sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n 'aria-label': `${translate('Validate')}. ${translate('Submit your Answer')}`,\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state),\n useButtonTag: true\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"mappings":"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"}
1
+ {"version":3,"file":"player.js","names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","_get","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","_isEmpty","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","_includes","ctaButtonValidate","submitValue","light","small","name","secondary","useButtonTag","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","_isNil","showReviewLesson","header"],"sources":["../../src/map-state-to-props/player.js"],"sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n 'aria-label': `${translate('Validate')}. ${translate('Submit your Answer')}`,\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state),\n useButtonTag: true\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"mappings":"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","ignoreList":[]}
@@ -10,51 +10,35 @@ import _assign from "lodash/fp/assign";
10
10
  import { acceptExtraLife, getCurrentCorrection, getCurrentProgression, getCurrentProgressionId, getCurrentSlide, getEngineConfig, getLives, getPreviousSlide, hasViewedAResourceAtThisStep, openAssistance, refuseExtraLife, selectProgression, toggleAccordion } from '@coorpacademy/player-store';
11
11
  import getResourcesProps from './resources';
12
12
  import mapStateToErrorPopinProps from './error-popin';
13
-
14
13
  const isNewChapter = (state, progression) => {
15
14
  if (progression.content.type !== 'level' || _includes(progression.state.nextContent.type, ['success', 'failure'])) {
16
15
  return false;
17
16
  }
18
-
19
17
  const currentSlide = getCurrentSlide(state);
20
-
21
18
  const currentChapterId = _get('chapter_id', currentSlide);
22
-
23
19
  const previousSlide = getPreviousSlide(state);
24
-
25
20
  const previousChapterId = _get('chapter_id', previousSlide);
26
-
27
21
  return previousChapterId !== currentChapterId;
28
22
  };
29
-
30
23
  const getNextChapterTitle = (state, progression) => {
31
24
  const levelId = _get('content.ref', progression);
32
-
33
25
  const chapterIds = _get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);
34
-
35
26
  if (!chapterIds) {
36
27
  return undefined;
37
28
  }
38
-
39
29
  const currentSlide = getCurrentSlide(state);
40
-
41
30
  const currentChapterId = _get('chapter_id', currentSlide);
42
-
43
31
  const currentChapterName = _get(['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'], state);
44
-
45
32
  if (!currentChapterName) {
46
33
  return undefined;
47
34
  }
48
-
49
35
  const indexChapter = _indexOf(currentChapterId, chapterIds) + 1;
50
36
  return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;
51
37
  };
52
-
53
38
  const getNextStepTitle = state => {
54
39
  const progression = getCurrentProgression(state);
55
40
  return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;
56
41
  };
57
-
58
42
  const extraLifeCTAProps = ({
59
43
  translate
60
44
  }, {
@@ -68,7 +52,6 @@ const extraLifeCTAProps = ({
68
52
  onClick: () => dispatch(updateProgression(progressionId))
69
53
  };
70
54
  };
71
-
72
55
  const noExtraLifeCTAProps = ({
73
56
  translate
74
57
  }, {
@@ -85,7 +68,6 @@ const noExtraLifeCTAProps = ({
85
68
  };
86
69
  return _omitBy(_isUndefined, ctaProps);
87
70
  };
88
-
89
71
  export const createHeaderCTA = (options, store) => {
90
72
  const extraLifeCTAProps_ = extraLifeCTAProps(options, store);
91
73
  const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);
@@ -116,25 +98,18 @@ export const popinCorrectionStateToProps = (options, store) => {
116
98
  const {
117
99
  dispatch
118
100
  } = store;
119
-
120
101
  const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));
121
-
122
102
  const slide = getPreviousSlide(state);
123
103
  const engineConfig = getEngineConfig(state);
124
104
  const progression = getCurrentProgression(state);
125
105
  const isExtraLifeAvailable = _get('remainingLifeRequests', engineConfig) > 0;
126
-
127
106
  const remainingLifeRequests = _get('state.remainingLifeRequests', progression);
128
-
129
107
  const accordion = _get('ui.corrections.accordion', state);
130
-
131
108
  const correction = getCurrentCorrection(state);
132
109
  const correctAnswer = correction.correctAnswer;
133
110
  const corrections = correction.corrections;
134
111
  const isCorrect = corrections.length === 0 ? null : _get('state.isCorrect')(progression);
135
-
136
112
  const isLoading = _isNil(isCorrect);
137
-
138
113
  const isExtraLifeActive = _get('state.nextContent.ref', progression) === 'extraLife';
139
114
  const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);
140
115
  const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;
@@ -1 +1 @@
1
- {"version":3,"file":"popin-correction.js","names":["acceptExtraLife","getCurrentCorrection","getCurrentProgression","getCurrentProgressionId","getCurrentSlide","getEngineConfig","getLives","getPreviousSlide","hasViewedAResourceAtThisStep","openAssistance","refuseExtraLife","selectProgression","toggleAccordion","getResourcesProps","mapStateToErrorPopinProps","isNewChapter","state","progression","content","type","nextContent","currentSlide","currentChapterId","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","answerPrefix","answer","resources","cta","gameOver","popinError","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"sources":["../../src/map-state-to-props/popin-correction.js"],"sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps =\n ({translate}, {dispatch}) =>\n state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n };\n\nconst noExtraLifeCTAProps =\n ({translate}, {dispatch}) =>\n state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n };\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"popin-correction.js","names":["acceptExtraLife","getCurrentCorrection","getCurrentProgression","getCurrentProgressionId","getCurrentSlide","getEngineConfig","getLives","getPreviousSlide","hasViewedAResourceAtThisStep","openAssistance","refuseExtraLife","selectProgression","toggleAccordion","getResourcesProps","mapStateToErrorPopinProps","isNewChapter","state","progression","content","type","_includes","nextContent","currentSlide","currentChapterId","_get","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","_indexOf","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","_omitBy","_isUndefined","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","_isNil","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","_getOr","answerPrefix","answer","_join","resources","_assign","cta","gameOver","popinError","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"sources":["../../src/map-state-to-props/popin-correction.js"],"sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps =\n ({translate}, {dispatch}) =>\n state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n };\n\nconst noExtraLifeCTAProps =\n ({translate}, {dispatch}) =>\n state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n };\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -10,17 +10,12 @@ import _getOr from "lodash/fp/getOr";
10
10
  import _get from "lodash/fp/get";
11
11
  import _constant from "lodash/fp/constant";
12
12
  import _cond from "lodash/fp/cond";
13
-
14
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
-
16
13
  import { editComment, exit, getBestScore, getCurrentContent, getCurrentExitNode, getCurrentProgression, getCurrentProgressionId, getEndRank, getLives, getNextContent, getRecommendations, getStartRank, isCommentSent, isCurrentEngineLearner, isCurrentEngineMicrolearning, nextLevel, openRecommendation, postComment, retry, seeComment, getRedirectURLAfterEnd } from '@coorpacademy/player-store';
17
14
  import headerProps from './header';
18
15
  import mapStateToErrorPopinProps from './error-popin';
19
-
20
16
  const extractRank = state => {
21
17
  const start = getStartRank(state);
22
18
  const end = getEndRank(state);
23
-
24
19
  if (start === end) {
25
20
  return null;
26
21
  } else {
@@ -29,16 +24,12 @@ const extractRank = state => {
29
24
  return `${sign}${diff}`;
30
25
  }
31
26
  };
32
-
33
27
  const extractStars = state => {
34
28
  const progression = getCurrentProgression(state);
35
-
36
29
  const stars = _get('state.stars')(progression);
37
-
38
30
  const bestScore = getBestScore(state);
39
31
  return stars > bestScore ? `+${stars - bestScore}` : '+0';
40
32
  };
41
-
42
33
  const comment = ({
43
34
  translate
44
35
  }, {
@@ -46,9 +37,7 @@ const comment = ({
46
37
  }) => state => {
47
38
  const progressionId = getCurrentProgressionId(state);
48
39
  const content = getCurrentContent(state);
49
-
50
40
  const message = _get('ui.comments.text', state);
51
-
52
41
  return {
53
42
  isSent: isCommentSent(state),
54
43
  confirmation: {
@@ -65,7 +54,6 @@ const comment = ({
65
54
  }
66
55
  };
67
56
  };
68
-
69
57
  const ctaForFail = (redirection, translate, dispatch, state) => {
70
58
  if (redirection) {
71
59
  return {
@@ -73,13 +61,11 @@ const ctaForFail = (redirection, translate, dispatch, state) => {
73
61
  title: translate('Click to continue')
74
62
  };
75
63
  }
76
-
77
64
  return {
78
65
  onClick: () => dispatch(retry),
79
66
  title: isCurrentEngineMicrolearning(state) ? translate('Retry chapter') : translate('Retry level')
80
67
  };
81
68
  };
82
-
83
69
  const summaryHeader = ({
84
70
  translate
85
71
  }, {
@@ -95,20 +81,16 @@ const summaryHeader = ({
95
81
  onClick: () => dispatch(exit)
96
82
  };
97
83
  const redirection = getRedirectURLAfterEnd(state);
98
-
99
84
  if (redirection) {
100
85
  successCta = {
101
86
  title: translate('Click to continue'),
102
87
  href: redirection
103
88
  };
104
89
  }
105
-
106
90
  if (isCurrentEngineLearner(state) && !redirection) {
107
91
  const level = _get('level', getCurrentContent(state));
108
-
109
92
  if (level === 'advanced' || level === 'base') {
110
93
  const _nextLevel = getNextContent(state);
111
-
112
94
  if (_nextLevel) {
113
95
  successCta = {
114
96
  title: translate('Next level'),
@@ -118,7 +100,6 @@ const summaryHeader = ({
118
100
  }
119
101
  }
120
102
  }
121
-
122
103
  return _cond([[_pipe(_get('type'), _isEqual('success')), () => ({
123
104
  type: 'popinEnd',
124
105
  title: _getOr('', 'name')(getCurrentContent(state)),
@@ -140,30 +121,25 @@ const summaryHeader = ({
140
121
  type: 'popinEnd'
141
122
  })]]);
142
123
  };
143
-
144
124
  const extractRecommendation = ({
145
125
  translate
146
126
  }, {
147
127
  dispatch
148
128
  }) => state => {
149
129
  const _recommendations = getRecommendations(state);
150
-
151
130
  const hasRecommendations = _isNull(_recommendations) || _isArray(_recommendations);
152
-
153
131
  if (!hasRecommendations) {
154
132
  return null;
155
133
  }
156
-
157
- const recommendations = _map(recommendation => _extends({}, recommendation, {
134
+ const recommendations = _map(recommendation => ({
135
+ ...recommendation,
158
136
  onClick: () => dispatch(openRecommendation(recommendation))
159
137
  }), _recommendations);
160
-
161
138
  return {
162
139
  title: translate('Related subjects'),
163
140
  cards: recommendations
164
141
  };
165
142
  };
166
-
167
143
  const extractAction = ({
168
144
  translate
169
145
  }, {
@@ -172,11 +148,12 @@ const extractAction = ({
172
148
  const nextContent = getNextContent(state);
173
149
  return _cond([[_pipe(_get('type'), _isEqual('success')), () => {
174
150
  if (_get('nextContentType', nextContent) === 'chapter') {
175
- return _extends({
151
+ return {
176
152
  type: 'nextCourse',
177
153
  description: translate('Check out the next chapter in this course!'),
178
- prefix: translate('Next chapter_')
179
- }, nextContent);
154
+ prefix: translate('Next chapter_'),
155
+ ...nextContent
156
+ };
180
157
  } else if (nextContent) {
181
158
  // then it is a level
182
159
  const {
@@ -196,13 +173,10 @@ const extractAction = ({
196
173
  }
197
174
  }], [_pipe(_get('type'), _isEqual('failure')), () => {
198
175
  const currentContent = getCurrentContent(state);
199
-
200
176
  let title = _getOr('', 'name', currentContent);
201
-
202
177
  if (isCurrentEngineLearner(state)) {
203
178
  title = `${_getOr('', 'name', currentContent)} - ${_getOr('', 'levelTranslation', currentContent)}`;
204
179
  }
205
-
206
180
  return {
207
181
  type: 'simple',
208
182
  prefix: isCurrentEngineMicrolearning(state) ? translate('Retry chapter_') : translate('Retry level_'),
@@ -214,9 +188,7 @@ const extractAction = ({
214
188
  };
215
189
  }], [_constant(true), _constant(null)]]);
216
190
  };
217
-
218
191
  const extractFeedback = _pipe(_pick(['title', 'description', 'media', 'mediaDescription']), _omit(['media.ref', 'media.subtitles', 'media.posters']));
219
-
220
192
  const popinEndStateToProps = (options, store) => {
221
193
  const headerProps_ = headerProps(options, store);
222
194
  const summaryHeader_ = summaryHeader(options, store);
@@ -253,6 +225,5 @@ const popinEndStateToProps = (options, store) => {
253
225
  return props;
254
226
  };
255
227
  };
256
-
257
228
  export default popinEndStateToProps;
258
229
  //# sourceMappingURL=popin-end.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popin-end.js","names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","mapStateToErrorPopinProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","popinError","summary","action","feedback"],"sources":["../../src/map-state-to-props/popin-end.js"],"sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment =\n ({translate}, {dispatch}) =>\n state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n };\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader =\n ({translate}, {dispatch}) =>\n state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n };\n\nconst extractRecommendation =\n ({translate}, {dispatch}) =>\n state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n };\n\nconst extractAction =\n ({translate}, {dispatch}) =>\n state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n };\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"mappings":"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"}
1
+ {"version":3,"file":"popin-end.js","names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","mapStateToErrorPopinProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","_get","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","_isEmpty","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","_cond","_pipe","_isEqual","type","_getOr","subtitle","failed","rank","cta","_constant","extractRecommendation","_recommendations","hasRecommendations","_isNull","_isArray","recommendations","_map","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","_pick","_omit","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","popinError","summary","action","feedback"],"sources":["../../src/map-state-to-props/popin-end.js"],"sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment =\n ({translate}, {dispatch}) =>\n state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n };\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader =\n ({translate}, {dispatch}) =>\n state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n };\n\nconst extractRecommendation =\n ({translate}, {dispatch}) =>\n state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n };\n\nconst extractAction =\n ({translate}, {dispatch}) =>\n state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n };\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"mappings":"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","ignoreList":[]}
@@ -5,18 +5,14 @@ import _pipe from "lodash/fp/pipe";
5
5
  import _map from "lodash/fp/map";
6
6
  import _isEmpty from "lodash/fp/isEmpty";
7
7
  import _getOr from "lodash/fp/getOr";
8
-
9
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
10
-
11
8
  import { ended, getResourceToPlay, pause, play, resume, selectResource } from '@coorpacademy/player-store';
12
-
13
9
  const getResourcesProps = (options, store) => (state, slide) => {
14
10
  const {
15
11
  dispatch
16
12
  } = store;
17
13
  const resourceToPlay = getResourceToPlay(state);
18
-
19
- const lessons = _pipe(_getOr([], 'lessons'), _map(lesson => _extends({}, _omit(['id', 'ref'], lesson), {
14
+ const lessons = _pipe(_getOr([], 'lessons'), _map(lesson => ({
15
+ ..._omit(['id', 'ref'], lesson),
20
16
  onClick: () => dispatch(selectResource(lesson._id)),
21
17
  onPlay: () => dispatch(play()),
22
18
  onResume: () => dispatch(resume(lesson)),
@@ -24,16 +20,14 @@ const getResourcesProps = (options, store) => (state, slide) => {
24
20
  onEnded: () => dispatch(ended(lesson)),
25
21
  selected: lesson._id === resourceToPlay
26
22
  })))(slide);
27
-
28
23
  if (_isEmpty(lessons) || _some({
29
24
  selected: true
30
25
  }, lessons)) {
31
26
  return lessons;
32
- } // If there are lessons but none are selected, force select the first one
33
-
27
+ }
34
28
 
29
+ // If there are lessons but none are selected, force select the first one
35
30
  return _set([0, 'selected'], true, lessons);
36
31
  };
37
-
38
32
  export default getResourcesProps;
39
33
  //# sourceMappingURL=resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","names":["ended","getResourceToPlay","pause","play","resume","selectResource","getResourcesProps","options","store","state","slide","dispatch","resourceToPlay","lessons","lesson","onClick","_id","onPlay","onResume","onPause","onEnded","selected"],"sources":["../../src/map-state-to-props/resources.js"],"sourcesContent":["import {getOr, isEmpty, map, pipe, set, some, omit} from 'lodash/fp';\n\nimport {\n ended,\n getResourceToPlay,\n pause,\n play,\n resume,\n selectResource\n} from '@coorpacademy/player-store';\n\nconst getResourcesProps = (options, store) => (state, slide) => {\n const {dispatch} = store;\n const resourceToPlay = getResourceToPlay(state);\n\n const lessons = pipe(\n getOr([], 'lessons'),\n map(lesson => ({\n ...omit(['id', 'ref'], lesson),\n onClick: () => dispatch(selectResource(lesson._id)),\n onPlay: () => dispatch(play()),\n onResume: () => dispatch(resume(lesson)),\n onPause: () => dispatch(pause(lesson)),\n onEnded: () => dispatch(ended(lesson)),\n selected: lesson._id === resourceToPlay\n }))\n )(slide);\n\n if (isEmpty(lessons) || some({selected: true}, lessons)) {\n return lessons;\n }\n\n // If there are lessons but none are selected, force select the first one\n return set([0, 'selected'], true, lessons);\n};\n\nexport default getResourcesProps;\n"],"mappings":";;;;;;;;;;AAEA,SACEA,KADF,EAEEC,iBAFF,EAGEC,KAHF,EAIEC,IAJF,EAKEC,MALF,EAMEC,cANF,QAOO,4BAPP;;AASA,MAAMC,iBAAiB,GAAG,CAACC,OAAD,EAAUC,KAAV,KAAoB,CAACC,KAAD,EAAQC,KAAR,KAAkB;EAC9D,MAAM;IAACC;EAAD,IAAaH,KAAnB;EACA,MAAMI,cAAc,GAAGX,iBAAiB,CAACQ,KAAD,CAAxC;;EAEA,MAAMI,OAAO,GAAG,MACd,OAAM,EAAN,EAAU,SAAV,CADc,EAEd,KAAIC,MAAM,iBACL,MAAK,CAAC,IAAD,EAAO,KAAP,CAAL,EAAoBA,MAApB,CADK;IAERC,OAAO,EAAE,MAAMJ,QAAQ,CAACN,cAAc,CAACS,MAAM,CAACE,GAAR,CAAf,CAFf;IAGRC,MAAM,EAAE,MAAMN,QAAQ,CAACR,IAAI,EAAL,CAHd;IAIRe,QAAQ,EAAE,MAAMP,QAAQ,CAACP,MAAM,CAACU,MAAD,CAAP,CAJhB;IAKRK,OAAO,EAAE,MAAMR,QAAQ,CAACT,KAAK,CAACY,MAAD,CAAN,CALf;IAMRM,OAAO,EAAE,MAAMT,QAAQ,CAACX,KAAK,CAACc,MAAD,CAAN,CANf;IAORO,QAAQ,EAAEP,MAAM,CAACE,GAAP,KAAeJ;EAPjB,EAAV,CAFc,EAWdF,KAXc,CAAhB;;EAaA,IAAI,SAAQG,OAAR,KAAoB,MAAK;IAACQ,QAAQ,EAAE;EAAX,CAAL,EAAuBR,OAAvB,CAAxB,EAAyD;IACvD,OAAOA,OAAP;EACD,CAnB6D,CAqB9D;;;EACA,OAAO,KAAI,CAAC,CAAD,EAAI,UAAJ,CAAJ,EAAqB,IAArB,EAA2BA,OAA3B,CAAP;AACD,CAvBD;;AAyBA,eAAeP,iBAAf"}
1
+ {"version":3,"file":"resources.js","names":["ended","getResourceToPlay","pause","play","resume","selectResource","getResourcesProps","options","store","state","slide","dispatch","resourceToPlay","lessons","_pipe","_getOr","_map","lesson","_omit","onClick","_id","onPlay","onResume","onPause","onEnded","selected","_isEmpty","_some","_set"],"sources":["../../src/map-state-to-props/resources.js"],"sourcesContent":["import {getOr, isEmpty, map, pipe, set, some, omit} from 'lodash/fp';\n\nimport {\n ended,\n getResourceToPlay,\n pause,\n play,\n resume,\n selectResource\n} from '@coorpacademy/player-store';\n\nconst getResourcesProps = (options, store) => (state, slide) => {\n const {dispatch} = store;\n const resourceToPlay = getResourceToPlay(state);\n\n const lessons = pipe(\n getOr([], 'lessons'),\n map(lesson => ({\n ...omit(['id', 'ref'], lesson),\n onClick: () => dispatch(selectResource(lesson._id)),\n onPlay: () => dispatch(play()),\n onResume: () => dispatch(resume(lesson)),\n onPause: () => dispatch(pause(lesson)),\n onEnded: () => dispatch(ended(lesson)),\n selected: lesson._id === resourceToPlay\n }))\n )(slide);\n\n if (isEmpty(lessons) || some({selected: true}, lessons)) {\n return lessons;\n }\n\n // If there are lessons but none are selected, force select the first one\n return set([0, 'selected'], true, lessons);\n};\n\nexport default getResourcesProps;\n"],"mappings":";;;;;;;AAEA,SACEA,KAAK,EACLC,iBAAiB,EACjBC,KAAK,EACLC,IAAI,EACJC,MAAM,EACNC,cAAc,QACT,4BAA4B;AAEnC,MAAMC,iBAAiB,GAAGA,CAACC,OAAO,EAAEC,KAAK,KAAK,CAACC,KAAK,EAAEC,KAAK,KAAK;EAC9D,MAAM;IAACC;EAAQ,CAAC,GAAGH,KAAK;EACxB,MAAMI,cAAc,GAAGX,iBAAiB,CAACQ,KAAK,CAAC;EAE/C,MAAMI,OAAO,GAAGC,KAAA,CACdC,MAAA,CAAM,EAAE,EAAE,SAAS,CAAC,EACpBC,IAAA,CAAIC,MAAM,KAAK;IACb,GAAGC,KAAA,CAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAED,MAAM,CAAC;IAC9BE,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAACN,cAAc,CAACY,MAAM,CAACG,GAAG,CAAC,CAAC;IACnDC,MAAM,EAAEA,CAAA,KAAMV,QAAQ,CAACR,IAAI,CAAC,CAAC,CAAC;IAC9BmB,QAAQ,EAAEA,CAAA,KAAMX,QAAQ,CAACP,MAAM,CAACa,MAAM,CAAC,CAAC;IACxCM,OAAO,EAAEA,CAAA,KAAMZ,QAAQ,CAACT,KAAK,CAACe,MAAM,CAAC,CAAC;IACtCO,OAAO,EAAEA,CAAA,KAAMb,QAAQ,CAACX,KAAK,CAACiB,MAAM,CAAC,CAAC;IACtCQ,QAAQ,EAAER,MAAM,CAACG,GAAG,KAAKR;EAC3B,CAAC,CAAC,CACJ,CAAC,CAACF,KAAK,CAAC;EAER,IAAIgB,QAAA,CAAQb,OAAO,CAAC,IAAIc,KAAA,CAAK;IAACF,QAAQ,EAAE;EAAI,CAAC,EAAEZ,OAAO,CAAC,EAAE;IACvD,OAAOA,OAAO;EAChB;;EAEA;EACA,OAAOe,IAAA,CAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAEf,OAAO,CAAC;AAC5C,CAAC;AAED,eAAeP,iBAAiB","ignoreList":[]}
@@ -3,13 +3,11 @@ import _mapValues from "lodash/fp/mapValues";
3
3
  import _ from "lodash/fp/__";
4
4
  import createPlayerStateToProps from './player';
5
5
  import mapStateToErrorPopinProps from './error-popin';
6
-
7
6
  const playerProps = (options, dispatch) => {
8
7
  return _pipe(state => mapStateToProps => mapStateToProps(state), _mapValues(_, {
9
8
  player: createPlayerStateToProps(options, dispatch),
10
9
  popin: mapStateToErrorPopinProps(dispatch)
11
10
  }));
12
11
  };
13
-
14
12
  export default playerProps;
15
13
  //# sourceMappingURL=slide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slide.js","names":["createPlayerStateToProps","mapStateToErrorPopinProps","playerProps","options","dispatch","state","mapStateToProps","player","popin"],"sources":["../../src/map-state-to-props/slide.js"],"sourcesContent":["import {__, mapValues, pipe} from 'lodash/fp';\n\nimport createPlayerStateToProps from './player';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst playerProps = (options, dispatch) => {\n return pipe(\n state => mapStateToProps => mapStateToProps(state),\n mapValues(__, {\n player: createPlayerStateToProps(options, dispatch),\n popin: mapStateToErrorPopinProps(dispatch)\n })\n );\n};\n\nexport default playerProps;\n"],"mappings":";;;AAEA,OAAOA,wBAAP,MAAqC,UAArC;AACA,OAAOC,yBAAP,MAAsC,eAAtC;;AAEA,MAAMC,WAAW,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;EACzC,OAAO,MACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAD,CADtC,EAEL,cAAc;IACZE,MAAM,EAAEP,wBAAwB,CAACG,OAAD,EAAUC,QAAV,CADpB;IAEZI,KAAK,EAAEP,yBAAyB,CAACG,QAAD;EAFpB,CAAd,CAFK,CAAP;AAOD,CARD;;AAUA,eAAeF,WAAf"}
1
+ {"version":3,"file":"slide.js","names":["createPlayerStateToProps","mapStateToErrorPopinProps","playerProps","options","dispatch","_pipe","state","mapStateToProps","_mapValues","_","player","popin"],"sources":["../../src/map-state-to-props/slide.js"],"sourcesContent":["import {__, mapValues, pipe} from 'lodash/fp';\n\nimport createPlayerStateToProps from './player';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst playerProps = (options, dispatch) => {\n return pipe(\n state => mapStateToProps => mapStateToProps(state),\n mapValues(__, {\n player: createPlayerStateToProps(options, dispatch),\n popin: mapStateToErrorPopinProps(dispatch)\n })\n );\n};\n\nexport default playerProps;\n"],"mappings":";;;AAEA,OAAOA,wBAAwB,MAAM,UAAU;AAC/C,OAAOC,yBAAyB,MAAM,eAAe;AAErD,MAAMC,WAAW,GAAGA,CAACC,OAAO,EAAEC,QAAQ,KAAK;EACzC,OAAOC,KAAA,CACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAK,CAAC,EAClDE,UAAA,CAAAC,CAAA,EAAc;IACZC,MAAM,EAAEV,wBAAwB,CAACG,OAAO,EAAEC,QAAQ,CAAC;IACnDO,KAAK,EAAEV,yBAAyB,CAACG,QAAQ;EAC3C,CAAC,CACH,CAAC;AACH,CAAC;AAED,eAAeF,WAAW","ignoreList":[]}