@coorpacademy/components 10.22.12 → 10.22.15-alpha.8
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/provider/index.js +2 -0
- package/es/atom/provider/index.js.map +1 -1
- package/es/atom/provider/web-context.js +27 -0
- package/es/atom/provider/web-context.js.map +1 -0
- package/es/atom/select/index.js +5 -5
- package/es/atom/select/index.js.map +1 -1
- package/es/atom/text/index.native.js.map +1 -1
- package/es/hoc/modal/select/index.native.js.map +1 -1
- package/es/molecule/discipline-partners/index.js +1 -1
- package/es/molecule/discipline-partners/index.js.map +1 -1
- package/es/molecule/questions/free-text/index.js +8 -3
- package/es/molecule/questions/free-text/index.js.map +1 -1
- package/es/molecule/questions/free-text/index.native.js +3 -3
- package/es/molecule/questions/free-text/index.native.js.map +1 -1
- package/es/molecule/questions/mobile/{slide → slider}/index.native.js +17 -14
- package/es/molecule/questions/mobile/slider/index.native.js.map +1 -0
- package/es/molecule/questions/mobile/switch/index.native.js +171 -0
- package/es/molecule/questions/mobile/switch/index.native.js.map +1 -0
- package/es/molecule/questions/qcm/index.js +5 -5
- package/es/molecule/questions/qcm/index.js.map +1 -1
- package/es/molecule/questions/qcm-drag/index.js +7 -8
- package/es/molecule/questions/qcm-drag/index.js.map +1 -1
- package/es/molecule/questions/qcm-graphic/index.js +7 -5
- package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/es/molecule/questions/question-range/index.js +7 -5
- package/es/molecule/questions/question-range/index.js.map +1 -1
- package/es/organism/review-slide/index.js +5 -7
- package/es/organism/review-slide/index.js.map +1 -1
- package/es/template/app-review/template-context.js +3 -7
- package/es/template/app-review/template-context.js.map +1 -1
- package/es/variables/theme.native.js.map +1 -1
- package/lib/atom/provider/index.js +9 -0
- package/lib/atom/provider/index.js.map +1 -1
- package/lib/atom/provider/web-context.js +40 -0
- package/lib/atom/provider/web-context.js.map +1 -0
- package/lib/atom/select/index.js +5 -5
- package/lib/atom/select/index.js.map +1 -1
- package/lib/atom/text/index.native.js.map +1 -1
- package/lib/hoc/modal/select/index.native.js.map +1 -1
- package/lib/molecule/discipline-partners/index.js +1 -1
- package/lib/molecule/discipline-partners/index.js.map +1 -1
- package/lib/molecule/questions/free-text/index.js +6 -3
- package/lib/molecule/questions/free-text/index.js.map +1 -1
- package/lib/molecule/questions/free-text/index.native.js +3 -3
- package/lib/molecule/questions/free-text/index.native.js.map +1 -1
- package/lib/molecule/questions/mobile/{slide → slider}/index.native.js +16 -13
- package/lib/molecule/questions/mobile/slider/index.native.js.map +1 -0
- package/lib/molecule/questions/mobile/switch/index.native.js +193 -0
- package/lib/molecule/questions/mobile/switch/index.native.js.map +1 -0
- package/lib/molecule/questions/qcm/index.js +5 -5
- package/lib/molecule/questions/qcm/index.js.map +1 -1
- package/lib/molecule/questions/qcm-drag/index.js +9 -8
- package/lib/molecule/questions/qcm-drag/index.js.map +1 -1
- package/lib/molecule/questions/qcm-graphic/index.js +9 -5
- package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/lib/molecule/questions/question-range/index.js +9 -5
- package/lib/molecule/questions/question-range/index.js.map +1 -1
- package/lib/organism/review-slide/index.js +6 -8
- package/lib/organism/review-slide/index.js.map +1 -1
- package/lib/template/app-review/template-context.js +3 -6
- package/lib/template/app-review/template-context.js.map +1 -1
- package/lib/variables/theme.native.js.map +1 -1
- package/package.json +2 -2
- package/es/molecule/questions/mobile/slide/index.native.js.map +0 -1
- package/lib/molecule/questions/mobile/slide/index.native.js.map +0 -1
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { View, StyleSheet } from 'react-native';
|
|
3
|
+
import QuestionChoice from '../../../../atom/choice/index.native';
|
|
4
|
+
import Space from '../../../../atom/space/index.native';
|
|
5
|
+
import QuestionDraggable from '../draggable/index.native';
|
|
6
|
+
import QuestionTemplate from '../template/index.native';
|
|
7
|
+
import QuestionSlider from '../slider/index.native';
|
|
8
|
+
import FreeText from '../../free-text/index.native';
|
|
9
|
+
import { useTemplateContext } from '../../../../template/app-review/template-context';
|
|
10
|
+
import { ANALYTICS_EVENT_TYPE } from '../../../../variables/analytics';
|
|
11
|
+
const styleSheet = StyleSheet.create({
|
|
12
|
+
cards: {
|
|
13
|
+
flexDirection: 'row',
|
|
14
|
+
alignItems: 'stretch'
|
|
15
|
+
},
|
|
16
|
+
card: {
|
|
17
|
+
flex: 1
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const Switch = props => {
|
|
22
|
+
const templateContext = useTemplateContext();
|
|
23
|
+
const {
|
|
24
|
+
analytics
|
|
25
|
+
} = templateContext;
|
|
26
|
+
const {
|
|
27
|
+
type,
|
|
28
|
+
template,
|
|
29
|
+
isDisabled,
|
|
30
|
+
items,
|
|
31
|
+
userChoices,
|
|
32
|
+
min,
|
|
33
|
+
max,
|
|
34
|
+
unit,
|
|
35
|
+
value,
|
|
36
|
+
step,
|
|
37
|
+
onSliderChange,
|
|
38
|
+
onItemPress,
|
|
39
|
+
onItemInputChange,
|
|
40
|
+
onInputValueChange,
|
|
41
|
+
focusedSelectId,
|
|
42
|
+
handleFocus,
|
|
43
|
+
handleBlur
|
|
44
|
+
} = props;
|
|
45
|
+
|
|
46
|
+
const isSelected = choice => userChoices && userChoices.includes(choice.label);
|
|
47
|
+
|
|
48
|
+
const handleItemPress = item => () => {
|
|
49
|
+
if (onItemPress) {
|
|
50
|
+
onItemPress(item);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const handleItemInputChange = useCallback((item, _value) => {
|
|
55
|
+
if (onItemInputChange) {
|
|
56
|
+
onItemInputChange(item, _value);
|
|
57
|
+
}
|
|
58
|
+
}, [onItemInputChange]);
|
|
59
|
+
const handleSlidingComplete = useCallback(_value => {
|
|
60
|
+
analytics && analytics.logEvent(ANALYTICS_EVENT_TYPE.SLIDE, {
|
|
61
|
+
id: 'slider',
|
|
62
|
+
questionType: 'slider'
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (onSliderChange) {
|
|
66
|
+
onSliderChange(_value);
|
|
67
|
+
}
|
|
68
|
+
}, [analytics, onSliderChange]);
|
|
69
|
+
|
|
70
|
+
switch (type) {
|
|
71
|
+
case 'qcm':
|
|
72
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
73
|
+
testID: "question-choices"
|
|
74
|
+
}, items.map((item, index) => /*#__PURE__*/React.createElement(View, {
|
|
75
|
+
key: `question-choice-${item._id}`
|
|
76
|
+
}, index > 0 ? /*#__PURE__*/React.createElement(Space, null) : null, /*#__PURE__*/React.createElement(QuestionChoice, {
|
|
77
|
+
onPress: handleItemPress(item),
|
|
78
|
+
isDisabled: isDisabled,
|
|
79
|
+
isSelected: isSelected(item),
|
|
80
|
+
testID: `question-choice-${item._id}`,
|
|
81
|
+
questionType: type
|
|
82
|
+
}, item.label))));
|
|
83
|
+
|
|
84
|
+
case 'qcmGraphic':
|
|
85
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
86
|
+
testID: "question-choices"
|
|
87
|
+
}, items.map((item, index) => {
|
|
88
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
89
|
+
key: `question-choice-row-${item._id}`
|
|
90
|
+
}, index > 0 ? /*#__PURE__*/React.createElement(Space, null) : null, /*#__PURE__*/React.createElement(View, {
|
|
91
|
+
style: styleSheet.cards
|
|
92
|
+
}, /*#__PURE__*/React.createElement(QuestionChoice, {
|
|
93
|
+
onPress: handleItemPress(item),
|
|
94
|
+
media: item.media,
|
|
95
|
+
isDisabled: isDisabled,
|
|
96
|
+
isSelected: isSelected(item),
|
|
97
|
+
testID: `question-choice-${item._id}`,
|
|
98
|
+
style: styleSheet.card,
|
|
99
|
+
questionType: type
|
|
100
|
+
}, item.label), /*#__PURE__*/React.createElement(Space, null)));
|
|
101
|
+
}));
|
|
102
|
+
|
|
103
|
+
case 'slider':
|
|
104
|
+
{
|
|
105
|
+
if (min === undefined || max === undefined) {
|
|
106
|
+
return /*#__PURE__*/React.createElement(View, null);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return /*#__PURE__*/React.createElement(QuestionSlider, {
|
|
110
|
+
min: min,
|
|
111
|
+
max: max,
|
|
112
|
+
unit: unit,
|
|
113
|
+
value: value,
|
|
114
|
+
step: step,
|
|
115
|
+
onSlidingComplete: handleSlidingComplete,
|
|
116
|
+
testID: "question-slider"
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
case 'template':
|
|
121
|
+
if (handleBlur === undefined || handleFocus === undefined || focusedSelectId === undefined) {
|
|
122
|
+
return /*#__PURE__*/React.createElement(View, null);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
126
|
+
testID: "question-choices"
|
|
127
|
+
}, /*#__PURE__*/React.createElement(QuestionTemplate, {
|
|
128
|
+
isDisabled: isDisabled,
|
|
129
|
+
template: template || '',
|
|
130
|
+
items: items,
|
|
131
|
+
userChoices: userChoices,
|
|
132
|
+
onInputChange: handleItemInputChange,
|
|
133
|
+
handleBlur: handleBlur,
|
|
134
|
+
handleFocus: handleFocus,
|
|
135
|
+
focusedSelectId: focusedSelectId
|
|
136
|
+
}));
|
|
137
|
+
|
|
138
|
+
case 'qcmDrag':
|
|
139
|
+
if (!onItemPress) {
|
|
140
|
+
return /*#__PURE__*/React.createElement(View, null);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
144
|
+
testID: "question-draggable"
|
|
145
|
+
}, /*#__PURE__*/React.createElement(QuestionDraggable, {
|
|
146
|
+
choices: items,
|
|
147
|
+
userChoices: userChoices,
|
|
148
|
+
onPress: onItemPress
|
|
149
|
+
}));
|
|
150
|
+
|
|
151
|
+
case 'basic':
|
|
152
|
+
if (!onInputValueChange) {
|
|
153
|
+
return /*#__PURE__*/React.createElement(View, null);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return /*#__PURE__*/React.createElement(FreeText, {
|
|
157
|
+
fullWidth: true,
|
|
158
|
+
onChange: onInputValueChange,
|
|
159
|
+
testID: "question-input-text",
|
|
160
|
+
questionType: "basic",
|
|
161
|
+
isDisabled: isDisabled,
|
|
162
|
+
value: ""
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
default:
|
|
166
|
+
return /*#__PURE__*/React.createElement(View, null);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export default Switch;
|
|
171
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/molecule/questions/mobile/switch/index.native.tsx"],"names":["React","useCallback","View","StyleSheet","QuestionChoice","Space","QuestionDraggable","QuestionTemplate","QuestionSlider","FreeText","useTemplateContext","ANALYTICS_EVENT_TYPE","styleSheet","create","cards","flexDirection","alignItems","card","flex","Switch","props","templateContext","analytics","type","template","isDisabled","items","userChoices","min","max","unit","value","step","onSliderChange","onItemPress","onItemInputChange","onInputValueChange","focusedSelectId","handleFocus","handleBlur","isSelected","choice","includes","label","handleItemPress","item","handleItemInputChange","_value","handleSlidingComplete","logEvent","SLIDE","id","questionType","map","index","_id","media","undefined"],"mappings":"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","sourcesContent":["import React, {useCallback} from 'react';\nimport {View, StyleSheet} from 'react-native';\n\nimport QuestionChoice from '../../../../atom/choice/index.native';\nimport Space from '../../../../atom/space/index.native';\nimport QuestionDraggable from '../draggable/index.native';\nimport QuestionTemplate from '../template/index.native';\nimport QuestionSlider from '../slider/index.native';\nimport FreeText from '../../free-text/index.native';\n\nimport {useTemplateContext} from '../../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE} from '../../../../variables/analytics';\n\nimport {FocusedSelectId, HandleBlur, HandleFocus} from '../../../../types/app-review';\nimport type {QuestionType, Choice} from '../../../../types/progression-engine';\n\nexport interface Props {\n type: QuestionType;\n isDisabled?: boolean;\n template?: string;\n items: Array<Choice>;\n userChoices: Array<string>;\n onItemPress?: (item: Choice) => void;\n onSliderChange?: (value: number) => void;\n min?: number;\n max?: number;\n unit?: string;\n step?: number;\n value?: number;\n onItemInputChange?: (item: Choice, value: string) => void;\n onInputValueChange?: (value: string) => void;\n focusedSelectId?: FocusedSelectId;\n handleFocus?: HandleFocus;\n handleBlur?: HandleBlur;\n}\n\nconst styleSheet = StyleSheet.create({\n cards: {\n flexDirection: 'row',\n alignItems: 'stretch'\n },\n card: {\n flex: 1\n }\n});\n\nconst Switch = (props: Props) => {\n const templateContext = useTemplateContext();\n const {analytics} = templateContext;\n\n const {\n type,\n template,\n isDisabled,\n items,\n userChoices,\n min,\n max,\n unit,\n value,\n step,\n onSliderChange,\n onItemPress,\n onItemInputChange,\n onInputValueChange,\n focusedSelectId,\n handleFocus,\n handleBlur\n } = props;\n\n const isSelected = (choice: Choice): boolean => userChoices && userChoices.includes(choice.label);\n\n const handleItemPress = (item: Choice) => () => {\n if (onItemPress) {\n onItemPress(item);\n }\n };\n\n const handleItemInputChange = useCallback(\n (item: Choice, _value: string) => {\n if (onItemInputChange) {\n onItemInputChange(item, _value);\n }\n },\n [onItemInputChange]\n );\n\n const handleSlidingComplete = useCallback(\n _value => {\n analytics &&\n analytics.logEvent(ANALYTICS_EVENT_TYPE.SLIDE, {\n id: 'slider',\n questionType: 'slider'\n });\n\n if (onSliderChange) {\n onSliderChange(_value);\n }\n },\n [analytics, onSliderChange]\n );\n\n switch (type) {\n case 'qcm':\n return (\n <View testID=\"question-choices\">\n {items.map((item, index) => (\n <View key={`question-choice-${item._id}`}>\n {index > 0 ? <Space /> : null}\n <QuestionChoice\n onPress={handleItemPress(item)}\n isDisabled={isDisabled}\n isSelected={isSelected(item)}\n testID={`question-choice-${item._id}`}\n questionType={type}\n >\n {item.label}\n </QuestionChoice>\n </View>\n ))}\n </View>\n );\n case 'qcmGraphic':\n return (\n <View testID=\"question-choices\">\n {items.map((item, index) => {\n return (\n <View key={`question-choice-row-${item._id}`}>\n {index > 0 ? <Space /> : null}\n <View style={styleSheet.cards}>\n <QuestionChoice\n onPress={handleItemPress(item)}\n media={item.media}\n isDisabled={isDisabled}\n isSelected={isSelected(item)}\n testID={`question-choice-${item._id}`}\n style={styleSheet.card}\n questionType={type}\n >\n {item.label}\n </QuestionChoice>\n <Space />\n </View>\n </View>\n );\n })}\n </View>\n );\n case 'slider': {\n if (min === undefined || max === undefined) {\n return <View />;\n }\n\n return (\n <QuestionSlider\n min={min}\n max={max}\n unit={unit}\n value={value}\n step={step}\n onSlidingComplete={handleSlidingComplete}\n testID=\"question-slider\"\n />\n );\n }\n case 'template':\n if (handleBlur === undefined || handleFocus === undefined || focusedSelectId === undefined) {\n return <View />;\n }\n\n return (\n <View testID=\"question-choices\">\n <QuestionTemplate\n isDisabled={isDisabled}\n template={template || ''}\n items={items}\n userChoices={userChoices}\n onInputChange={handleItemInputChange}\n handleBlur={handleBlur}\n handleFocus={handleFocus}\n focusedSelectId={focusedSelectId}\n />\n </View>\n );\n case 'qcmDrag':\n if (!onItemPress) {\n return <View />;\n }\n\n return (\n <View testID=\"question-draggable\">\n <QuestionDraggable choices={items} userChoices={userChoices} onPress={onItemPress} />\n </View>\n );\n case 'basic':\n if (!onInputValueChange) {\n return <View />;\n }\n\n return (\n <FreeText\n fullWidth\n onChange={onInputValueChange}\n testID=\"question-input-text\"\n questionType=\"basic\"\n isDisabled={isDisabled}\n value=\"\"\n />\n );\n default:\n return <View />;\n }\n};\n\nexport default Switch;\n"],"file":"index.native.js"}
|
|
@@ -5,20 +5,20 @@ import classnames from 'classnames';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import getOr from 'lodash/fp/getOr';
|
|
7
7
|
import maxBy from 'lodash/fp/maxBy';
|
|
8
|
-
import Provider from '../../../atom/provider';
|
|
8
|
+
import Provider, { useWebContext } from '../../../atom/provider';
|
|
9
9
|
import { getShadowBoxColorFromPrimary } from '../../../util/get-shadow-box-color-from-primary';
|
|
10
10
|
import style from './style.css';
|
|
11
11
|
|
|
12
|
-
const QCM = (props,
|
|
12
|
+
const QCM = (props, legacyContext) => {
|
|
13
13
|
const {
|
|
14
14
|
answers
|
|
15
15
|
} = props;
|
|
16
16
|
const longestAnswer = maxBy(({
|
|
17
17
|
title
|
|
18
18
|
}) => title.length, answers);
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const context = useWebContext();
|
|
20
|
+
const skin = getOr(legacyContext.skin, 'skin', context);
|
|
21
|
+
console.log(skin);
|
|
22
22
|
const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);
|
|
23
23
|
const answersViews = useMemo(() => answers.map((answer, key) => {
|
|
24
24
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/qcm/index.js"],"names":["React","useMemo","classnames","PropTypes","getOr","maxBy","Provider","getShadowBoxColorFromPrimary","style","QCM","props","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/qcm/index.js"],"names":["React","useMemo","classnames","PropTypes","getOr","maxBy","Provider","useWebContext","getShadowBoxColorFromPrimary","style","QCM","props","legacyContext","answers","longestAnswer","title","length","context","skin","console","log","primarySkinColor","answersViews","map","answer","key","onClick","selected","ariaLabel","longAnswerClass","selectedAnswerClass","selectedAnswer","unselectedAnswer","innerHTML","boxShadow","backgroundColor","background","answerText","__html","wrapper","contextTypes","childContextTypes","propTypes","arrayOf","shape","string","bool","func"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport maxBy from 'lodash/fp/maxBy';\nimport Provider, {useWebContext} from '../../../atom/provider';\nimport {getShadowBoxColorFromPrimary} from '../../../util/get-shadow-box-color-from-primary';\nimport style from './style.css';\n\nconst QCM = (props, legacyContext) => {\n const {answers} = props;\n const longestAnswer = maxBy(({title}) => title.length, answers);\n const context = useWebContext();\n const skin = getOr(legacyContext.skin, 'skin', context);\n console.log(skin);\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const answersViews = useMemo(\n () =>\n answers.map((answer, key) => {\n const {onClick, title, selected, 'aria-label': ariaLabel} = answer;\n const longAnswerClass = longestAnswer.title === title ? style.longestAnswer : style.answer;\n const selectedAnswerClass = selected ? style.selectedAnswer : style.unselectedAnswer;\n\n return (\n <div\n data-name=\"answer\"\n aria-label={ariaLabel || title}\n className={classnames(longAnswerClass, style.innerHTML, selectedAnswerClass)}\n onClick={onClick}\n style={{\n ...(selected && {\n boxShadow: `0 4px 16px ${getShadowBoxColorFromPrimary(primarySkinColor)}`\n })\n }}\n data-selected={selected}\n key={key}\n >\n <div\n data-name=\"answer-background\"\n style={{backgroundColor: selected ? primarySkinColor : '#F4F4F5' /* cm_grey_75 */}}\n className={style.background}\n />\n <span\n data-name=\"answer-label\"\n className={style.answerText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n );\n }),\n [answers, longestAnswer, primarySkinColor]\n );\n\n return (\n <div data-name=\"qcm\" className={style.wrapper}>\n {answersViews}\n </div>\n );\n};\n\nQCM.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nQCM.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n )\n};\n\nexport default QCM;\n"],"file":"index.js"}
|
|
@@ -5,7 +5,7 @@ import _pipe from "lodash/fp/pipe";
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import Provider from '../../../atom/provider';
|
|
8
|
+
import Provider, { useWebContext } from '../../../atom/provider';
|
|
9
9
|
import { getShadowBoxColorFromPrimary } from '../../../util/get-shadow-box-color-from-primary';
|
|
10
10
|
import style from './style.css';
|
|
11
11
|
const AnswersPropTypes = process.env.NODE_ENV !== "production" ? PropTypes.arrayOf(PropTypes.shape({
|
|
@@ -22,9 +22,6 @@ const EmptyView = ({
|
|
|
22
22
|
className: style.emptySpan
|
|
23
23
|
}, help);
|
|
24
24
|
|
|
25
|
-
EmptyView.contextTypes = {
|
|
26
|
-
translate: Provider.childContextTypes.translate
|
|
27
|
-
};
|
|
28
25
|
EmptyView.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
29
26
|
help: PropTypes.string
|
|
30
27
|
} : {};
|
|
@@ -120,10 +117,12 @@ SelectedAnswerSections.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
120
117
|
const QcmDrag = ({
|
|
121
118
|
answers,
|
|
122
119
|
help
|
|
123
|
-
},
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
}, legacyContext) => {
|
|
121
|
+
const context = useWebContext();
|
|
122
|
+
|
|
123
|
+
const skin = _getOr(legacyContext.skin, 'skin', context);
|
|
124
|
+
|
|
125
|
+
console.log(skin);
|
|
127
126
|
|
|
128
127
|
const primarySkinColor = _getOr('#00B0FF', 'common.primary', skin);
|
|
129
128
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/qcm-drag/index.js"],"names":["React","PropTypes","classnames","Provider","getShadowBoxColorFromPrimary","style","AnswersPropTypes","arrayOf","shape","onClick","func","order","number","selected","bool","title","string","help","EmptyView","emptySpan","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/qcm-drag/index.js"],"names":["React","PropTypes","classnames","Provider","useWebContext","getShadowBoxColorFromPrimary","style","AnswersPropTypes","arrayOf","shape","onClick","func","order","number","selected","bool","title","string","help","EmptyView","emptySpan","propTypes","Choices","answers","answersViews","map","answer","key","invisibleAnswer","unselected","innerHTML","__html","choices","SelectedAnswerSections","backgroundColor","selectedAnswers","selectedAnswersViews","boxShadow","background","content","selectedAnswerText","length","emptyAnswers","QcmDrag","legacyContext","context","skin","console","log","primarySkinColor","wrapper","contextTypes","childContextTypes"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {pipe, filter, orderBy, getOr} from 'lodash/fp';\nimport classnames from 'classnames';\nimport Provider, {useWebContext} from '../../../atom/provider';\nimport {getShadowBoxColorFromPrimary} from '../../../util/get-shadow-box-color-from-primary';\nimport style from './style.css';\n\nconst AnswersPropTypes = PropTypes.arrayOf(\n PropTypes.shape({\n onClick: PropTypes.func,\n order: PropTypes.number,\n selected: PropTypes.bool,\n title: PropTypes.string,\n help: PropTypes.string\n })\n);\n\nconst EmptyView = ({help}) => <span className={style.emptySpan}>{help}</span>;\n\nEmptyView.propTypes = {\n help: PropTypes.string\n};\n\nconst Choices = ({answers}) => {\n const answersViews = answers.map((answer, key) => {\n const {onClick, title, selected} = answer;\n return (\n <div\n className={classnames(selected ? style.invisibleAnswer : style.unselected, style.innerHTML)}\n data-name=\"answer\"\n onClick={onClick}\n key={key}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n });\n\n return <div className={style.choices}>{answersViews}</div>;\n};\n\nChoices.propTypes = {\n answers: AnswersPropTypes\n};\n\nconst SelectedAnswerSections = ({answers, help, backgroundColor}) => {\n const selectedAnswers = pipe(filter('selected'), orderBy('order', 'asc'))(answers);\n const selectedAnswersViews = selectedAnswers.map((answer, key) => {\n const {onClick, title} = answer;\n return (\n <div\n data-selected=\"true\"\n onClick={onClick}\n key={key}\n data-name=\"selectedAnswer\"\n className={style.selected}\n style={{\n boxShadow: `0px 4px 16px ${getShadowBoxColorFromPrimary(backgroundColor)}`\n }}\n >\n <div\n data-name=\"answerBackground\"\n style={{\n backgroundColor\n }}\n className={style.background}\n />\n <div className={style.content}>\n <span\n data-name=\"answerContent\"\n className={classnames(style.selectedAnswerText, style.innerHTML)}\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n </div>\n );\n });\n\n if (selectedAnswersViews.length > 0) {\n return <div className={style.selectedAnswers}>{selectedAnswersViews}</div>;\n } else {\n return (\n <div className={style.emptyAnswers}>\n <EmptyView help={help} />\n </div>\n );\n }\n};\n\nSelectedAnswerSections.propTypes = {\n answers: AnswersPropTypes,\n help: EmptyView.propTypes.help,\n backgroundColor: PropTypes.string\n};\n\nconst QcmDrag = ({answers, help}, legacyContext) => {\n const context = useWebContext();\n const skin = getOr(legacyContext.skin, 'skin', context);\n console.log(skin);\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n return (\n <div className={style.wrapper}>\n <SelectedAnswerSections answers={answers} help={help} backgroundColor={primarySkinColor} />\n <div data-name=\"qcm-drag-answers\" className={style.answers}>\n <Choices answers={answers} />\n </div>\n </div>\n );\n};\n\nQcmDrag.propTypes = {\n answers: AnswersPropTypes,\n help: SelectedAnswerSections.propTypes.help\n};\n\nQcmDrag.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default QcmDrag;\n"],"file":"index.js"}
|
|
@@ -5,17 +5,19 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import classnames from 'classnames';
|
|
8
|
-
import Provider from '../../../atom/provider';
|
|
8
|
+
import Provider, { useWebContext } from '../../../atom/provider';
|
|
9
9
|
import { getShadowBoxColorFromPrimary } from '../../../util/get-shadow-box-color-from-primary';
|
|
10
10
|
import style from './style.css';
|
|
11
11
|
|
|
12
|
-
const QCMImage = (props,
|
|
12
|
+
const QCMImage = (props, legacyContext) => {
|
|
13
13
|
const {
|
|
14
14
|
answers
|
|
15
15
|
} = props;
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const context = useWebContext();
|
|
17
|
+
|
|
18
|
+
const skin = _getOr(legacyContext.skin, 'skin', context);
|
|
19
|
+
|
|
20
|
+
console.log(skin);
|
|
19
21
|
|
|
20
22
|
const primarySkinColor = _getOr('#00B0FF', 'common.primary', skin);
|
|
21
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/qcm-graphic/index.js"],"names":["React","PropTypes","classnames","Provider","getShadowBoxColorFromPrimary","style","QCMImage","props","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/qcm-graphic/index.js"],"names":["React","PropTypes","classnames","Provider","useWebContext","getShadowBoxColorFromPrimary","style","QCMImage","props","legacyContext","answers","context","skin","console","log","primarySkinColor","answersViews","map","answer","key","onClick","title","selected","image","ariaLabel","boxShadow","backgroundColor","background","content","imageWrapper","backgroundImage","titleWrapper","innerHTML","__html","wrapper","contextTypes","childContextTypes","propTypes","arrayOf","shape","string","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr} from 'lodash/fp';\nimport classnames from 'classnames';\nimport Provider, {useWebContext} from '../../../atom/provider';\nimport {getShadowBoxColorFromPrimary} from '../../../util/get-shadow-box-color-from-primary';\nimport style from './style.css';\n\nconst QCMImage = (props, legacyContext) => {\n const {answers} = props;\n const context = useWebContext();\n const skin = getOr(legacyContext.skin, 'skin', context);\n console.log(skin);\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const answersViews = answers.map((answer, key) => {\n const {onClick, title, selected, image, ariaLabel} = answer;\n\n return (\n <div\n onClick={onClick}\n data-selected={selected}\n data-name=\"answerGraphic\"\n style={{\n ...(selected && {\n boxShadow: `0 4px 16px ${getShadowBoxColorFromPrimary(primarySkinColor)}`\n })\n }}\n className={selected ? style.selected : style.answer}\n key={key}\n >\n <div\n data-name=\"answerBackground\"\n style={{\n backgroundColor: selected ? primarySkinColor : '#F4F4F5'\n }}\n className={style.background}\n />\n <div data-name=\"answerContent\" className={style.content}>\n <div\n className={style.imageWrapper}\n data-name=\"answerImage\"\n aria-label={ariaLabel || title}\n style={{\n backgroundImage: `url(${image})`\n }}\n />\n <div data-name=\"answerText\" className={style.titleWrapper}>\n <div\n title={title}\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n </div>\n </div>\n );\n });\n\n return (\n <div data-name=\"qcm-graphic-wrapper\" className={style.wrapper}>\n {answersViews}\n </div>\n );\n};\n\nQCMImage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nQCMImage.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n image: PropTypes.string,\n ariaLabel: PropTypes.string\n })\n )\n};\n\nexport default QCMImage;\n"],"file":"index.js"}
|
|
@@ -7,11 +7,11 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import classnames from 'classnames';
|
|
10
|
-
import Provider from '../../../atom/provider';
|
|
10
|
+
import Provider, { useWebContext } from '../../../atom/provider';
|
|
11
11
|
import Range from '../../../atom/range';
|
|
12
12
|
import style from './style.css';
|
|
13
13
|
|
|
14
|
-
const QuestionRange = (props,
|
|
14
|
+
const QuestionRange = (props, legacyContext) => {
|
|
15
15
|
const {
|
|
16
16
|
title,
|
|
17
17
|
minLabel,
|
|
@@ -19,9 +19,11 @@ const QuestionRange = (props, context) => {
|
|
|
19
19
|
} = props,
|
|
20
20
|
rangeProps = _objectWithoutPropertiesLoose(props, ["title", "minLabel", "maxLabel"]);
|
|
21
21
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const context = useWebContext();
|
|
23
|
+
|
|
24
|
+
const skin = _getOr(legacyContext.skin, 'skin', context);
|
|
25
|
+
|
|
26
|
+
console.log(skin);
|
|
25
27
|
|
|
26
28
|
const defaultColor = _getOr('#00B0FF', 'common.primary', skin);
|
|
27
29
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/question-range/index.js"],"names":["React","PropTypes","classnames","Provider","Range","style","QuestionRange","props","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/question-range/index.js"],"names":["React","PropTypes","classnames","Provider","useWebContext","Range","style","QuestionRange","props","legacyContext","title","minLabel","maxLabel","rangeProps","context","skin","console","log","defaultColor","titleStyle","color","wrapper","innerHTML","__html","labelWrapper","label","contextTypes","childContextTypes","propTypes","string"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,QAAP,IAAkBC,aAAlB,QAAsC,wBAAtC;AACA,OAAOC,KAAP,MAAkB,qBAAlB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,aAAa,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;AAC9C,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,MAA6CJ,KAAnD;AAAA,QAAqCK,UAArC,iCAAmDL,KAAnD;;AAEA,QAAMM,OAAO,GAAGV,aAAa,EAA7B;;AACA,QAAMW,IAAI,GAAG,OAAMN,aAAa,CAACM,IAApB,EAA0B,MAA1B,EAAkCD,OAAlC,CAAb;;AACAE,EAAAA,OAAO,CAACC,GAAR,CAAYF,IAAZ;;AACA,QAAMG,YAAY,GAAG,OAAM,SAAN,EAAiB,gBAAjB,EAAmCH,IAAnC,CAArB;;AAEA,QAAMI,UAAU,GAAG;AACjBC,IAAAA,KAAK,EAAEF;AADU,GAAnB;AAIA,sBACE;AAAK,IAAA,SAAS,EAAEZ,KAAK,CAACe;AAAtB,kBACE;AACE,IAAA,KAAK,EAAEF,UADT;AAEE,IAAA,SAAS,EAAEjB,UAAU,CAACI,KAAK,CAACI,KAAP,EAAcJ,KAAK,CAACgB,SAApB,CAFvB,CAGE;AAHF;AAIE,IAAA,uBAAuB,EAAE;AAACC,MAAAA,MAAM,EAAEb;AAAT;AAJ3B,IADF,eAOE,oBAAC,KAAD,EAAWG,UAAX,CAPF,eAQE;AAAK,IAAA,SAAS,EAAEP,KAAK,CAACkB;AAAtB,kBACE;AACE,IAAA,SAAS,EAAEtB,UAAU,CAACI,KAAK,CAACmB,KAAP,EAAcnB,KAAK,CAACgB,SAApB,CADvB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACC,MAAAA,MAAM,EAAEZ;AAAT;AAH3B,IADF,eAME;AACE,IAAA,SAAS,EAAET,UAAU,CAACI,KAAK,CAACmB,KAAP,EAAcnB,KAAK,CAACgB,SAApB,CADvB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACC,MAAAA,MAAM,EAAEX;AAAT;AAH3B,IANF,CARF,CADF;AAuBD,CAnCD;;AAqCAL,aAAa,CAACmB,YAAd,GAA6B;AAC3BX,EAAAA,IAAI,EAAEZ,QAAQ,CAACwB,iBAAT,CAA2BZ;AADN,CAA7B;AAIAR,aAAa,CAACqB,SAAd,iEACKvB,KAAK,CAACuB,SADX;AAEElB,EAAAA,KAAK,EAAET,SAAS,CAAC4B,MAFnB;AAGElB,EAAAA,QAAQ,EAAEV,SAAS,CAAC4B,MAHtB;AAIEjB,EAAAA,QAAQ,EAAEX,SAAS,CAAC4B;AAJtB;AAOA,eAAetB,aAAf","sourcesContent":["import React from 'react';\nimport {getOr} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {useWebContext} from '../../../atom/provider';\nimport Range from '../../../atom/range';\nimport style from './style.css';\n\nconst QuestionRange = (props, legacyContext) => {\n const {title, minLabel, maxLabel, ...rangeProps} = props;\n\n const context = useWebContext();\n const skin = getOr(legacyContext.skin, 'skin', context);\n console.log(skin);\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n\n const titleStyle = {\n color: defaultColor\n };\n\n return (\n <div className={style.wrapper}>\n <span\n style={titleStyle}\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <Range {...rangeProps} />\n <div className={style.labelWrapper}>\n <span\n className={classnames(style.label, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: minLabel}}\n />\n <span\n className={classnames(style.label, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: maxLabel}}\n />\n </div>\n </div>\n );\n};\n\nQuestionRange.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nQuestionRange.propTypes = {\n ...Range.propTypes,\n title: PropTypes.string,\n minLabel: PropTypes.string,\n maxLabel: PropTypes.string\n};\n\nexport default QuestionRange;\n"],"file":"index.js"}
|
|
@@ -8,8 +8,8 @@ import getOr from 'lodash/fp/getOr';
|
|
|
8
8
|
import Answer from '../../molecule/answer';
|
|
9
9
|
import ButtonLink from '../../atom/button-link';
|
|
10
10
|
import Loader from '../../atom/loader';
|
|
11
|
-
import Provider from '../../atom/provider';
|
|
12
11
|
import ReviewCorrectionPopin from '../../molecule/review-correction-popin';
|
|
12
|
+
import { useWebContext } from '../../atom/provider';
|
|
13
13
|
import propTypes from './prop-types';
|
|
14
14
|
import style from './style.css';
|
|
15
15
|
|
|
@@ -140,13 +140,14 @@ QuestionContainer.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
140
140
|
questionOrigin: PropTypes.string
|
|
141
141
|
} : {};
|
|
142
142
|
|
|
143
|
-
const
|
|
143
|
+
const ReviewSlide = props => {
|
|
144
144
|
const {
|
|
145
145
|
slide,
|
|
146
146
|
validateButton,
|
|
147
147
|
correctionPopinProps,
|
|
148
148
|
slideIndex = '0'
|
|
149
149
|
} = props;
|
|
150
|
+
const context = useWebContext();
|
|
150
151
|
const {
|
|
151
152
|
skin
|
|
152
153
|
} = context;
|
|
@@ -186,9 +187,6 @@ const Slide = (props, context) => {
|
|
|
186
187
|
})]);
|
|
187
188
|
};
|
|
188
189
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
skin: Provider.childContextTypes.skin
|
|
192
|
-
};
|
|
193
|
-
export default Slide;
|
|
190
|
+
ReviewSlide.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
|
|
191
|
+
export default ReviewSlide;
|
|
194
192
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","Provider","ReviewCorrectionPopin","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","help","answerContainer","shape","slide","Slide","context","skin","loading","loadingAriaLabel","parentContentTitle","loader","contextTypes","childContextTypes"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\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 slide 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 onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n */\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin} = props;\n if (!answerUI || !questionText) return null;\n\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 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 {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string\n};\n\nconst Slide = (props, context) => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n [\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />,\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />,\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ]\n )}\n </div>\n );\n};\n\nSlide.propTypes = propTypes;\n\nSlide.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default Slide;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","ReviewCorrectionPopin","useWebContext","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","help","answerContainer","shape","slide","ReviewSlide","context","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {useWebContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\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 slide 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 onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n */\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin} = props;\n if (!answerUI || !questionText) return null;\n\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 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 {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const context = useWebContext();\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n [\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />,\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />,\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ]\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"file":"index.js"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
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
2
|
|
|
3
|
-
// -----------------------------------------------------------------------------
|
|
4
3
|
import React, { createContext, useContext } from 'react';
|
|
5
4
|
import defaultTheme from '../../variables/theme.native';
|
|
6
|
-
// -----------------------------------------------------------------------------
|
|
7
5
|
const Context = createContext({
|
|
8
6
|
theme: defaultTheme,
|
|
9
7
|
translations: {},
|
|
10
8
|
display: {
|
|
11
9
|
statusBarHeight: 42
|
|
12
10
|
}
|
|
13
|
-
});
|
|
11
|
+
});
|
|
14
12
|
|
|
15
13
|
const useTemplateContext = () => {
|
|
16
14
|
const context = useContext(Context);
|
|
@@ -20,8 +18,7 @@ const useTemplateContext = () => {
|
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
return context;
|
|
23
|
-
};
|
|
24
|
-
|
|
21
|
+
};
|
|
25
22
|
|
|
26
23
|
const TemplateContext = ({
|
|
27
24
|
values,
|
|
@@ -30,8 +27,7 @@ const TemplateContext = ({
|
|
|
30
27
|
return /*#__PURE__*/React.createElement(Context.Provider, {
|
|
31
28
|
value: _extends({}, values)
|
|
32
29
|
}, children);
|
|
33
|
-
};
|
|
34
|
-
|
|
30
|
+
};
|
|
35
31
|
|
|
36
32
|
export { TemplateContext, useTemplateContext };
|
|
37
33
|
//# sourceMappingURL=template-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/template/app-review/template-context.tsx"],"names":["React","createContext","useContext","defaultTheme","Context","theme","translations","display","statusBarHeight","useTemplateContext","context","Error","TemplateContext","values","children"],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/template/app-review/template-context.tsx"],"names":["React","createContext","useContext","defaultTheme","Context","theme","translations","display","statusBarHeight","useTemplateContext","context","Error","TemplateContext","values","children"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,aAAf,EAA8BC,UAA9B,QAA+C,OAA/C;AAGA,OAAOC,YAAP,MAAkC,8BAAlC;AAgBA,MAAMC,OAAO,GAAGH,aAAa,CAAC;AAC5BI,EAAAA,KAAK,EAAEF,YADqB;AAE5BG,EAAAA,YAAY,EAAE,EAFc;AAG5BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,eAAe,EAAE;AADV;AAHmB,CAAD,CAA7B;;AAQA,MAAMC,kBAAkB,GAAG,MAA6B;AACtD,QAAMC,OAAO,GAAGR,UAAU,CAACE,OAAD,CAA1B;;AAEA,MAAI,CAACM,OAAL,EAAc;AACZ,UAAM,IAAIC,KAAJ,CACH,yFADG,CAAN;AAGD;;AAED,SAAOD,OAAP;AACD,CAVD;;AAYA,MAAME,eAAe,GAAG,CAAC;AAACC,EAAAA,MAAD;AAASC,EAAAA;AAAT,CAAD,KAA+B;AACrD,sBAAO,oBAAC,OAAD,CAAS,QAAT;AAAkB,IAAA,KAAK,eAAMD,MAAN;AAAvB,KAAuCC,QAAvC,CAAP;AACD,CAFD;;AAIA,SAAQF,eAAR,EAAyBH,kBAAzB","sourcesContent":["import React, {createContext, useContext} from 'react';\nimport {Translations} from '../../types/translations';\nimport {Analytics} from '../../variables/analytics';\nimport defaultTheme, {Theme} from '../../variables/theme.native';\nimport {Vibration} from '../../variables/vibration';\n\nexport type TemplateContextValues = {\n analytics?: Analytics;\n brandTheme?: any;\n theme: Theme;\n translations: Translations;\n vibration?: Vibration;\n display: {\n statusBarHeight: number;\n };\n};\n\ntype Props = {values: TemplateContextValues; children: any};\n\nconst Context = createContext({\n theme: defaultTheme,\n translations: {},\n display: {\n statusBarHeight: 42\n }\n});\n\nconst useTemplateContext = (): TemplateContextValues => {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error(\n `❌ [TemplateContext] useTemplateContext must be used within a provider <TemplateContext>`\n );\n }\n\n return context;\n};\n\nconst TemplateContext = ({values, children}: Props) => {\n return <Context.Provider value={{...values}}>{children}</Context.Provider>;\n};\n\nexport {TemplateContext, useTemplateContext};\n"],"file":"template-context.js"}
|