@coorpacademy/components 10.19.13-alpha.8 → 10.21.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 (45) hide show
  1. package/README.md +5 -0
  2. package/es/molecule/review-header-steps/index.js +4 -2
  3. package/es/molecule/review-header-steps/index.js.map +1 -1
  4. package/es/template/app-review/slides/index.js +100 -84
  5. package/es/template/app-review/slides/index.js.map +1 -1
  6. package/es/template/app-review/slides/index.native.js +4 -4
  7. package/es/template/app-review/slides/index.native.js.map +1 -1
  8. package/es/template/app-review/slides/prop-types.js +62 -18
  9. package/es/template/app-review/slides/prop-types.js.map +1 -1
  10. package/es/template/app-review/slides/style.css +2 -0
  11. package/lib/molecule/review-header-steps/index.js +6 -2
  12. package/lib/molecule/review-header-steps/index.js.map +1 -1
  13. package/lib/template/app-review/slides/index.js +104 -84
  14. package/lib/template/app-review/slides/index.js.map +1 -1
  15. package/lib/template/app-review/slides/index.native.js +4 -4
  16. package/lib/template/app-review/slides/index.native.js.map +1 -1
  17. package/lib/template/app-review/slides/prop-types.js +65 -18
  18. package/lib/template/app-review/slides/prop-types.js.map +1 -1
  19. package/lib/template/app-review/slides/style.css +2 -0
  20. package/locales/bs/global.json +4 -4
  21. package/locales/cs/global.json +4 -4
  22. package/locales/de/global.json +4 -4
  23. package/locales/en/global.json +4 -4
  24. package/locales/es/global.json +4 -4
  25. package/locales/et/global.json +4 -4
  26. package/locales/fr/global.json +5 -5
  27. package/locales/hr/global.json +4 -4
  28. package/locales/hu/global.json +4 -4
  29. package/locales/hy/global.json +4 -4
  30. package/locales/it/global.json +2 -2
  31. package/locales/ja/global.json +3 -3
  32. package/locales/ko/global.json +4 -4
  33. package/locales/nl/global.json +4 -4
  34. package/locales/pl/global.json +4 -4
  35. package/locales/pt/global.json +4 -4
  36. package/locales/ro/global.json +4 -4
  37. package/locales/ru/global.json +4 -4
  38. package/locales/sk/global.json +3 -3
  39. package/locales/tl/global.json +4 -4
  40. package/locales/tr/global.json +4 -4
  41. package/locales/uk/global.json +4 -4
  42. package/locales/vi/global.json +3 -3
  43. package/locales/zh/global.json +4 -4
  44. package/locales/zh_TW/global.json +3 -3
  45. package/package.json +11 -10
@@ -1,3 +1,5 @@
1
+ function _extends() { _extends = Object.assign || 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); }
2
+
1
3
  import PropTypes from 'prop-types';
2
4
  import omit from 'lodash/fp/omit';
3
5
  import ReviewCongrats from '../../../organism/review-congrats';
@@ -5,16 +7,57 @@ import ReviewCorrectionPopin from '../../../molecule/review-correction-popin';
5
7
  import ReviewBackground from '../../../atom/review-background';
6
8
  import ReviewHeader from '../../../organism/review-header';
7
9
  import Answer from '../../../molecule/answer';
10
+ const NextSlideProp = PropTypes.shape({
11
+ hidden: PropTypes.bool,
12
+ position: PropTypes.number,
13
+ // 'unstack' | 'restack'
14
+ animationType: PropTypes.string,
15
+ // 'success' | 'failure'
16
+ validationResult: PropTypes.string,
17
+ endReview: PropTypes.bool,
18
+ questionText: PropTypes.string,
19
+ answerUI: Answer
20
+ });
21
+ const SlideProp = PropTypes.shape(_extends(_extends({}, NextSlideProp.props), {}, {
22
+ nextSlide: NextSlideProp
23
+ }));
24
+ const StepItemProp = PropTypes.shape({
25
+ current: PropTypes.bool,
26
+ icon: PropTypes.string,
27
+ value: PropTypes.string
28
+ });
8
29
  export const SlidesReviewPropTypes = {
9
30
  headerProps: PropTypes.shape(omit('steps', ReviewHeader.propTypes)),
10
31
  reviewBackgroundAriaLabel: ReviewBackground.propTypes['aria-label'],
11
32
  validate: PropTypes.shape({
12
33
  label: PropTypes.string
13
34
  }),
14
- slides: PropTypes.instanceOf(Map),
15
- finishedSlides: PropTypes.instanceOf(Map),
16
- stepItems: PropTypes.instanceOf(Map),
17
- reviewStatus: PropTypes.oneOfType(['finished', 'ongoing']),
35
+ slides: PropTypes.shape({
36
+ slideNumbers: PropTypes.arrayOf(PropTypes.number),
37
+ 0: SlideProp,
38
+ 1: SlideProp,
39
+ 2: SlideProp,
40
+ 3: SlideProp,
41
+ 4: SlideProp
42
+ }),
43
+ finishedSlides: PropTypes.shape({
44
+ slideNumbers: PropTypes.arrayOf(PropTypes.number),
45
+ 0: PropTypes.bool,
46
+ 1: PropTypes.bool,
47
+ 2: PropTypes.bool,
48
+ 3: PropTypes.bool,
49
+ 4: PropTypes.bool
50
+ }),
51
+ stepItems: PropTypes.shape({
52
+ slideNumbers: PropTypes.arrayOf(PropTypes.number),
53
+ 0: StepItemProp,
54
+ 1: StepItemProp,
55
+ 2: StepItemProp,
56
+ 3: StepItemProp,
57
+ 4: StepItemProp
58
+ }),
59
+ // 'finished' | 'ongoing'
60
+ reviewStatus: PropTypes.string,
18
61
  correctionPopinProps: PropTypes.shape({
19
62
  // ---------------
20
63
  klf: ReviewCorrectionPopin.propTypes.klf,
@@ -27,7 +70,18 @@ export const SlidesReviewPropTypes = {
27
70
  failureLabel: ReviewCorrectionPopin.propTypes.resultLabel
28
71
  }),
29
72
  congratsProps: PropTypes.shape(ReviewCongrats.propTypes),
30
- // ---------------
73
+ slideValidationResult: PropTypes.shape({
74
+ slideNumber: PropTypes.number,
75
+ // 'success' | 'failure'
76
+ result: PropTypes.string,
77
+ // 'successExitNode' | 'failExitNode'
78
+ exitNode: PropTypes.string,
79
+ nextSlide: PropTypes.shape({
80
+ questionText: PropTypes.string,
81
+ answerUI: PropTypes.shape(Answer.propTypes)
82
+ })
83
+ }),
84
+ // ---------------------------------------------------------------------------
31
85
  // Dispatchers
32
86
  validateSlide: PropTypes.func.isRequired,
33
87
  updateSlidesOnValidation: PropTypes.func.isRequired,
@@ -35,32 +89,22 @@ export const SlidesReviewPropTypes = {
35
89
  updateReviewStatus: PropTypes.func.isRequired,
36
90
  updateStepItemsOnValidation: PropTypes.func.isRequired,
37
91
  updateStepItemsOnNext: PropTypes.func.isRequired,
38
- updateFinishedSlides: PropTypes.func.isRequired,
39
- slideValidationResult: PropTypes.shape({
40
- slideNumber: PropTypes.number,
41
- result: PropTypes.oneOfType(['success', 'failure']),
42
- exitNode: PropTypes.oneOfType(['successExitNode', 'failExitNode', undefined]),
43
- nextSlide: PropTypes.shape({
44
- questionText: PropTypes.string,
45
- answerUI: PropTypes.shape(Answer.propTypes)
46
- })
47
- })
92
+ updateFinishedSlides: PropTypes.func.isRequired
48
93
  };
49
94
  export const SlidePropTypes = {
50
95
  slideNumber: PropTypes.number,
51
96
  slides: SlidesReviewPropTypes.slides,
97
+ primarySkinColor: PropTypes.string,
52
98
  validate: SlidesReviewPropTypes.validate,
53
99
  finishedSlides: SlidesReviewPropTypes.finishedSlides,
100
+ finishedSlidesSize: PropTypes.number,
54
101
  correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,
55
102
  // ---------------
56
103
  // Dispatchers
57
104
  validateSlide: SlidesReviewPropTypes.validateSlide,
58
- updateSlidesOnValidation: SlidesReviewPropTypes.updateSlidesOnValidation,
59
105
  updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,
60
106
  updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,
61
- updateStepItemsOnValidation: SlidesReviewPropTypes.updateStepItemsOnValidation,
62
107
  updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,
63
- updateFinishedSlides: SlidesReviewPropTypes.updateFinishedSlides,
64
108
  slideValidationResult: SlidesReviewPropTypes.slideValidationResult
65
109
  };
66
110
  export const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["PropTypes","omit","ReviewCongrats","ReviewCorrectionPopin","ReviewBackground","ReviewHeader","Answer","SlidesReviewPropTypes","headerProps","shape","propTypes","reviewBackgroundAriaLabel","validate","label","string","slides","instanceOf","Map","finishedSlides","stepItems","reviewStatus","oneOfType","correctionPopinProps","klf","information","next","successLabel","resultLabel","failureLabel","congratsProps","validateSlide","func","isRequired","updateSlidesOnValidation","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnValidation","updateStepItemsOnNext","updateFinishedSlides","slideValidationResult","slideNumber","number","result","exitNode","undefined","nextSlide","questionText","answerUI","SlidePropTypes","StackedSlidesPropTypes"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport omit from 'lodash/fp/omit';\n\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewHeader from '../../../organism/review-header';\nimport Answer from '../../../molecule/answer';\n\nexport const SlidesReviewPropTypes = {\n headerProps: PropTypes.shape(omit('steps', ReviewHeader.propTypes)),\n reviewBackgroundAriaLabel: ReviewBackground.propTypes['aria-label'],\n validate: PropTypes.shape({\n label: PropTypes.string\n }),\n slides: PropTypes.instanceOf(Map),\n finishedSlides: PropTypes.instanceOf(Map),\n stepItems: PropTypes.instanceOf(Map),\n reviewStatus: PropTypes.oneOfType(['finished', 'ongoing']),\n correctionPopinProps: PropTypes.shape({\n // ---------------\n klf: ReviewCorrectionPopin.propTypes.klf,\n information: ReviewCorrectionPopin.propTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n successLabel: ReviewCorrectionPopin.propTypes.resultLabel,\n failureLabel: ReviewCorrectionPopin.propTypes.resultLabel\n }),\n congratsProps: PropTypes.shape(ReviewCongrats.propTypes),\n // ---------------\n // Dispatchers\n validateSlide: PropTypes.func.isRequired,\n updateSlidesOnValidation: PropTypes.func.isRequired,\n updateSlidesOnNext: PropTypes.func.isRequired,\n updateReviewStatus: PropTypes.func.isRequired,\n updateStepItemsOnValidation: PropTypes.func.isRequired,\n updateStepItemsOnNext: PropTypes.func.isRequired,\n updateFinishedSlides: PropTypes.func.isRequired,\n slideValidationResult: PropTypes.shape({\n slideNumber: PropTypes.number,\n result: PropTypes.oneOfType(['success', 'failure']),\n exitNode: PropTypes.oneOfType(['successExitNode', 'failExitNode', undefined]),\n nextSlide: PropTypes.shape({\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(Answer.propTypes)\n })\n })\n};\n\nexport const SlidePropTypes = {\n slideNumber: PropTypes.number,\n slides: SlidesReviewPropTypes.slides,\n validate: SlidesReviewPropTypes.validate,\n finishedSlides: SlidesReviewPropTypes.finishedSlides,\n correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,\n // ---------------\n // Dispatchers\n validateSlide: SlidesReviewPropTypes.validateSlide,\n updateSlidesOnValidation: SlidesReviewPropTypes.updateSlidesOnValidation,\n updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,\n updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,\n updateStepItemsOnValidation: SlidesReviewPropTypes.updateStepItemsOnValidation,\n updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,\n updateFinishedSlides: SlidesReviewPropTypes.updateFinishedSlides,\n slideValidationResult: SlidesReviewPropTypes.slideValidationResult\n};\n\nexport const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);\n"],"file":"prop-types.js"}
1
+ {"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["PropTypes","omit","ReviewCongrats","ReviewCorrectionPopin","ReviewBackground","ReviewHeader","Answer","NextSlideProp","shape","hidden","bool","position","number","animationType","string","validationResult","endReview","questionText","answerUI","SlideProp","props","nextSlide","StepItemProp","current","icon","value","SlidesReviewPropTypes","headerProps","propTypes","reviewBackgroundAriaLabel","validate","label","slides","slideNumbers","arrayOf","finishedSlides","stepItems","reviewStatus","correctionPopinProps","klf","information","next","successLabel","resultLabel","failureLabel","congratsProps","slideValidationResult","slideNumber","result","exitNode","validateSlide","func","isRequired","updateSlidesOnValidation","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnValidation","updateStepItemsOnNext","updateFinishedSlides","SlidePropTypes","primarySkinColor","finishedSlidesSize","StackedSlidesPropTypes"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport omit from 'lodash/fp/omit';\n\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewHeader from '../../../organism/review-header';\nimport Answer from '../../../molecule/answer';\n\nconst NextSlideProp = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n // 'unstack' | 'restack'\n animationType: PropTypes.string,\n // 'success' | 'failure'\n validationResult: PropTypes.string,\n endReview: PropTypes.bool,\n questionText: PropTypes.string,\n answerUI: Answer\n});\n\nconst SlideProp = PropTypes.shape({\n ...NextSlideProp.props,\n nextSlide: NextSlideProp\n});\n\nconst StepItemProp = PropTypes.shape({\n current: PropTypes.bool,\n icon: PropTypes.string,\n value: PropTypes.string\n});\n\nexport const SlidesReviewPropTypes = {\n headerProps: PropTypes.shape(omit('steps', ReviewHeader.propTypes)),\n reviewBackgroundAriaLabel: ReviewBackground.propTypes['aria-label'],\n validate: PropTypes.shape({\n label: PropTypes.string\n }),\n slides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: SlideProp,\n 1: SlideProp,\n 2: SlideProp,\n 3: SlideProp,\n 4: SlideProp\n }),\n finishedSlides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: PropTypes.bool,\n 1: PropTypes.bool,\n 2: PropTypes.bool,\n 3: PropTypes.bool,\n 4: PropTypes.bool\n }),\n stepItems: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: StepItemProp,\n 1: StepItemProp,\n 2: StepItemProp,\n 3: StepItemProp,\n 4: StepItemProp\n }),\n // 'finished' | 'ongoing'\n reviewStatus: PropTypes.string,\n correctionPopinProps: PropTypes.shape({\n // ---------------\n klf: ReviewCorrectionPopin.propTypes.klf,\n information: ReviewCorrectionPopin.propTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n successLabel: ReviewCorrectionPopin.propTypes.resultLabel,\n failureLabel: ReviewCorrectionPopin.propTypes.resultLabel\n }),\n congratsProps: PropTypes.shape(ReviewCongrats.propTypes),\n slideValidationResult: PropTypes.shape({\n slideNumber: PropTypes.number,\n // 'success' | 'failure'\n result: PropTypes.string,\n // 'successExitNode' | 'failExitNode'\n exitNode: PropTypes.string,\n nextSlide: PropTypes.shape({\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(Answer.propTypes)\n })\n }),\n // ---------------------------------------------------------------------------\n // Dispatchers\n validateSlide: PropTypes.func.isRequired,\n updateSlidesOnValidation: PropTypes.func.isRequired,\n updateSlidesOnNext: PropTypes.func.isRequired,\n updateReviewStatus: PropTypes.func.isRequired,\n updateStepItemsOnValidation: PropTypes.func.isRequired,\n updateStepItemsOnNext: PropTypes.func.isRequired,\n updateFinishedSlides: PropTypes.func.isRequired\n};\n\nexport const SlidePropTypes = {\n slideNumber: PropTypes.number,\n slides: SlidesReviewPropTypes.slides,\n primarySkinColor: PropTypes.string,\n validate: SlidesReviewPropTypes.validate,\n finishedSlides: SlidesReviewPropTypes.finishedSlides,\n finishedSlidesSize: PropTypes.number,\n correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,\n // ---------------\n // Dispatchers\n validateSlide: SlidesReviewPropTypes.validateSlide,\n updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,\n updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,\n updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,\n slideValidationResult: SlidesReviewPropTypes.slideValidationResult\n};\n\nexport const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);\n"],"file":"prop-types.js"}
@@ -136,10 +136,12 @@
136
136
 
137
137
  @keyframes slideOutHideAndSlideIn {
138
138
  0% {
139
+ width: 100%;
139
140
  z-index: 55;
140
141
  transform: translate(0, 0);
141
142
  }
142
143
  50% {
144
+ width: 100%;
143
145
  z-index: 50;
144
146
  transform: translate(0, 1000px);
145
147
  opacity: 1;
@@ -21,9 +21,13 @@ const ReviewHeaderSteps = props => {
21
21
  const {
22
22
  steps
23
23
  } = props;
24
- const items = (0, _map.default)(step => /*#__PURE__*/_react.default.createElement(_reviewHeaderStepItem.default, _extends({}, step, {
25
- key: step.value
24
+
25
+ const items = _map.default.convert({
26
+ cap: false
27
+ })((step, index) => /*#__PURE__*/_react.default.createElement(_reviewHeaderStepItem.default, _extends({}, step, {
28
+ key: index
26
29
  })), steps);
30
+
27
31
  return /*#__PURE__*/_react.default.createElement("div", {
28
32
  className: _style.default.wrapper,
29
33
  "data-name": "header-steps"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/molecule/review-header-steps/index.js"],"names":["ReviewHeaderSteps","props","steps","items","step","value","style","wrapper","propTypes","PropTypes","arrayOf","shape","ReviewHeaderStepItem"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,iBAAiB,GAAGC,KAAK,IAAI;AACjC,QAAM;AAACC,IAAAA;AAAD,MAAUD,KAAhB;AAEA,QAAME,KAAK,GAAG,kBAAIC,IAAI,iBAAI,6BAAC,6BAAD,eAA0BA,IAA1B;AAAgC,IAAA,GAAG,EAAEA,IAAI,CAACC;AAA1C,KAAZ,EAAiEH,KAAjE,CAAd;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEI,eAAMC,OAAtB;AAA+B,iBAAU;AAAzC,KACGJ,KADH,CADF;AAKD,CAVD;;AAYAH,iBAAiB,CAACQ,SAAlB,2CAA8B;AAC5BN,EAAAA,KAAK,EAAEO,mBAAUC,OAAV,CAAkBD,mBAAUE,KAAV,CAAgBC,8BAAqBX,KAArC,CAAlB;AADqB,CAA9B;eAIeD,iB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport map from 'lodash/fp/map';\nimport ReviewHeaderStepItem from '../../atom/review-header-step-item';\nimport style from './style.css';\n\nconst ReviewHeaderSteps = props => {\n const {steps} = props;\n\n const items = map(step => <ReviewHeaderStepItem {...step} key={step.value} />, steps);\n\n return (\n <div className={style.wrapper} data-name=\"header-steps\">\n {items}\n </div>\n );\n};\n\nReviewHeaderSteps.propTypes = {\n steps: PropTypes.arrayOf(PropTypes.shape(ReviewHeaderStepItem.props))\n};\n\nexport default ReviewHeaderSteps;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/molecule/review-header-steps/index.js"],"names":["ReviewHeaderSteps","props","steps","items","map","convert","cap","step","index","style","wrapper","propTypes","PropTypes","arrayOf","shape","ReviewHeaderStepItem"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,iBAAiB,GAAGC,KAAK,IAAI;AACjC,QAAM;AAACC,IAAAA;AAAD,MAAUD,KAAhB;;AAEA,QAAME,KAAK,GAAGC,aAAIC,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EACZ,CAACC,IAAD,EAAOC,KAAP,kBAAiB,6BAAC,6BAAD,eAA0BD,IAA1B;AAAgC,IAAA,GAAG,EAAEC;AAArC,KADL,EAEZN,KAFY,CAAd;;AAKA,sBACE;AAAK,IAAA,SAAS,EAAEO,eAAMC,OAAtB;AAA+B,iBAAU;AAAzC,KACGP,KADH,CADF;AAKD,CAbD;;AAeAH,iBAAiB,CAACW,SAAlB,2CAA8B;AAC5BT,EAAAA,KAAK,EAAEU,mBAAUC,OAAV,CAAkBD,mBAAUE,KAAV,CAAgBC,8BAAqBd,KAArC,CAAlB;AADqB,CAA9B;eAIeD,iB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport map from 'lodash/fp/map';\nimport ReviewHeaderStepItem from '../../atom/review-header-step-item';\nimport style from './style.css';\n\nconst ReviewHeaderSteps = props => {\n const {steps} = props;\n\n const items = map.convert({cap: false})(\n (step, index) => <ReviewHeaderStepItem {...step} key={index} />,\n steps\n );\n\n return (\n <div className={style.wrapper} data-name=\"header-steps\">\n {items}\n </div>\n );\n};\n\nReviewHeaderSteps.propTypes = {\n steps: PropTypes.arrayOf(PropTypes.shape(ReviewHeaderStepItem.props))\n};\n\nexport default ReviewHeaderSteps;\n"],"file":"index.js"}
@@ -13,6 +13,14 @@ var _getOr = _interopRequireDefault(require("lodash/fp/getOr"));
13
13
 
14
14
  var _isNil = _interopRequireDefault(require("lodash/fp/isNil"));
15
15
 
16
+ var _map = _interopRequireDefault(require("lodash/fp/map"));
17
+
18
+ var _omit = _interopRequireDefault(require("lodash/fp/omit"));
19
+
20
+ var _pipe = _interopRequireDefault(require("lodash/fp/pipe"));
21
+
22
+ var _size = _interopRequireDefault(require("lodash/fp/size"));
23
+
16
24
  var _reviewHeaderStepItem = require("../../../atom/review-header-step-item");
17
25
 
18
26
  var _reviewBackground = _interopRequireDefault(require("../../../atom/review-background"));
@@ -53,9 +61,12 @@ exports.HIGHEST_INDEX = HIGHEST_INDEX;
53
61
 
54
62
  const getSlideAnimation = (action, position, hidden) => {
55
63
  switch (action) {
64
+ /* istanbul ignore next */
56
65
  case 'unstack':
57
66
  return _style.default.slideOutHideAndIn;
58
67
 
68
+ /* istanbul ignore next */
69
+
59
70
  case 'restack':
60
71
  return _style.default.slideOutAndIn;
61
72
 
@@ -66,45 +77,37 @@ const getSlideAnimation = (action, position, hidden) => {
66
77
 
67
78
  const Slide = ({
68
79
  slideNumber,
69
- slidesState,
80
+ slides,
70
81
  primarySkinColor,
71
82
  validate,
72
83
  validateSlide,
73
84
  finishedSlides,
74
- updateSlidesOnValidation,
85
+ finishedSlidesSize,
75
86
  updateSlidesOnNext,
76
87
  updateReviewStatus,
77
- updateStepItemsOnValidation,
78
88
  updateStepItemsOnNext,
79
- updateFinishedSlides,
80
89
  slideValidationResult,
81
- correctionPopinProps = {}
90
+ correctionPopinProps
82
91
  }) => {
83
- const result = (0, _get.default)('result', slideValidationResult);
84
- const exitNode = (0, _get.default)('exitNode', slideValidationResult);
85
- const nextSlide = (0, _get.default)('nextSlide', slideValidationResult); // const validatedSlideNumber = get('slideNumber', slideValidationResult);
86
-
87
- const {
88
- hidden,
89
- endReview,
90
- position,
91
- animationType,
92
- validationResult,
93
- questionText,
94
- answerUI
95
- } = slidesState.get(slideNumber);
96
- const {
97
- label: validateLabel
98
- } = validate;
92
+ const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
93
+ const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
94
+ const position = (0, _get.default)(`${slideNumber}.position`, slides);
95
+ const animationType = (0, _getOr.default)(false, `${slideNumber}.animationType`, slides);
96
+ const validationResult = (0, _getOr.default)(null, `${slideNumber}.validationResult`, slides);
97
+ const questionText = (0, _get.default)(`${slideNumber}.questionText`, slides);
98
+ const answerUI = (0, _get.default)(`${slideNumber}.answerUI`, slides);
99
+ const validateLabel = (0, _getOr.default)('', 'label', validate);
99
100
  const validateButtonProps = {
100
101
  customStyle: {
101
102
  backgroundColor: primarySkinColor
102
103
  },
103
104
 
104
105
  /*
105
- slide validation action, this will trigger the correction popin but will not trigger any
106
- animations unless the endReview signal is received (all slides will disappear),
107
- if there is a nextSlide content, it will be loaded here
106
+ slide validation action, this will trigger the correction popin
107
+ (with the useEffect that fires the dispatchers, if there is a nextSlide content,
108
+ it will be loaded here) but will not trigger any animations unless the endReview
109
+ signal is received (all slides will disappear, also fired in a useEffect),
110
+
108
111
  if it is the last slide and the content needs to be different, then that update will
109
112
  be handled on the next slide logic but the content will be carried from here.
110
113
  */
@@ -112,26 +115,6 @@ const Slide = ({
112
115
  // result: 'success' | 'failure'
113
116
  // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'
114
117
  await validateSlide();
115
- updateSlidesOnValidation({
116
- slideNumber,
117
- newSlideContent: {
118
- hidden,
119
- position,
120
- validationResult: result,
121
- endReview: !!exitNode
122
- },
123
- numberOfFinishedSlides: finishedSlides.size,
124
- nextSlide
125
- });
126
- updateStepItemsOnValidation({
127
- stepNumber: slideNumber,
128
- icon: result === 'success' ? _reviewHeaderStepItem.ICON_VALUES.right : _reviewHeaderStepItem.ICON_VALUES.wrong
129
- });
130
- if (result === 'success') updateFinishedSlides([slideNumber, true]);
131
-
132
- if (endReview) {
133
- updateReviewStatus('finished');
134
- }
135
118
  },
136
119
  'aria-label': validateLabel,
137
120
  label: validateLabel,
@@ -139,16 +122,14 @@ const Slide = ({
139
122
  className: _style.default.validateButton,
140
123
  disabled: !(0, _isNil.default)(validationResult)
141
124
  };
142
- const {
143
- klf = {},
144
- information = {
145
- label: '',
146
- message: ''
147
- },
148
- next,
149
- successLabel = '',
150
- failureLabel = ''
151
- } = correctionPopinProps;
125
+ const klf = (0, _getOr.default)({}, 'klf', correctionPopinProps);
126
+ const information = (0, _getOr.default)({
127
+ label: '',
128
+ message: ''
129
+ }, 'information', correctionPopinProps);
130
+ const next = (0, _get.default)('next', correctionPopinProps);
131
+ const successLabel = (0, _getOr.default)('', 'successLabel', correctionPopinProps);
132
+ const failureLabel = (0, _getOr.default)('', 'failureLabel', correctionPopinProps);
152
133
  const _correctionPopinProps = {
153
134
  next: {
154
135
  /*
@@ -158,28 +139,29 @@ const Slide = ({
158
139
  from the content carried from the validate action.
159
140
  */
160
141
  onClick: () => {
142
+ const exitNode = (0, _get.default)('exitNode', slideValidationResult);
161
143
  updateSlidesOnNext({
162
144
  slideNumber,
163
145
  newSlideContent: {
164
146
  hidden: validationResult === 'success',
165
- position: HIGHEST_INDEX - finishedSlides.size,
147
+ position: HIGHEST_INDEX - finishedSlidesSize,
148
+ // to restack the slide
166
149
  animationType: validationResult === 'success' ? 'unstack' : 'restack',
167
150
  validationResult,
168
151
  endReview: !!exitNode,
169
152
  answerUI,
170
153
  questionText
171
154
  },
172
- numberOfFinishedSlides: finishedSlides.size
155
+ numberOfFinishedSlides: finishedSlidesSize
173
156
  });
174
157
  updateStepItemsOnNext({
175
158
  stepNumber: slideNumber,
176
159
  finishedSlides,
177
- current: finishedSlides.size === HIGHEST_INDEX && validationResult !== 'success'
160
+ current: finishedSlidesSize === HIGHEST_INDEX &&
161
+ /* istanbul ignore next */
162
+ validationResult !== 'success'
178
163
  });
179
-
180
- if (finishedSlides.size === TOTAL_SLIDES_STACK) {
181
- updateReviewStatus('finished');
182
- }
164
+ if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');
183
165
  },
184
166
  label: next && next.label,
185
167
  'data-name': `next-question-button-${slideNumber}`,
@@ -191,7 +173,9 @@ const Slide = ({
191
173
  resultLabel: validationResult === 'success' ? successLabel : failureLabel
192
174
  };
193
175
  const questionOrigin = 'From "Master Design Thinking to become more agile" course';
194
- const answerProps = (0, _get.default)(['model', 'choices'], answerUI) ? _extends(_extends({}, answerUI), {}, {
176
+ const answerProps = (0, _get.default)(['model', 'choices'], answerUI) ?
177
+ /* istanbul ignore next */
178
+ _extends(_extends({}, answerUI), {}, {
195
179
  model: _extends(_extends({}, answerUI.model), {}, {
196
180
  answers: answerUI.model.choices
197
181
  })
@@ -222,7 +206,7 @@ const Slide = ({
222
206
  className: _style.default.validateButtonWrapper
223
207
  }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, validateButtonProps)), /*#__PURE__*/_react.default.createElement("div", {
224
208
  className: validationResult ? _style.default.correctionPopinWrapper : _style.default.hiddenCorrectionPopinWrapper,
225
- style: _extends({}, finishedSlides.size !== HIGHEST_INDEX && !validationResult && {
209
+ style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !validationResult && {
226
210
  display: 'none'
227
211
  })
228
212
  }, /*#__PURE__*/_react.default.createElement(_reviewCorrectionPopin.default, _correctionPopinProps)));
@@ -236,12 +220,10 @@ const StackedSlides = ({
236
220
  validate,
237
221
  validateSlide,
238
222
  finishedSlides,
239
- updateSlidesOnValidation,
223
+ finishedSlidesSize,
240
224
  updateSlidesOnNext,
241
225
  updateReviewStatus,
242
- updateStepItemsOnValidation,
243
226
  updateStepItemsOnNext,
244
- updateFinishedSlides,
245
227
  slideValidationResult,
246
228
  correctionPopinProps
247
229
  }) => {
@@ -255,12 +237,10 @@ const StackedSlides = ({
255
237
  validate,
256
238
  validateSlide,
257
239
  finishedSlides,
258
- updateSlidesOnValidation,
240
+ finishedSlidesSize,
259
241
  updateSlidesOnNext,
260
242
  updateReviewStatus,
261
- updateStepItemsOnValidation,
262
243
  updateStepItemsOnNext,
263
- updateFinishedSlides,
264
244
  slideValidationResult,
265
245
  correctionPopinProps
266
246
  }, {
@@ -292,30 +272,69 @@ const SlidesReview = ({
292
272
  updateStepItemsOnValidation,
293
273
  updateStepItemsOnNext,
294
274
  updateFinishedSlides,
295
- slideValidationResult = {}
275
+ slideValidationResult
296
276
  }, context) => {
297
277
  const {
298
278
  skin
299
279
  } = context;
300
280
  const primarySkinColor = (0, _react.useMemo)(() => (0, _getOr.default)('#00B0FF', 'common.primary', skin), [skin]);
281
+ const finishedSlidesSize = (0, _react.useMemo)(() => (0, _pipe.default)((0, _omit.default)('slideNumbers'), _size.default)(finishedSlides), [finishedSlides]);
301
282
  /*
302
283
  ||-------> the slides have an slightly longer lifespan than the "ongoing" review State,
303
284
  after reviewState changes to "finished" the slides don't have to unmount until the last
304
- slide-out animation is finished, the slides have to be unmounted to be RGAA complaint
305
- (if they are only invisible but still mounted, then they will be found the assisting tools & clutter it)
285
+ slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.
286
+ (if they are only invisible -but- still mounted, then they will be found by the assisting
287
+ tools & clutter them)
306
288
  */
307
289
 
308
290
  const [shouldMountSlides, updateShouldMountSlides] = (0, _react.useState)(true);
309
- (0, _react.useEffect)(() => {
310
- if (reviewStatus === 'finished' || finishedSlides.size === TOTAL_SLIDES_STACK) {
291
+ (0, _react.useEffect)(
292
+ /* istanbul ignore next */
293
+ () => {
294
+ const slideNumber = (0, _get.default)('slideNumber', slideValidationResult);
295
+
296
+ if (slideValidationResult) {
297
+ const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
298
+ const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
299
+ const position = (0, _get.default)(`${slideNumber}.position`, slides);
300
+ const result = (0, _get.default)('result', slideValidationResult);
301
+ const exitNode = (0, _get.default)('exitNode', slideValidationResult);
302
+ const nextSlide = (0, _get.default)('nextSlide', slideValidationResult);
303
+ updateSlidesOnValidation({
304
+ slideNumber,
305
+ newSlideContent: {
306
+ hidden,
307
+ position,
308
+ validationResult: result,
309
+ endReview: !!exitNode
310
+ },
311
+ numberOfFinishedSlides: finishedSlidesSize,
312
+ nextSlide
313
+ });
314
+ updateStepItemsOnValidation({
315
+ stepNumber: slideNumber,
316
+ icon: result === 'success' ? _reviewHeaderStepItem.ICON_VALUES.right : _reviewHeaderStepItem.ICON_VALUES.wrong
317
+ });
318
+ if (result === 'success') updateFinishedSlides({
319
+ slideNumber,
320
+ value: true
321
+ });
322
+
323
+ if (endReview) {
324
+ updateReviewStatus('finished');
325
+ }
326
+ }
327
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
328
+ [slideValidationResult]);
329
+ (0, _react.useEffect)(
330
+ /* istanbul ignore next */
331
+ () => {
332
+ if (reviewStatus === 'finished') {
311
333
  setTimeout(() => updateShouldMountSlides(false), 2000);
312
334
  }
313
- }, [finishedSlides.size, reviewStatus, updateReviewStatus]); // ||-------> transform the step items state (Map structure) to an Array
335
+ }, [finishedSlidesSize, reviewStatus, updateReviewStatus]); // ||-------> transform the step items state to Array
314
336
 
315
- const stepItemsArray = (0, _react.useMemo)(() => {
316
- // eslint-disable-next-line unicorn/prefer-spread
317
- return Array.from(stepItems.values());
318
- }, [stepItems]);
337
+ const stepItemsArray = (0, _react.useMemo)(() => (0, _pipe.default)((0, _omit.default)('slideNumbers'), (0, _map.default)(stepItem => stepItem))(stepItems), [stepItems]);
319
338
 
320
339
  const _headerProps = _extends(_extends({}, headerProps), {}, {
321
340
  steps: stepItemsArray,
@@ -348,16 +367,17 @@ const SlidesReview = ({
348
367
  validate,
349
368
  validateSlide,
350
369
  finishedSlides,
351
- updateSlidesOnValidation,
370
+ finishedSlidesSize,
352
371
  updateSlidesOnNext,
353
372
  updateReviewStatus,
354
- updateStepItemsOnValidation,
355
373
  updateStepItemsOnNext,
356
- updateFinishedSlides,
357
374
  slideValidationResult,
358
375
  correctionPopinProps
359
- }))) : null, reviewStatus === 'finished' ? /*#__PURE__*/_react.default.createElement("div", {
360
- className: _style.default.congrats
376
+ }))) :
377
+ /* istanbul ignore next */
378
+ null, reviewStatus === 'finished' ? /*#__PURE__*/_react.default.createElement("div", {
379
+ className: _style.default.congrats,
380
+ "data-name": "congrats-container"
361
381
  }, /*#__PURE__*/_react.default.createElement(_reviewCongrats.default, congratsProps)) : null);
362
382
  };
363
383