@coorpacademy/components 10.22.15-alpha.8 → 10.22.15
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 +16 -7
- package/es/atom/choice/index.native.js.map +1 -1
- package/es/atom/provider/index.js +0 -2
- package/es/atom/provider/index.js.map +1 -1
- package/es/atom/select/index.js +5 -5
- package/es/atom/select/index.js.map +1 -1
- package/es/molecule/questions/free-text/index.js +3 -8
- package/es/molecule/questions/free-text/index.js.map +1 -1
- package/es/molecule/questions/free-text/index.native.js.map +1 -1
- package/es/molecule/questions/mobile/switch/index.native.js +1 -2
- package/es/molecule/questions/mobile/switch/index.native.js.map +1 -1
- 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 +8 -7
- package/es/molecule/questions/qcm-drag/index.js.map +1 -1
- package/es/molecule/questions/qcm-graphic/index.js +5 -7
- package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/es/molecule/questions/question-range/index.js +5 -7
- package/es/molecule/questions/question-range/index.js.map +1 -1
- package/es/organism/review-slide/index.js +7 -5
- package/es/organism/review-slide/index.js.map +1 -1
- package/es/template/app-review/template-context.js +7 -3
- package/es/template/app-review/template-context.js.map +1 -1
- package/lib/atom/choice/index.native.js +16 -7
- package/lib/atom/choice/index.native.js.map +1 -1
- package/lib/atom/provider/index.js +0 -9
- package/lib/atom/provider/index.js.map +1 -1
- package/lib/atom/select/index.js +5 -5
- package/lib/atom/select/index.js.map +1 -1
- package/lib/molecule/questions/free-text/index.js +3 -6
- package/lib/molecule/questions/free-text/index.js.map +1 -1
- package/lib/molecule/questions/free-text/index.native.js.map +1 -1
- package/lib/molecule/questions/mobile/switch/index.native.js +1 -2
- package/lib/molecule/questions/mobile/switch/index.native.js.map +1 -1
- 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 +8 -9
- package/lib/molecule/questions/qcm-drag/index.js.map +1 -1
- package/lib/molecule/questions/qcm-graphic/index.js +5 -9
- package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
- package/lib/molecule/questions/question-range/index.js +5 -9
- package/lib/molecule/questions/question-range/index.js.map +1 -1
- package/lib/organism/review-slide/index.js +8 -6
- package/lib/organism/review-slide/index.js.map +1 -1
- package/lib/template/app-review/template-context.js +6 -3
- package/lib/template/app-review/template-context.js.map +1 -1
- package/package.json +2 -2
- package/es/atom/provider/web-context.js +0 -27
- package/es/atom/provider/web-context.js.map +0 -1
- package/lib/atom/provider/web-context.js +0 -40
- package/lib/atom/provider/web-context.js.map +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
1
3
|
import React, { useEffect, useState } from 'react';
|
|
2
4
|
import { View, StyleSheet } from 'react-native';
|
|
3
5
|
import Html from '../html/index.native';
|
|
@@ -88,12 +90,6 @@ const Choice = ({
|
|
|
88
90
|
return null;
|
|
89
91
|
}
|
|
90
92
|
|
|
91
|
-
const selectedStyle = brandTheme && {
|
|
92
|
-
backgroundColor: brandTheme.colors.primary,
|
|
93
|
-
borderColor: brandTheme.colors.primary,
|
|
94
|
-
borderTopRightRadius: theme.radius.regular,
|
|
95
|
-
borderBottomRightRadius: theme.radius.regular
|
|
96
|
-
};
|
|
97
93
|
const selectedSuffix = prefixTestID && isSelected ? '-selected' : '';
|
|
98
94
|
const mediaType = media && media.type && media.type === 'img' && media.type.toLowerCase();
|
|
99
95
|
const url = media && media.type === 'img' && media.src && media.src.length > 0 && getCleanUri(media.src[0].url);
|
|
@@ -102,9 +98,22 @@ const Choice = ({
|
|
|
102
98
|
};
|
|
103
99
|
const mediaSuffix = prefixTestID && mediaType ? `-${mediaType}` : '';
|
|
104
100
|
const htmlStyle = [styleSheet.text];
|
|
101
|
+
const textWrapperStyle = [styleSheet.textContainer, squeezed && styleSheet.squeezedTextContainer];
|
|
105
102
|
|
|
106
103
|
if (isSelected) {
|
|
107
104
|
htmlStyle.push(styleSheet.textSelected);
|
|
105
|
+
|
|
106
|
+
const selectionStyle = brandTheme && _extends({
|
|
107
|
+
backgroundColor: brandTheme.colors.primary,
|
|
108
|
+
borderColor: brandTheme.colors.primary
|
|
109
|
+
}, url ? {
|
|
110
|
+
borderTopRightRadius: theme.radius.regular,
|
|
111
|
+
borderBottomRightRadius: theme.radius.regular
|
|
112
|
+
} : {
|
|
113
|
+
borderRadius: theme.radius.regular
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
textWrapperStyle.push(selectionStyle);
|
|
108
117
|
}
|
|
109
118
|
|
|
110
119
|
return /*#__PURE__*/React.createElement(Touchable, {
|
|
@@ -124,7 +133,7 @@ const Choice = ({
|
|
|
124
133
|
source: source,
|
|
125
134
|
style: styleSheet.image
|
|
126
135
|
})) : null, /*#__PURE__*/React.createElement(View, {
|
|
127
|
-
style:
|
|
136
|
+
style: textWrapperStyle
|
|
128
137
|
}, /*#__PURE__*/React.createElement(Html, {
|
|
129
138
|
fontSize: squeezed ? theme.fontSize.medium : theme.fontSize.regular,
|
|
130
139
|
style: htmlStyle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/choice/index.native.tsx"],"names":["React","useEffect","useState","View","StyleSheet","Html","ImageBackground","getCleanUri","Touchable","useTemplateContext","createStyleSheet","theme","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","minHeight","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontWeight","bold","color","black","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","squeezed","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","brandTheme","styleSheet","setStylesheet","_stylesheet","selectedStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius","selectedSuffix","mediaType","type","toLowerCase","url","src","length","source","uri","mediaSuffix","htmlStyle","push","fontSize","medium"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,SAAf,EAA0BC,QAA1B,QAAyC,OAAzC;AACA,SAAQC,IAAR,EAAcC,UAAd,QAA0C,cAA1C;AAGA,OAAOC,IAAP,MAAiB,sBAAjB;AACA,OAAOC,eAAP,MAA4B,kCAA5B;AACA,OAAOC,WAAP,MAAwB,0BAAxB;AACA,OAAOC,SAAP,MAAsB,kCAAtB;AACA,SAAQC,kBAAR,QAAiC,4CAAjC;;AA2BA,MAAMC,gBAAgB,GAAIC,KAAD,IACvBP,UAAU,CAACQ,MAAX,CAAkB;AAChBC,EAAAA,SAAS,EAAE;AACTC,IAAAA,WAAW,EAAE,MADJ;AAETC,IAAAA,YAAY,EAAE;AAACC,MAAAA,KAAK,EAAE,CAAR;AAAWC,MAAAA,MAAM,EAAE;AAAnB,KAFL;AAGTC,IAAAA,aAAa,EAAE,IAHN;AAITC,IAAAA,YAAY,EAAE,EAJL;AAKTC,IAAAA,SAAS,EAAE,CALF;AAMTC,IAAAA,eAAe,EAAE;AANR,GADK;AAShBC,EAAAA,SAAS,EAAE;AACTC,IAAAA,SAAS,EAAE,EADF;AAETF,IAAAA,eAAe,EAAEV,KAAK,CAACa,MAAN,CAAaC,KAFrB;AAGTC,IAAAA,YAAY,EAAEf,KAAK,CAACgB,MAAN,CAAaC,OAHlB;AAITC,IAAAA,aAAa,EAAE,KAJN;AAKTC,IAAAA,UAAU,EAAE;AALH,GATK;AAgBhBC,EAAAA,aAAa,EAAE;AACbC,IAAAA,iBAAiB,EAAE,EADN;AAEbC,IAAAA,eAAe,EAAE,EAFJ;AAGbC,IAAAA,cAAc,EAAE,QAHH;AAIbJ,IAAAA,UAAU,EAAE,QAJC;AAKbK,IAAAA,IAAI,EAAE;AALO,GAhBC;AAuBhBC,EAAAA,qBAAqB,EAAE;AACrBC,IAAAA,OAAO,EAAE1B,KAAK,CAAC2B,OAAN,CAAcC,KADF;AAErBC,IAAAA,WAAW,EAAEC,SAFQ;AAGrBR,IAAAA,eAAe,EAAEQ,SAHI;AAIrBC,IAAAA,YAAY,EAAED,SAJO;AAKrBN,IAAAA,IAAI,EAAE;AALe,GAvBP;AA8BhBQ,EAAAA,IAAI,EAAE;AACJC,IAAAA,UAAU,EAAEjC,KAAK,CAACiC,UAAN,CAAiBC,IADzB;AAEJC,IAAAA,KAAK,EAAEnC,KAAK,CAACa,MAAN,CAAauB;AAFhB,GA9BU;AAkChBC,EAAAA,YAAY,EAAE;AACZF,IAAAA,KAAK,EAAEnC,KAAK,CAACa,MAAN,CAAaC;AADR,GAlCE;AAqChBwB,EAAAA,wBAAwB,EAAE;AACxBC,IAAAA,gBAAgB,EAAEvC,KAAK,CAACa,MAAN,CAAa2B;AADP,GArCV;AAwChBC,EAAAA,cAAc,EAAE;AACdnC,IAAAA,MAAM,EAAE,MADM;AAEdD,IAAAA,KAAK,EAAE,KAFO;AAGdqC,IAAAA,QAAQ,EAAE,QAHI;AAIdC,IAAAA,mBAAmB,EAAE3C,KAAK,CAACgB,MAAN,CAAaC,OAJpB;AAKd2B,IAAAA,sBAAsB,EAAE5C,KAAK,CAACgB,MAAN,CAAaC;AALvB,GAxCA;AA+ChB4B,EAAAA,KAAK,EAAE;AACLrB,IAAAA,IAAI,EAAE;AADD;AA/CS,CAAlB,CADF;;AAqDA,MAAMsB,MAAM,GAAG,CAAC;AACdC,EAAAA,QADc;AAEdC,EAAAA,UAAU,GAAG,KAFC;AAGdC,EAAAA,QAAQ,GAAG,KAHG;AAIdC,EAAAA,UAJc;AAKdC,EAAAA,OALc;AAMdC,EAAAA,KANc;AAOdC,EAAAA,MAAM,EAAEC,YAPM;AAQdC,EAAAA,KARc;AASdC,EAAAA;AATc,CAAD,KAUF;AACX,QAAMC,eAAe,GAAG3D,kBAAkB,EAA1C;AACA,QAAM;AAACE,IAAAA,KAAD;AAAQ0D,IAAAA;AAAR,MAAsBD,eAA5B;AAEA,QAAM,CAACE,UAAD,EAAaC,aAAb,IAA8BrE,QAAQ,CAAwB,IAAxB,CAA5C;AAEAD,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMuE,WAAW,GAAG9D,gBAAgB,CAACC,KAAD,CAApC;;AACA4D,IAAAA,aAAa,CAACC,WAAD,CAAb;AACD,GAHQ,EAGN,CAAC7D,KAAD,CAHM,CAAT;;AAKA,MAAI,CAAC2D,UAAL,EAAiB;AACf,WAAO,IAAP;AACD;;AAED,QAAMG,aAAa,GAAGJ,UAAU,IAAI;AAClChD,IAAAA,eAAe,EAAEgD,UAAU,CAAC7C,MAAX,CAAkBkD,OADD;AAElCC,IAAAA,WAAW,EAAEN,UAAU,CAAC7C,MAAX,CAAkBkD,OAFG;AAGlCE,IAAAA,oBAAoB,EAAEjE,KAAK,CAACgB,MAAN,CAAaC,OAHD;AAIlCiD,IAAAA,uBAAuB,EAAElE,KAAK,CAACgB,MAAN,CAAaC;AAJJ,GAApC;AAOA,QAAMkD,cAAc,GAAGb,YAAY,IAAIN,UAAhB,GAA6B,WAA7B,GAA2C,EAAlE;AACA,QAAMoB,SAAS,GAAGhB,KAAK,IAAIA,KAAK,CAACiB,IAAf,IAAuBjB,KAAK,CAACiB,IAAN,KAAe,KAAtC,IAA+CjB,KAAK,CAACiB,IAAN,CAAWC,WAAX,EAAjE;AACA,QAAMC,GAAG,GACPnB,KAAK,IACLA,KAAK,CAACiB,IAAN,KAAe,KADf,IAEAjB,KAAK,CAACoB,GAFN,IAGApB,KAAK,CAACoB,GAAN,CAAUC,MAAV,GAAmB,CAHnB,IAIA7E,WAAW,CAACwD,KAAK,CAACoB,GAAN,CAAU,CAAV,EAAaD,GAAd,CALb;AAOA,QAAMG,MAAM,GAAG;AAACC,IAAAA,GAAG,EAAEJ,GAAG,GAAG3E,WAAW,CAAC2E,GAAD,CAAd,GAAsBzC;AAA/B,GAAf;AACA,QAAM8C,WAAW,GAAGtB,YAAY,IAAIc,SAAhB,GAA6B,IAAGA,SAAU,EAA1C,GAA8C,EAAlE;AAEA,QAAMS,SAAsB,GAAG,CAAClB,UAAU,CAAC3B,IAAZ,CAA/B;;AAEA,MAAIgB,UAAJ,EAAgB;AACd6B,IAAAA,SAAS,CAACC,IAAV,CAAenB,UAAU,CAACtB,YAA1B;AACD;;AAED,sBACE,oBAAC,SAAD;AACE,IAAA,OAAO,EAAE,CAACa,UAAD,GAAcC,OAAd,GAAwBrB,SADnC;AAEE,IAAA,KAAK,EAAEyB,KAFT;AAGE,IAAA,WAAW,EAAC,iBAHd;AAIE,IAAA,eAAe,EAAE;AAACC,MAAAA;AAAD;AAJnB,kBAME,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CAACG,UAAU,CAACzD,SAAZ,EAAuByD,UAAU,CAAChD,SAAlC,CADT;AAEE,IAAA,MAAM,EAAE2C,YAAY,IAAK,GAAEA,YAAa,GAAEa,cAAe;AAF3D,KAIGI,GAAG,gBACF,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEZ,UAAU,CAAClB;AAAxB,kBACE,oBAAC,eAAD;AACE,IAAA,MAAM,EAAEa,YAAY,IAAK,GAAEA,YAAa,GAAEsB,WAAY,EADxD;AAEE,IAAA,MAAM,EAAEF,MAFV;AAGE,IAAA,KAAK,EAAEf,UAAU,CAACd;AAHpB,IADF,CADE,GAQA,IAZN,eAaE,oBAAC,IAAD;AACE,IAAA,KAAK,EAAE,CACLc,UAAU,CAACvC,aADN,EAEL6B,QAAQ,IAAIU,UAAU,CAAClC,qBAFlB,EAGLuB,UAAU,IAAIc,aAHT;AADT,kBAOE,oBAAC,IAAD;AACE,IAAA,QAAQ,EAAEb,QAAQ,GAAGjD,KAAK,CAAC+E,QAAN,CAAeC,MAAlB,GAA2BhF,KAAK,CAAC+E,QAAN,CAAe9D,OAD9D;AAEE,IAAA,KAAK,EAAE4D;AAFT,KAIG9B,QAJH,CAPF,CAbF,CANF,CADF;AAqCD,CAvFD;;AAyFA,eAAeD,MAAf","sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle} from 'react-native';\nimport type {Media, QuestionType} from '../../types/progression-engine';\n\nimport Html from '../html/index.native';\nimport ImageBackground from '../image-background/index.native';\nimport getCleanUri from '../../util/get-clean-uri';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\n\nexport type Props = {\n isSelected?: boolean;\n onPress: () => void;\n children: string;\n isDisabled?: boolean;\n testID?: string;\n media?: Media;\n squeezed?: boolean;\n style?: ViewStyle;\n questionType: QuestionType;\n};\n\ntype StyleSheetType = {\n boxShadow: any;\n container: any;\n text: any;\n textSelected: any;\n textContainer: any;\n squeezedTextContainer: any;\n unselectedImageContainer: any;\n imageContainer: any;\n image: any;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n boxShadow: {\n shadowColor: '#000',\n shadowOffset: {width: 0, height: 4},\n shadowOpacity: 0.12,\n shadowRadius: 16,\n elevation: 8,\n backgroundColor: '#0000'\n },\n container: {\n minHeight: 80,\n backgroundColor: theme.colors.white,\n borderRadius: theme.radius.regular,\n flexDirection: 'row',\n alignItems: 'stretch'\n },\n textContainer: {\n paddingHorizontal: 24,\n paddingVertical: 12,\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n },\n squeezedTextContainer: {\n padding: theme.spacing.small,\n paddingLeft: undefined,\n paddingVertical: undefined,\n paddingRight: undefined,\n flex: 0\n },\n text: {\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black\n },\n textSelected: {\n color: theme.colors.white\n },\n unselectedImageContainer: {\n borderRightColor: theme.colors.border\n },\n imageContainer: {\n height: '100%',\n width: '25%',\n overflow: 'hidden',\n borderTopLeftRadius: theme.radius.regular,\n borderBottomLeftRadius: theme.radius.regular\n },\n image: {\n flex: 1\n }\n });\n\nconst Choice = ({\n children,\n isSelected = false,\n squeezed = false,\n isDisabled,\n onPress,\n media,\n testID: prefixTestID,\n style,\n questionType\n}: Props) => {\n const templateContext = useTemplateContext();\n const {theme, brandTheme} = templateContext;\n\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n const selectedStyle = brandTheme && {\n backgroundColor: brandTheme.colors.primary,\n borderColor: brandTheme.colors.primary,\n borderTopRightRadius: theme.radius.regular,\n borderBottomRightRadius: theme.radius.regular\n };\n\n const selectedSuffix = prefixTestID && isSelected ? '-selected' : '';\n const mediaType = media && media.type && media.type === 'img' && media.type.toLowerCase();\n const url =\n media &&\n media.type === 'img' &&\n media.src &&\n media.src.length > 0 &&\n getCleanUri(media.src[0].url);\n\n const source = {uri: url ? getCleanUri(url) : undefined};\n const mediaSuffix = prefixTestID && mediaType ? `-${mediaType}` : '';\n\n const htmlStyle: ViewStyle[] = [styleSheet.text];\n\n if (isSelected) {\n htmlStyle.push(styleSheet.textSelected);\n }\n\n return (\n <Touchable\n onPress={!isDisabled ? onPress : undefined}\n style={style}\n analyticsID=\"question-choice\"\n analyticsParams={{questionType}}\n >\n <View\n style={[styleSheet.boxShadow, styleSheet.container]}\n testID={prefixTestID && `${prefixTestID}${selectedSuffix}`}\n >\n {url ? (\n <View style={styleSheet.imageContainer}>\n <ImageBackground\n testID={prefixTestID && `${prefixTestID}${mediaSuffix}`}\n source={source}\n style={styleSheet.image}\n />\n </View>\n ) : null}\n <View\n style={[\n styleSheet.textContainer,\n squeezed && styleSheet.squeezedTextContainer,\n isSelected && selectedStyle\n ]}\n >\n <Html\n fontSize={squeezed ? theme.fontSize.medium : theme.fontSize.regular}\n style={htmlStyle}\n >\n {children}\n </Html>\n </View>\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"file":"index.native.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/choice/index.native.tsx"],"names":["React","useEffect","useState","View","StyleSheet","Html","ImageBackground","getCleanUri","Touchable","useTemplateContext","createStyleSheet","theme","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","minHeight","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontWeight","bold","color","black","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","squeezed","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","brandTheme","styleSheet","setStylesheet","_stylesheet","selectedSuffix","mediaType","type","toLowerCase","url","src","length","source","uri","mediaSuffix","htmlStyle","textWrapperStyle","push","selectionStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius","fontSize","medium"],"mappings":"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","sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle} from 'react-native';\nimport type {Media, QuestionType} from '../../types/progression-engine';\n\nimport Html from '../html/index.native';\nimport ImageBackground from '../image-background/index.native';\nimport getCleanUri from '../../util/get-clean-uri';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\n\nexport type Props = {\n isSelected?: boolean;\n onPress: () => void;\n children: string;\n isDisabled?: boolean;\n testID?: string;\n media?: Media;\n squeezed?: boolean;\n style?: ViewStyle;\n questionType: QuestionType;\n};\n\ntype StyleSheetType = {\n boxShadow: any;\n container: any;\n text: any;\n textSelected: any;\n textContainer: any;\n squeezedTextContainer: any;\n unselectedImageContainer: any;\n imageContainer: any;\n image: any;\n};\n\nconst createStyleSheet = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n boxShadow: {\n shadowColor: '#000',\n shadowOffset: {width: 0, height: 4},\n shadowOpacity: 0.12,\n shadowRadius: 16,\n elevation: 8,\n backgroundColor: '#0000'\n },\n container: {\n minHeight: 80,\n backgroundColor: theme.colors.white,\n borderRadius: theme.radius.regular,\n flexDirection: 'row',\n alignItems: 'stretch'\n },\n textContainer: {\n paddingHorizontal: 24,\n paddingVertical: 12,\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n },\n squeezedTextContainer: {\n padding: theme.spacing.small,\n paddingLeft: undefined,\n paddingVertical: undefined,\n paddingRight: undefined,\n flex: 0\n },\n text: {\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black\n },\n textSelected: {\n color: theme.colors.white\n },\n unselectedImageContainer: {\n borderRightColor: theme.colors.border\n },\n imageContainer: {\n height: '100%',\n width: '25%',\n overflow: 'hidden',\n borderTopLeftRadius: theme.radius.regular,\n borderBottomLeftRadius: theme.radius.regular\n },\n image: {\n flex: 1\n }\n });\n\nconst Choice = ({\n children,\n isSelected = false,\n squeezed = false,\n isDisabled,\n onPress,\n media,\n testID: prefixTestID,\n style,\n questionType\n}: Props) => {\n const templateContext = useTemplateContext();\n const {theme, brandTheme} = templateContext;\n\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n const selectedSuffix = prefixTestID && isSelected ? '-selected' : '';\n const mediaType = media && media.type && media.type === 'img' && media.type.toLowerCase();\n const url =\n media &&\n media.type === 'img' &&\n media.src &&\n media.src.length > 0 &&\n getCleanUri(media.src[0].url);\n\n const source = {uri: url ? getCleanUri(url) : undefined};\n const mediaSuffix = prefixTestID && mediaType ? `-${mediaType}` : '';\n\n const htmlStyle: ViewStyle[] = [styleSheet.text];\n const textWrapperStyle: ViewStyle[] = [\n styleSheet.textContainer,\n squeezed && styleSheet.squeezedTextContainer\n ];\n\n if (isSelected) {\n htmlStyle.push(styleSheet.textSelected);\n\n const selectionStyle = brandTheme && {\n backgroundColor: brandTheme.colors.primary,\n borderColor: brandTheme.colors.primary,\n ...(url\n ? {\n borderTopRightRadius: theme.radius.regular,\n borderBottomRightRadius: theme.radius.regular\n }\n : {\n borderRadius: theme.radius.regular\n })\n };\n\n textWrapperStyle.push(selectionStyle);\n }\n\n return (\n <Touchable\n onPress={!isDisabled ? onPress : undefined}\n style={style}\n analyticsID=\"question-choice\"\n analyticsParams={{questionType}}\n >\n <View\n style={[styleSheet.boxShadow, styleSheet.container]}\n testID={prefixTestID && `${prefixTestID}${selectedSuffix}`}\n >\n {url ? (\n <View style={styleSheet.imageContainer}>\n <ImageBackground\n testID={prefixTestID && `${prefixTestID}${mediaSuffix}`}\n source={source}\n style={styleSheet.image}\n />\n </View>\n ) : null}\n <View style={textWrapperStyle}>\n <Html\n fontSize={squeezed ? theme.fontSize.medium : theme.fontSize.regular}\n style={htmlStyle}\n >\n {children}\n </Html>\n </View>\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"file":"index.native.js"}
|
|
@@ -5,7 +5,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { SrcPropType, ColorPropType, HexPropType } from '../../util/proptypes';
|
|
8
|
-
import WebContext, { useWebContext } from './web-context';
|
|
9
8
|
const DEFAULT_SKIN = {
|
|
10
9
|
common: {
|
|
11
10
|
good: '#24b694',
|
|
@@ -114,6 +113,5 @@ Provider.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
114
113
|
common: PropTypes.func
|
|
115
114
|
})
|
|
116
115
|
} : {};
|
|
117
|
-
export { WebContext, useWebContext };
|
|
118
116
|
export default Provider;
|
|
119
117
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/provider/index.js"],"names":["React","PropTypes","SrcPropType","ColorPropType","HexPropType","
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/provider/index.js"],"names":["React","PropTypes","SrcPropType","ColorPropType","HexPropType","DEFAULT_SKIN","common","good","bad","primary","life","brand","primaryAdd1","primaryAdd2","primaryAdd3","primaryAdd4","xtraLightGrey","light","medium","dark","grey","orangeAdd","orange","positive","lightGreen","negative","battle","white","black","mergeSkin","skin","historyShape","shape","createHref","func","push","skinShape","objectOf","images","logo","login","icons","mod","courses","arrayOf","texts","translateShape","Provider","Component","getDerivedStateFromProps","props","history","translate","constructor","context","Vimeo","state","getChildContext","render","children","Children","only","isRequired","object","propTypes","node"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {defaultsDeep} from 'lodash/fp';\nimport {SrcPropType, ColorPropType, HexPropType} from '../../util/proptypes';\n\nconst DEFAULT_SKIN = {\n common: {\n good: '#24b694',\n bad: '#ed1c24',\n primary: '#00B0FF',\n life: '#ed1c24',\n brand: '#00B0FF',\n primaryAdd1: '#B3E5FC',\n primaryAdd2: '#0091EA',\n primaryAdd3: '#0277BD',\n primaryAdd4: '#015798',\n xtraLightGrey: '#FAFAFA',\n light: '#ECEFF1',\n medium: '#90A4AE',\n dark: '#546E7A',\n grey: '#607D8B',\n orangeAdd: '#FF7043',\n orange: '#FFA000',\n positive: '#3EC483',\n lightGreen: '#66BB6A',\n negative: '#F73F52',\n battle: '#FFE100',\n white: '#FFFFFF',\n black: '#14171A'\n }\n};\n\nconst mergeSkin = (skin = {}) => defaultsDeep(DEFAULT_SKIN, skin);\n\nconst historyShape = PropTypes.shape({\n createHref: PropTypes.func,\n push: PropTypes.func\n});\n\nconst skinShape = PropTypes.shape({\n common: PropTypes.objectOf(ColorPropType),\n images: PropTypes.shape({\n 'logo-mobile': SrcPropType,\n logo: SrcPropType,\n 'logo-email': SrcPropType,\n login: SrcPropType\n }),\n icons: PropTypes.objectOf(HexPropType),\n mod: PropTypes.objectOf(ColorPropType),\n courses: PropTypes.arrayOf(ColorPropType),\n texts: PropTypes.objectOf(ColorPropType)\n});\n\nconst translateShape = PropTypes.func;\n\nclass Provider extends React.Component {\n static propTypes = {\n history: historyShape,\n skin: skinShape,\n translate: translateShape,\n children: PropTypes.node.isRequired,\n Vimeo: PropTypes.shape({\n common: PropTypes.func\n })\n };\n\n static childContextTypes = {\n history: historyShape,\n skin: skinShape,\n translate: translateShape.isRequired,\n Vimeo: PropTypes.object\n };\n\n static getDerivedStateFromProps(props) {\n const {history, skin, translate} = props;\n\n return {\n history,\n skin: mergeSkin(skin),\n translate\n };\n }\n\n constructor(props, context) {\n super(props, context);\n const {history, skin, translate, Vimeo} = props;\n // eslint-disable-next-line react/no-unused-state\n this.state = {history, skin: mergeSkin(skin), translate, Vimeo};\n }\n\n getChildContext() {\n return this.state;\n }\n\n render() {\n const {children} = this.props;\n return React.Children.only(children);\n }\n}\n\nexport default Provider;\n"],"file":"index.js"}
|
package/es/atom/select/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import keys from 'lodash/fp/keys';
|
|
|
12
12
|
import map from 'lodash/fp/map';
|
|
13
13
|
import size from 'lodash/fp/size';
|
|
14
14
|
import { NovaCompositionNavigationArrowDown as ArrowDown } from '@coorpacademy/nova-icons';
|
|
15
|
-
import Provider
|
|
15
|
+
import Provider from '../provider';
|
|
16
16
|
import getClassState from '../../util/get-class-state';
|
|
17
17
|
import style from './style.css';
|
|
18
18
|
const themeStyle = {
|
|
@@ -28,7 +28,7 @@ const themeStyle = {
|
|
|
28
28
|
coorpmanager: null
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
const Select = (props,
|
|
31
|
+
const Select = (props, context) => {
|
|
32
32
|
const {
|
|
33
33
|
name,
|
|
34
34
|
options = [],
|
|
@@ -44,9 +44,9 @@ const Select = (props, legacyContext) => {
|
|
|
44
44
|
error = false,
|
|
45
45
|
title: propTitle
|
|
46
46
|
} = props;
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
const {
|
|
48
|
+
skin
|
|
49
|
+
} = context;
|
|
50
50
|
const title = useMemo(() => propTitle ? `${propTitle}${required ? '*' : ''}` : null, [propTitle, required]);
|
|
51
51
|
const optionList = options && options.map((option, index) => {
|
|
52
52
|
return /*#__PURE__*/React.createElement("option", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/select/index.js"],"names":["React","useMemo","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","Provider","useWebContext","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","legacyContext","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","context","skin","console","log","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,MAAP,MAAmB,kBAAnB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,KAAP,MAAkB,iBAAlB;AACA,OAAOC,QAAP,MAAqB,oBAArB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,SAAQC,kCAAkC,IAAIC,SAA9C,QAA8D,0BAA9D;AACA,OAAOC,QAAP,IAAkBC,aAAlB,QAAsC,aAAtC;AACA,OAAOC,aAAP,MAA0B,4BAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,UAAU,GAAG;AACjBd,EAAAA,MAAM,EAAEa,KAAK,CAACb,MADG;AAEjBe,EAAAA,OAAO,EAAEF,KAAK,CAACE,OAFE;AAGjBC,EAAAA,MAAM,EAAEH,KAAK,CAACG,MAHG;AAIjBC,EAAAA,IAAI,EAAEJ,KAAK,CAACI,IAJK;AAKjBC,EAAAA,QAAQ,EAAEL,KAAK,CAACK,QALC;AAMjBC,EAAAA,IAAI,EAAEN,KAAK,CAACM,IANK;AAOjBC,EAAAA,WAAW,EAAEP,KAAK,CAACO,WAPF;AAQjBC,EAAAA,MAAM,EAAER,KAAK,CAACQ,MARG;AASjBC,EAAAA,QAAQ,EAAET,KAAK,CAACS,QATC;AAUjBC,EAAAA,YAAY,EAAE;AAVG,CAAnB;;AAaA,MAAMC,MAAM,GAAG,CAACC,KAAD,EAAQC,aAAR,KAA0B;AACvC,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,OAAO,GAAG,EAFN;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,eAJI;AAKJC,IAAAA,QALI;AAMJC,IAAAA,QAAQ,GAAG,KANP;AAOJC,IAAAA,QAPI;AAQJC,IAAAA,QARI;AASJC,IAAAA,WATI;AAUJC,IAAAA,KAVI;AAWJC,IAAAA,QAAQ,GAAG,KAXP;AAYJC,IAAAA,KAAK,GAAG,KAZJ;AAaJC,IAAAA,KAAK,EAAEC;AAbH,MAcFf,KAdJ;AAgBA,QAAMgB,OAAO,GAAG9B,aAAa,EAA7B;AACA,QAAM+B,IAAI,GAAGvC,KAAK,CAACuB,aAAa,CAACgB,IAAf,EAAqB,MAArB,EAA6BD,OAA7B,CAAlB;AACAE,EAAAA,OAAO,CAACC,GAAR,CAAYF,IAAZ;AAEA,QAAMH,KAAK,GAAG1C,OAAO,CAAC,MAAO2C,SAAS,GAAI,GAAEA,SAAU,GAAEN,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAtC,GAA0C,IAA3D,EAAkE,CACrFM,SADqF,EAErFN,QAFqF,CAAlE,CAArB;AAKA,QAAMW,UAAU,GACdjB,OAAO,IACPA,OAAO,CAACtB,GAAR,CAAY,CAACwC,MAAD,EAASC,KAAT,KAAmB;AAC7B,wBACE;AAAQ,MAAA,GAAG,EAAEA,KAAb;AAAoB,MAAA,KAAK,EAAED,MAAM,CAACE,KAAlC;AAAyC,MAAA,SAAS,EAAEnC,KAAK,CAACoC;AAA1D,OACGH,MAAM,CAACnB,IADV,CADF;AAKD,GAND,CAFF;AAUA,QAAMuB,SAAS,GAAGX,KAAK,gBAAG;AAAM,IAAA,SAAS,EAAE1B,KAAK,CAAC0B;AAAvB,KAA+BA,KAA/B,MAAH,GAAmD,IAA1E;AAEA,QAAMY,QAAQ,GAAGtD,OAAO,CACtB,MACEmC,QAAQ,GACJ1B,GAAG,CAACJ,GAAG,CAAC,OAAD,CAAJ,EAAeF,MAAM,CAAC;AAACmD,IAAAA,QAAQ,EAAE;AAAX,GAAD,EAAmBvB,OAAnB,CAArB,CADC,GAEJ1B,GAAG,CAAC,OAAD,EAAUD,IAAI,CAAC;AAACkD,IAAAA,QAAQ,EAAE;AAAX,GAAD,EAAmBvB,OAAnB,CAAd,CAJa,EAKtB,CAACI,QAAD,EAAWJ,OAAX,CALsB,CAAxB;AAOA,QAAMwB,aAAa,GAAGvD,OAAO,CAC3B,MACEmC,QAAQ,GACJ1B,GAAG,CAACJ,GAAG,CAAC,MAAD,CAAJ,EAAcF,MAAM,CAAC;AAACmD,IAAAA,QAAQ,EAAE;AAAX,GAAD,EAAmBvB,OAAnB,CAApB,CADC,GAEJ1B,GAAG,CAAC,MAAD,EAASD,IAAI,CAAC;AAACkD,IAAAA,QAAQ,EAAE;AAAX,GAAD,EAAmBvB,OAAnB,CAAb,CAJkB,EAK3B,CAACI,QAAD,EAAWJ,OAAX,CAL2B,CAA7B;AAQA,QAAMyB,uBAAuB,GAAGxD,OAAO,CACrC,MACEuC,KAAK,KAAK,QAAV,IACAjC,KAAK,CAAC,KAAD,EAAQ,MAAR,EAAgBF,IAAI,CAAC;AAACqD,IAAAA,WAAW,EAAE,KAAd;AAAqBH,IAAAA,QAAQ,EAAE;AAA/B,GAAD,EAAuCvB,OAAvC,CAApB,CAH8B,EAIrC,CAACA,OAAD,EAAUQ,KAAV,CAJqC,CAAvC;AAOA,QAAMmB,YAAY,GAAG1D,OAAO,CAC1B,MACEmC,QAAQ,GACJwB,CAAC,IAAI;AACHzB,IAAAA,QAAQ,CAACzB,GAAG,CAACJ,GAAG,CAAC,OAAD,CAAJ,EAAesD,CAAC,CAACC,MAAF,CAASC,eAAxB,CAAJ,CAAR;AACD,GAHG,GAIJF,CAAC,IAAI;AACHzB,IAAAA,QAAQ,CAACyB,CAAC,CAACC,MAAF,CAAST,KAAV,CAAR;AACD,GARmB,EAS1B,CAACjB,QAAD,EAAWC,QAAX,CAT0B,CAA5B;AAYA,QAAM2B,KAAK,GAAG9D,OAAO,CAAC,MAAMM,KAAK,CAAC,SAAD,EAAY,cAAZ,EAA4BuC,IAA5B,CAAZ,EAA+C,CAACA,IAAD,CAA/C,CAArB;AACA,QAAMkB,KAAK,GAAG/D,OAAO,CAAC,MAAMM,KAAK,CAAC,SAAD,EAAY,gBAAZ,EAA8BuC,IAA9B,CAAZ,EAAiD,CAACA,IAAD,CAAjD,CAArB;AACA,QAAMmB,sBAAsB,GAAGhE,OAAO,CACpC,MACE,CAACwD,uBAAD,IAA4BF,QAA5B,IAAwC/C,QAAQ,CAACgC,KAAD,EAAQ,CAAC,UAAD,EAAa,UAAb,EAAyB,QAAzB,CAAR,CAFd,EAGpC,CAACiB,uBAAD,EAA0BF,QAA1B,EAAoCf,KAApC,CAHoC,CAAtC;AAKA,QAAM0B,UAAU,GAAGX,QAAQ,GAAGS,KAAH,GAAWG,SAAtC;AAEA,QAAMC,SAAS,GAAG,CAAChC,QAAD,gBAChB,oBAAC,SAAD;AACE,IAAA,KAAK,EAAE5B,QAAQ,CAACgC,KAAD,EAAQ,CAAC,UAAD,EAAa,UAAb,EAAyB,QAAzB,CAAR,CAAR,GAAsD0B,UAAtD,GAAmEH,KAD5E;AAEE,IAAA,SAAS,EAAEE,sBAAsB,GAAGhD,KAAK,CAACoD,aAAT,GAAyBpD,KAAK,CAACqD;AAFlE,IADgB,GAKd,IALJ;AAMA,QAAMC,kBAAkB,GAAGtE,OAAO,CAChC,MAAMe,aAAa,CAACC,KAAK,CAACuD,OAAP,EAAgBvD,KAAK,CAACwB,QAAtB,EAAgCxB,KAAK,CAACyB,KAAtC,EAA6CD,QAA7C,EAAuDC,KAAvD,CADa,EAEhC,CAACA,KAAD,EAAQD,QAAR,CAFgC,CAAlC;AAIA,QAAMgC,iBAAiB,GAAGxE,OAAO,CAC/B,MACEE,UAAU,CACRqC,KAAK,IAAIA,KAAK,KAAK,cAAnB,GAAoCtB,UAAU,CAACsB,KAAD,CAA9C,GAAwD+B,kBADhD,EAERhB,QAAQ,GAAGtC,KAAK,CAACsC,QAAT,GAAoBtC,KAAK,CAACyD,UAF1B,EAGRzC,SAHQ,CAFmB,EAO/B,CAACsC,kBAAD,EAAqBtC,SAArB,EAAgCsB,QAAhC,EAA0Cf,KAA1C,CAP+B,CAAjC;AAUA,QAAMmC,SAAS,GAAG1E,OAAO,CAAC,MAAMU,IAAI,CAAC6C,aAAD,CAAX,EAA4B,CAACA,aAAD,CAA5B,CAAzB;AAEA,QAAMoB,WAAW,GAAG3E,OAAO,CAAC,MAAM0E,SAAS,IAAI,EAApB,EAAwB,CAACA,SAAD,CAAxB,CAA3B;AAEA,sBACE;AACE,IAAA,SAAS,EAAExE,UAAU,CACnBsE,iBADmB,EAEnBjC,KAAK,KAAK,cAAV,GAA2BvB,KAAK,CAACU,YAAjC,GAAgD,IAF7B;AADvB,kBAME;AACE,iBAAU,gBADZ;AAEE,IAAA,KAAK,eACCsC,sBAAsB,IAAI;AAC5BD,MAAAA;AAD4B,KAD3B,CAFP;AAOE,IAAA,SAAS,EAAE/C,KAAK,CAAC4D;AAPnB,KASGvB,SATH,eAUE;AACE,iBAAU,aADZ;AAEE,IAAA,SAAS,EAAEnD,UAAU,CACnBc,KAAK,CAAC6D,UADa,EAEnBtE,QAAQ,CAACgC,KAAD,EAAQ,CAAC,QAAD,EAAW,SAAX,EAAsB,UAAtB,EAAkC,aAAlC,EAAiD,UAAjD,CAAR,CAAR,GACIvB,KAAK,CAAC8D,aADV,GAEI,IAJe,EAKnB7C,eALmB,EAMnB0C,WAAW,GAAG3D,KAAK,CAAC+D,SAAT,GAAqB,IANb,CAFvB;AAUE,IAAA,KAAK,eACCf,sBAAsB,IAAI;AAC5BD,MAAAA;AAD4B,KAD3B;AAVP,KAgBGR,aAhBH,CAVF,EA4BGY,SA5BH,eA6BE;AACE,iBAAU,eADZ;AAEE,IAAA,SAAS,EAAEnD,KAAK,CAACgE,SAFnB;AAGE,IAAA,KAAK,EAAEzB,aAHT;AAIE,IAAA,IAAI,EAAEzB,IAJR;AAKE,IAAA,QAAQ,EAAE4B,YALZ;AAME,IAAA,KAAK,EAAEJ,QANT;AAOE,IAAA,QAAQ,EAAEnB,QAPZ;AAQE,IAAA,QAAQ,EAAEC;AARZ,KAUGY,UAVH,CA7BF,CANF,eAgDE;AAAK,IAAA,SAAS,EAAEhC,KAAK,CAACsB;AAAtB,KAAoCA,WAApC,CAhDF,CADF;AAoDD,CA7JD;;AA+JA,OAAO,MAAM2C,qBAAqB,GAAG;AACnCnD,EAAAA,IAAI,EAAE7B,SAAS,CAACiF,MAAV,CAAiBC,UADY;AAEnChC,EAAAA,KAAK,EAAElD,SAAS,CAACmF,SAAV,CAAoB,CAACnF,SAAS,CAACiF,MAAX,EAAmBjF,SAAS,CAACoF,MAA7B,CAApB,CAF4B;AAGnC/B,EAAAA,QAAQ,EAAErD,SAAS,CAACqF,IAHe;AAInC7B,EAAAA,WAAW,EAAExD,SAAS,CAACqF;AAJY,CAA9B;AAOP3D,MAAM,CAAC4D,YAAP,GAAsB;AACpB1C,EAAAA,IAAI,EAAEhC,QAAQ,CAAC2E,iBAAT,CAA2B3C;AADb,CAAtB;AAIAlB,MAAM,CAAC8D,SAAP,2CAAmB;AACjB/C,EAAAA,KAAK,EAAEzC,SAAS,CAACiF,MADA;AAEjBpD,EAAAA,IAAI,EAAE7B,SAAS,CAACiF,MAFC;AAGjBlD,EAAAA,SAAS,EAAE/B,SAAS,CAACiF,MAHJ;AAIjBjD,EAAAA,eAAe,EAAEhC,SAAS,CAACiF,MAJV;AAKjB9C,EAAAA,QAAQ,EAAEnC,SAAS,CAACqF,IALH;AAMjBnD,EAAAA,QAAQ,EAAElC,SAAS,CAACqF,IANH;AAOjBhD,EAAAA,WAAW,EAAErC,SAAS,CAACiF,MAPN;AAQjB7C,EAAAA,QAAQ,EAAEpC,SAAS,CAACqF,IARH;AASjBpD,EAAAA,QAAQ,EAAEjC,SAAS,CAACyF,IATH;AAUjBnD,EAAAA,KAAK,EAAEtC,SAAS,CAAC0F,KAAV,CAAgBnF,IAAI,CAACS,UAAD,CAApB,CAVU;AAWjBc,EAAAA,OAAO,EAAE9B,SAAS,CAAC2F,OAAV,CAAkB3F,SAAS,CAAC4F,KAAV,CAAgBZ,qBAAhB,CAAlB,CAXQ;AAYjBzC,EAAAA,QAAQ,EAAEvC,SAAS,CAACqF,IAZH;AAajB7C,EAAAA,KAAK,EAAExC,SAAS,CAACqF;AAbA,CAAnB;AAgBA,eAAe3D,MAAf","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider, {useWebContext} from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst Select = (props, legacyContext) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const context = useWebContext();\n const skin = getOr(legacyContext.skin, 'skin', context);\n console.log(skin);\n\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/select/index.js"],"names":["React","useMemo","PropTypes","classnames","filter","find","get","getOr","includes","keys","map","size","NovaCompositionNavigationArrowDown","ArrowDown","Provider","getClassState","style","themeStyle","invalid","header","mooc","question","sort","thematiques","player","template","coorpmanager","Select","props","context","name","options","className","borderClassName","onChange","multiple","disabled","required","description","theme","modified","error","title","propTitle","skin","optionList","option","index","value","selectOption","titleView","selected","selectedLabel","isSelectedInValidOption","validOption","handleChange","e","target","selectedOptions","black","color","shouldUseSkinFontColor","arrowColor","undefined","arrowView","selectedArrow","arrow","behaviourClassName","default","composedClassName","unselected","labelSize","isLongLabel","selectWrapper","selectSpan","noLabelCommon","longLabel","selectBox","SelectOptionPropTypes","string","isRequired","oneOfType","number","bool","contextTypes","childContextTypes","propTypes","func","oneOf","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport filter from 'lodash/fp/filter';\nimport find from 'lodash/fp/find';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport includes from 'lodash/fp/includes';\nimport keys from 'lodash/fp/keys';\nimport map from 'lodash/fp/map';\nimport size from 'lodash/fp/size';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Provider from '../provider';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n filter: style.filter,\n invalid: style.invalid,\n header: style.header,\n mooc: style.mooc,\n question: style.question,\n sort: style.sort,\n thematiques: style.thematiques,\n player: style.player,\n template: style.template,\n coorpmanager: null\n};\n\nconst Select = (props, context) => {\n const {\n name,\n options = [],\n className,\n borderClassName,\n onChange,\n multiple = false,\n disabled,\n required,\n description,\n theme,\n modified = false,\n error = false,\n title: propTitle\n } = props;\n\n const {skin} = context;\n\n const title = useMemo(() => (propTitle ? `${propTitle}${required ? '*' : ''}` : null), [\n propTitle,\n required\n ]);\n\n const optionList =\n options &&\n options.map((option, index) => {\n return (\n <option key={index} value={option.value} className={style.selectOption}>\n {option.name}\n </option>\n );\n });\n\n const titleView = title ? <span className={style.title}>{title} </span> : null;\n\n const selected = useMemo(\n () =>\n multiple\n ? map(get('value'), filter({selected: true}, options))\n : get('value', find({selected: true}, options)),\n [multiple, options]\n );\n const selectedLabel = useMemo(\n () =>\n multiple\n ? map(get('name'), filter({selected: true}, options))\n : get('name', find({selected: true}, options)),\n [multiple, options]\n );\n\n const isSelectedInValidOption = useMemo(\n () =>\n theme === 'player' &&\n getOr(false, 'name', find({validOption: false, selected: true}, options)),\n [options, theme]\n );\n\n const handleChange = useMemo(\n () =>\n multiple\n ? e => {\n onChange(map(get('value'), e.target.selectedOptions));\n }\n : e => {\n onChange(e.target.value);\n },\n [onChange, multiple]\n );\n\n const black = useMemo(() => getOr('#14171A', 'common.black', skin), [skin]);\n const color = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const shouldUseSkinFontColor = useMemo(\n () =>\n !isSelectedInValidOption && selected && includes(theme, ['question', 'template', 'player']),\n [isSelectedInValidOption, selected, theme]\n );\n const arrowColor = selected ? color : undefined;\n\n const arrowView = !multiple ? (\n <ArrowDown\n color={includes(theme, ['question', 'template', 'player']) ? arrowColor : black}\n className={shouldUseSkinFontColor ? style.selectedArrow : style.arrow}\n />\n ) : null;\n const behaviourClassName = useMemo(\n () => getClassState(style.default, style.modified, style.error, modified, error),\n [error, modified]\n );\n const composedClassName = useMemo(\n () =>\n classnames(\n theme && theme !== 'coorpmanager' ? themeStyle[theme] : behaviourClassName,\n selected ? style.selected : style.unselected,\n className\n ),\n [behaviourClassName, className, selected, theme]\n );\n\n const labelSize = useMemo(() => size(selectedLabel), [selectedLabel]);\n\n const isLongLabel = useMemo(() => labelSize >= 65, [labelSize]);\n\n return (\n <div\n className={classnames(\n composedClassName,\n theme === 'coorpmanager' ? style.coorpmanager : null\n )}\n >\n <label\n data-name=\"select-wrapper\"\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n className={style.selectWrapper}\n >\n {titleView}\n <span\n data-name=\"select-span\"\n className={classnames(\n style.selectSpan,\n includes(theme, ['player', 'invalid', 'question', 'thematiques', 'template'])\n ? style.noLabelCommon\n : null,\n borderClassName,\n isLongLabel ? style.longLabel : null\n )}\n style={{\n ...(shouldUseSkinFontColor && {\n color\n })\n }}\n >\n {selectedLabel}\n </span>\n {arrowView}\n <select\n data-name=\"native-select\"\n className={style.selectBox}\n title={selectedLabel}\n name={name}\n onChange={handleChange}\n value={selected}\n multiple={multiple}\n disabled={disabled}\n >\n {optionList}\n </select>\n </label>\n <div className={style.description}>{description}</div>\n </div>\n );\n};\n\nexport const SelectOptionPropTypes = {\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n selected: PropTypes.bool,\n validOption: PropTypes.bool\n};\n\nSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSelect.propTypes = {\n title: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n borderClassName: PropTypes.string,\n disabled: PropTypes.bool,\n multiple: PropTypes.bool,\n description: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n theme: PropTypes.oneOf(keys(themeStyle)),\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes)),\n modified: PropTypes.bool,\n error: PropTypes.bool\n};\n\nexport default Select;\n"],"file":"index.js"}
|
|
@@ -6,15 +6,10 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
6
6
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { convert } from 'css-color-function';
|
|
9
|
-
import Provider
|
|
9
|
+
import Provider from '../../../atom/provider';
|
|
10
10
|
import style from './style.css';
|
|
11
11
|
|
|
12
|
-
const FreeText = (props,
|
|
13
|
-
const context = useWebContext();
|
|
14
|
-
|
|
15
|
-
const skin = _getOr(legacyContext.skin, 'skin', context);
|
|
16
|
-
|
|
17
|
-
console.log(skin);
|
|
12
|
+
const FreeText = (props, context) => {
|
|
18
13
|
const {
|
|
19
14
|
placeholder = '',
|
|
20
15
|
value = '',
|
|
@@ -24,7 +19,7 @@ const FreeText = (props, legacyContext) => {
|
|
|
24
19
|
const [hovered, setHovered] = useState(false);
|
|
25
20
|
const handleChange = useCallback(e => onChange(e.target.value), [onChange]);
|
|
26
21
|
|
|
27
|
-
const primarySkinColor = _getOr('#00B0FF', 'common.primary',
|
|
22
|
+
const primarySkinColor = _getOr('#00B0FF', 'skin.common.primary', context);
|
|
28
23
|
|
|
29
24
|
const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
|
|
30
25
|
const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/free-text/index.js"],"names":["React","useCallback","useMemo","useState","PropTypes","convert","Provider","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/free-text/index.js"],"names":["React","useCallback","useMemo","useState","PropTypes","convert","Provider","style","FreeText","props","context","placeholder","value","onChange","ariaLabel","hovered","setHovered","handleChange","e","target","primarySkinColor","handleMouseOver","handleMouseLeave","shadowBoxPrimaryColor","wrapper","boxShadow","freeText","color","contextTypes","skin","childContextTypes","propTypes","string","func"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAeC,WAAf,EAA4BC,OAA5B,EAAqCC,QAArC,QAAoD,OAApD;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAAQC,OAAR,QAAsB,oBAAtB;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;AACnC,QAAM;AAACC,IAAAA,WAAW,GAAG,EAAf;AAAmBC,IAAAA,KAAK,GAAG,EAA3B;AAA+BC,IAAAA,QAAQ,QAAvC;AAAgD,kBAAcC;AAA9D,MAA2EL,KAAjF;AACA,QAAM,CAACM,OAAD,EAAUC,UAAV,IAAwBb,QAAQ,CAAC,KAAD,CAAtC;AAEA,QAAMc,YAAY,GAAGhB,WAAW,CAACiB,CAAC,IAAIL,QAAQ,CAACK,CAAC,CAACC,MAAF,CAASP,KAAV,CAAd,EAAgC,CAACC,QAAD,CAAhC,CAAhC;;AACA,QAAMO,gBAAgB,GAAG,OAAM,SAAN,EAAiB,qBAAjB,EAAwCV,OAAxC,CAAzB;;AAEA,QAAMW,eAAe,GAAGpB,WAAW,CAAC,MAAMe,UAAU,CAAC,IAAD,CAAjB,EAAyB,CAACA,UAAD,CAAzB,CAAnC;AAEA,QAAMM,gBAAgB,GAAGrB,WAAW,CAAC,MAAMe,UAAU,CAAC,KAAD,CAAjB,EAA0B,CAACA,UAAD,CAA1B,CAApC;AAEA,QAAMO,qBAAqB,GAAGrB,OAAO,CAAC,MAAMG,OAAO,CAAE,SAAQe,gBAAiB,UAA3B,CAAd,EAAqD,CACxFA,gBADwF,CAArD,CAArC;AAIA,sBACE;AACE,iBAAU,UADZ;AAEE,IAAA,SAAS,EAAEb,KAAK,CAACiB,OAFnB;AAGE,IAAA,WAAW,EAAEH,eAHf;AAIE,IAAA,YAAY,EAAEC,gBAJhB;AAKE,IAAA,KAAK,eACCV,KAAK,IAAI;AACXa,MAAAA,SAAS,EAAEV,OAAO,GAAG,MAAH,GAAa,cAAaQ,qBAAsB;AADvD,KADV;AALP,kBAWE;AACE,iBAAU,iBADZ;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,kBAAYT,SAAS,IAAIF,KAAb,IAAsBD,WAHpC;AAIE,IAAA,SAAS,EAAEJ,KAAK,CAACmB,QAJnB;AAKE,IAAA,WAAW,EAAEf,WALf;AAME,IAAA,KAAK,EAAEC,KANT;AAOE,IAAA,OAAO,EAAEK,YAPX;AAQE,IAAA,QAAQ,OARV;AASE,IAAA,KAAK;AACHQ,MAAAA,SAAS,EAAG,cAAaF,qBAAsB;AAD5C,OAECX,KAAK,IAAI;AACXa,MAAAA,SAAS,EAAG,cACVV,OAAO,GAAGV,OAAO,CAAE,SAAQe,gBAAiB,UAA3B,CAAV,GAAkDG,qBAC1D;AAHU,KAFV;AAOHI,MAAAA,KAAK,EAAEP;AAPJ;AATP,IAXF,CADF;AAiCD,CAhDD;;AAkDAZ,QAAQ,CAACoB,YAAT,GAAwB;AACtBC,EAAAA,IAAI,EAAEvB,QAAQ,CAACwB,iBAAT,CAA2BD;AADX,CAAxB;AAIArB,QAAQ,CAACuB,SAAT,2CAAqB;AACnBpB,EAAAA,WAAW,EAAEP,SAAS,CAAC4B,MADJ;AAEnBpB,EAAAA,KAAK,EAAER,SAAS,CAAC4B,MAFE;AAGnBnB,EAAAA,QAAQ,EAAET,SAAS,CAAC6B,IAHD;AAInB,gBAAc7B,SAAS,CAAC4B;AAJL,CAArB;AAOA,eAAexB,QAAf","sourcesContent":["import React, {useCallback, useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, getOr} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../../atom/provider';\nimport style from './style.css';\n\nconst FreeText = (props, context) => {\n const {placeholder = '', value = '', onChange = noop, 'aria-label': ariaLabel} = props;\n const [hovered, setHovered] = useState(false);\n\n const handleChange = useCallback(e => onChange(e.target.value), [onChange]);\n const primarySkinColor = getOr('#00B0FF', 'skin.common.primary', context);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const shadowBoxPrimaryColor = useMemo(() => convert(`color(${primarySkinColor} a(12%))`), [\n primarySkinColor\n ]);\n\n return (\n <div\n data-name=\"freeText\"\n className={style.wrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n style={{\n ...(value && {\n boxShadow: hovered ? 'none' : `0 4px 16px ${shadowBoxPrimaryColor}`\n })\n }}\n >\n <input\n data-name=\"free-text-input\"\n type=\"text\"\n aria-label={ariaLabel || value || placeholder}\n className={style.freeText}\n placeholder={placeholder}\n value={value}\n onInput={handleChange}\n onChange={noop}\n style={{\n boxShadow: `0 4px 16px ${shadowBoxPrimaryColor}`,\n ...(value && {\n boxShadow: `0 4px 16px ${\n hovered ? convert(`color(${primarySkinColor} a(20%))`) : shadowBoxPrimaryColor\n }`\n }),\n color: primarySkinColor\n }}\n />\n </div>\n );\n};\n\nFreeText.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nFreeText.propTypes = {\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n 'aria-label': PropTypes.string\n};\n\nexport default FreeText;\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"names":["View","StyleSheet","TextInput","React","useState","useEffect","useCallback","useTemplateContext","ANALYTICS_EVENT_TYPE","createStyleSheet","brandTheme","theme","create","input","padding","spacing","tiny","borderWidth","borderColor","colors","gray","lightMedium","borderRadius","radius","common","backgroundColor","white","minWidth","text","primary","color","medium","fontWeight","bold","fontSize","regular","textAlign","spaced","paddingVertical","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","fullWidth","testID","onChange","isDisabled","value","handleFocus","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"mappings":"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","sourcesContent":["import {View, StyleSheet, TextInput} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\nimport {Theme} from '../../../variables/theme.native';\nimport {FontSize, TextAlign} from '../../../types/styles';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWidth?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled?: boolean;\n value
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/free-text/index.native.tsx"],"names":["View","StyleSheet","TextInput","React","useState","useEffect","useCallback","useTemplateContext","ANALYTICS_EVENT_TYPE","createStyleSheet","brandTheme","theme","create","input","padding","spacing","tiny","borderWidth","borderColor","colors","gray","lightMedium","borderRadius","radius","common","backgroundColor","white","minWidth","text","primary","color","medium","fontWeight","bold","fontSize","regular","textAlign","spaced","paddingVertical","fullWitdh","width","logEvent","eventName","analytics","questionType","id","FreeText","props","templateContext","styleSheet","setStylesheet","translations","PLACEHOLDER_COLOR","fullWidth","testID","onChange","isDisabled","value","handleFocus","INPUT_FOCUS","handleBlur","INPUT_BLUR","_stylesheet","typeHere"],"mappings":"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","sourcesContent":["import {View, StyleSheet, TextInput} from 'react-native';\nimport React, {useState, useEffect, useCallback} from 'react';\nimport {useTemplateContext} from '../../../template/app-review/template-context';\nimport {ANALYTICS_EVENT_TYPE, Analytics} from '../../../variables/analytics';\nimport {Theme} from '../../../variables/theme.native';\nimport {FontSize, TextAlign} from '../../../types/styles';\n\ntype QuestionType = 'basic' | 'template';\n\ninterface Props {\n fullWidth?: boolean;\n testID: string;\n questionType: QuestionType;\n analytics?: Analytics;\n onChange: (text: string) => void;\n isDisabled?: boolean;\n value?: string; // when value is undefined, TextInput acts as not controlled\n}\n\ntype StyleSheetType = {\n input: {\n padding: number;\n borderWidth: number;\n borderColor: string;\n borderRadius: number;\n backgroundColor: string;\n minWidth: number;\n };\n text: {\n color: string;\n fontWeight:\n | 'normal'\n | 'bold'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n | undefined;\n fontSize: FontSize;\n textAlign: TextAlign;\n };\n spaced: {\n paddingVertical: number;\n };\n fullWitdh: {\n width: string;\n };\n};\n\nconst createStyleSheet = (brandTheme: any, theme: Theme) =>\n StyleSheet.create({\n input: {\n padding: theme.spacing.tiny,\n borderWidth: 1,\n borderColor: theme.colors.gray.lightMedium,\n borderRadius: theme.radius.common,\n backgroundColor: theme.colors.white,\n minWidth: 175\n },\n text: {\n borderColor: brandTheme?.colors.primary,\n color: brandTheme?.colors.primary || theme.colors.gray.medium,\n fontWeight: theme.fontWeight.bold,\n fontSize: theme.fontSize.regular,\n textAlign: 'center'\n },\n spaced: {\n paddingVertical: theme.spacing.tiny\n },\n fullWitdh: {\n width: '100%'\n }\n });\n\nconst logEvent = (eventName: string, analytics: Analytics, questionType: QuestionType) => {\n analytics &&\n analytics.logEvent(eventName, {\n id: `question-input-text`,\n questionType\n });\n};\n\nconst FreeText = (props: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {brandTheme, theme, translations} = templateContext;\n const PLACEHOLDER_COLOR = theme.colors.gray.medium;\n\n // ------------------------------------\n\n const {\n analytics,\n questionType,\n fullWidth = false,\n testID,\n onChange,\n isDisabled = false,\n value\n } = props;\n\n // ------------------------------------\n\n const handleFocus = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_FOCUS, analytics, questionType),\n [analytics, questionType]\n );\n\n const handleBlur = useCallback(\n () => analytics && logEvent(ANALYTICS_EVENT_TYPE.INPUT_BLUR, analytics, questionType),\n [analytics, questionType]\n );\n\n // ------------------------------------\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(brandTheme, theme);\n setStylesheet(_stylesheet);\n }, [brandTheme, theme]);\n\n // ------------------------------------\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={[styleSheet.spaced, fullWidth && styleSheet.fullWitdh]}>\n <TextInput\n style={[styleSheet.input, styleSheet.text]}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChangeText={onChange}\n placeholder={translations.typeHere}\n placeholderTextColor={PLACEHOLDER_COLOR}\n value={value}\n testID={testID}\n editable={!isDisabled}\n selectTextOnFocus={!isDisabled}\n />\n </View>\n );\n};\n\nexport default FreeText;\n"],"file":"index.native.js"}
|
|
@@ -1 +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"}
|
|
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 />\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
|
|
8
|
+
import Provider 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, context) => {
|
|
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 {
|
|
20
|
+
skin
|
|
21
|
+
} = context;
|
|
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","
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/questions/qcm/index.js"],"names":["React","useMemo","classnames","PropTypes","getOr","maxBy","Provider","getShadowBoxColorFromPrimary","style","QCM","props","context","answers","longestAnswer","title","length","skin","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 from '../../../atom/provider';\nimport {getShadowBoxColorFromPrimary} from '../../../util/get-shadow-box-color-from-primary';\nimport style from './style.css';\n\nconst QCM = (props, context) => {\n const {answers} = props;\n const longestAnswer = maxBy(({title}) => title.length, answers);\n const {skin} = context;\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
|
|
8
|
+
import Provider 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,6 +22,9 @@ const EmptyView = ({
|
|
|
22
22
|
className: style.emptySpan
|
|
23
23
|
}, help);
|
|
24
24
|
|
|
25
|
+
EmptyView.contextTypes = {
|
|
26
|
+
translate: Provider.childContextTypes.translate
|
|
27
|
+
};
|
|
25
28
|
EmptyView.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
26
29
|
help: PropTypes.string
|
|
27
30
|
} : {};
|
|
@@ -117,12 +120,10 @@ SelectedAnswerSections.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
117
120
|
const QcmDrag = ({
|
|
118
121
|
answers,
|
|
119
122
|
help
|
|
120
|
-
},
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
console.log(skin);
|
|
123
|
+
}, context) => {
|
|
124
|
+
const {
|
|
125
|
+
skin
|
|
126
|
+
} = context;
|
|
126
127
|
|
|
127
128
|
const primarySkinColor = _getOr('#00B0FF', 'common.primary', skin);
|
|
128
129
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/questions/qcm-drag/index.js"],"names":["React","PropTypes","classnames","Provider","
|
|
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","contextTypes","translate","childContextTypes","propTypes","Choices","answers","answersViews","map","answer","key","invisibleAnswer","unselected","innerHTML","__html","choices","SelectedAnswerSections","backgroundColor","selectedAnswers","selectedAnswersViews","boxShadow","background","content","selectedAnswerText","length","emptyAnswers","QcmDrag","context","skin","primarySkinColor","wrapper"],"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 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.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\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}, context) => {\n const {skin} = context;\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"}
|