@coorpacademy/components 10.22.6 → 10.22.9
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/es/atom/choice/index.native.js +1 -1
- package/es/atom/choice/index.native.js.map +1 -1
- package/es/atom/{image-backgound → image-background}/index.native.js +0 -0
- package/es/atom/image-background/index.native.js.map +1 -0
- package/es/atom/resource-miniature/index.js +1 -2
- package/es/atom/resource-miniature/index.js.map +1 -1
- package/es/atom/resource-miniature/style.css +4 -0
- package/es/molecule/cm-popin/index.js +4 -2
- package/es/molecule/cm-popin/index.js.map +1 -1
- package/es/molecule/review-correction-popin/prop-types.js +0 -1
- package/es/molecule/review-correction-popin/prop-types.js.map +1 -1
- package/es/organism/review-congrats/style.css +1 -1
- package/es/organism/review-slide/index.js +184 -0
- package/es/organism/review-slide/index.js.map +1 -0
- package/es/organism/review-slide/prop-types.js +37 -0
- package/es/organism/review-slide/prop-types.js.map +1 -0
- package/es/organism/review-slide/style.css +171 -0
- package/es/organism/review-stacked-slides/index.js +81 -0
- package/es/organism/review-stacked-slides/index.js.map +1 -0
- package/es/organism/review-stacked-slides/prop-types.js +16 -0
- package/es/organism/review-stacked-slides/prop-types.js.map +1 -0
- package/es/organism/review-stacked-slides/style.css +179 -0
- package/es/template/app-player/player/slides/header/learner.css +4 -0
- package/es/template/app-player/player/slides/header/learner.js +2 -3
- package/es/template/app-player/player/slides/header/learner.js.map +1 -1
- package/es/template/app-player/player/slides/header/microlearning.css +4 -0
- package/es/template/app-player/player/slides/header/microlearning.js +1 -2
- package/es/template/app-player/player/slides/header/microlearning.js.map +1 -1
- package/es/template/app-player/player/slides/index.js +3 -4
- package/es/template/app-player/player/slides/index.js.map +1 -1
- package/es/template/app-player/player/slides/style.css +5 -0
- package/es/template/app-player/popin-correction/index.js +3 -4
- package/es/template/app-player/popin-correction/index.js.map +1 -1
- package/es/template/app-player/popin-correction/style.css +4 -0
- package/es/template/app-player/popin-end/summary.css +4 -0
- package/es/template/app-player/popin-end/summary.js +3 -4
- package/es/template/app-player/popin-end/summary.js.map +1 -1
- package/es/template/app-player/popin-header/index.js +3 -4
- package/es/template/app-player/popin-header/index.js.map +1 -1
- package/es/template/app-player/popin-header/style.css +4 -0
- package/es/template/app-review/index.js +7 -8
- package/es/template/app-review/index.js.map +1 -1
- package/es/template/app-review/index.native.js +6 -10
- package/es/template/app-review/index.native.js.map +1 -1
- package/es/template/app-review/player/index.js +36 -0
- package/es/template/app-review/player/index.js.map +1 -0
- package/es/template/app-review/{slides → player}/index.native.js +15 -13
- package/es/template/app-review/player/index.native.js.map +1 -0
- package/es/template/app-review/player/prop-types.js +12 -0
- package/es/template/app-review/player/prop-types.js.map +1 -0
- package/es/template/app-review/player/style.css +41 -0
- package/es/template/app-review/prop-types.js +3 -3
- package/es/template/app-review/prop-types.js.map +1 -1
- package/es/template/common/authors/index.js +1 -2
- package/es/template/common/authors/index.js.map +1 -1
- package/es/template/common/authors/style.css +4 -0
- package/lib/atom/choice/index.native.js +1 -1
- package/lib/atom/choice/index.native.js.map +1 -1
- package/lib/atom/{image-backgound → image-background}/index.native.js +0 -0
- package/lib/atom/image-background/index.native.js.map +1 -0
- package/lib/atom/resource-miniature/index.js +9 -11
- package/lib/atom/resource-miniature/index.js.map +1 -1
- package/lib/atom/resource-miniature/style.css +4 -0
- package/lib/molecule/cm-popin/index.js +4 -2
- package/lib/molecule/cm-popin/index.js.map +1 -1
- package/lib/molecule/review-correction-popin/prop-types.js +0 -1
- package/lib/molecule/review-correction-popin/prop-types.js.map +1 -1
- package/lib/organism/review-congrats/style.css +1 -1
- package/lib/organism/review-slide/index.js +206 -0
- package/lib/organism/review-slide/index.js.map +1 -0
- package/lib/organism/review-slide/prop-types.js +50 -0
- package/lib/organism/review-slide/prop-types.js.map +1 -0
- package/lib/organism/review-slide/style.css +171 -0
- package/lib/organism/review-stacked-slides/index.js +99 -0
- package/lib/organism/review-stacked-slides/index.js.map +1 -0
- package/lib/organism/review-stacked-slides/prop-types.js +30 -0
- package/lib/organism/review-stacked-slides/prop-types.js.map +1 -0
- package/lib/organism/review-stacked-slides/style.css +179 -0
- package/lib/template/app-player/player/slides/header/learner.css +4 -0
- package/lib/template/app-player/player/slides/header/learner.js +2 -4
- package/lib/template/app-player/player/slides/header/learner.js.map +1 -1
- package/lib/template/app-player/player/slides/header/microlearning.css +4 -0
- package/lib/template/app-player/player/slides/header/microlearning.js +1 -3
- package/lib/template/app-player/player/slides/header/microlearning.js.map +1 -1
- package/lib/template/app-player/player/slides/index.js +23 -25
- package/lib/template/app-player/player/slides/index.js.map +1 -1
- package/lib/template/app-player/player/slides/style.css +5 -0
- package/lib/template/app-player/popin-correction/index.js +20 -22
- package/lib/template/app-player/popin-correction/index.js.map +1 -1
- package/lib/template/app-player/popin-correction/style.css +4 -0
- package/lib/template/app-player/popin-end/summary.css +4 -0
- package/lib/template/app-player/popin-end/summary.js +3 -5
- package/lib/template/app-player/popin-end/summary.js.map +1 -1
- package/lib/template/app-player/popin-header/index.js +32 -34
- package/lib/template/app-player/popin-header/index.js.map +1 -1
- package/lib/template/app-player/popin-header/style.css +4 -0
- package/lib/template/app-review/index.js +6 -8
- package/lib/template/app-review/index.js.map +1 -1
- package/lib/template/app-review/index.native.js +6 -11
- package/lib/template/app-review/index.native.js.map +1 -1
- package/lib/template/app-review/player/index.js +51 -0
- package/lib/template/app-review/player/index.js.map +1 -0
- package/lib/template/app-review/{slides → player}/index.native.js +14 -12
- package/lib/template/app-review/player/index.native.js.map +1 -0
- package/lib/template/app-review/player/prop-types.js +25 -0
- package/lib/template/app-review/player/prop-types.js.map +1 -0
- package/lib/template/app-review/player/style.css +41 -0
- package/lib/template/app-review/prop-types.js +3 -3
- package/lib/template/app-review/prop-types.js.map +1 -1
- package/lib/template/common/authors/index.js +15 -17
- package/lib/template/common/authors/index.js.map +1 -1
- package/lib/template/common/authors/style.css +4 -0
- package/package.json +2 -2
- package/es/atom/image-backgound/index.native.js.map +0 -1
- package/es/template/app-review/slides/index.js +0 -352
- package/es/template/app-review/slides/index.js.map +0 -1
- package/es/template/app-review/slides/index.native.js.map +0 -1
- package/es/template/app-review/slides/prop-types.js +0 -111
- package/es/template/app-review/slides/prop-types.js.map +0 -1
- package/es/template/app-review/slides/style.css +0 -409
- package/lib/atom/image-backgound/index.native.js.map +0 -1
- package/lib/template/app-review/slides/index.js +0 -385
- package/lib/template/app-review/slides/index.js.map +0 -1
- package/lib/template/app-review/slides/index.native.js.map +0 -1
- package/lib/template/app-review/slides/prop-types.js +0 -131
- package/lib/template/app-review/slides/prop-types.js.map +0 -1
- package/lib/template/app-review/slides/style.css +0 -409
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = exports.HIGHEST_INDEX = exports.TOTAL_SLIDES_STACK = void 0;
|
|
5
|
-
|
|
6
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
-
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
|
|
10
|
-
var _get = _interopRequireDefault(require("lodash/fp/get"));
|
|
11
|
-
|
|
12
|
-
var _getOr = _interopRequireDefault(require("lodash/fp/getOr"));
|
|
13
|
-
|
|
14
|
-
var _isNil = _interopRequireDefault(require("lodash/fp/isNil"));
|
|
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
|
-
|
|
24
|
-
var _reviewHeaderStepItem = require("../../../atom/review-header-step-item");
|
|
25
|
-
|
|
26
|
-
var _reviewBackground = _interopRequireDefault(require("../../../atom/review-background"));
|
|
27
|
-
|
|
28
|
-
var _reviewCongrats = _interopRequireDefault(require("../../../organism/review-congrats"));
|
|
29
|
-
|
|
30
|
-
var _reviewHeader = _interopRequireDefault(require("../../../organism/review-header"));
|
|
31
|
-
|
|
32
|
-
var _reviewCorrectionPopin = _interopRequireDefault(require("../../../molecule/review-correction-popin"));
|
|
33
|
-
|
|
34
|
-
var _answer = _interopRequireDefault(require("../../../molecule/answer"));
|
|
35
|
-
|
|
36
|
-
var _buttonLink = _interopRequireDefault(require("../../../atom/button-link"));
|
|
37
|
-
|
|
38
|
-
var _style = _interopRequireDefault(require("./style.css"));
|
|
39
|
-
|
|
40
|
-
var _propTypes = require("./prop-types");
|
|
41
|
-
|
|
42
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
43
|
-
|
|
44
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
45
|
-
|
|
46
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
47
|
-
|
|
48
|
-
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); }
|
|
49
|
-
|
|
50
|
-
const stylesByPosition = {
|
|
51
|
-
0: _style.default.position0,
|
|
52
|
-
1: _style.default.position1,
|
|
53
|
-
2: _style.default.position2,
|
|
54
|
-
3: _style.default.position3,
|
|
55
|
-
4: _style.default.position4
|
|
56
|
-
};
|
|
57
|
-
const TOTAL_SLIDES_STACK = 5;
|
|
58
|
-
exports.TOTAL_SLIDES_STACK = TOTAL_SLIDES_STACK;
|
|
59
|
-
const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;
|
|
60
|
-
exports.HIGHEST_INDEX = HIGHEST_INDEX;
|
|
61
|
-
|
|
62
|
-
const getSlideAnimation = (action, position, hidden) => {
|
|
63
|
-
switch (action) {
|
|
64
|
-
/* istanbul ignore next */
|
|
65
|
-
case 'unstack':
|
|
66
|
-
return _style.default.slideOutHideAndIn;
|
|
67
|
-
|
|
68
|
-
/* istanbul ignore next */
|
|
69
|
-
|
|
70
|
-
case 'restack':
|
|
71
|
-
return _style.default.slideOutAndIn;
|
|
72
|
-
|
|
73
|
-
default:
|
|
74
|
-
return hidden ? _style.default.hiddenSlide : stylesByPosition[position];
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const Slide = ({
|
|
79
|
-
slideNumber,
|
|
80
|
-
slides,
|
|
81
|
-
primarySkinColor,
|
|
82
|
-
validate,
|
|
83
|
-
validateSlide,
|
|
84
|
-
finishedSlides,
|
|
85
|
-
finishedSlidesSize,
|
|
86
|
-
updateSlidesOnNext,
|
|
87
|
-
updateReviewStatus,
|
|
88
|
-
updateStepItemsOnNext,
|
|
89
|
-
progression,
|
|
90
|
-
correctionPopinProps
|
|
91
|
-
}) => {
|
|
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 isSlideCorrect = (0, _getOr.default)(null, `${slideNumber}.isCorrect`, 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);
|
|
100
|
-
const validateButtonProps = {
|
|
101
|
-
customStyle: {
|
|
102
|
-
backgroundColor: primarySkinColor
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
/*
|
|
106
|
-
slide validation action, this will trigger the correction popin
|
|
107
|
-
(with the useEffect that fires the dispatchers, if there is a nextContent 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
|
-
if it is the last slide and the content needs to be different, then that update will
|
|
111
|
-
be handled on the next slide logic but the content will be carried from here.
|
|
112
|
-
*/
|
|
113
|
-
onClick: async () => {
|
|
114
|
-
// endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'
|
|
115
|
-
await validateSlide();
|
|
116
|
-
},
|
|
117
|
-
'aria-label': validateLabel,
|
|
118
|
-
label: validateLabel,
|
|
119
|
-
'data-name': `slide-validate-button-${slideNumber}`,
|
|
120
|
-
className: _style.default.validateButton,
|
|
121
|
-
disabled: !(0, _isNil.default)(isSlideCorrect)
|
|
122
|
-
};
|
|
123
|
-
const klf = (0, _getOr.default)({}, 'klf', correctionPopinProps);
|
|
124
|
-
const information = (0, _getOr.default)({
|
|
125
|
-
label: '',
|
|
126
|
-
message: ''
|
|
127
|
-
}, 'information', correctionPopinProps);
|
|
128
|
-
const next = (0, _get.default)('next', correctionPopinProps);
|
|
129
|
-
const successLabel = (0, _getOr.default)('', 'successLabel', correctionPopinProps);
|
|
130
|
-
const failureLabel = (0, _getOr.default)('', 'failureLabel', correctionPopinProps);
|
|
131
|
-
const _correctionPopinProps = {
|
|
132
|
-
next: {
|
|
133
|
-
/*
|
|
134
|
-
next slide action, this will trigger the slides animations
|
|
135
|
-
if it is the last slide AND the content needs to be different, then that update
|
|
136
|
-
of the content will be handled here (and in the validate as it happens normally )
|
|
137
|
-
from the content carried from the validate action.
|
|
138
|
-
*/
|
|
139
|
-
onClick: () => {
|
|
140
|
-
const exitNode = (0, _get.default)('exitNode', progression);
|
|
141
|
-
updateSlidesOnNext({
|
|
142
|
-
slideNumber,
|
|
143
|
-
newSlideContent: {
|
|
144
|
-
hidden: !!isSlideCorrect,
|
|
145
|
-
position: HIGHEST_INDEX - finishedSlidesSize,
|
|
146
|
-
// to restack the slide
|
|
147
|
-
animationType: isSlideCorrect ? 'unstack' : 'restack',
|
|
148
|
-
isCorrect: isSlideCorrect,
|
|
149
|
-
endReview: !!exitNode,
|
|
150
|
-
answerUI,
|
|
151
|
-
questionText
|
|
152
|
-
},
|
|
153
|
-
numberOfFinishedSlides: finishedSlidesSize
|
|
154
|
-
});
|
|
155
|
-
updateStepItemsOnNext({
|
|
156
|
-
stepNumber: slideNumber,
|
|
157
|
-
finishedSlides,
|
|
158
|
-
current: finishedSlidesSize === HIGHEST_INDEX &&
|
|
159
|
-
/* istanbul ignore next */
|
|
160
|
-
!isSlideCorrect
|
|
161
|
-
});
|
|
162
|
-
if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');
|
|
163
|
-
},
|
|
164
|
-
label: next && next.label,
|
|
165
|
-
'data-name': `next-question-button-${slideNumber}`,
|
|
166
|
-
'aria-label': next && next['aria-label']
|
|
167
|
-
},
|
|
168
|
-
klf,
|
|
169
|
-
information,
|
|
170
|
-
type: isSlideCorrect ? 'right' : 'wrong',
|
|
171
|
-
resultLabel: isSlideCorrect ? successLabel : failureLabel
|
|
172
|
-
};
|
|
173
|
-
const questionOrigin = 'From "Master Design Thinking to become more agile" course';
|
|
174
|
-
const answerProps = (0, _get.default)(['model', 'choices'], answerUI) ?
|
|
175
|
-
/* istanbul ignore next */
|
|
176
|
-
_extends(_extends({}, answerUI), {}, {
|
|
177
|
-
model: _extends(_extends({}, answerUI.model), {}, {
|
|
178
|
-
answers: answerUI.model.choices
|
|
179
|
-
})
|
|
180
|
-
}) : answerUI;
|
|
181
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
182
|
-
key: `slide-${slideNumber}`,
|
|
183
|
-
"data-name": `slide-${slideNumber}`,
|
|
184
|
-
className: (0, _classnames.default)(_style.default.slideBase, getSlideAnimation(animationType, position, hidden), endReview ? _style.default.endReview : null)
|
|
185
|
-
}, answerUI && questionText ? /*#__PURE__*/_react.default.createElement("div", {
|
|
186
|
-
key: "content-container",
|
|
187
|
-
className: _style.default.slideContentContainer
|
|
188
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
189
|
-
key: "from-course",
|
|
190
|
-
className: _style.default.questionOrigin
|
|
191
|
-
}, questionOrigin), /*#__PURE__*/_react.default.createElement("div", {
|
|
192
|
-
key: "title",
|
|
193
|
-
className: _style.default.question
|
|
194
|
-
}, questionText), /*#__PURE__*/_react.default.createElement("div", {
|
|
195
|
-
key: "help",
|
|
196
|
-
className: _style.default.help
|
|
197
|
-
}, answerUI.help), /*#__PURE__*/_react.default.createElement("div", {
|
|
198
|
-
key: "answer-container",
|
|
199
|
-
className: _style.default.answerContainer
|
|
200
|
-
}, /*#__PURE__*/_react.default.createElement(_answer.default, _extends({}, answerProps, {
|
|
201
|
-
key: "answer"
|
|
202
|
-
})))) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
203
|
-
key: "button-wrapper",
|
|
204
|
-
className: _style.default.validateButtonWrapper
|
|
205
|
-
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, validateButtonProps)), /*#__PURE__*/_react.default.createElement("div", {
|
|
206
|
-
className: isSlideCorrect ? _style.default.correctionPopinWrapper : _style.default.hiddenCorrectionPopinWrapper,
|
|
207
|
-
style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !isSlideCorrect && {
|
|
208
|
-
display: 'none'
|
|
209
|
-
})
|
|
210
|
-
}, /*#__PURE__*/_react.default.createElement(_reviewCorrectionPopin.default, _correctionPopinProps)));
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
Slide.propTypes = process.env.NODE_ENV !== "production" ? _propTypes.SlidePropTypes : {};
|
|
214
|
-
|
|
215
|
-
const StackedSlides = ({
|
|
216
|
-
slides,
|
|
217
|
-
primarySkinColor,
|
|
218
|
-
validate,
|
|
219
|
-
validateSlide,
|
|
220
|
-
finishedSlides,
|
|
221
|
-
finishedSlidesSize,
|
|
222
|
-
updateSlidesOnNext,
|
|
223
|
-
updateReviewStatus,
|
|
224
|
-
updateStepItemsOnNext,
|
|
225
|
-
progression,
|
|
226
|
-
correctionPopinProps
|
|
227
|
-
}) => {
|
|
228
|
-
const stackedSlides = []; // eslint-disable-next-line fp/no-loops
|
|
229
|
-
|
|
230
|
-
for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {
|
|
231
|
-
const slide = /*#__PURE__*/_react.default.createElement(Slide, _extends({
|
|
232
|
-
slideNumber,
|
|
233
|
-
slides,
|
|
234
|
-
primarySkinColor,
|
|
235
|
-
validate,
|
|
236
|
-
validateSlide,
|
|
237
|
-
finishedSlides,
|
|
238
|
-
finishedSlidesSize,
|
|
239
|
-
updateSlidesOnNext,
|
|
240
|
-
updateReviewStatus,
|
|
241
|
-
updateStepItemsOnNext,
|
|
242
|
-
progression,
|
|
243
|
-
correctionPopinProps
|
|
244
|
-
}, {
|
|
245
|
-
key: slideNumber
|
|
246
|
-
}));
|
|
247
|
-
|
|
248
|
-
stackedSlides.push(slide);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
return stackedSlides;
|
|
252
|
-
};
|
|
253
|
-
|
|
254
|
-
StackedSlides.propTypes = process.env.NODE_ENV !== "production" ? _propTypes.StackedSlidesPropTypes : {};
|
|
255
|
-
|
|
256
|
-
const SlidesReview = ({
|
|
257
|
-
headerProps,
|
|
258
|
-
reviewBackgroundAriaLabel,
|
|
259
|
-
validate,
|
|
260
|
-
correctionPopinProps,
|
|
261
|
-
slides,
|
|
262
|
-
finishedSlides,
|
|
263
|
-
stepItems,
|
|
264
|
-
reviewStatus,
|
|
265
|
-
congratsProps,
|
|
266
|
-
validateSlide,
|
|
267
|
-
updateSlidesOnValidation,
|
|
268
|
-
updateSlidesOnNext,
|
|
269
|
-
updateReviewStatus,
|
|
270
|
-
updateStepItemsOnValidation,
|
|
271
|
-
updateStepItemsOnNext,
|
|
272
|
-
updateFinishedSlides,
|
|
273
|
-
progression
|
|
274
|
-
}, context) => {
|
|
275
|
-
const {
|
|
276
|
-
skin
|
|
277
|
-
} = context;
|
|
278
|
-
const primarySkinColor = (0, _react.useMemo)(() => (0, _getOr.default)('#00B0FF', 'common.primary', skin), [skin]);
|
|
279
|
-
const finishedSlidesSize = (0, _react.useMemo)(() => (0, _pipe.default)((0, _omit.default)('slideNumbers'), _size.default)(finishedSlides), [finishedSlides]);
|
|
280
|
-
/*
|
|
281
|
-
||-------> the slides have an slightly longer lifespan than the "ongoing" review State,
|
|
282
|
-
after reviewState changes to "finished" the slides don't have to unmount until the last
|
|
283
|
-
slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.
|
|
284
|
-
(if they are only invisible -but- still mounted, then they will be found by the assisting
|
|
285
|
-
tools & clutter them)
|
|
286
|
-
*/
|
|
287
|
-
|
|
288
|
-
const [shouldMountSlides, updateShouldMountSlides] = (0, _react.useState)(true);
|
|
289
|
-
(0, _react.useEffect)(
|
|
290
|
-
/* istanbul ignore next */
|
|
291
|
-
() => {
|
|
292
|
-
const slideNumber = (0, _get.default)('slideNumber', progression); // temporal fix, should check for new slides in the state && then update
|
|
293
|
-
|
|
294
|
-
if (progression && slideNumber !== 0) {
|
|
295
|
-
const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
|
|
296
|
-
const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
|
|
297
|
-
const position = (0, _get.default)(`${slideNumber}.position`, slides);
|
|
298
|
-
const isCorrect = (0, _get.default)('isCorrect', progression);
|
|
299
|
-
const exitNode = (0, _get.default)('exitNode', progression);
|
|
300
|
-
const nextContent = (0, _get.default)('nextContent', progression);
|
|
301
|
-
updateSlidesOnValidation({
|
|
302
|
-
slideNumber,
|
|
303
|
-
newSlideContent: {
|
|
304
|
-
hidden,
|
|
305
|
-
position,
|
|
306
|
-
isCorrect,
|
|
307
|
-
endReview: !!exitNode
|
|
308
|
-
},
|
|
309
|
-
numberOfFinishedSlides: finishedSlidesSize,
|
|
310
|
-
nextContent
|
|
311
|
-
});
|
|
312
|
-
updateStepItemsOnValidation({
|
|
313
|
-
stepNumber: slideNumber,
|
|
314
|
-
icon: isCorrect ? _reviewHeaderStepItem.ICON_VALUES.right : _reviewHeaderStepItem.ICON_VALUES.wrong
|
|
315
|
-
});
|
|
316
|
-
if (isCorrect) updateFinishedSlides({
|
|
317
|
-
slideNumber,
|
|
318
|
-
value: true
|
|
319
|
-
});
|
|
320
|
-
|
|
321
|
-
if (endReview) {
|
|
322
|
-
updateReviewStatus('finished');
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
326
|
-
[progression]);
|
|
327
|
-
(0, _react.useEffect)(
|
|
328
|
-
/* istanbul ignore next */
|
|
329
|
-
() => {
|
|
330
|
-
if (reviewStatus === 'finished') {
|
|
331
|
-
setTimeout(() => updateShouldMountSlides(false), 2000);
|
|
332
|
-
}
|
|
333
|
-
}, [finishedSlidesSize, reviewStatus, updateReviewStatus]); // ||-------> transform the step items state to Array
|
|
334
|
-
|
|
335
|
-
const stepItemsArray = (0, _react.useMemo)(() => (0, _pipe.default)((0, _omit.default)('slideNumbers'), (0, _map.default)(stepItem => stepItem))(stepItems), [stepItems]);
|
|
336
|
-
|
|
337
|
-
const _headerProps = _extends(_extends({}, headerProps), {}, {
|
|
338
|
-
steps: stepItemsArray,
|
|
339
|
-
key: 'review-header',
|
|
340
|
-
hiddenSteps: reviewStatus !== 'ongoing'
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
344
|
-
key: "slides-revision-container",
|
|
345
|
-
"data-name": "slides-revision-container",
|
|
346
|
-
className: _style.default.slidesRevisionContainer
|
|
347
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
348
|
-
key: "player-background-container",
|
|
349
|
-
className: _style.default.playerBackground
|
|
350
|
-
}, /*#__PURE__*/_react.default.createElement(_reviewBackground.default, {
|
|
351
|
-
"aria-label": reviewBackgroundAriaLabel
|
|
352
|
-
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
353
|
-
key: "review-header-wrapper",
|
|
354
|
-
className: _style.default.reviewHeaderContainer
|
|
355
|
-
}, /*#__PURE__*/_react.default.createElement(_reviewHeader.default, _headerProps)), shouldMountSlides ? /*#__PURE__*/_react.default.createElement("div", {
|
|
356
|
-
key: "stacked-slides-container-y-overflow",
|
|
357
|
-
className: _style.default.stackedSlidesYAxisOverflowContainer
|
|
358
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
359
|
-
key: "stacked-slides-container",
|
|
360
|
-
"data-name": "stacked-slides-container",
|
|
361
|
-
className: _style.default.stackedSlidesContainer
|
|
362
|
-
}, /*#__PURE__*/_react.default.createElement(StackedSlides, {
|
|
363
|
-
slides,
|
|
364
|
-
primarySkinColor,
|
|
365
|
-
validate,
|
|
366
|
-
validateSlide,
|
|
367
|
-
finishedSlides,
|
|
368
|
-
finishedSlidesSize,
|
|
369
|
-
updateSlidesOnNext,
|
|
370
|
-
updateReviewStatus,
|
|
371
|
-
updateStepItemsOnNext,
|
|
372
|
-
progression,
|
|
373
|
-
correctionPopinProps
|
|
374
|
-
}))) :
|
|
375
|
-
/* istanbul ignore next */
|
|
376
|
-
null, reviewStatus === 'finished' ? /*#__PURE__*/_react.default.createElement("div", {
|
|
377
|
-
className: _style.default.congrats,
|
|
378
|
-
"data-name": "congrats-container"
|
|
379
|
-
}, /*#__PURE__*/_react.default.createElement(_reviewCongrats.default, congratsProps)) : null);
|
|
380
|
-
};
|
|
381
|
-
|
|
382
|
-
SlidesReview.propTypes = process.env.NODE_ENV !== "production" ? _propTypes.SlidesReviewPropTypes : {};
|
|
383
|
-
var _default = SlidesReview;
|
|
384
|
-
exports.default = _default;
|
|
385
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["stylesByPosition","style","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","progression","correctionPopinProps","endReview","animationType","isSlideCorrect","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","isCorrect","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","SlidePropTypes","StackedSlides","stackedSlides","slide","push","StackedSlidesPropTypes","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","size","shouldMountSlides","updateShouldMountSlides","nextContent","icon","ICON_VALUES","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\n\nconst stylesByPosition = {\n 0: style.position0,\n 1: style.position1,\n 2: style.position2,\n 3: style.position3,\n 4: style.position4\n};\n\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\n customStyle: {\n backgroundColor: primarySkinColor\n },\n /*\n slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n */\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(isSlideCorrect)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', progression);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: !!isSlideCorrect,\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: isSlideCorrect ? 'unstack' : 'restack',\n isCorrect: isSlideCorrect,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX && /* istanbul ignore next */ !isSlideCorrect\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: isSlideCorrect ? 'right' : 'wrong',\n resultLabel: isSlideCorrect ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div key=\"title\" className={style.question}>\n {questionText}\n </div>\n <div key=\"help\" className={style.help}>\n {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !isSlideCorrect && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n progression\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', progression);\n // temporal fix, should check for new slides in the state && then update\n if (progression && slideNumber !== 0) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const isCorrect = get('isCorrect', progression);\n const exitNode = get('exitNode', progression);\n const nextContent = get('nextContent', progression);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n isCorrect,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextContent\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (isCorrect) updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [progression]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\n <div\n key=\"stacked-slides-container-y-overflow\"\n className={style.stackedSlidesYAxisOverflowContainer}\n >\n <div\n key=\"stacked-slides-container\"\n data-name=\"stacked-slides-container\"\n className={style.stackedSlidesContainer}\n >\n <StackedSlides\n {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/index.native.tsx"],"names":["quizzerStyle","StyleSheet","create","container","flex","padding","justifyContent","alignItems","SLIDE_HEIGHT","height","creatSlideStyle","num","width","slide","position","top","backgroundColor","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderRadius","category","fontSize","lineHeight","textAlign","question","fontWeight","instruction","button","createOptionStyle","selected","box","marginTop","marginBottom","text","choicesStyle","Choices","choices","map","index","optionStyle","propTypes","PropTypes","arrayOf","bool","Slide","props","validateSlide","slideStyle","validateLabel","templateContext","analytics","answerUI","isDisabled","value","model","type","onChange","Slides","slides","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {View, StyleSheet, Text, useWindowDimensions, Button} from 'react-native';\n\nimport FreeText from '../../../molecule/questions/free-text';\nimport {useTemplateContext} from '../template-context';\nimport {SlidesReviewPropTypes} from './prop-types';\n\n// import theme from '../../../modules/theme';\n// import translations from '../../../translations';\n// import {BrandThemeContext} from '../../../app-shared/components/brand-theme-provider';\n// import Button from '../../../app-shared/components/button';\n// import {HEADER_HEIGHT} from '../../../app-shared/components/header-v2';\n\n// export type _Choice_ = {\n// text?: string,\n// selected: boolean\n// };\n\n// export type _Slide_ = {\n// category: string,\n// question: string,\n// instruction: string,\n// type: 'multiSelection' | 'singleSelection' | 'trueOrFalse',\n// choices?: _Choice_[]\n// };\n\n// interface Props {\n// slide: _Slide_;\n// num: number;\n// }\n\nconst quizzerStyle = StyleSheet.create({\n container: {\n flex: 1,\n padding: 20,\n // paddingTop: HEADER_HEIGHT + 20, @todo with props\n // backgroundColor: theme.colors.white, @todo with props\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n});\n\nconst SLIDE_HEIGHT = () => useWindowDimensions().height * 0.75;\n\n// const creatSlideStyle = (num: number) =>\nconst creatSlideStyle = (num, width, height) =>\n StyleSheet.create({\n slide: {\n position: 'absolute',\n top: height / 2 - SLIDE_HEIGHT() / 2 - num * 4,\n flex: 1,\n backgroundColor: '#fff',\n // backgroundColor: theme.colors.white, @todo with props and useEffect\n height: SLIDE_HEIGHT(),\n width: width - 40 - num * 8,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n },\n category: {\n fontSize: 12,\n lineHeight: 16,\n // color: theme.colors.text.primary, @todo with props\n // marginBottom: theme.spacing.tiny, @todo with props\n // marginTop: theme.spacing.small, @todo with props\n textAlign: 'center'\n },\n question: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n // color: theme.colors.text.primary, @todo with props\n textAlign: 'center'\n },\n instruction: {\n fontSize: 12,\n lineHeight: 16,\n // color: theme.colors.gray.medium, @todo with props\n // marginBottom: theme.spacing.base, @todo with props\n // marginTop: theme.spacing.small, @todo with props\n textAlign: 'center'\n },\n button: {\n width: 287,\n height: 52,\n borderRadius: 7\n // marginTop: theme.spacing.base @todo with props\n }\n });\n\nconst createOptionStyle = selected => {\n // const brandTheme = React.useContext(BrandThemeContext); @todo with props\n\n return StyleSheet.create({\n box: {\n width: '100%',\n // https://stackoverflow.com/a/66561995/959219\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.2,\n shadowRadius: 16,\n elevation: 8,\n // backgroundColor: selected ? brandTheme.colors.primary : theme.colors.white, @todo with props\n padding: 12,\n marginTop: 4,\n marginBottom: 4,\n borderRadius: 8\n },\n text: {\n fontSize: 15,\n fontWeight: 'bold',\n lineHeight: 24,\n // color: selected ? theme.colors.white : theme.colors.text.primary, @todo with props\n textAlign: 'center'\n }\n });\n};\n\nconst choicesStyle = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center'\n }\n});\n\n// -----------------------------------------------------------------------------\n\n/* {choices.map(({text, selected = false}: _Choice_) => { */\nconst Choices = ({choices = []}) => (\n <View style={choicesStyle.container}>\n {choices.map(({text, selected = false}, index) => {\n const optionStyle = createOptionStyle(selected);\n return (\n <View style={optionStyle.box} key={`choice-${index}`}>\n <Text style={optionStyle.text}>\n {text} {selected}\n </Text>\n </View>\n );\n })}\n </View>\n);\n\nChoices.propTypes = {\n choices: PropTypes.arrayOf({\n text: PropTypes.text,\n selected: PropTypes.bool\n })\n};\n\n// -----------------------------------------------------------------------------\n\nconst Slide = props => {\n const {validateSlide, slide, num} = props;\n const {width, height} = useWindowDimensions();\n\n const slideStyle = creatSlideStyle(num, width, height);\n const validateLabel = '__validate'; // translations.validate\n\n const templateContext = useTemplateContext();\n const {analytics} = templateContext;\n\n const {\n answerUI: {isDisabled = false, value = '', model: {type, onChange}} = {\n isDisabled: false,\n value: '',\n model: {type: 'freeText', onChange: () => null}\n }\n } = slide;\n\n switch (type) {\n case 'freeText': {\n return (\n <View style={slideStyle.slide}>\n <FreeText\n isDisabled={isDisabled}\n onChange={onChange}\n value={value}\n testID=\"free-text\"\n questionType=\"basic\"\n analytics={analytics}\n />\n </View>\n );\n }\n default:\n }\n\n return (\n <View style={slideStyle.slide}>\n <Text style={slideStyle.category}>{num}</Text>\n <Text style={slideStyle.question}>{slide.question}</Text>\n <Text style={slideStyle.instruction}>{slide.instruction}</Text>\n\n <Choices choices={slide.choices} />\n\n <Button style={slideStyle.button} onPress={validateSlide} testID={`button-quizzer-validate`}>\n {validateLabel}\n </Button>\n </View>\n );\n};\n\n// -----------------------------------------------------------------------------\n\n// const Slides = ({slide}: Props) => {\nconst Slides = ({slides, validateSlide}) => {\n if (!slides) {\n return null;\n }\n\n return (\n <View style={quizzerStyle.container}>\n <Slide validateSlide={validateSlide} slide={slides[0]} num={0} key={`slide-${0}`} />\n {/* {slides.reverse().map((_slide, index) => (\n <Slide\n validateSlide={validateSlide}\n slide={_slide}\n num={slides.length - index}\n key={`slide-${index}`}\n />\n ))} */}\n </View>\n );\n};\n\nSlides.propTypes = SlidesReviewPropTypes;\n\n// -----------------------------------------------------------------------------\n\nexport default Slides;\n"],"file":"index.native.js"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.StackedSlidesPropTypes = exports.SlidePropTypes = exports.SlidesReviewPropTypes = void 0;
|
|
5
|
-
|
|
6
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
7
|
-
|
|
8
|
-
var _omit = _interopRequireDefault(require("lodash/fp/omit"));
|
|
9
|
-
|
|
10
|
-
var _propTypes2 = _interopRequireDefault(require("../../../organism/review-congrats/prop-types"));
|
|
11
|
-
|
|
12
|
-
var _propTypes3 = _interopRequireDefault(require("../../../molecule/review-correction-popin/prop-types"));
|
|
13
|
-
|
|
14
|
-
var _propTypes4 = _interopRequireDefault(require("../../../atom/review-background/prop-types"));
|
|
15
|
-
|
|
16
|
-
var _propTypes5 = _interopRequireDefault(require("../../../organism/review-header/prop-types"));
|
|
17
|
-
|
|
18
|
-
var _propTypes6 = _interopRequireDefault(require("../../../molecule/answer/prop-types"));
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
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); }
|
|
23
|
-
|
|
24
|
-
const NextSlideProp = _propTypes.default.shape({
|
|
25
|
-
hidden: _propTypes.default.bool,
|
|
26
|
-
position: _propTypes.default.number,
|
|
27
|
-
// 'unstack' | 'restack'
|
|
28
|
-
animationType: _propTypes.default.string,
|
|
29
|
-
// 'success' | 'failure'
|
|
30
|
-
isCorrect: _propTypes.default.string,
|
|
31
|
-
endReview: _propTypes.default.bool,
|
|
32
|
-
questionText: _propTypes.default.string,
|
|
33
|
-
answerUI: _propTypes6.default
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const SlideProp = _propTypes.default.shape(_extends(_extends({}, NextSlideProp.props), {}, {
|
|
37
|
-
nextContent: NextSlideProp
|
|
38
|
-
}));
|
|
39
|
-
|
|
40
|
-
const StepItemProp = _propTypes.default.shape({
|
|
41
|
-
current: _propTypes.default.bool,
|
|
42
|
-
icon: _propTypes.default.string,
|
|
43
|
-
value: _propTypes.default.string
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const SlidesReviewPropTypes = {
|
|
47
|
-
headerProps: _propTypes.default.shape((0, _omit.default)('steps', _propTypes5.default.propTypes)),
|
|
48
|
-
reviewBackgroundAriaLabel: _propTypes4.default['aria-label'],
|
|
49
|
-
validate: _propTypes.default.shape({
|
|
50
|
-
label: _propTypes.default.string
|
|
51
|
-
}),
|
|
52
|
-
slides: _propTypes.default.shape({
|
|
53
|
-
slideNumbers: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
54
|
-
0: SlideProp,
|
|
55
|
-
1: SlideProp,
|
|
56
|
-
2: SlideProp,
|
|
57
|
-
3: SlideProp,
|
|
58
|
-
4: SlideProp
|
|
59
|
-
}),
|
|
60
|
-
finishedSlides: _propTypes.default.shape({
|
|
61
|
-
slideNumbers: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
62
|
-
0: _propTypes.default.bool,
|
|
63
|
-
1: _propTypes.default.bool,
|
|
64
|
-
2: _propTypes.default.bool,
|
|
65
|
-
3: _propTypes.default.bool,
|
|
66
|
-
4: _propTypes.default.bool
|
|
67
|
-
}),
|
|
68
|
-
stepItems: _propTypes.default.shape({
|
|
69
|
-
slideNumbers: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
70
|
-
0: StepItemProp,
|
|
71
|
-
1: StepItemProp,
|
|
72
|
-
2: StepItemProp,
|
|
73
|
-
3: StepItemProp,
|
|
74
|
-
4: StepItemProp
|
|
75
|
-
}),
|
|
76
|
-
// 'finished' | 'ongoing'
|
|
77
|
-
reviewStatus: _propTypes.default.string,
|
|
78
|
-
correctionPopinProps: _propTypes.default.shape({
|
|
79
|
-
// ---------------
|
|
80
|
-
klf: _propTypes3.default.klf,
|
|
81
|
-
information: _propTypes3.default.information,
|
|
82
|
-
next: _propTypes.default.shape({
|
|
83
|
-
label: _propTypes.default.string,
|
|
84
|
-
'aria-label': _propTypes.default.string
|
|
85
|
-
}),
|
|
86
|
-
successLabel: _propTypes3.default.resultLabel,
|
|
87
|
-
failureLabel: _propTypes3.default.resultLabel
|
|
88
|
-
}),
|
|
89
|
-
congratsProps: _propTypes.default.shape(_propTypes2.default),
|
|
90
|
-
progression: _propTypes.default.shape({
|
|
91
|
-
slideNumber: _propTypes.default.number,
|
|
92
|
-
// 'success' | 'failure'
|
|
93
|
-
isCorrect: _propTypes.default.bool,
|
|
94
|
-
// 'successExitNode' | 'failExitNode'
|
|
95
|
-
exitNode: _propTypes.default.string,
|
|
96
|
-
nextContent: _propTypes.default.shape({
|
|
97
|
-
questionText: _propTypes.default.string,
|
|
98
|
-
answerUI: _propTypes.default.shape(_propTypes6.default)
|
|
99
|
-
})
|
|
100
|
-
}),
|
|
101
|
-
// ---------------------------------------------------------------------------
|
|
102
|
-
// Dispatchers
|
|
103
|
-
validateSlide: _propTypes.default.func.isRequired,
|
|
104
|
-
updateSlidesOnValidation: _propTypes.default.func.isRequired,
|
|
105
|
-
updateSlidesOnNext: _propTypes.default.func.isRequired,
|
|
106
|
-
updateReviewStatus: _propTypes.default.func.isRequired,
|
|
107
|
-
updateStepItemsOnValidation: _propTypes.default.func.isRequired,
|
|
108
|
-
updateStepItemsOnNext: _propTypes.default.func.isRequired,
|
|
109
|
-
updateFinishedSlides: _propTypes.default.func.isRequired
|
|
110
|
-
};
|
|
111
|
-
exports.SlidesReviewPropTypes = SlidesReviewPropTypes;
|
|
112
|
-
const SlidePropTypes = {
|
|
113
|
-
slideNumber: _propTypes.default.number,
|
|
114
|
-
slides: SlidesReviewPropTypes.slides,
|
|
115
|
-
primarySkinColor: _propTypes.default.string,
|
|
116
|
-
validate: SlidesReviewPropTypes.validate,
|
|
117
|
-
finishedSlides: SlidesReviewPropTypes.finishedSlides,
|
|
118
|
-
finishedSlidesSize: _propTypes.default.number,
|
|
119
|
-
correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,
|
|
120
|
-
// ---------------
|
|
121
|
-
// Dispatchers
|
|
122
|
-
validateSlide: SlidesReviewPropTypes.validateSlide,
|
|
123
|
-
updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,
|
|
124
|
-
updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,
|
|
125
|
-
updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,
|
|
126
|
-
progression: SlidesReviewPropTypes.progression
|
|
127
|
-
};
|
|
128
|
-
exports.SlidePropTypes = SlidePropTypes;
|
|
129
|
-
const StackedSlidesPropTypes = (0, _omit.default)('slideNumber', SlidePropTypes);
|
|
130
|
-
exports.StackedSlidesPropTypes = StackedSlidesPropTypes;
|
|
131
|
-
//# sourceMappingURL=prop-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["NextSlideProp","PropTypes","shape","hidden","bool","position","number","animationType","string","isCorrect","endReview","questionText","answerUI","AnswerPropTypes","SlideProp","props","nextContent","StepItemProp","current","icon","value","SlidesReviewPropTypes","headerProps","ReviewHeader","propTypes","reviewBackgroundAriaLabel","ReviewBackgroundPropTypes","validate","label","slides","slideNumbers","arrayOf","finishedSlides","stepItems","reviewStatus","correctionPopinProps","klf","ReviewCorrectionPopinPropTypes","information","next","successLabel","resultLabel","failureLabel","congratsProps","ReviewCongratsPropTypes","progression","slideNumber","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 ReviewCongratsPropTypes from '../../../organism/review-congrats/prop-types';\nimport ReviewCorrectionPopinPropTypes from '../../../molecule/review-correction-popin/prop-types';\nimport ReviewBackgroundPropTypes from '../../../atom/review-background/prop-types';\nimport ReviewHeader from '../../../organism/review-header/prop-types';\nimport AnswerPropTypes from '../../../molecule/answer/prop-types';\n\nconst NextSlideProp = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n // 'unstack' | 'restack'\n animationType: PropTypes.string,\n // 'success' | 'failure'\n isCorrect: PropTypes.string,\n endReview: PropTypes.bool,\n questionText: PropTypes.string,\n answerUI: AnswerPropTypes\n});\n\nconst SlideProp = PropTypes.shape({\n ...NextSlideProp.props,\n nextContent: 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: ReviewBackgroundPropTypes['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: ReviewCorrectionPopinPropTypes.klf,\n information: ReviewCorrectionPopinPropTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n successLabel: ReviewCorrectionPopinPropTypes.resultLabel,\n failureLabel: ReviewCorrectionPopinPropTypes.resultLabel\n }),\n congratsProps: PropTypes.shape(ReviewCongratsPropTypes),\n progression: PropTypes.shape({\n slideNumber: PropTypes.number,\n // 'success' | 'failure'\n isCorrect: PropTypes.bool,\n // 'successExitNode' | 'failExitNode'\n exitNode: PropTypes.string,\n nextContent: PropTypes.shape({\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(AnswerPropTypes)\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 progression: SlidesReviewPropTypes.progression\n};\n\nexport const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);\n"],"file":"prop-types.js"}
|