@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.
- package/README.md +5 -0
- package/es/molecule/review-header-steps/index.js +4 -2
- package/es/molecule/review-header-steps/index.js.map +1 -1
- package/es/template/app-review/slides/index.js +100 -84
- package/es/template/app-review/slides/index.js.map +1 -1
- package/es/template/app-review/slides/index.native.js +4 -4
- package/es/template/app-review/slides/index.native.js.map +1 -1
- package/es/template/app-review/slides/prop-types.js +62 -18
- package/es/template/app-review/slides/prop-types.js.map +1 -1
- package/es/template/app-review/slides/style.css +2 -0
- package/lib/molecule/review-header-steps/index.js +6 -2
- package/lib/molecule/review-header-steps/index.js.map +1 -1
- package/lib/template/app-review/slides/index.js +104 -84
- package/lib/template/app-review/slides/index.js.map +1 -1
- package/lib/template/app-review/slides/index.native.js +4 -4
- package/lib/template/app-review/slides/index.native.js.map +1 -1
- package/lib/template/app-review/slides/prop-types.js +65 -18
- package/lib/template/app-review/slides/prop-types.js.map +1 -1
- package/lib/template/app-review/slides/style.css +2 -0
- package/locales/bs/global.json +4 -4
- package/locales/cs/global.json +4 -4
- package/locales/de/global.json +4 -4
- package/locales/en/global.json +4 -4
- package/locales/es/global.json +4 -4
- package/locales/et/global.json +4 -4
- package/locales/fr/global.json +5 -5
- package/locales/hr/global.json +4 -4
- package/locales/hu/global.json +4 -4
- package/locales/hy/global.json +4 -4
- package/locales/it/global.json +2 -2
- package/locales/ja/global.json +3 -3
- package/locales/ko/global.json +4 -4
- package/locales/nl/global.json +4 -4
- package/locales/pl/global.json +4 -4
- package/locales/pt/global.json +4 -4
- package/locales/ro/global.json +4 -4
- package/locales/ru/global.json +4 -4
- package/locales/sk/global.json +3 -3
- package/locales/tl/global.json +4 -4
- package/locales/tr/global.json +4 -4
- package/locales/uk/global.json +4 -4
- package/locales/vi/global.json +3 -3
- package/locales/zh/global.json +4 -4
- package/locales/zh_TW/global.json +3 -3
- 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.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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","
|
|
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"}
|
|
@@ -21,9 +21,13 @@ const ReviewHeaderSteps = props => {
|
|
|
21
21
|
const {
|
|
22
22
|
steps
|
|
23
23
|
} = props;
|
|
24
|
-
|
|
25
|
-
|
|
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","
|
|
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
|
-
|
|
80
|
+
slides,
|
|
70
81
|
primarySkinColor,
|
|
71
82
|
validate,
|
|
72
83
|
validateSlide,
|
|
73
84
|
finishedSlides,
|
|
74
|
-
|
|
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
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
const {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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 -
|
|
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:
|
|
155
|
+
numberOfFinishedSlides: finishedSlidesSize
|
|
173
156
|
});
|
|
174
157
|
updateStepItemsOnNext({
|
|
175
158
|
stepNumber: slideNumber,
|
|
176
159
|
finishedSlides,
|
|
177
|
-
current:
|
|
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) ?
|
|
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({},
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
}, [
|
|
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
|
-
|
|
370
|
+
finishedSlidesSize,
|
|
352
371
|
updateSlidesOnNext,
|
|
353
372
|
updateReviewStatus,
|
|
354
|
-
updateStepItemsOnValidation,
|
|
355
373
|
updateStepItemsOnNext,
|
|
356
|
-
updateFinishedSlides,
|
|
357
374
|
slideValidationResult,
|
|
358
375
|
correctionPopinProps
|
|
359
|
-
}))) :
|
|
360
|
-
|
|
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
|
|