@coorpacademy/components 10.29.7-alpha.12 → 10.29.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/choice/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAmB,SAAS,EAAkB,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAQxE,oBAAY,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAoEF,QAAA,MAAM,MAAM,8GAUT,KAAK,uBAqFP,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/choice/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAmB,SAAS,EAAY,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAMxE,oBAAY,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAoEF,QAAA,MAAM,MAAM,8GAUT,KAAK,uBAqFP,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,7 +1,8 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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
3
  import React, { useEffect, useState } from 'react';
4
- import { View, StyleSheet, Text } from 'react-native';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import Html from '../html/index.native';
5
6
  import ImageBackground from '../image-background/index.native';
6
7
  import getCleanUri from '../../util/get-clean-uri';
7
8
  import Touchable from '../../hoc/touchable/index.native';
@@ -140,7 +141,7 @@ const Choice = ({
140
141
  style: styleSheet.image
141
142
  })) : null, children ? /*#__PURE__*/React.createElement(View, {
142
143
  style: textWrapperStyle
143
- }, /*#__PURE__*/React.createElement(Text, {
144
+ }, /*#__PURE__*/React.createElement(Html, {
144
145
  style: textStyle
145
146
  }, children)) : null));
146
147
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","View","StyleSheet","Text","ImageBackground","getCleanUri","Touchable","useTemplateContext","createStyleSheet","theme","squeezed","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontSize","medium","fontWeight","bold","color","black","textAlign","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","brandTheme","styleSheet","setStylesheet","_stylesheet","selectedSuffix","mediaType","type","toLowerCase","url","src","length","source","uri","mediaSuffix","textStyle","textWrapperStyle","push","selectionStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius"],"sources":["../../../src/atom/choice/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle, Text, TextStyle} from 'react-native';\nimport type {Media, QuestionType} from '../../molecule/questions/types';\n\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: ViewStyle;\n container: ViewStyle;\n text: TextStyle;\n textSelected: TextStyle;\n textContainer: ViewStyle;\n squeezedTextContainer: ViewStyle;\n unselectedImageContainer: ViewStyle;\n imageContainer: ViewStyle;\n image: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme, squeezed: boolean): 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 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 fontSize: squeezed ? theme.fontSize.medium : theme.fontSize.regular,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black,\n textAlign: 'center'\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, squeezed);\n setStylesheet(_stylesheet);\n }, [theme, squeezed]);\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 textStyle: TextStyle[] = [styleSheet.text];\n const textWrapperStyle: ViewStyle[] = [styleSheet.textContainer];\n\n if (squeezed) {\n textWrapperStyle.push(styleSheet.squeezedTextContainer);\n }\n\n if (isSelected) {\n textStyle.push(styleSheet.textSelected);\n\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\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 if (selectionStyle) {\n textWrapperStyle.push(selectionStyle);\n }\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\n {children ? (\n <View style={textWrapperStyle}>\n <Text style={textStyle}>{children}</Text>\n </View>\n ) : null}\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,SAAf,EAA0BC,QAA1B,QAAyC,OAAzC;AACA,SAAQC,IAAR,EAAcC,UAAd,EAAqCC,IAArC,QAA2D,cAA3D;AAGA,OAAOC,eAAP,MAA4B,kCAA5B;AACA,OAAOC,WAAP,MAAwB,0BAAxB;AACA,OAAOC,SAAP,MAAsB,kCAAtB;AACA,SAAQC,kBAAR,QAAiC,4CAAjC;;AA2BA,MAAMC,gBAAgB,GAAG,CAACC,KAAD,EAAeC,QAAf,KACvBR,UAAU,CAACS,MAAX,CAAkB;EAChBC,SAAS,EAAE;IACTC,WAAW,EAAE,MADJ;IAETC,YAAY,EAAE;MAACC,KAAK,EAAE,CAAR;MAAWC,MAAM,EAAE;IAAnB,CAFL;IAGTC,aAAa,EAAE,IAHN;IAITC,YAAY,EAAE,EAJL;IAKTC,SAAS,EAAE,CALF;IAMTC,eAAe,EAAE;EANR,CADK;EAShBC,SAAS,EAAE;IACTD,eAAe,EAAEX,KAAK,CAACa,MAAN,CAAaC,KADrB;IAETC,YAAY,EAAEf,KAAK,CAACgB,MAAN,CAAaC,OAFlB;IAGTC,aAAa,EAAE,KAHN;IAITC,UAAU,EAAE;EAJH,CATK;EAehBC,aAAa,EAAE;IACbC,iBAAiB,EAAE,EADN;IAEbC,eAAe,EAAE,EAFJ;IAGbC,cAAc,EAAE,QAHH;IAIbJ,UAAU,EAAE,QAJC;IAKbK,IAAI,EAAE;EALO,CAfC;EAsBhBC,qBAAqB,EAAE;IACrBC,OAAO,EAAE1B,KAAK,CAAC2B,OAAN,CAAcC,KADF;IAErBC,WAAW,EAAEC,SAFQ;IAGrBR,eAAe,EAAEQ,SAHI;IAIrBC,YAAY,EAAED,SAJO;IAKrBN,IAAI,EAAE;EALe,CAtBP;EA6BhBQ,IAAI,EAAE;IACJC,QAAQ,EAAEhC,QAAQ,GAAGD,KAAK,CAACiC,QAAN,CAAeC,MAAlB,GAA2BlC,KAAK,CAACiC,QAAN,CAAehB,OADxD;IAEJkB,UAAU,EAAEnC,KAAK,CAACmC,UAAN,CAAiBC,IAFzB;IAGJC,KAAK,EAAErC,KAAK,CAACa,MAAN,CAAayB,KAHhB;IAIJC,SAAS,EAAE;EAJP,CA7BU;EAmChBC,YAAY,EAAE;IACZH,KAAK,EAAErC,KAAK,CAACa,MAAN,CAAaC;EADR,CAnCE;EAsChB2B,wBAAwB,EAAE;IACxBC,gBAAgB,EAAE1C,KAAK,CAACa,MAAN,CAAa8B;EADP,CAtCV;EAyChBC,cAAc,EAAE;IACdrC,MAAM,EAAE,MADM;IAEdD,KAAK,EAAE,KAFO;IAGduC,QAAQ,EAAE,QAHI;IAIdC,mBAAmB,EAAE9C,KAAK,CAACgB,MAAN,CAAaC,OAJpB;IAKd8B,sBAAsB,EAAE/C,KAAK,CAACgB,MAAN,CAAaC;EALvB,CAzCA;EAgDhB+B,KAAK,EAAE;IACLxB,IAAI,EAAE;EADD;AAhDS,CAAlB,CADF;;AAsDA,MAAMyB,MAAM,GAAG,CAAC;EACdC,QADc;EAEdC,UAAU,GAAG,KAFC;EAGdlD,QAAQ,GAAG,KAHG;EAIdmD,UAJc;EAKdC,OALc;EAMdC,KANc;EAOdC,MAAM,EAAEC,YAPM;EAQdC,KARc;EASdC;AATc,CAAD,KAUF;EACX,MAAMC,eAAe,GAAG7D,kBAAkB,EAA1C;EACA,MAAM;IAACE,KAAD;IAAQ4D;EAAR,IAAsBD,eAA5B;EAEA,MAAM,CAACE,UAAD,EAAaC,aAAb,IAA8BvE,QAAQ,CAAwB,IAAxB,CAA5C;EAEAD,SAAS,CAAC,MAAM;IACd,MAAMyE,WAAW,GAAGhE,gBAAgB,CAACC,KAAD,EAAQC,QAAR,CAApC;;IACA6D,aAAa,CAACC,WAAD,CAAb;EACD,CAHQ,EAGN,CAAC/D,KAAD,EAAQC,QAAR,CAHM,CAAT;;EAKA,IAAI,CAAC4D,UAAL,EAAiB;IACf,OAAO,IAAP;EACD;;EAED,MAAMG,cAAc,GAAGR,YAAY,IAAIL,UAAhB,GAA6B,WAA7B,GAA2C,EAAlE;EACA,MAAMc,SAAS,GAAGX,KAAK,IAAIA,KAAK,CAACY,IAAf,IAAuBZ,KAAK,CAACY,IAAN,KAAe,KAAtC,IAA+CZ,KAAK,CAACY,IAAN,CAAWC,WAAX,EAAjE;EACA,MAAMC,GAAG,GACPd,KAAK,IACLA,KAAK,CAACY,IAAN,KAAe,KADf,IAEAZ,KAAK,CAACe,GAFN,IAGAf,KAAK,CAACe,GAAN,CAAUC,MAAV,GAAmB,CAHnB,IAIA1E,WAAW,CAAC0D,KAAK,CAACe,GAAN,CAAU,CAAV,EAAaD,GAAd,CALb;EAOA,MAAMG,MAAM,GAAG;IAACC,GAAG,EAAEJ,GAAG,GAAGxE,WAAW,CAACwE,GAAD,CAAd,GAAsBtC;EAA/B,CAAf;EACA,MAAM2C,WAAW,GAAGjB,YAAY,IAAIS,SAAhB,GAA6B,IAAGA,SAAU,EAA1C,GAA8C,EAAlE;EAEA,MAAMS,SAAsB,GAAG,CAACb,UAAU,CAAC7B,IAAZ,CAA/B;EACA,MAAM2C,gBAA6B,GAAG,CAACd,UAAU,CAACzC,aAAZ,CAAtC;;EAEA,IAAInB,QAAJ,EAAc;IACZ0E,gBAAgB,CAACC,IAAjB,CAAsBf,UAAU,CAACpC,qBAAjC;EACD;;EAED,IAAI0B,UAAJ,EAAgB;IACduB,SAAS,CAACE,IAAV,CAAef,UAAU,CAACrB,YAA1B,EADc,CAGd;;IACA,MAAMqC,cAAc,GAAGjB,UAAU;MAC/BjD,eAAe,EAAEiD,UAAU,CAAC/C,MAAX,EAAmBiE,OADL;MAE/BC,WAAW,EAAEnB,UAAU,CAAC/C,MAAX,EAAmBiE;IAFD,GAG3BV,GAAG,GACH;MACEY,oBAAoB,EAAEhF,KAAK,CAACgB,MAAN,CAAaC,OADrC;MAEEgE,uBAAuB,EAAEjF,KAAK,CAACgB,MAAN,CAAaC;IAFxC,CADG,GAKH;MACEF,YAAY,EAAEf,KAAK,CAACgB,MAAN,CAAaC;IAD7B,CAR2B,CAAjC;;IAaA,IAAI4D,cAAJ,EAAoB;MAClBF,gBAAgB,CAACC,IAAjB,CAAsBC,cAAtB;IACD;EACF;;EAED,oBACE,oBAAC,SAAD;IACE,OAAO,EAAE,CAACzB,UAAD,GAAcC,OAAd,GAAwBvB,SADnC;IAEE,KAAK,EAAE2B,KAFT;IAGE,WAAW,EAAC,iBAHd;IAIE,eAAe,EAAE;MAACC;IAAD;EAJnB,gBAME,oBAAC,IAAD;IACE,KAAK,EAAE,CAACG,UAAU,CAAC1D,SAAZ,EAAuB0D,UAAU,CAACjD,SAAlC,CADT;IAEE,MAAM,EAAE4C,YAAY,IAAK,GAAEA,YAAa,GAAEQ,cAAe;EAF3D,GAIGI,GAAG,gBACF,oBAAC,IAAD;IAAM,KAAK,EAAEP,UAAU,CAACjB;EAAxB,gBACE,oBAAC,eAAD;IACE,MAAM,EAAEY,YAAY,IAAK,GAAEA,YAAa,GAAEiB,WAAY,EADxD;IAEE,MAAM,EAAEF,MAFV;IAGE,KAAK,EAAEV,UAAU,CAACb;EAHpB,EADF,CADE,GAQA,IAZN,EAcGE,QAAQ,gBACP,oBAAC,IAAD;IAAM,KAAK,EAAEyB;EAAb,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAED;EAAb,GAAyBxB,QAAzB,CADF,CADO,GAIL,IAlBN,CANF,CADF;AA6BD,CA/FD;;AAiGA,eAAeD,MAAf"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","View","StyleSheet","Html","ImageBackground","getCleanUri","Touchable","useTemplateContext","createStyleSheet","theme","squeezed","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontSize","medium","fontWeight","bold","color","black","textAlign","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","brandTheme","styleSheet","setStylesheet","_stylesheet","selectedSuffix","mediaType","type","toLowerCase","url","src","length","source","uri","mediaSuffix","textStyle","textWrapperStyle","push","selectionStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius"],"sources":["../../../src/atom/choice/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle, TextStyle} from 'react-native';\n\nimport Html from '../html/index.native';\nimport ImageBackground from '../image-background/index.native';\nimport type {Media, QuestionType} from '../../molecule/questions/types';\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: ViewStyle;\n container: ViewStyle;\n text: TextStyle;\n textSelected: TextStyle;\n textContainer: ViewStyle;\n squeezedTextContainer: ViewStyle;\n unselectedImageContainer: ViewStyle;\n imageContainer: ViewStyle;\n image: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme, squeezed: boolean): 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 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 fontSize: squeezed ? theme.fontSize.medium : theme.fontSize.regular,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black,\n textAlign: 'center'\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, squeezed);\n setStylesheet(_stylesheet);\n }, [theme, squeezed]);\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 textStyle: TextStyle[] = [styleSheet.text];\n const textWrapperStyle: ViewStyle[] = [styleSheet.textContainer];\n\n if (squeezed) {\n textWrapperStyle.push(styleSheet.squeezedTextContainer);\n }\n\n if (isSelected) {\n textStyle.push(styleSheet.textSelected);\n\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\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 if (selectionStyle) {\n textWrapperStyle.push(selectionStyle);\n }\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\n {children ? (\n <View style={textWrapperStyle}>\n <Html style={textStyle}>{children}</Html>\n </View>\n ) : null}\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import { ViewStyle, ImageStyle, TextStyle } from 'react-native';
3
3
  export declare type Props = {
4
4
  children: string;
5
- fontSize: TextStyle['fontSize'];
5
+ fontSize?: TextStyle['fontSize'];
6
6
  numberOfLines?: number;
7
7
  onLinkPress?: (url: string) => void;
8
8
  containerStyle?: ViewStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/html/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAO,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAOpE,oBAAY,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqBF,QAAA,MAAM,IAAI,UAAW,KAAK,gBAyGzB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/html/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAO,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAqBpE,oBAAY,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqBF,QAAA,MAAM,IAAI,UAAW,KAAK,gBAsIzB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,14 +1,19 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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
- import React, { useCallback } from 'react';
3
+ import React, { useCallback, useState } from 'react';
4
4
  import { View } from 'react-native';
5
- import HtmlBase from 'react-native-render-html';
5
+ import RenderHTML from 'react-native-render-html';
6
6
  import { HTML_ANCHOR_TEXT_COLOR } from '../../variables/theme.native';
7
7
  import { useTemplateContext } from '../../template/app-review/template-context';
8
8
  import Text, { DEFAULT_STYLE as DEFAULT_TEXT_STYLE } from '../text/index.native';
9
9
 
10
+ const HtmlBase = props => {
11
+ return /*#__PURE__*/React.createElement(RenderHTML, props);
12
+ };
13
+
10
14
  const Html = props => {
11
15
  const templateContext = useTemplateContext();
16
+ const [isDisabledBaseFontStyleColor, disableBaseFontStyleColor] = useState(false);
12
17
  const {
13
18
  theme
14
19
  } = templateContext;
@@ -85,7 +90,20 @@ const Html = props => {
85
90
  const SpanRenderer = useCallback((htmlAttribs, _children) => /*#__PURE__*/React.createElement(Text, {
86
91
  numberOfLines: numberOfLines
87
92
  }, _children), [numberOfLines]);
93
+ const FontRenderer = useCallback((htmlAttribs, _children) => {
94
+ if (htmlAttribs.color) {
95
+ disableBaseFontStyleColor(true);
96
+ }
97
+
98
+ return /*#__PURE__*/React.createElement(Text, {
99
+ key: 1,
100
+ style: _extends({}, baseFontStyle, {
101
+ color: htmlAttribs.color?.replace(/ /g, '')
102
+ })
103
+ }, _children);
104
+ }, [baseFontStyle]);
88
105
  const renderers = {
106
+ font: FontRenderer,
89
107
  span: SpanRenderer
90
108
  };
91
109
  return /*#__PURE__*/React.createElement(View, {
@@ -100,9 +118,10 @@ const Html = props => {
100
118
  // eslint-disable-next-line no-nested-ternary
101
119
  html: isTextCentered ? `<p>${children}</p>` : numberOfLines ? `<span>${children}</span>` : `${children}`
102
120
  },
103
- tagsStyles: tagsStyles // @ts-expect-error TS2322
104
- ,
105
- baseFontStyle: baseFontStyle,
121
+ tagsStyles: tagsStyles,
122
+ baseFontStyle: _extends({}, baseFontStyle, {
123
+ color: isDisabledBaseFontStyleColor ? undefined : baseFontStyle.color
124
+ }),
106
125
  renderers: renderers // this is exceptionally for the onboarding course
107
126
  // is the only course that has a gif in the context but the img tag
108
127
  // comes with width & height attr and these makes this lib do not render the gif
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useCallback","View","HtmlBase","HTML_ANCHOR_TEXT_COLOR","useTemplateContext","Text","DEFAULT_STYLE","DEFAULT_TEXT_STYLE","Html","props","templateContext","theme","children","fontSize","containerStyle","imageStyle","style","testID","anchorTextColor","isTextCentered","numberOfLines","styles","p","marginVertical","textAlign","u","textDecorationLine","i","fontStyle","b","fontWeight","bold","s","tagsStyles","h1","h2","h3","h4","h5","h6","a","color","img","baseFontStyle","colors","black","Array","isArray","styleObject","reduce","result","child","SpanRenderer","htmlAttribs","_children","renderers","span","html"],"sources":["../../../src/atom/html/index.native.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\nimport {View, ViewStyle, ImageStyle, TextStyle} from 'react-native';\nimport HtmlBase, {CustomRendererProps, MixedStyleRecord, TBlock} from 'react-native-render-html';\n\nimport {HTML_ANCHOR_TEXT_COLOR} from '../../variables/theme.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport Text, {DEFAULT_STYLE as DEFAULT_TEXT_STYLE} from '../text/index.native';\n\nexport type Props = {\n children: string;\n fontSize: TextStyle['fontSize'];\n numberOfLines?: number;\n onLinkPress?: (url: string) => void;\n containerStyle?: ViewStyle;\n anchorTextColor?: string;\n imageStyle?: ImageStyle;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n isTextCentered?: boolean;\n};\n\ntype Styles = {\n p: {\n marginVertical: ViewStyle['marginVertical'];\n textAlign: TextStyle['textAlign'];\n };\n u: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n i: {\n fontStyle: TextStyle['fontStyle'];\n };\n b: {\n fontWeight: TextStyle['fontWeight'];\n };\n s: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n};\n\nconst Html = (props: Props) => {\n const templateContext = useTemplateContext();\n const {theme} = templateContext;\n const {\n children,\n fontSize,\n containerStyle,\n imageStyle,\n style,\n testID,\n anchorTextColor = HTML_ANCHOR_TEXT_COLOR,\n isTextCentered,\n numberOfLines\n } = props;\n\n // Don't use StyleSheet there, it's not a react style\n const styles: Styles = {\n p: {\n marginVertical: 0,\n textAlign: 'center'\n },\n u: {\n textDecorationLine: 'underline'\n },\n i: {\n fontStyle: 'italic'\n },\n b: {\n fontWeight: theme.fontWeight.bold\n },\n s: {\n textDecorationLine: 'line-through'\n }\n };\n\n const tagsStyles: MixedStyleRecord = {\n ...styles,\n h1: {fontSize},\n h2: {fontSize},\n h3: {fontSize},\n h4: {fontSize},\n h5: {fontSize},\n h6: {fontSize},\n a: {color: anchorTextColor},\n img: imageStyle || {}\n };\n\n let baseFontStyle = {...DEFAULT_TEXT_STYLE, fontSize, color: theme.colors.black};\n if (style) {\n if (Array.isArray(style)) {\n const styleObject = style.reduce((result, child) => ({\n ...result,\n ...child\n }));\n baseFontStyle = {\n ...baseFontStyle,\n ...styleObject\n };\n } else {\n baseFontStyle = {\n ...baseFontStyle,\n ...style\n };\n }\n }\n\n const SpanRenderer = useCallback(\n (htmlAttribs: CustomRendererProps<TBlock>, _children: string) => (\n <Text numberOfLines={numberOfLines}>{_children}</Text>\n ),\n [numberOfLines]\n );\n\n const renderers = {\n span: SpanRenderer\n };\n\n return (\n <View testID={testID} style={containerStyle}>\n <HtmlBase\n // to text-align center on android\n // we have to encapsulate between <p> tag\n // and use custom style define on <p>\n // definition in component style doesn't work\n source={{\n // eslint-disable-next-line no-nested-ternary\n html: isTextCentered\n ? `<p>${children}</p>`\n : numberOfLines\n ? `<span>${children}</span>`\n : `${children}`\n }}\n tagsStyles={tagsStyles}\n // @ts-expect-error TS2322\n baseFontStyle={baseFontStyle}\n renderers={renderers}\n // this is exceptionally for the onboarding course\n // is the only course that has a gif in the context but the img tag\n // comes with width & height attr and these makes this lib do not render the gif\n // so to avoid it, we decided to ignore these attr\n ignoredStyles={['width', 'height']}\n testID=\"html-base\"\n />\n </View>\n );\n};\n\nexport default Html;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useCallback","useState","View","RenderHTML","HTML_ANCHOR_TEXT_COLOR","useTemplateContext","Text","DEFAULT_STYLE","DEFAULT_TEXT_STYLE","HtmlBase","props","Html","templateContext","isDisabledBaseFontStyleColor","disableBaseFontStyleColor","theme","children","fontSize","containerStyle","imageStyle","style","testID","anchorTextColor","isTextCentered","numberOfLines","styles","p","marginVertical","textAlign","u","textDecorationLine","i","fontStyle","b","fontWeight","bold","s","tagsStyles","h1","h2","h3","h4","h5","h6","a","color","img","baseFontStyle","colors","black","Array","isArray","styleObject","reduce","result","child","SpanRenderer","htmlAttribs","_children","FontRenderer","replace","renderers","font","span","html","undefined"],"sources":["../../../src/atom/html/index.native.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {View, ViewStyle, ImageStyle, TextStyle} from 'react-native';\nimport RenderHTML, {\n CustomRendererProps,\n MixedStyleRecord,\n RenderHTMLProps,\n TBlock\n} from 'react-native-render-html';\n\nimport {HTML_ANCHOR_TEXT_COLOR} from '../../variables/theme.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport Text, {DEFAULT_STYLE as DEFAULT_TEXT_STYLE} from '../text/index.native';\n\ninterface CustomRenderHTMLProps extends RenderHTMLProps {\n baseFontStyle?: TextStyle;\n testID?: string;\n}\n\nconst HtmlBase = (props: CustomRenderHTMLProps) => {\n return <RenderHTML {...props} />;\n};\n\nexport type Props = {\n children: string;\n fontSize?: TextStyle['fontSize'];\n numberOfLines?: number;\n onLinkPress?: (url: string) => void;\n containerStyle?: ViewStyle;\n anchorTextColor?: string;\n imageStyle?: ImageStyle;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n isTextCentered?: boolean;\n};\n\ntype Styles = {\n p: {\n marginVertical: ViewStyle['marginVertical'];\n textAlign: TextStyle['textAlign'];\n };\n u: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n i: {\n fontStyle: TextStyle['fontStyle'];\n };\n b: {\n fontWeight: TextStyle['fontWeight'];\n };\n s: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n};\n\nconst Html = (props: Props) => {\n const templateContext = useTemplateContext();\n const [isDisabledBaseFontStyleColor, disableBaseFontStyleColor] = useState<boolean>(false);\n const {theme} = templateContext;\n const {\n children,\n fontSize,\n containerStyle,\n imageStyle,\n style,\n testID,\n anchorTextColor = HTML_ANCHOR_TEXT_COLOR,\n isTextCentered,\n numberOfLines\n } = props;\n\n // Don't use StyleSheet there, it's not a react style\n const styles: Styles = {\n p: {\n marginVertical: 0,\n textAlign: 'center'\n },\n u: {\n textDecorationLine: 'underline'\n },\n i: {\n fontStyle: 'italic'\n },\n b: {\n fontWeight: theme.fontWeight.bold\n },\n s: {\n textDecorationLine: 'line-through'\n }\n };\n\n const tagsStyles: MixedStyleRecord = {\n ...styles,\n h1: {fontSize},\n h2: {fontSize},\n h3: {fontSize},\n h4: {fontSize},\n h5: {fontSize},\n h6: {fontSize},\n a: {color: anchorTextColor},\n img: imageStyle || {}\n };\n\n let baseFontStyle: TextStyle = {...DEFAULT_TEXT_STYLE, fontSize, color: theme.colors.black};\n if (style) {\n if (Array.isArray(style)) {\n const styleObject = style.reduce((result, child) => ({\n ...result,\n ...child\n }));\n baseFontStyle = {\n ...baseFontStyle,\n ...styleObject\n };\n } else {\n baseFontStyle = {\n ...baseFontStyle,\n ...style\n };\n }\n }\n\n const SpanRenderer = useCallback(\n (htmlAttribs: CustomRendererProps<TBlock>, _children: string) => (\n <Text numberOfLines={numberOfLines}>{_children}</Text>\n ),\n [numberOfLines]\n );\n\n interface HtmlAttrib extends CustomRendererProps<TBlock> {\n color?: string;\n }\n\n const FontRenderer = useCallback(\n (htmlAttribs: HtmlAttrib, _children: string) => {\n if (htmlAttribs.color) {\n disableBaseFontStyleColor(true);\n }\n\n return (\n <Text\n key={1}\n style={{\n ...baseFontStyle,\n color: htmlAttribs.color?.replace(/ /g, '')\n }}\n >\n {_children}\n </Text>\n );\n },\n [baseFontStyle]\n );\n\n const renderers = {\n font: FontRenderer,\n span: SpanRenderer\n };\n\n return (\n <View testID={testID} style={containerStyle}>\n <HtmlBase\n // to text-align center on android\n // we have to encapsulate between <p> tag\n // and use custom style define on <p>\n // definition in component style doesn't work\n source={{\n // eslint-disable-next-line no-nested-ternary\n html: isTextCentered\n ? `<p>${children}</p>`\n : numberOfLines\n ? `<span>${children}</span>`\n : `${children}`\n }}\n tagsStyles={tagsStyles}\n baseFontStyle={{\n ...baseFontStyle,\n color: isDisabledBaseFontStyleColor ? undefined : baseFontStyle.color\n }}\n renderers={renderers}\n // this is exceptionally for the onboarding course\n // is the only course that has a gif in the context but the img tag\n // comes with width & height attr and these makes this lib do not render the gif\n // so to avoid it, we decided to ignore these attr\n ignoredStyles={['width', 'height']}\n testID=\"html-base\"\n />\n </View>\n );\n};\n\nexport default Html;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyFE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAmBC;IAjBC;;;;MAIC;IA6CH,6BAIC;IAED,yBAGC;IAxBD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA4BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAQC;IAED,0BAQC;IArFD,2EASC;IAGC,kBAAsB;IA2ExB,6BAmZC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAsBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyFE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAmBC;IAjBC;;;;MAIC;IA6CH,6BAIC;IAED,yBAMC;IA3BD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA+BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAKC;IAED,0BAKC;IAlFD,2EASC;IAGC,kBAAsB;IAwExB,6BAwYC;CACF"}
@@ -7,7 +7,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
7
7
  import React from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import classnames from 'classnames';
10
- import { NovaCompositionNavigationArrowDown as ArrowDown, NovaCompositionNavigationBurger as BurgerIcon, NovaCompositionNavigationClose as CloseIcon, NovaCompositionCoorpacademyStar as StarIcon, NovaCompositionCoorpacademyCharts as ChartsIcon, NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon, NovaCompositionCoorpacademyCog as CogIcon, NovaSolidTimeAlarm as AlarmIcon } from '@coorpacademy/nova-icons';
10
+ import { NovaCompositionNavigationArrowDown as ArrowDown, NovaCompositionCoorpacademyStar as StarIcon, NovaCompositionCoorpacademyCharts as ChartsIcon, NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon, NovaCompositionCoorpacademyCog as CogIcon, NovaSolidTimeAlarm as AlarmIcon } from '@coorpacademy/nova-icons';
11
11
  import Provider from '../../atom/provider';
12
12
  import Cta from '../../atom/cta';
13
13
  import Select from '../../atom/select';
@@ -89,6 +89,9 @@ class MoocHeader extends React.Component {
89
89
  isMenuOpen
90
90
  } = this.state;
91
91
  isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();
92
+ this.setState(prevState => ({
93
+ isMenuOpen: !prevState.isMenuOpen
94
+ }));
92
95
  }
93
96
 
94
97
  handleSubmitSearch() {
@@ -131,10 +134,6 @@ class MoocHeader extends React.Component {
131
134
  if (onMenuOpen) {
132
135
  onMenuOpen();
133
136
  }
134
-
135
- this.setState(() => ({
136
- isMenuOpen: true
137
- }));
138
137
  }
139
138
 
140
139
  handleOnMenuClose() {
@@ -145,10 +144,6 @@ class MoocHeader extends React.Component {
145
144
  if (onMenuClose) {
146
145
  onMenuClose();
147
146
  }
148
-
149
- this.setState(() => ({
150
- isMenuOpen: false
151
- }));
152
147
  }
153
148
 
154
149
  render() {
@@ -485,27 +480,18 @@ class MoocHeader extends React.Component {
485
480
  }, /*#__PURE__*/React.createElement("div", {
486
481
  className: style.logoWrapper
487
482
  }, /*#__PURE__*/React.createElement("div", {
488
- className: style.navMobile,
489
- "data-name": "nav-mobile",
490
- "aria-label": logoButtonAriaLabel
491
- }, /*#__PURE__*/React.createElement(BurgerIcon, {
492
- role: "button",
493
- "data-name": "nav-mobile-open",
494
- color: mediumColor,
495
- className: isMenuOpen ? style.burgerHidden : style.burger,
496
- onClick: this.handleOnMenuOpen
497
- }), /*#__PURE__*/React.createElement(CloseIcon, {
498
- "data-name": "nav-mobile-close",
499
- color: mediumColor,
500
- className: isMenuOpen ? style.close : style.closeHidden,
501
- onClick: this.handleOnMenuClose
502
- }), /*#__PURE__*/React.createElement(Link, {
483
+ className: style.logoMobile,
503
484
  "data-name": "logo-mobile",
504
- href: logo.href,
505
- "aria-label": logoAriaLabel
485
+ onClick: this.handleMenuToggle,
486
+ "aria-label": logoButtonAriaLabel,
487
+ role: "button"
506
488
  }, /*#__PURE__*/React.createElement(Picture, {
507
- src: logoMobileUrl
508
- }))), /*#__PURE__*/React.createElement(Link, {
489
+ src: logoMobileUrl,
490
+ "aria-label": logoAriaLabel
491
+ }), notificationsView, /*#__PURE__*/React.createElement(ArrowDown, {
492
+ color: mediumColor,
493
+ className: isMenuOpen ? style.caretUp : style.caret
494
+ })), /*#__PURE__*/React.createElement(Link, {
509
495
  className: style.logo,
510
496
  "data-name": "logo",
511
497
  href: logo.href,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionNavigationBurger","BurgerIcon","NovaCompositionNavigationClose","CloseIcon","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyCharts","ChartsIcon","NovaSolidVoteRewardsRewardsTrophy5","TrophyIcon","NovaCompositionCoorpacademyCog","CogIcon","NovaSolidTimeAlarm","AlarmIcon","Provider","Cta","Select","Picture","InputSwitch","Link","Search","SearchForm","style","MoocHeader","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","translate","skin","context","logoAriaLabel","logoButtonAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","pageBadge","counter","href","itemBadge","name","itemName","activePage","title","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","menuWrapper","hiddenMenuWrapper","contextTypes","childContextTypes","propTypes","shape","src","string","srcMobile","func","arrayOf","oneOf","bool","number"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen} = this.state;\n const {translate, skin} = this.context;\n const {'aria-label': logoAriaLabel, 'button-aria-label': logoButtonAriaLabel} = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={item.title}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={item.title}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div\n className={style.currentOption}\n aria-haspopup=\"true\"\n data-name=\"item-more\"\n aria-label={moreLabel}\n >\n {moreLabel}\n <ArrowDown color={mediumColor} className={style.caret} />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} color={white} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} color={white} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} color={white} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <Select {...selectProps} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <InputSwitch {...switchProps} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n color={darkColor}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div className={style.logoWrapper}>\n <div\n className={style.navMobile}\n data-name=\"nav-mobile\"\n aria-label={logoButtonAriaLabel}\n >\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n color={mediumColor}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n color={mediumColor}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n />\n <Link data-name=\"logo-mobile\" href={logo.href} aria-label={logoAriaLabel}>\n <Picture src={logoMobileUrl} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n aria-label={logoAriaLabel}\n >\n <Picture src={logoUrl} />\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyCharts","ChartsIcon","NovaSolidVoteRewardsRewardsTrophy5","TrophyIcon","NovaCompositionCoorpacademyCog","CogIcon","NovaSolidTimeAlarm","AlarmIcon","Provider","Cta","Select","Picture","InputSwitch","Link","Search","SearchForm","style","MoocHeader","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","translate","skin","context","logoAriaLabel","logoButtonAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","pageBadge","counter","href","itemBadge","name","itemName","activePage","title","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","logoMobile","caretUp","menuWrapper","hiddenMenuWrapper","contextTypes","childContextTypes","propTypes","shape","src","string","srcMobile","func","arrayOf","oneOf","bool","number"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n this.setState(prevState => ({\n isMenuOpen: !prevState.isMenuOpen\n }));\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen} = this.state;\n const {translate, skin} = this.context;\n const {'aria-label': logoAriaLabel, 'button-aria-label': logoButtonAriaLabel} = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={item.title}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={item.title}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div\n className={style.currentOption}\n aria-haspopup=\"true\"\n data-name=\"item-more\"\n aria-label={moreLabel}\n >\n {moreLabel}\n <ArrowDown color={mediumColor} className={style.caret} />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} color={white} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} color={white} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} color={white} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <Select {...selectProps} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <InputSwitch {...switchProps} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n color={darkColor}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div className={style.logoWrapper}>\n <div\n className={style.logoMobile}\n data-name=\"logo-mobile\"\n onClick={this.handleMenuToggle}\n aria-label={logoButtonAriaLabel}\n role=\"button\"\n >\n <Picture src={logoMobileUrl} aria-label={logoAriaLabel} />\n {notificationsView}\n <ArrowDown color={mediumColor} className={isMenuOpen ? style.caretUp : style.caret} />\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n aria-label={logoAriaLabel}\n >\n <Picture src={logoUrl} />\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
@@ -68,7 +68,7 @@
68
68
  height: 100%;
69
69
  }
70
70
 
71
- .navMobile {
71
+ .logoMobile {
72
72
  display: none;
73
73
  }
74
74
 
@@ -108,28 +108,9 @@
108
108
  transition: transform 0.3s;
109
109
  }
110
110
 
111
- .burger {
112
- margin: 0 20px 0 0;
113
- color: medium;
114
- width: 25px;
115
- height: 25px;
116
- }
117
-
118
- .burgerHidden {
111
+ .caretUp {
119
112
  composes: caret;
120
- display: none;
121
- }
122
-
123
- .close {
124
- margin: 0 20px 0 0;
125
- color: medium;
126
- width: 25px;
127
- height: 25px;
128
- }
129
-
130
- .closeHidden {
131
- composes: close;
132
- display: none;
113
+ transform: rotate(180deg);
133
114
  }
134
115
 
135
116
  .optionsGroup {
@@ -517,7 +498,7 @@
517
498
  height: 100%;
518
499
  }
519
500
 
520
- .navMobile {
501
+ .logoMobile {
521
502
  display: none;
522
503
  }
523
504
 
@@ -551,14 +532,14 @@
551
532
  .logoWrapper {
552
533
  background-color: white;
553
534
  z-index: 2;
554
- margin: 0 8px 0 0;
535
+ margin: 0 8px;
555
536
  }
556
537
 
557
538
  .logo {
558
539
  display: none;
559
540
  }
560
541
 
561
- .navMobile {
542
+ .logoMobile {
562
543
  display: flex;
563
544
  align-items: center;
564
545
  cursor: pointer;
@@ -570,7 +551,7 @@
570
551
  min-height: 30px;
571
552
  }
572
553
 
573
- .navMobile img {
554
+ .logoMobile img {
574
555
  height: auto;
575
556
  max-height: 50px;
576
557
  width: auto;
@@ -579,6 +560,11 @@
579
560
  align-self: center;
580
561
  }
581
562
 
563
+ .logoMobile .notifications {
564
+ top: 5px;
565
+ right: 10px;
566
+ }
567
+
582
568
  .hiddenMenuWrapper {
583
569
  display: none;
584
570
  top: 0px;
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/choice/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAmB,SAAS,EAAkB,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAQxE,oBAAY,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAoEF,QAAA,MAAM,MAAM,8GAUT,KAAK,uBAqFP,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/choice/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAmB,SAAS,EAAY,MAAM,cAAc,CAAC;AAIpE,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAMxE,oBAAY,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAoEF,QAAA,MAAM,MAAM,8GAUT,KAAK,uBAqFP,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -7,11 +7,13 @@ var _react = _interopRequireWildcard(require("react"));
7
7
 
8
8
  var _reactNative = require("react-native");
9
9
 
10
- var _index = _interopRequireDefault(require("../image-background/index.native"));
10
+ var _index = _interopRequireDefault(require("../html/index.native"));
11
+
12
+ var _index2 = _interopRequireDefault(require("../image-background/index.native"));
11
13
 
12
14
  var _getCleanUri = _interopRequireDefault(require("../../util/get-clean-uri"));
13
15
 
14
- var _index2 = _interopRequireDefault(require("../../hoc/touchable/index.native"));
16
+ var _index3 = _interopRequireDefault(require("../../hoc/touchable/index.native"));
15
17
 
16
18
  var _templateContext = require("../../template/app-review/template-context");
17
19
 
@@ -138,7 +140,7 @@ const Choice = ({
138
140
  }
139
141
  }
140
142
 
141
- return /*#__PURE__*/_react.default.createElement(_index2.default, {
143
+ return /*#__PURE__*/_react.default.createElement(_index3.default, {
142
144
  onPress: !isDisabled ? onPress : undefined,
143
145
  style: style,
144
146
  analyticsID: "question-choice",
@@ -150,13 +152,13 @@ const Choice = ({
150
152
  testID: prefixTestID && `${prefixTestID}${selectedSuffix}`
151
153
  }, url ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
152
154
  style: styleSheet.imageContainer
153
- }, /*#__PURE__*/_react.default.createElement(_index.default, {
155
+ }, /*#__PURE__*/_react.default.createElement(_index2.default, {
154
156
  testID: prefixTestID && `${prefixTestID}${mediaSuffix}`,
155
157
  source: source,
156
158
  style: styleSheet.image
157
159
  })) : null, children ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
158
160
  style: textWrapperStyle
159
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
161
+ }, /*#__PURE__*/_react.default.createElement(_index.default, {
160
162
  style: textStyle
161
163
  }, children)) : null));
162
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["createStyleSheet","theme","squeezed","StyleSheet","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontSize","medium","fontWeight","bold","color","black","textAlign","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","useTemplateContext","brandTheme","styleSheet","setStylesheet","useState","useEffect","_stylesheet","selectedSuffix","mediaType","type","toLowerCase","url","src","length","getCleanUri","source","uri","mediaSuffix","textStyle","textWrapperStyle","push","selectionStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius"],"sources":["../../../src/atom/choice/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle, Text, TextStyle} from 'react-native';\nimport type {Media, QuestionType} from '../../molecule/questions/types';\n\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: ViewStyle;\n container: ViewStyle;\n text: TextStyle;\n textSelected: TextStyle;\n textContainer: ViewStyle;\n squeezedTextContainer: ViewStyle;\n unselectedImageContainer: ViewStyle;\n imageContainer: ViewStyle;\n image: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme, squeezed: boolean): 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 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 fontSize: squeezed ? theme.fontSize.medium : theme.fontSize.regular,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black,\n textAlign: 'center'\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, squeezed);\n setStylesheet(_stylesheet);\n }, [theme, squeezed]);\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 textStyle: TextStyle[] = [styleSheet.text];\n const textWrapperStyle: ViewStyle[] = [styleSheet.textContainer];\n\n if (squeezed) {\n textWrapperStyle.push(styleSheet.squeezedTextContainer);\n }\n\n if (isSelected) {\n textStyle.push(styleSheet.textSelected);\n\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\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 if (selectionStyle) {\n textWrapperStyle.push(selectionStyle);\n }\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\n {children ? (\n <View style={textWrapperStyle}>\n <Text style={textStyle}>{children}</Text>\n </View>\n ) : null}\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["createStyleSheet","theme","squeezed","StyleSheet","create","boxShadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","container","colors","white","borderRadius","radius","regular","flexDirection","alignItems","textContainer","paddingHorizontal","paddingVertical","justifyContent","flex","squeezedTextContainer","padding","spacing","small","paddingLeft","undefined","paddingRight","text","fontSize","medium","fontWeight","bold","color","black","textAlign","textSelected","unselectedImageContainer","borderRightColor","border","imageContainer","overflow","borderTopLeftRadius","borderBottomLeftRadius","image","Choice","children","isSelected","isDisabled","onPress","media","testID","prefixTestID","style","questionType","templateContext","useTemplateContext","brandTheme","styleSheet","setStylesheet","useState","useEffect","_stylesheet","selectedSuffix","mediaType","type","toLowerCase","url","src","length","getCleanUri","source","uri","mediaSuffix","textStyle","textWrapperStyle","push","selectionStyle","primary","borderColor","borderTopRightRadius","borderBottomRightRadius"],"sources":["../../../src/atom/choice/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {View, StyleSheet, ViewStyle, TextStyle} from 'react-native';\n\nimport Html from '../html/index.native';\nimport ImageBackground from '../image-background/index.native';\nimport type {Media, QuestionType} from '../../molecule/questions/types';\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: ViewStyle;\n container: ViewStyle;\n text: TextStyle;\n textSelected: TextStyle;\n textContainer: ViewStyle;\n squeezedTextContainer: ViewStyle;\n unselectedImageContainer: ViewStyle;\n imageContainer: ViewStyle;\n image: ViewStyle;\n};\n\nconst createStyleSheet = (theme: Theme, squeezed: boolean): 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 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 fontSize: squeezed ? theme.fontSize.medium : theme.fontSize.regular,\n fontWeight: theme.fontWeight.bold,\n color: theme.colors.black,\n textAlign: 'center'\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, squeezed);\n setStylesheet(_stylesheet);\n }, [theme, squeezed]);\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 textStyle: TextStyle[] = [styleSheet.text];\n const textWrapperStyle: ViewStyle[] = [styleSheet.textContainer];\n\n if (squeezed) {\n textWrapperStyle.push(styleSheet.squeezedTextContainer);\n }\n\n if (isSelected) {\n textStyle.push(styleSheet.textSelected);\n\n // eslint-disable-next-line @coorpacademy/coorpacademy/no-overwriting-spread\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 if (selectionStyle) {\n textWrapperStyle.push(selectionStyle);\n }\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\n {children ? (\n <View style={textWrapperStyle}>\n <Html style={textStyle}>{children}</Html>\n </View>\n ) : null}\n </View>\n </Touchable>\n );\n};\n\nexport default Choice;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import { ViewStyle, ImageStyle, TextStyle } from 'react-native';
3
3
  export declare type Props = {
4
4
  children: string;
5
- fontSize: TextStyle['fontSize'];
5
+ fontSize?: TextStyle['fontSize'];
6
6
  numberOfLines?: number;
7
7
  onLinkPress?: (url: string) => void;
8
8
  containerStyle?: ViewStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/html/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAO,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAOpE,oBAAY,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqBF,QAAA,MAAM,IAAI,UAAW,KAAK,gBAyGzB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/html/index.native.tsx"],"names":[],"mappings":";AACA,OAAO,EAAO,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAqBpE,oBAAY,KAAK,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqBF,QAAA,MAAM,IAAI,UAAW,KAAK,gBAsIzB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -23,8 +23,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
23
23
 
24
24
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
25
25
 
26
+ const HtmlBase = props => {
27
+ return /*#__PURE__*/_react.default.createElement(_reactNativeRenderHtml.default, props);
28
+ };
29
+
26
30
  const Html = props => {
27
31
  const templateContext = (0, _templateContext.useTemplateContext)();
32
+ const [isDisabledBaseFontStyleColor, disableBaseFontStyleColor] = (0, _react.useState)(false);
28
33
  const {
29
34
  theme
30
35
  } = templateContext;
@@ -101,13 +106,26 @@ const Html = props => {
101
106
  const SpanRenderer = (0, _react.useCallback)((htmlAttribs, _children) => /*#__PURE__*/_react.default.createElement(_index.default, {
102
107
  numberOfLines: numberOfLines
103
108
  }, _children), [numberOfLines]);
109
+ const FontRenderer = (0, _react.useCallback)((htmlAttribs, _children) => {
110
+ if (htmlAttribs.color) {
111
+ disableBaseFontStyleColor(true);
112
+ }
113
+
114
+ return /*#__PURE__*/_react.default.createElement(_index.default, {
115
+ key: 1,
116
+ style: _extends({}, baseFontStyle, {
117
+ color: htmlAttribs.color?.replace(/ /g, '')
118
+ })
119
+ }, _children);
120
+ }, [baseFontStyle]);
104
121
  const renderers = {
122
+ font: FontRenderer,
105
123
  span: SpanRenderer
106
124
  };
107
125
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
108
126
  testID: testID,
109
127
  style: containerStyle
110
- }, /*#__PURE__*/_react.default.createElement(_reactNativeRenderHtml.default // to text-align center on android
128
+ }, /*#__PURE__*/_react.default.createElement(HtmlBase // to text-align center on android
111
129
  // we have to encapsulate between <p> tag
112
130
  // and use custom style define on <p>
113
131
  // definition in component style doesn't work
@@ -116,9 +134,10 @@ const Html = props => {
116
134
  // eslint-disable-next-line no-nested-ternary
117
135
  html: isTextCentered ? `<p>${children}</p>` : numberOfLines ? `<span>${children}</span>` : `${children}`
118
136
  },
119
- tagsStyles: tagsStyles // @ts-expect-error TS2322
120
- ,
121
- baseFontStyle: baseFontStyle,
137
+ tagsStyles: tagsStyles,
138
+ baseFontStyle: _extends({}, baseFontStyle, {
139
+ color: isDisabledBaseFontStyleColor ? undefined : baseFontStyle.color
140
+ }),
122
141
  renderers: renderers // this is exceptionally for the onboarding course
123
142
  // is the only course that has a gif in the context but the img tag
124
143
  // comes with width & height attr and these makes this lib do not render the gif
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["Html","props","templateContext","useTemplateContext","theme","children","fontSize","containerStyle","imageStyle","style","testID","anchorTextColor","HTML_ANCHOR_TEXT_COLOR","isTextCentered","numberOfLines","styles","p","marginVertical","textAlign","u","textDecorationLine","i","fontStyle","b","fontWeight","bold","s","tagsStyles","h1","h2","h3","h4","h5","h6","a","color","img","baseFontStyle","DEFAULT_TEXT_STYLE","colors","black","Array","isArray","styleObject","reduce","result","child","SpanRenderer","useCallback","htmlAttribs","_children","renderers","span","html"],"sources":["../../../src/atom/html/index.native.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\nimport {View, ViewStyle, ImageStyle, TextStyle} from 'react-native';\nimport HtmlBase, {CustomRendererProps, MixedStyleRecord, TBlock} from 'react-native-render-html';\n\nimport {HTML_ANCHOR_TEXT_COLOR} from '../../variables/theme.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport Text, {DEFAULT_STYLE as DEFAULT_TEXT_STYLE} from '../text/index.native';\n\nexport type Props = {\n children: string;\n fontSize: TextStyle['fontSize'];\n numberOfLines?: number;\n onLinkPress?: (url: string) => void;\n containerStyle?: ViewStyle;\n anchorTextColor?: string;\n imageStyle?: ImageStyle;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n isTextCentered?: boolean;\n};\n\ntype Styles = {\n p: {\n marginVertical: ViewStyle['marginVertical'];\n textAlign: TextStyle['textAlign'];\n };\n u: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n i: {\n fontStyle: TextStyle['fontStyle'];\n };\n b: {\n fontWeight: TextStyle['fontWeight'];\n };\n s: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n};\n\nconst Html = (props: Props) => {\n const templateContext = useTemplateContext();\n const {theme} = templateContext;\n const {\n children,\n fontSize,\n containerStyle,\n imageStyle,\n style,\n testID,\n anchorTextColor = HTML_ANCHOR_TEXT_COLOR,\n isTextCentered,\n numberOfLines\n } = props;\n\n // Don't use StyleSheet there, it's not a react style\n const styles: Styles = {\n p: {\n marginVertical: 0,\n textAlign: 'center'\n },\n u: {\n textDecorationLine: 'underline'\n },\n i: {\n fontStyle: 'italic'\n },\n b: {\n fontWeight: theme.fontWeight.bold\n },\n s: {\n textDecorationLine: 'line-through'\n }\n };\n\n const tagsStyles: MixedStyleRecord = {\n ...styles,\n h1: {fontSize},\n h2: {fontSize},\n h3: {fontSize},\n h4: {fontSize},\n h5: {fontSize},\n h6: {fontSize},\n a: {color: anchorTextColor},\n img: imageStyle || {}\n };\n\n let baseFontStyle = {...DEFAULT_TEXT_STYLE, fontSize, color: theme.colors.black};\n if (style) {\n if (Array.isArray(style)) {\n const styleObject = style.reduce((result, child) => ({\n ...result,\n ...child\n }));\n baseFontStyle = {\n ...baseFontStyle,\n ...styleObject\n };\n } else {\n baseFontStyle = {\n ...baseFontStyle,\n ...style\n };\n }\n }\n\n const SpanRenderer = useCallback(\n (htmlAttribs: CustomRendererProps<TBlock>, _children: string) => (\n <Text numberOfLines={numberOfLines}>{_children}</Text>\n ),\n [numberOfLines]\n );\n\n const renderers = {\n span: SpanRenderer\n };\n\n return (\n <View testID={testID} style={containerStyle}>\n <HtmlBase\n // to text-align center on android\n // we have to encapsulate between <p> tag\n // and use custom style define on <p>\n // definition in component style doesn't work\n source={{\n // eslint-disable-next-line no-nested-ternary\n html: isTextCentered\n ? `<p>${children}</p>`\n : numberOfLines\n ? `<span>${children}</span>`\n : `${children}`\n }}\n tagsStyles={tagsStyles}\n // @ts-expect-error TS2322\n baseFontStyle={baseFontStyle}\n renderers={renderers}\n // this is exceptionally for the onboarding course\n // is the only course that has a gif in the context but the img tag\n // comes with width & height attr and these makes this lib do not render the gif\n // so to avoid it, we decided to ignore these attr\n ignoredStyles={['width', 'height']}\n testID=\"html-base\"\n />\n </View>\n );\n};\n\nexport default Html;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;AAkCA,MAAMA,IAAI,GAAIC,KAAD,IAAkB;EAC7B,MAAMC,eAAe,GAAG,IAAAC,mCAAA,GAAxB;EACA,MAAM;IAACC;EAAD,IAAUF,eAAhB;EACA,MAAM;IACJG,QADI;IAEJC,QAFI;IAGJC,cAHI;IAIJC,UAJI;IAKJC,KALI;IAMJC,MANI;IAOJC,eAAe,GAAGC,6BAPd;IAQJC,cARI;IASJC;EATI,IAUFb,KAVJ,CAH6B,CAe7B;;EACA,MAAMc,MAAc,GAAG;IACrBC,CAAC,EAAE;MACDC,cAAc,EAAE,CADf;MAEDC,SAAS,EAAE;IAFV,CADkB;IAKrBC,CAAC,EAAE;MACDC,kBAAkB,EAAE;IADnB,CALkB;IAQrBC,CAAC,EAAE;MACDC,SAAS,EAAE;IADV,CARkB;IAWrBC,CAAC,EAAE;MACDC,UAAU,EAAEpB,KAAK,CAACoB,UAAN,CAAiBC;IAD5B,CAXkB;IAcrBC,CAAC,EAAE;MACDN,kBAAkB,EAAE;IADnB;EAdkB,CAAvB;;EAmBA,MAAMO,UAA4B,gBAC7BZ,MAD6B;IAEhCa,EAAE,EAAE;MAACtB;IAAD,CAF4B;IAGhCuB,EAAE,EAAE;MAACvB;IAAD,CAH4B;IAIhCwB,EAAE,EAAE;MAACxB;IAAD,CAJ4B;IAKhCyB,EAAE,EAAE;MAACzB;IAAD,CAL4B;IAMhC0B,EAAE,EAAE;MAAC1B;IAAD,CAN4B;IAOhC2B,EAAE,EAAE;MAAC3B;IAAD,CAP4B;IAQhC4B,CAAC,EAAE;MAACC,KAAK,EAAExB;IAAR,CAR6B;IAShCyB,GAAG,EAAE5B,UAAU,IAAI;EATa,EAAlC;;EAYA,IAAI6B,aAAa,gBAAOC,oBAAP;IAA2BhC,QAA3B;IAAqC6B,KAAK,EAAE/B,KAAK,CAACmC,MAAN,CAAaC;EAAzD,EAAjB;;EACA,IAAI/B,KAAJ,EAAW;IACT,IAAIgC,KAAK,CAACC,OAAN,CAAcjC,KAAd,CAAJ,EAA0B;MACxB,MAAMkC,WAAW,GAAGlC,KAAK,CAACmC,MAAN,CAAa,CAACC,MAAD,EAASC,KAAT,kBAC5BD,MAD4B,EAE5BC,KAF4B,CAAb,CAApB;MAIAT,aAAa,gBACRA,aADQ,EAERM,WAFQ,CAAb;IAID,CATD,MASO;MACLN,aAAa,gBACRA,aADQ,EAER5B,KAFQ,CAAb;IAID;EACF;;EAED,MAAMsC,YAAY,GAAG,IAAAC,kBAAA,EACnB,CAACC,WAAD,EAA2CC,SAA3C,kBACE,6BAAC,cAAD;IAAM,aAAa,EAAEpC;EAArB,GAAqCoC,SAArC,CAFiB,EAInB,CAACpC,aAAD,CAJmB,CAArB;EAOA,MAAMqC,SAAS,GAAG;IAChBC,IAAI,EAAEL;EADU,CAAlB;EAIA,oBACE,6BAAC,iBAAD;IAAM,MAAM,EAAErC,MAAd;IAAsB,KAAK,EAAEH;EAA7B,gBACE,6BAAC,8BAAD,CACE;EACA;EACA;EACA;EAJF;IAKE,MAAM,EAAE;MACN;MACA8C,IAAI,EAAExC,cAAc,GACf,MAAKR,QAAS,MADC,GAEhBS,aAAa,GACZ,SAAQT,QAAS,SADL,GAEZ,GAAEA,QAAS;IANV,CALV;IAaE,UAAU,EAAEsB,UAbd,CAcE;IAdF;IAeE,aAAa,EAAEU,aAfjB;IAgBE,SAAS,EAAEc,SAhBb,CAiBE;IACA;IACA;IACA;IApBF;IAqBE,aAAa,EAAE,CAAC,OAAD,EAAU,QAAV,CArBjB;IAsBE,MAAM,EAAC;EAtBT,EADF,CADF;AA4BD,CAzGD;;eA2GenD,I"}
1
+ {"version":3,"file":"index.native.js","names":["HtmlBase","props","Html","templateContext","useTemplateContext","isDisabledBaseFontStyleColor","disableBaseFontStyleColor","useState","theme","children","fontSize","containerStyle","imageStyle","style","testID","anchorTextColor","HTML_ANCHOR_TEXT_COLOR","isTextCentered","numberOfLines","styles","p","marginVertical","textAlign","u","textDecorationLine","i","fontStyle","b","fontWeight","bold","s","tagsStyles","h1","h2","h3","h4","h5","h6","a","color","img","baseFontStyle","DEFAULT_TEXT_STYLE","colors","black","Array","isArray","styleObject","reduce","result","child","SpanRenderer","useCallback","htmlAttribs","_children","FontRenderer","replace","renderers","font","span","html","undefined"],"sources":["../../../src/atom/html/index.native.tsx"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {View, ViewStyle, ImageStyle, TextStyle} from 'react-native';\nimport RenderHTML, {\n CustomRendererProps,\n MixedStyleRecord,\n RenderHTMLProps,\n TBlock\n} from 'react-native-render-html';\n\nimport {HTML_ANCHOR_TEXT_COLOR} from '../../variables/theme.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport Text, {DEFAULT_STYLE as DEFAULT_TEXT_STYLE} from '../text/index.native';\n\ninterface CustomRenderHTMLProps extends RenderHTMLProps {\n baseFontStyle?: TextStyle;\n testID?: string;\n}\n\nconst HtmlBase = (props: CustomRenderHTMLProps) => {\n return <RenderHTML {...props} />;\n};\n\nexport type Props = {\n children: string;\n fontSize?: TextStyle['fontSize'];\n numberOfLines?: number;\n onLinkPress?: (url: string) => void;\n containerStyle?: ViewStyle;\n anchorTextColor?: string;\n imageStyle?: ImageStyle;\n style?: ViewStyle | ViewStyle[];\n testID?: string;\n isTextCentered?: boolean;\n};\n\ntype Styles = {\n p: {\n marginVertical: ViewStyle['marginVertical'];\n textAlign: TextStyle['textAlign'];\n };\n u: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n i: {\n fontStyle: TextStyle['fontStyle'];\n };\n b: {\n fontWeight: TextStyle['fontWeight'];\n };\n s: {\n textDecorationLine: TextStyle['textDecorationLine'];\n };\n};\n\nconst Html = (props: Props) => {\n const templateContext = useTemplateContext();\n const [isDisabledBaseFontStyleColor, disableBaseFontStyleColor] = useState<boolean>(false);\n const {theme} = templateContext;\n const {\n children,\n fontSize,\n containerStyle,\n imageStyle,\n style,\n testID,\n anchorTextColor = HTML_ANCHOR_TEXT_COLOR,\n isTextCentered,\n numberOfLines\n } = props;\n\n // Don't use StyleSheet there, it's not a react style\n const styles: Styles = {\n p: {\n marginVertical: 0,\n textAlign: 'center'\n },\n u: {\n textDecorationLine: 'underline'\n },\n i: {\n fontStyle: 'italic'\n },\n b: {\n fontWeight: theme.fontWeight.bold\n },\n s: {\n textDecorationLine: 'line-through'\n }\n };\n\n const tagsStyles: MixedStyleRecord = {\n ...styles,\n h1: {fontSize},\n h2: {fontSize},\n h3: {fontSize},\n h4: {fontSize},\n h5: {fontSize},\n h6: {fontSize},\n a: {color: anchorTextColor},\n img: imageStyle || {}\n };\n\n let baseFontStyle: TextStyle = {...DEFAULT_TEXT_STYLE, fontSize, color: theme.colors.black};\n if (style) {\n if (Array.isArray(style)) {\n const styleObject = style.reduce((result, child) => ({\n ...result,\n ...child\n }));\n baseFontStyle = {\n ...baseFontStyle,\n ...styleObject\n };\n } else {\n baseFontStyle = {\n ...baseFontStyle,\n ...style\n };\n }\n }\n\n const SpanRenderer = useCallback(\n (htmlAttribs: CustomRendererProps<TBlock>, _children: string) => (\n <Text numberOfLines={numberOfLines}>{_children}</Text>\n ),\n [numberOfLines]\n );\n\n interface HtmlAttrib extends CustomRendererProps<TBlock> {\n color?: string;\n }\n\n const FontRenderer = useCallback(\n (htmlAttribs: HtmlAttrib, _children: string) => {\n if (htmlAttribs.color) {\n disableBaseFontStyleColor(true);\n }\n\n return (\n <Text\n key={1}\n style={{\n ...baseFontStyle,\n color: htmlAttribs.color?.replace(/ /g, '')\n }}\n >\n {_children}\n </Text>\n );\n },\n [baseFontStyle]\n );\n\n const renderers = {\n font: FontRenderer,\n span: SpanRenderer\n };\n\n return (\n <View testID={testID} style={containerStyle}>\n <HtmlBase\n // to text-align center on android\n // we have to encapsulate between <p> tag\n // and use custom style define on <p>\n // definition in component style doesn't work\n source={{\n // eslint-disable-next-line no-nested-ternary\n html: isTextCentered\n ? `<p>${children}</p>`\n : numberOfLines\n ? `<span>${children}</span>`\n : `${children}`\n }}\n tagsStyles={tagsStyles}\n baseFontStyle={{\n ...baseFontStyle,\n color: isDisabledBaseFontStyleColor ? undefined : baseFontStyle.color\n }}\n renderers={renderers}\n // this is exceptionally for the onboarding course\n // is the only course that has a gif in the context but the img tag\n // comes with width & height attr and these makes this lib do not render the gif\n // so to avoid it, we decided to ignore these attr\n ignoredStyles={['width', 'height']}\n testID=\"html-base\"\n />\n </View>\n );\n};\n\nexport default Html;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyFE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAmBC;IAjBC;;;;MAIC;IA6CH,6BAIC;IAED,yBAGC;IAxBD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA4BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAQC;IAED,0BAQC;IArFD,2EASC;IAGC,kBAAsB;IA2ExB,6BAmZC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAsBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyFE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAmBC;IAjBC;;;;MAIC;IA6CH,6BAIC;IAED,yBAMC;IA3BD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA+BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAKC;IAED,0BAKC;IAlFD,2EASC;IAGC,kBAAsB;IAwExB,6BAwYC;CACF"}
@@ -110,6 +110,9 @@ class MoocHeader extends _react.default.Component {
110
110
  isMenuOpen
111
111
  } = this.state;
112
112
  isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();
113
+ this.setState(prevState => ({
114
+ isMenuOpen: !prevState.isMenuOpen
115
+ }));
113
116
  }
114
117
 
115
118
  handleSubmitSearch() {
@@ -152,10 +155,6 @@ class MoocHeader extends _react.default.Component {
152
155
  if (onMenuOpen) {
153
156
  onMenuOpen();
154
157
  }
155
-
156
- this.setState(() => ({
157
- isMenuOpen: true
158
- }));
159
158
  }
160
159
 
161
160
  handleOnMenuClose() {
@@ -166,10 +165,6 @@ class MoocHeader extends _react.default.Component {
166
165
  if (onMenuClose) {
167
166
  onMenuClose();
168
167
  }
169
-
170
- this.setState(() => ({
171
- isMenuOpen: false
172
- }));
173
168
  }
174
169
 
175
170
  render() {
@@ -498,27 +493,18 @@ class MoocHeader extends _react.default.Component {
498
493
  }, /*#__PURE__*/_react.default.createElement("div", {
499
494
  className: _style.default.logoWrapper
500
495
  }, /*#__PURE__*/_react.default.createElement("div", {
501
- className: _style.default.navMobile,
502
- "data-name": "nav-mobile",
503
- "aria-label": logoButtonAriaLabel
504
- }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationBurger, {
505
- role: "button",
506
- "data-name": "nav-mobile-open",
507
- color: mediumColor,
508
- className: isMenuOpen ? _style.default.burgerHidden : _style.default.burger,
509
- onClick: this.handleOnMenuOpen
510
- }), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationClose, {
511
- "data-name": "nav-mobile-close",
512
- color: mediumColor,
513
- className: isMenuOpen ? _style.default.close : _style.default.closeHidden,
514
- onClick: this.handleOnMenuClose
515
- }), /*#__PURE__*/_react.default.createElement(_link.default, {
496
+ className: _style.default.logoMobile,
516
497
  "data-name": "logo-mobile",
517
- href: logo.href,
518
- "aria-label": logoAriaLabel
498
+ onClick: this.handleMenuToggle,
499
+ "aria-label": logoButtonAriaLabel,
500
+ role: "button"
519
501
  }, /*#__PURE__*/_react.default.createElement(_picture.default, {
520
- src: logoMobileUrl
521
- }))), /*#__PURE__*/_react.default.createElement(_link.default, {
502
+ src: logoMobileUrl,
503
+ "aria-label": logoAriaLabel
504
+ }), notificationsView, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
505
+ color: mediumColor,
506
+ className: isMenuOpen ? _style.default.caretUp : _style.default.caret
507
+ })), /*#__PURE__*/_react.default.createElement(_link.default, {
522
508
  className: _style.default.logo,
523
509
  "data-name": "logo",
524
510
  href: logo.href,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["MoocHeader","React","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","translate","skin","context","logoAriaLabel","logoButtonAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","pageBadge","counter","href","style","itemBadge","name","itemName","activePage","title","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","classnames","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","navMobile","burgerHidden","burger","close","closeHidden","menuWrapper","hiddenMenuWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","shape","src","string","srcMobile","Search","func","arrayOf","oneOf","bool","number","Cta"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionNavigationBurger as BurgerIcon,\n NovaCompositionNavigationClose as CloseIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n this.setState(() => ({\n isMenuOpen: true\n }));\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n this.setState(() => ({\n isMenuOpen: false\n }));\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen} = this.state;\n const {translate, skin} = this.context;\n const {'aria-label': logoAriaLabel, 'button-aria-label': logoButtonAriaLabel} = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={item.title}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={item.title}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div\n className={style.currentOption}\n aria-haspopup=\"true\"\n data-name=\"item-more\"\n aria-label={moreLabel}\n >\n {moreLabel}\n <ArrowDown color={mediumColor} className={style.caret} />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} color={white} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} color={white} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} color={white} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <Select {...selectProps} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <InputSwitch {...switchProps} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n color={darkColor}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div className={style.logoWrapper}>\n <div\n className={style.navMobile}\n data-name=\"nav-mobile\"\n aria-label={logoButtonAriaLabel}\n >\n <BurgerIcon\n role=\"button\"\n data-name=\"nav-mobile-open\"\n color={mediumColor}\n className={isMenuOpen ? style.burgerHidden : style.burger}\n onClick={this.handleOnMenuOpen}\n />\n <CloseIcon\n data-name=\"nav-mobile-close\"\n color={mediumColor}\n className={isMenuOpen ? style.close : style.closeHidden}\n onClick={this.handleOnMenuClose}\n />\n <Link data-name=\"logo-mobile\" href={logo.href} aria-label={logoAriaLabel}>\n <Picture src={logoMobileUrl} />\n </Link>\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n aria-label={logoAriaLabel}\n >\n <Picture src={logoUrl} />\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAUA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,UAAN,SAAyBC,cAAA,CAAMC,SAA/B,CAAyC;EAiGvCC,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;IACA,KAAKC,KAAL,GAAa;MACXC,cAAc,EAAE,KADL;MAEXC,UAAU,EAAE,KAFD;MAGXC,OAAO,EAAE;IAHE,CAAb;IAMA,KAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BC,IAA1B,CAA+B,IAA/B,CAA5B;IACA,KAAKC,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBD,IAAtB,CAA2B,IAA3B,CAAxB;IACA,KAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAwB,IAAxB,CAArB;IACA,KAAKG,eAAL,GAAuB,KAAKA,eAAL,CAAqBH,IAArB,CAA0B,IAA1B,CAAvB;IACA,KAAKI,eAAL,GAAuB,KAAKA,eAAL,CAAqBJ,IAArB,CAA0B,IAA1B,CAAvB;IACA,KAAKK,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBL,IAAxB,CAA6B,IAA7B,CAA1B;IACA,KAAKM,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBN,IAAvB,CAA4B,IAA5B,CAAzB;IACA,KAAKO,aAAL,GAAqB,KAAKA,aAAL,CAAmBP,IAAnB,CAAwB,IAAxB,CAArB;IACA,KAAKQ,YAAL,GAAoB,KAAKA,YAAL,CAAkBR,IAAlB,CAAuB,IAAvB,CAApB;IACA,KAAKS,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBT,IAAtB,CAA2B,IAA3B,CAAxB;IACA,KAAKU,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBV,IAAvB,CAA4B,IAA5B,CAAzB;EACD;;EAEDW,kBAAkB,CAACC,SAAD,EAAYC,SAAZ,EAAuBC,WAAvB,EAAoC;IACpD,MAAM;MAAClB;IAAD,IAAmB,KAAKD,KAA9B;;IACA,IAAIC,cAAJ,EAAoB;MAClBmB,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmC,KAAKd,aAAxC;MACAa,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,EAAwC,KAAKd,aAA7C;IACD,CAHD,MAGO;MACLa,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsC,KAAKf,aAA3C;MACAa,QAAQ,CAACE,mBAAT,CAA6B,YAA7B,EAA2C,KAAKf,aAAhD;IACD;EACF;;EAEDE,eAAe,CAACc,EAAD,EAAK;IAClB,KAAKC,YAAL,GAAoBD,EAApB;EACD;;EAEDhB,aAAa,CAACkB,UAAD,EAAa;IACxB,MAAM;MAACxB;IAAD,IAAmB,KAAKD,KAA9B;;IACA,IAAIC,cAAJ,EAAoB;MAClB,MAAMyB,IAAI,GAAG,KAAKF,YAAlB;;MACA,IAAIE,IAAI,IAAI,CAACA,IAAI,CAACC,QAAL,CAAcF,UAAU,CAACG,MAAzB,CAAb,EAA+C;QAC7C,KAAKxB,oBAAL;MACD;IACF;EACF;;EAEDI,eAAe,GAAG;IAChB,MAAM;MAACN;IAAD,IAAe,KAAKF,KAA1B;IACAE,UAAU,IAAI,KAAKI,gBAAL,EAAd;EACD;;EAEDF,oBAAoB,GAAG;IACrB,KAAKyB,QAAL,CAAcX,SAAS,KAAK;MAC1BjB,cAAc,EAAE,CAACiB,SAAS,CAACjB;IADD,CAAL,CAAvB;EAGD;;EAEDK,gBAAgB,GAAG;IACjB,MAAM;MAACJ;IAAD,IAAe,KAAKF,KAA1B;IACAE,UAAU,GAAG,KAAKa,iBAAL,EAAH,GAA8B,KAAKD,gBAAL,EAAxC;EACD;;EAEDJ,kBAAkB,GAAG;IACnB,MAAM;MAACoB;IAAD,IAAmB,KAAK/B,KAA9B;;IACA,IAAI+B,cAAJ,EAAoB;MAClBA,cAAc;IACf;EACF;;EAEDnB,iBAAiB,GAAG;IAClB,MAAM;MAACoB;IAAD,IAAkB,KAAKhC,KAA7B;;IACA,IAAIgC,aAAJ,EAAmB;MACjBA,aAAa;IACd;EACF;;EAEDnB,aAAa,GAAG;IACd,KAAKiB,QAAL,CAAcX,SAAS,KAAK;MAC1Bf,OAAO,EAAE;IADiB,CAAL,CAAvB;EAGD;;EAEDU,YAAY,GAAG;IACb,KAAKgB,QAAL,CAAcX,SAAS,KAAK;MAC1Bf,OAAO,EAAE;IADiB,CAAL,CAAvB;EAGD;;EAEDW,gBAAgB,GAAG;IACjB,MAAM;MAACkB;IAAD,IAAe,KAAKjC,KAA1B;;IACA,IAAIiC,UAAJ,EAAgB;MACdA,UAAU;IACX;;IACD,KAAKH,QAAL,CAAc,OAAO;MACnB3B,UAAU,EAAE;IADO,CAAP,CAAd;EAGD;;EAEDa,iBAAiB,GAAG;IAClB,MAAM;MAACkB;IAAD,IAAgB,KAAKlC,KAA3B;;IACA,IAAIkC,WAAJ,EAAiB;MACfA,WAAW;IACZ;;IACD,KAAKJ,QAAL,CAAc,OAAO;MACnB3B,UAAU,EAAE;IADO,CAAP,CAAd;EAGD;;EAEDgC,MAAM,GAAG;IACP,IAAI,uBAAQ,KAAKnC,KAAb,CAAJ,EAAyB,OAAO,IAAP;IACzB,MAAM;MACJoC,IAAI,GAAG,EADH;MAEJC,KAAK,EAAEC,KAFH;MAGJC,QAHI;MAIJC,IAJI;MAKJC,KALI;MAMJC,MANI;MAOJ,2BAA2BC,oBAPvB;MAQJ,uBAAuBC,iBARnB;MASJ,6BAA6BC;IATzB,IAUF,KAAK7C,KAVT;IAWA,MAAM;MAACI,OAAD;MAAUF,cAAV;MAA0BC;IAA1B,IAAwC,KAAKF,KAAnD;IACA,MAAM;MAAC6C,SAAD;MAAYC;IAAZ,IAAoB,KAAKC,OAA/B;IACA,MAAM;MAAC,cAAcC,aAAf;MAA8B,qBAAqBC;IAAnD,IAA0Ed,IAAhF;IACA,MAAMe,OAAO,GAAG,mBAAI,KAAJ,EAAWf,IAAX,KAAoB,mBAAI,aAAJ,EAAmBW,IAAnB,CAApC;IACA,MAAMK,aAAa,GAAG,mBAAI,WAAJ,EAAiBhB,IAAjB,KAA0B,qBAAMe,OAAN,EAAe,oBAAf,EAAqCJ,IAArC,CAAhD;IAEA,IAAIM,SAAS,GAAG,IAAhB;IACA,IAAIC,SAAS,GAAG,IAAhB;IACA,IAAIC,QAAQ,GAAG,IAAf;IACA,IAAIC,YAAY,GAAG,IAAnB;IACA,IAAIC,iBAAiB,GAAG,IAAxB;IACA,IAAIC,cAAc,GAAG,IAArB;IAEA,MAAMC,SAAS,GAAGb,SAAS,CAAC,MAAD,CAA3B;IACA,MAAMc,UAAU,GAAGd,SAAS,CAAC,OAAD,CAA5B;IACA,MAAMe,YAAY,GAAG,mBAAI,gBAAJ,EAAsBd,IAAtB,CAArB;IACA,MAAMe,WAAW,GAAG,mBAAI,eAAJ,EAAqBf,IAArB,CAApB;IACA,MAAMgB,SAAS,GAAG,mBAAI,aAAJ,EAAmBhB,IAAnB,CAAlB;IACA,MAAMiB,KAAK,GAAG,mBAAI,cAAJ,EAAoBjB,IAApB,CAAd;IACA,MAAMkB,gBAAgB,GAAG;MAACC,eAAe,EAAEL;IAAlB,CAAzB;;IAEA,IAAIvB,KAAJ,EAAW;MACT,MAAM6B,cAAc,GAAG7B,KAAK,CAAC8B,SAAN,CAAgBC,GAAhB,CAAoB,CAACC,IAAD,EAAOC,KAAP,KAAiB;QAC1D,MAAMC,WAAW,GAAGF,IAAI,CAACG,QAAL,GAChB;UACEC,KAAK,EAAEb;QADT,CADgB,GAIhB,IAJJ;QAMA,MAAM;UAAC,yBAAyBc;QAA1B,IAAgDL,IAAtD;QACA,MAAMM,SAAS,GACbN,IAAI,CAACO,OAAL,GAAe,CAAf,gBACE,6BAAC,aAAD;UACE,IAAI,EAAEP,IAAI,CAACQ,IADb;UAEE,aAAU,YAFZ;UAGE,SAAS,EAAEC,cAAA,CAAMC,SAHnB;UAIE,cAAYL;QAJd,GAMGL,IAAI,CAACO,OANR,CADF,GASI,IAVN;QAYA,MAAM;UAACI,IAAI,EAAEC,QAAQ,GAAGX;QAAlB,IAA2BD,IAAjC;QAEA,oBACE,6BAAC,aAAD;UACE,GAAG,EAAEY,QADP;UAEE,aAAY,QAAOA,QAAS,EAF9B;UAGE,IAAI,EAAEZ,IAAI,CAACQ,IAHb;UAIE,SAAS,EAAER,IAAI,CAACG,QAAL,GAAgBM,cAAA,CAAMI,UAAtB,GAAmCJ,cAAA,CAAMT,IAJtD;UAKE,SAAS,MALX;UAME,OAAO,EAAE,KAAK7D,eANhB;UAOE,MAAM,EAAE6D,IAAI,CAACzC,MAAL,IAAe,IAPzB;UAQE,cAAYyC,IAAI,CAACc,KARnB;UASE,KAAK,eACAZ,WADA;QATP,GAaGF,IAAI,CAACc,KAbR,EAcGR,SAdH,eAeE;UACE,SAAS,EAAEG,cAAA,CAAMM,GADnB;UAEE,KAAK,EAAE;YACLnB,eAAe,EAAEL;UADZ;QAFT,EAfF,CADF;MAwBD,CA9CsB,CAAvB;MAgDA,MAAMyB,WAAW,GAAGhD,KAAK,CAACiD,IAAN,CAAWlB,GAAX,CAAe,CAACC,IAAD,EAAOC,KAAP,KAAiB;QAClD,MAAMC,WAAW,GAAGF,IAAI,CAACG,QAAL,GAChB;UACEC,KAAK,EAAEb;QADT,CADgB,GAIhB,IAJJ;QAMA,MAAM;UAACoB,IAAI,EAAEC,QAAQ,GAAGX;QAAlB,IAA2BD,IAAjC;QAEA,oBACE,6BAAC,aAAD;UACE,IAAI,EAAEA,IAAI,CAACQ,IADb;UAEE,GAAG,EAAEI,QAFP;UAGE,SAAS,EAAEH,cAAA,CAAMS,MAHnB;UAIE,aAAY,aAAYN,QAAS,EAJnC;UAKE,MAAM,EAAEZ,IAAI,CAACzC,MAAL,IAAe,IALzB;UAME,cAAYyC,IAAI,CAACc,KANnB;UAOE,OAAO,EAAE,KAAK3E,eAPhB;UAQE,SAAS,MARX;UASE,KAAK,eACA+D,WADA;QATP,GAaGF,IAAI,CAACc,KAbR,CADF;MAiBD,CA1BmB,CAApB;MA4BA/B,SAAS,gBACP;QAAK,SAAS,EAAEX,MAAM,CAAC+C,KAAP,IAAgBrF,OAAhB,GAA0B2E,cAAA,CAAMW,OAAhC,GAA0CX,cAAA,CAAMzC;MAAhE,GACG6B,cADH,eAEE;QAAK,SAAS,EAAEY,cAAA,CAAMQ;MAAtB,gBACE;QACE,SAAS,EAAER,cAAA,CAAMY,aADnB;QAEE,iBAAc,MAFhB;QAGE,aAAU,WAHZ;QAIE,cAAYhC;MAJd,GAMGA,SANH,eAOE,6BAAC,6CAAD;QAAW,KAAK,EAAEG,WAAlB;QAA+B,SAAS,EAAEiB,cAAA,CAAMa;MAAhD,EAPF,CADF,eAUE;QAAK,SAAS,EAAEb,cAAA,CAAMc;MAAtB,GAAqCP,WAArC,CAVF,CAFF,CADF;IAiBD;;IAED,IAAI7C,KAAJ,EAAW;MACT,MAAMqD,IAAI,GAAGrD,KAAK,CAAC4B,GAAN,CAAU,CAAC0B,GAAD,EAAMxB,KAAN,KAAgB;QACrC,oBACE,6BAAC,YAAD,eAASwB,GAAT;UAAc,GAAG,EAAExB,KAAnB;UAA0B,SAAS,EAAEA,KAAK,GAAG,CAAR,KAAc9B,KAAK,CAACuD,MAApB,GAA6B,IAA7B,GAAoCjB,cAAA,CAAMkB;QAA/E,GADF;MAGD,CAJY,CAAb;MAMA3C,SAAS,gBAAG;QAAK,SAAS,EAAEyB,cAAA,CAAMtC;MAAtB,GAA8BqD,IAA9B,CAAZ;IACD;;IAED,IAAItD,IAAJ,EAAU;MACR,MAAM0D,eAAe,GAAG,qBAAM,CAAN,EAAS,qBAAT,EAAgC1D,IAAhC,CAAxB;MACA,MAAM2D,sBAAsB,GAAG,qBAAM,EAAN,EAAU,0BAAV,EAAsC3D,IAAtC,CAA/B;MAEAiB,iBAAiB,GACfyC,eAAe,GAAG,CAAlB,gBACE,6BAAC,aAAD;QACE,IAAI,EAAE1D,IAAI,CAAC4D,aAAL,CAAmBtB,IAD3B;QAEE,aAAU,oBAFZ;QAGE,SAAS,EAAEC,cAAA,CAAMqB;MAHnB,GAKGF,eALH,CADF,GAQI,IATN;;MAUA,MAAMG,oBAAoB,gBACxB,6BAAC,aAAD;QACE,SAAS,EAAE,IAAAC,mBAAA,EAAWvB,cAAA,CAAMwB,YAAjB,EAA+BL,eAAe,GAAG,CAAlB,GAAsBnB,cAAA,CAAMyB,MAA5B,GAAqC,IAApE,CADb;QAEE,aAAU,oBAFZ;QAGE,IAAI,EAAEhE,IAAI,CAAC4D,aAAL,CAAmBtB,IAH3B;QAIE,cAAYqB;MAJd,gBAME,uDACE,6BAAC,6BAAD;QAAW,KAAK,EAAE,EAAlB;QAAsB,MAAM,EAAE;MAA9B,EADF,CANF,EASG1C,iBATH,CADF;;MAaAF,QAAQ,gBACN;QAAK,SAAS,EAAEwB,cAAA,CAAMvC;MAAtB,gBACE;QAAK,SAAS,EAAEuC,cAAA,CAAM0B;MAAtB,gBACE,6BAAC,aAAD;QACE,SAAS,EAAE1B,cAAA,CAAM2B,IADnB;QAEE,aAAU,YAFZ;QAGE,IAAI,EAAElE,IAAI,CAACiE,KAAL,CAAWE,KAAX,CAAiB7B,IAHzB;QAIE,OAAO,EAAE,KAAKrE,eAJhB;QAKE,cAAY+B,IAAI,CAACiE,KAAL,CAAWE,KAAX,CAAiB,YAAjB;MALd,gBAOE;QAAK,SAAS,EAAE5B,cAAA,CAAM6B,WAAtB;QAAmC,KAAK,EAAE3C;MAA1C,gBACE,6BAAC,0CAAD;QAAU,SAAS,EAAEc,cAAA,CAAM4B,KAA3B;QAAkC,KAAK,EAAE3C;MAAzC,EADF,CAPF,eAUE;QAAK,aAAU,OAAf;QAAuB,SAAS,EAAEe,cAAA,CAAM8B;MAAxC,GACGrE,IAAI,CAACiE,KAAL,CAAWE,KAAX,CAAiBE,KADpB,CAVF,CADF,eAeE,6BAAC,aAAD;QACE,SAAS,EAAE9B,cAAA,CAAM2B,IADnB;QAEE,aAAU,cAFZ;QAGE,IAAI,EAAElE,IAAI,CAACiE,KAAL,CAAWK,OAAX,CAAmBhC,IAH3B;QAIE,OAAO,EAAE,KAAKrE,eAJhB;QAKE,cAAY+B,IAAI,CAACiE,KAAL,CAAWK,OAAX,CAAmB,YAAnB;MALd,gBAOE;QAAK,SAAS,EAAE/B,cAAA,CAAM6B,WAAtB;QAAmC,KAAK,EAAE3C;MAA1C,gBACE,6BAAC,4CAAD;QAAY,SAAS,EAAEc,cAAA,CAAM+B,OAA7B;QAAsC,KAAK,EAAE9C;MAA7C,EADF,CAPF,eAWE;QAAK,aAAU,OAAf;QAAuB,SAAS,EAAEe,cAAA,CAAM8B;MAAxC,GACGrE,IAAI,CAACiE,KAAL,CAAWK,OAAX,CAAmBD,KADtB,CAXF,CAfF,eA8BE,6BAAC,aAAD;QACE,SAAS,EAAE9B,cAAA,CAAM2B,IADnB;QAEE,aAAU,YAFZ;QAGE,IAAI,EAAElE,IAAI,CAACiE,KAAL,CAAWM,KAAX,CAAiBjC,IAHzB;QAIE,OAAO,EAAE,KAAKrE,eAJhB;QAKE,cAAY+B,IAAI,CAACiE,KAAL,CAAWM,KAAX,CAAiB,YAAjB;MALd,gBAOE;QAAK,SAAS,EAAEhC,cAAA,CAAM6B,WAAtB;QAAmC,KAAK,EAAE3C;MAA1C,gBACE,6BAAC,6CAAD;QAAY,SAAS,EAAEc,cAAA,CAAMgC,KAA7B;QAAoC,KAAK,EAAE/C;MAA3C,EADF,CAPF,eAUE;QAAK,SAAS,EAAEe,cAAA,CAAM8B;MAAtB,GAA8BrE,IAAI,CAACiE,KAAL,CAAWM,KAAX,CAAiBF,KAA/C,CAVF,CA9BF,CADF,eA4CE;QAAK,SAAS,EAAE9B,cAAA,CAAMiC;MAAtB,GACGX,oBADH,eAEE;QAAK,SAAS,EAAEtB,cAAA,CAAMkC,MAAtB;QAA8B,aAAU;MAAxC,gBACE,6BAAC,aAAD;QACE,IAAI,EAAEzE,IAAI,CAACsC,IADb;QAEE,SAAS,EAAEC,cAAA,CAAMmC,QAFnB;QAGE,OAAO,EAAE,KAAKzG,eAHhB;QAIE,cAAY+B,IAAI,CAAC,oBAAD;MAJlB,gBAME,6BAAC,gBAAD;QAAS,GAAG,EAAEA,IAAI,CAAC2E;MAAnB,EANF,CADF,CAFF,CA5CF,CADF;IA4DD;;IAED,IAAI5E,QAAJ,EAAc;MACZ,MAAM6E,gBAAgB,GAAG7E,QAAQ,CAAC8B,GAAT,CAAa,CAACgD,OAAD,EAAU9C,KAAV,KAAoB;QACxD,IAAI+C,WAAW,GAAG,IAAlB;QACA,MAAM;UACJC,OADI;UAEJC,IAFI;UAGJpC,KAHI;UAIJH,IAAI,EAAEwC,WAAW,GAAGlD,KAJhB;UAKJG,KALI;UAMJgD,UANI;UAOJ,cAAcC;QAPV,IAQFN,OARJ;;QAUA,QAAQG,IAAR;UACE,KAAK,MAAL;YAAa;cACXF,WAAW,gBACT;gBAAK,aAAY,WAAUG,WAAY,EAAvC;gBAA0C,SAAS,EAAE1C,cAAA,CAAMsC,OAA3D;gBAAoE,GAAG,EAAEI;cAAzE,gBACE,6BAAC,aAAD;gBACE,SAAS,EAAE1C,cAAA,CAAM6C,IADnB;gBAEE,IAAI,EAAEL,OAAO,CAACzC,IAFhB;gBAGE,SAAS,MAHX;gBAIE,UAAU,EAAE4C,UAJd;gBAKE,OAAO,EAAE,KAAKjH,eALhB;gBAME,MAAM,EAAE8G,OAAO,CAAC1F,MAAR,IAAkB,IAN5B;gBAOE,cAAY8F,SAAS,IAAIvC,KAP3B;gBAQE,KAAK,EAAE;kBACLV;gBADK;cART,GAYGU,KAZH,CADF,CADF;cAkBA;YACD;;UACD,KAAK,QAAL;YAAe;cACb,MAAMyC,WAAW,GAAG,EAApB;cACAA,WAAW,CAACN,OAAZ,GAAsBA,OAAO,CAACO,MAA9B;cACAD,WAAW,CAACzC,KAAZ,GAAoB,EAApB;cACAyC,WAAW,CAACE,KAAZ,GAAoB,QAApB;cACAF,WAAW,CAACG,QAAZ,GAAuBT,OAAO,CAACS,QAA/B;cAEAV,WAAW,gBACT;gBACE,aAAY,WAAUG,WAAY,EADpC;gBAEE,SAAS,EAAE1C,cAAA,CAAMsC,OAFnB;gBAGE,GAAG,EAAEI,WAHP;gBAIE,cAAYE,SAAS,IAAIvC;cAJ3B,gBAME;gBAAM,SAAS,EAAEL,cAAA,CAAM8B;cAAvB,GAA+BzB,KAA/B,CANF,eAOE,6BAAC,eAAD,EAAYyC,WAAZ,CAPF,CADF;cAWA;YACD;;UACD,KAAK,QAAL;YAAe;cACb,MAAMI,WAAW,GAAG,EAApB;cACAA,WAAW,CAACxC,KAAZ,GAAoB8B,OAAO,CAAC9B,KAA5B;cACAwC,WAAW,CAACC,EAAZ,GAAkB,gBAAe3D,KAAM,EAAvC;cACA0D,WAAW,CAACD,QAAZ,GAAuBT,OAAO,CAACS,QAA/B;cAEAV,WAAW,gBACT;gBACE,aAAY,WAAUG,WAAY,EADpC;gBAEE,SAAS,EAAE1C,cAAA,CAAMsC,OAFnB;gBAGE,GAAG,EAAEI,WAHP;gBAIE,cAAYE,SAAS,IAAIvC;cAJ3B,gBAME;gBAAM,SAAS,EAAEL,cAAA,CAAM8B;cAAvB,GAA+BzB,KAA/B,CANF,eAOE,6BAAC,oBAAD,EAAiB6C,WAAjB,CAPF,CADF;cAWA;YACD;QA5DH;;QA+DA,OAAOX,WAAP;MACD,CA5EwB,CAAzB;MA8EA9D,YAAY,gBACV;QAAK,SAAS,EAAEuB,cAAA,CAAMxC,QAAtB;QAAgC,GAAG,EAAE,KAAK7B;MAA1C,gBACE,6BAAC,yCAAD;QACE,aAAU,iBADZ;QAEE,KAAK,EAAEqD,SAFT;QAGE,SAAS,EAAEgB,cAAA,CAAMoD,cAHnB;QAIE,OAAO,EAAE,KAAK9H,oBAJhB;QAKE,iBAAeH,cALjB;QAME,cAAY0C;MANd,EADF,eASE;QAAK,SAAS,EAAE1C,cAAc,GAAG6E,cAAA,CAAMqD,eAAT,GAA2BrD,cAAA,CAAMsD;MAA/D,gBACE;QAAK,aAAU,UAAf;QAA0B,SAAS,EAAEtD,cAAA,CAAMuD;MAA3C,GACGlB,gBADH,CADF,eAIE;QACE,SAAS,EAAErC,cAAA,CAAMwD,aADnB;QAEE,OAAO,EAAE,KAAKlI,oBAFhB;QAGE,cAAYwC;MAHd,GAKGe,UALH,CAJF,CATF,CADF;IAwBD;;IAED,IAAIlB,MAAJ,EAAY;MACVgB,cAAc,gBACZ;QACE,aAAU,YADZ;QAEE,SAAS,EAAEvD,UAAU,GAAG4E,cAAA,CAAMyD,eAAT,GAA2BzD,cAAA,CAAM0D;MAFxD,gBAIE,6BAAC,mBAAD;QACE,MAAM,EAAE/F,MADV;QAEE,QAAQ,EAAE,KAAK/B,kBAFjB;QAGE,OAAO,EAAE,KAAKC,iBAHhB;QAIE,aAAa,EAAE,KAAKC,aAJtB;QAKE,YAAY,EAAE,KAAKC,YALrB;QAME,2BAAyB6B;MAN3B,EAJF,CADF;IAeD;;IAED,oBACE;MAAQ,SAAS,EAAEoC,cAAA,CAAM2D;IAAzB,gBACE;MACE,aAAU,YADZ;MAEE,aAAWvI,UAFb;MAGE,SAAS,EAAEA,UAAU,GAAG4E,cAAA,CAAM4D,IAAT,GAAgB5D,cAAA,CAAM6D;IAH7C,gBAKE;MAAK,SAAS,EAAE7D,cAAA,CAAM8D;IAAtB,gBACE;MACE,SAAS,EAAE9D,cAAA,CAAM+D,SADnB;MAEE,aAAU,YAFZ;MAGE,cAAY5F;IAHd,gBAKE,6BAAC,0CAAD;MACE,IAAI,EAAC,QADP;MAEE,aAAU,iBAFZ;MAGE,KAAK,EAAEY,WAHT;MAIE,SAAS,EAAE3D,UAAU,GAAG4E,cAAA,CAAMgE,YAAT,GAAwBhE,cAAA,CAAMiE,MAJrD;MAKE,OAAO,EAAE,KAAKjI;IALhB,EALF,eAYE,6BAAC,yCAAD;MACE,aAAU,kBADZ;MAEE,KAAK,EAAE+C,WAFT;MAGE,SAAS,EAAE3D,UAAU,GAAG4E,cAAA,CAAMkE,KAAT,GAAiBlE,cAAA,CAAMmE,WAH9C;MAIE,OAAO,EAAE,KAAKlI;IAJhB,EAZF,eAkBE,6BAAC,aAAD;MAAM,aAAU,aAAhB;MAA8B,IAAI,EAAEoB,IAAI,CAAC0C,IAAzC;MAA+C,cAAY7B;IAA3D,gBACE,6BAAC,gBAAD;MAAS,GAAG,EAAEG;IAAd,EADF,CAlBF,CADF,eAuBE,6BAAC,aAAD;MACE,SAAS,EAAE2B,cAAA,CAAM3C,IADnB;MAEE,aAAU,MAFZ;MAGE,IAAI,EAAEA,IAAI,CAAC0C,IAHb;MAIE,cAAY7B;IAJd,gBAME,6BAAC,gBAAD;MAAS,GAAG,EAAEE;IAAd,EANF,CAvBF,CALF,EAqCGO,cArCH,eAsCE;MACE,SAAS,EAAEvD,UAAU,GAAG4E,cAAA,CAAMoE,WAAT,GAAuBpE,cAAA,CAAMqE,iBADpD;MAEE,aAAU;IAFZ,GAIG/F,SAJH,EAKGE,QAAQ,IAAID,SALf,EAMGE,YANH,CAtCF,CADF,CADF;EAmDD;;AAhmBsC;;AAAnC5D,U,CA4FGyJ,Y,GAAe;EACpBvG,SAAS,EAAEwG,iBAAA,CAASC,iBAAT,CAA2BzG,SADlB;EAEpBC,IAAI,EAAEuG,iBAAA,CAASC,iBAAT,CAA2BxG;AAFb,C;AA5FlBnD,U,CACG4J,S,2CAAY;EACjBpH,IAAI,EAAEqH,kBAAA,CAAUC,KAAV,CAAgB;IACpBC,GAAG,EAAEF,kBAAA,CAAUG,MADK;IAEpBC,SAAS,EAAEJ,kBAAA,CAAUG,MAFD;IAGpB9E,IAAI,EAAE2E,kBAAA,CAAUG,MAHI;IAIpB,cAAcH,kBAAA,CAAUG,MAJJ;IAKpB,qBAAqBH,kBAAA,CAAUG;EALX,CAAhB,CADW;EAQjBlH,MAAM,EAAE+G,kBAAA,CAAUC,KAAV,CAAgBI,oBAAA,CAAON,SAAvB,CARS;EASjB,2BAA2BC,kBAAA,CAAUG,MATpB;EAUjB7H,cAAc,EAAE0H,kBAAA,CAAUM,IAVT;EAWjB/H,aAAa,EAAEyH,kBAAA,CAAUM,IAXR;EAYjB1H,KAAK,EAAEoH,kBAAA,CAAUC,KAAV,CAAgB;IACrBtF,SAAS,EAAEqF,kBAAA,CAAUO,OAAV,CACTP,kBAAA,CAAUC,KAAV,CAAgB;MACd7H,MAAM,EAAE4H,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CADM;MAEd7E,KAAK,EAAEqE,kBAAA,CAAUG,MAFH;MAGd3E,IAAI,EAAEwE,kBAAA,CAAUG,MAHF;MAId9E,IAAI,EAAE2E,kBAAA,CAAUG,MAJF;MAKdnF,QAAQ,EAAEgF,kBAAA,CAAUS,IALN;MAMdrF,OAAO,EAAE4E,kBAAA,CAAUU,MANL;MAOd,yBAAyBV,kBAAA,CAAUG;IAPrB,CAAhB,CADS,CADU;IAYrBrE,IAAI,EAAEkE,kBAAA,CAAUO,OAAV,CACJP,kBAAA,CAAUC,KAAV,CAAgB;MACd7H,MAAM,EAAE4H,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CADM;MAEd7E,KAAK,EAAEqE,kBAAA,CAAUG,MAFH;MAGd3E,IAAI,EAAEwE,kBAAA,CAAUG,MAHF;MAId9E,IAAI,EAAE2E,kBAAA,CAAUG,MAJF;MAKdnF,QAAQ,EAAEgF,kBAAA,CAAUS,IALN;MAMdrF,OAAO,EAAE4E,kBAAA,CAAUU;IANL,CAAhB,CADI;EAZe,CAAhB,CAZU;EAmCjB1H,KAAK,EAAEgH,kBAAA,CAAUO,OAAV,CAAkBP,kBAAA,CAAUC,KAAV,CAAgBU,YAAA,CAAIZ,SAApB,CAAlB,CAnCU;EAoCjBhH,IAAI,EAAEiH,kBAAA,CAAUC,KAAV,CAAgB;IACpBvC,OAAO,EAAEsC,kBAAA,CAAUG,MADC;IAEpB,sBAAsBH,kBAAA,CAAUG,MAFZ;IAGpB9E,IAAI,EAAE2E,kBAAA,CAAUG,MAHI;IAIpBxD,aAAa,EAAEqD,kBAAA,CAAUC,KAAV,CAAgB;MAC7B5E,IAAI,EAAE2E,kBAAA,CAAUG,MADa;MAE7BnE,KAAK,EAAEgE,kBAAA,CAAUU,MAFY;MAG7B,cAAcV,kBAAA,CAAUG;IAHK,CAAhB,CAJK;IASpBnD,KAAK,EAAEgD,kBAAA,CAAUC,KAAV,CAAgB;MACrB/C,KAAK,EAAE8C,kBAAA,CAAUC,KAAV,CAAgB;QACrB5E,IAAI,EAAE2E,kBAAA,CAAUG,MADK;QAErB/C,KAAK,EAAE4C,kBAAA,CAAUG,MAFI;QAGrB,cAAcH,kBAAA,CAAUG;MAHH,CAAhB,CADc;MAMrB9C,OAAO,EAAE2C,kBAAA,CAAUC,KAAV,CAAgB;QACvB5E,IAAI,EAAE2E,kBAAA,CAAUG,MADO;QAEvB/C,KAAK,EAAE4C,kBAAA,CAAUG,MAFM;QAGvB,cAAcH,kBAAA,CAAUG;MAHD,CAAhB,CANY;MAWrB7C,KAAK,EAAE0C,kBAAA,CAAUC,KAAV,CAAgB;QACrB5E,IAAI,EAAE2E,kBAAA,CAAUG,MADK;QAErB/C,KAAK,EAAE4C,kBAAA,CAAUG,MAFI;QAGrB,cAAcH,kBAAA,CAAUG;MAHH,CAAhB;IAXc,CAAhB;EATa,CAAhB,CApCW;EA+DjB,uBAAuBH,kBAAA,CAAUG,MA/DhB;EAgEjB,6BAA6BH,kBAAA,CAAUG,MAhEtB;EAiEjBrH,QAAQ,EAAEkH,kBAAA,CAAUO,OAAV,CACRP,kBAAA,CAAUC,KAAV,CAAgB;IACdtE,KAAK,EAAEqE,kBAAA,CAAUG,MADH;IAEd3E,IAAI,EAAEwE,kBAAA,CAAUG,MAFF;IAGdpC,IAAI,EAAEiC,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,QAAD,EAAW,QAAX,EAAqB,MAArB,CAAhB,CAHQ;IAIdvF,KAAK,EAAE+E,kBAAA,CAAUG,MAJH;IAKd,cAAcH,kBAAA,CAAUG,MALV;IAMdrC,OAAO,EAAEkC,kBAAA,CAAUC,KAAV,CAAgB;MACvB5E,IAAI,EAAE2E,kBAAA,CAAUG,MADO;MAEvB5B,QAAQ,EAAEyB,kBAAA,CAAUM,IAFG;MAGvBtE,KAAK,EAAEgE,kBAAA,CAAUS,IAHM;MAIvBrI,MAAM,EAAE4H,kBAAA,CAAUQ,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB,CAJe;MAKvBnC,MAAM,EAAE2B,kBAAA,CAAUO,OAAV,CACNP,kBAAA,CAAUC,KAAV,CAAgB;QACdjE,KAAK,EAAEgE,kBAAA,CAAUG,MADH;QAEd3E,IAAI,EAAEwE,kBAAA,CAAUG,MAFF;QAGdnF,QAAQ,EAAEgF,kBAAA,CAAUS;MAHN,CAAhB,CADM;IALe,CAAhB;EANK,CAAhB,CADQ,CAjEO;EAuFjBjI,UAAU,EAAEwH,kBAAA,CAAUM,IAvFL;EAwFjB7H,WAAW,EAAEuH,kBAAA,CAAUM;AAxFN,C;eAkmBNnK,U"}
1
+ {"version":3,"file":"index.js","names":["MoocHeader","React","Component","constructor","props","state","isSettingsOpen","isMenuOpen","isFocus","handleSettingsToggle","bind","handleMenuToggle","_checkOnClose","handleLinkClick","setMenuSettings","handleSubmitSearch","handleResetSearch","handleOnFocus","handleOnBlur","handleOnMenuOpen","handleOnMenuClose","componentDidUpdate","prevProps","prevState","prevContext","document","addEventListener","removeEventListener","el","menuSettings","clickEvent","menu","contains","target","setState","onSubmitSearch","onResetSearch","onMenuOpen","onMenuClose","render","logo","pages","items","settings","user","links","search","searchResetAriaLabel","settingsAriaLabel","closeSettingsAriaLabel","translate","skin","context","logoAriaLabel","logoButtonAriaLabel","logoUrl","logoMobileUrl","pagesView","linksView","userView","settingsView","notificationsView","searchFormView","moreLabel","closeLabel","primaryColor","mediumColor","darkColor","white","iconWrapperStyle","backgroundColor","displayedPages","displayed","map","item","index","activeColor","selected","color","pageCountAriaLabel","pageBadge","counter","href","style","itemBadge","name","itemName","activePage","title","bar","optionsView","more","option","value","noItems","currentOption","caret","optionsGroup","ctas","cta","length","ctaLink","nbNotifications","notificationsAriaLabel","notifications","notificationPageView","classnames","notification","active","stats","stat","stars","iconWrapper","label","ranking","badge","avatarWrapper","avatar","userLink","picture","settingsElements","setting","settingView","options","type","settingName","hoverColor","ariaLabel","link","selectProps","values","theme","onChange","switchProps","id","settingsToggle","settingsWrapper","settingsWrapperHidden","settingsGroup","closeSettings","hiddenSearchBar","searchBar","wrapper","open","header","logoWrapper","logoMobile","caretUp","menuWrapper","hiddenMenuWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","shape","src","string","srcMobile","Search","func","arrayOf","oneOf","bool","number","Cta"],"sources":["../../../src/organism/mooc-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, get, isEmpty} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyCharts as ChartsIcon,\n NovaSolidVoteRewardsRewardsTrophy5 as TrophyIcon,\n NovaCompositionCoorpacademyCog as CogIcon,\n NovaSolidTimeAlarm as AlarmIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Cta from '../../atom/cta';\nimport Select from '../../atom/select';\nimport Picture from '../../atom/picture';\nimport InputSwitch from '../../atom/input-switch';\nimport Link from '../../atom/link';\nimport Search from '../../atom/input-search';\nimport SearchForm from '../../molecule/search-form';\nimport style from './style.css';\n\nclass MoocHeader extends React.Component {\n static propTypes = {\n logo: PropTypes.shape({\n src: PropTypes.string,\n srcMobile: PropTypes.string,\n href: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'button-aria-label': PropTypes.string\n }),\n search: PropTypes.shape(Search.propTypes),\n 'search-reset-aria-label': PropTypes.string,\n onSubmitSearch: PropTypes.func,\n onResetSearch: PropTypes.func,\n pages: PropTypes.shape({\n displayed: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number,\n 'page-count-aria-label': PropTypes.string\n })\n ),\n more: PropTypes.arrayOf(\n PropTypes.shape({\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n title: PropTypes.string,\n name: PropTypes.string,\n href: PropTypes.string,\n selected: PropTypes.bool,\n counter: PropTypes.number\n })\n )\n }),\n links: PropTypes.arrayOf(PropTypes.shape(Cta.propTypes)),\n user: PropTypes.shape({\n picture: PropTypes.string,\n 'picture-aria-label': PropTypes.string,\n href: PropTypes.string,\n notifications: PropTypes.shape({\n href: PropTypes.string,\n value: PropTypes.number,\n 'aria-label': PropTypes.string\n }),\n stats: PropTypes.shape({\n stars: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n ranking: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n badge: PropTypes.shape({\n href: PropTypes.string,\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n })\n })\n }),\n 'settings-aria-label': PropTypes.string,\n 'close-settings-aria-label': PropTypes.string,\n settings: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.oneOf(['select', 'switch', 'link']),\n color: PropTypes.string,\n 'aria-label': PropTypes.string,\n options: PropTypes.shape({\n href: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n values: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool\n })\n )\n })\n })\n ),\n onMenuOpen: PropTypes.func,\n onMenuClose: PropTypes.func\n };\n\n static contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isSettingsOpen: false,\n isMenuOpen: false,\n isFocus: false\n };\n\n this.handleSettingsToggle = this.handleSettingsToggle.bind(this);\n this.handleMenuToggle = this.handleMenuToggle.bind(this);\n this._checkOnClose = this._checkOnClose.bind(this);\n this.handleLinkClick = this.handleLinkClick.bind(this);\n this.setMenuSettings = this.setMenuSettings.bind(this);\n this.handleSubmitSearch = this.handleSubmitSearch.bind(this);\n this.handleResetSearch = this.handleResetSearch.bind(this);\n this.handleOnFocus = this.handleOnFocus.bind(this);\n this.handleOnBlur = this.handleOnBlur.bind(this);\n this.handleOnMenuOpen = this.handleOnMenuOpen.bind(this);\n this.handleOnMenuClose = this.handleOnMenuClose.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, prevContext) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n document.addEventListener('click', this._checkOnClose);\n document.addEventListener('touchstart', this._checkOnClose);\n } else {\n document.removeEventListener('click', this._checkOnClose);\n document.removeEventListener('touchstart', this._checkOnClose);\n }\n }\n\n setMenuSettings(el) {\n this.menuSettings = el;\n }\n\n _checkOnClose(clickEvent) {\n const {isSettingsOpen} = this.state;\n if (isSettingsOpen) {\n const menu = this.menuSettings;\n if (menu && !menu.contains(clickEvent.target)) {\n this.handleSettingsToggle();\n }\n }\n }\n\n handleLinkClick() {\n const {isMenuOpen} = this.state;\n isMenuOpen && this.handleMenuToggle();\n }\n\n handleSettingsToggle() {\n this.setState(prevState => ({\n isSettingsOpen: !prevState.isSettingsOpen\n }));\n }\n\n handleMenuToggle() {\n const {isMenuOpen} = this.state;\n isMenuOpen ? this.handleOnMenuClose() : this.handleOnMenuOpen();\n this.setState(prevState => ({\n isMenuOpen: !prevState.isMenuOpen\n }));\n }\n\n handleSubmitSearch() {\n const {onSubmitSearch} = this.props;\n if (onSubmitSearch) {\n onSubmitSearch();\n }\n }\n\n handleResetSearch() {\n const {onResetSearch} = this.props;\n if (onResetSearch) {\n onResetSearch();\n }\n }\n\n handleOnFocus() {\n this.setState(prevState => ({\n isFocus: true\n }));\n }\n\n handleOnBlur() {\n this.setState(prevState => ({\n isFocus: false\n }));\n }\n\n handleOnMenuOpen() {\n const {onMenuOpen} = this.props;\n if (onMenuOpen) {\n onMenuOpen();\n }\n }\n\n handleOnMenuClose() {\n const {onMenuClose} = this.props;\n if (onMenuClose) {\n onMenuClose();\n }\n }\n\n render() {\n if (isEmpty(this.props)) return null;\n const {\n logo = {},\n pages: items,\n settings,\n user,\n links,\n search,\n 'search-reset-aria-label': searchResetAriaLabel,\n 'settings-aria-label': settingsAriaLabel,\n 'close-settings-aria-label': closeSettingsAriaLabel\n } = this.props;\n const {isFocus, isSettingsOpen, isMenuOpen} = this.state;\n const {translate, skin} = this.context;\n const {'aria-label': logoAriaLabel, 'button-aria-label': logoButtonAriaLabel} = logo;\n const logoUrl = get('src', logo) || get('images.logo', skin);\n const logoMobileUrl = get('srcMobile', logo) || getOr(logoUrl, 'images.logo-mobile', skin);\n\n let pagesView = null;\n let linksView = null;\n let userView = null;\n let settingsView = null;\n let notificationsView = null;\n let searchFormView = null;\n\n const moreLabel = translate('More');\n const closeLabel = translate('Close');\n const primaryColor = get('common.primary', skin);\n const mediumColor = get('common.medium', skin);\n const darkColor = get('common.dark', skin);\n const white = get('common.white', skin);\n const iconWrapperStyle = {backgroundColor: primaryColor};\n\n if (items) {\n const displayedPages = items.displayed.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {'page-count-aria-label': pageCountAriaLabel} = item;\n const pageBadge =\n item.counter > 0 ? (\n <Link\n href={item.href}\n data-name=\"item-badge\"\n className={style.itemBadge}\n aria-label={pageCountAriaLabel}\n >\n {item.counter}\n </Link>\n ) : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n key={itemName}\n data-name={`item-${itemName}`}\n href={item.href}\n className={item.selected ? style.activePage : style.item}\n skinHover\n onClick={this.handleLinkClick}\n target={item.target || null}\n aria-label={item.title}\n style={{\n ...activeColor\n }}\n >\n {item.title}\n {pageBadge}\n <span\n className={style.bar}\n style={{\n backgroundColor: primaryColor\n }}\n />\n </Link>\n );\n });\n\n const optionsView = items.more.map((item, index) => {\n const activeColor = item.selected\n ? {\n color: primaryColor\n }\n : null;\n\n const {name: itemName = index} = item;\n\n return (\n <Link\n href={item.href}\n key={itemName}\n className={style.option}\n data-name={`item-more-${itemName}`}\n target={item.target || null}\n aria-label={item.title}\n onClick={this.handleLinkClick}\n skinHover\n style={{\n ...activeColor\n }}\n >\n {item.title}\n </Link>\n );\n });\n\n pagesView = (\n <div className={search.value || isFocus ? style.noItems : style.items}>\n {displayedPages}\n <div className={style.more}>\n <div\n className={style.currentOption}\n aria-haspopup=\"true\"\n data-name=\"item-more\"\n aria-label={moreLabel}\n >\n {moreLabel}\n <ArrowDown color={mediumColor} className={style.caret} />\n </div>\n <div className={style.optionsGroup}>{optionsView}</div>\n </div>\n </div>\n );\n }\n\n if (links) {\n const ctas = links.map((cta, index) => {\n return (\n <Cta {...cta} key={index} className={index + 1 === links.length ? null : style.ctaLink} />\n );\n });\n\n linksView = <div className={style.links}>{ctas}</div>;\n }\n\n if (user) {\n const nbNotifications = getOr(0, 'notifications.value', user);\n const notificationsAriaLabel = getOr('', 'notifications.aria-label', user);\n\n notificationsView =\n nbNotifications > 0 ? (\n <Link\n href={user.notifications.href}\n data-name=\"user-notifications\"\n className={style.notifications}\n >\n {nbNotifications}\n </Link>\n ) : null;\n const notificationPageView = (\n <Link\n className={classnames(style.notification, nbNotifications > 0 ? style.active : null)}\n data-name=\"stat-notifications\"\n href={user.notifications.href}\n aria-label={notificationsAriaLabel}\n >\n <div>\n <AlarmIcon width={16} height={16} />\n </div>\n {notificationsView}\n </Link>\n );\n userView = (\n <div className={style.user}>\n <div className={style.stats}>\n <Link\n className={style.stat}\n data-name=\"stat-stars\"\n href={user.stats.stars.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.stars['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <StarIcon className={style.stars} color={white} />\n </div>\n <div data-name=\"value\" className={style.label}>\n {user.stats.stars.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-ranking\"\n href={user.stats.ranking.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.ranking['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <ChartsIcon className={style.ranking} color={white} />\n </div>\n\n <div data-name=\"value\" className={style.label}>\n {user.stats.ranking.label}\n </div>\n </Link>\n <Link\n className={style.stat}\n data-name=\"stat-badge\"\n href={user.stats.badge.href}\n onClick={this.handleLinkClick}\n aria-label={user.stats.badge['aria-label']}\n >\n <div className={style.iconWrapper} style={iconWrapperStyle}>\n <TrophyIcon className={style.badge} color={white} />\n </div>\n <div className={style.label}>{user.stats.badge.label}</div>\n </Link>\n </div>\n <div className={style.avatarWrapper}>\n {notificationPageView}\n <div className={style.avatar} data-name=\"user-avatar\">\n <Link\n href={user.href}\n className={style.userLink}\n onClick={this.handleLinkClick}\n aria-label={user['picture-aria-label']}\n >\n <Picture src={user.picture} />\n </Link>\n </div>\n </div>\n </div>\n );\n }\n\n if (settings) {\n const settingsElements = settings.map((setting, index) => {\n let settingView = null;\n const {\n options,\n type,\n title,\n name: settingName = index,\n color,\n hoverColor,\n 'aria-label': ariaLabel\n } = setting;\n\n switch (type) {\n case 'link': {\n settingView = (\n <div data-name={`setting-${settingName}`} className={style.setting} key={settingName}>\n <Link\n className={style.link}\n href={options.href}\n skinHover\n hoverColor={hoverColor}\n onClick={this.handleLinkClick}\n target={options.target || null}\n aria-label={ariaLabel || title}\n style={{\n color\n }}\n >\n {title}\n </Link>\n </div>\n );\n break;\n }\n case 'select': {\n const selectProps = {};\n selectProps.options = options.values;\n selectProps.title = '';\n selectProps.theme = 'header';\n selectProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <Select {...selectProps} />\n </div>\n );\n break;\n }\n case 'switch': {\n const switchProps = {};\n switchProps.value = options.value;\n switchProps.id = `input-switch-${index}`;\n switchProps.onChange = options.onChange;\n\n settingView = (\n <div\n data-name={`setting-${settingName}`}\n className={style.setting}\n key={settingName}\n aria-label={ariaLabel || title}\n >\n <span className={style.label}>{title}</span>\n <InputSwitch {...switchProps} />\n </div>\n );\n break;\n }\n }\n\n return settingView;\n });\n\n settingsView = (\n <div className={style.settings} ref={this.setMenuSettings}>\n <CogIcon\n data-name=\"settings-toggle\"\n color={darkColor}\n className={style.settingsToggle}\n onClick={this.handleSettingsToggle}\n aria-expanded={isSettingsOpen}\n aria-label={settingsAriaLabel}\n />\n <div className={isSettingsOpen ? style.settingsWrapper : style.settingsWrapperHidden}>\n <div data-name=\"settings\" className={style.settingsGroup}>\n {settingsElements}\n </div>\n <div\n className={style.closeSettings}\n onClick={this.handleSettingsToggle}\n aria-label={closeSettingsAriaLabel}\n >\n {closeLabel}\n </div>\n </div>\n </div>\n );\n }\n\n if (search) {\n searchFormView = (\n <div\n data-name=\"Search-Bar\"\n className={isMenuOpen ? style.hiddenSearchBar : style.searchBar}\n >\n <SearchForm\n search={search}\n onSubmit={this.handleSubmitSearch}\n onReset={this.handleResetSearch}\n onSearchFocus={this.handleOnFocus}\n onSearchBlur={this.handleOnBlur}\n search-reset-aria-label={searchResetAriaLabel}\n />\n </div>\n );\n }\n\n return (\n <header className={style.wrapper}>\n <div\n data-name=\"moocHeader\"\n data-open={isMenuOpen}\n className={isMenuOpen ? style.open : style.header}\n >\n <div className={style.logoWrapper}>\n <div\n className={style.logoMobile}\n data-name=\"logo-mobile\"\n onClick={this.handleMenuToggle}\n aria-label={logoButtonAriaLabel}\n role=\"button\"\n >\n <Picture src={logoMobileUrl} aria-label={logoAriaLabel} />\n {notificationsView}\n <ArrowDown color={mediumColor} className={isMenuOpen ? style.caretUp : style.caret} />\n </div>\n <Link\n className={style.logo}\n data-name=\"logo\"\n href={logo.href}\n aria-label={logoAriaLabel}\n >\n <Picture src={logoUrl} />\n </Link>\n </div>\n {searchFormView}\n <div\n className={isMenuOpen ? style.menuWrapper : style.hiddenMenuWrapper}\n data-name=\"menu-wrapper\"\n >\n {pagesView}\n {userView || linksView}\n {settingsView}\n </div>\n </div>\n </header>\n );\n }\n}\n\nexport default MoocHeader;\n"],"mappings":"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"}
@@ -68,7 +68,7 @@
68
68
  height: 100%;
69
69
  }
70
70
 
71
- .navMobile {
71
+ .logoMobile {
72
72
  display: none;
73
73
  }
74
74
 
@@ -108,28 +108,9 @@
108
108
  transition: transform 0.3s;
109
109
  }
110
110
 
111
- .burger {
112
- margin: 0 20px 0 0;
113
- color: medium;
114
- width: 25px;
115
- height: 25px;
116
- }
117
-
118
- .burgerHidden {
111
+ .caretUp {
119
112
  composes: caret;
120
- display: none;
121
- }
122
-
123
- .close {
124
- margin: 0 20px 0 0;
125
- color: medium;
126
- width: 25px;
127
- height: 25px;
128
- }
129
-
130
- .closeHidden {
131
- composes: close;
132
- display: none;
113
+ transform: rotate(180deg);
133
114
  }
134
115
 
135
116
  .optionsGroup {
@@ -517,7 +498,7 @@
517
498
  height: 100%;
518
499
  }
519
500
 
520
- .navMobile {
501
+ .logoMobile {
521
502
  display: none;
522
503
  }
523
504
 
@@ -551,14 +532,14 @@
551
532
  .logoWrapper {
552
533
  background-color: white;
553
534
  z-index: 2;
554
- margin: 0 8px 0 0;
535
+ margin: 0 8px;
555
536
  }
556
537
 
557
538
  .logo {
558
539
  display: none;
559
540
  }
560
541
 
561
- .navMobile {
542
+ .logoMobile {
562
543
  display: flex;
563
544
  align-items: center;
564
545
  cursor: pointer;
@@ -570,7 +551,7 @@
570
551
  min-height: 30px;
571
552
  }
572
553
 
573
- .navMobile img {
554
+ .logoMobile img {
574
555
  height: auto;
575
556
  max-height: 50px;
576
557
  width: auto;
@@ -579,6 +560,11 @@
579
560
  align-self: center;
580
561
  }
581
562
 
563
+ .logoMobile .notifications {
564
+ top: 5px;
565
+ right: 10px;
566
+ }
567
+
582
568
  .hiddenMenuWrapper {
583
569
  display: none;
584
570
  top: 0px;
@@ -0,0 +1 @@
1
+ {"ignore_dirs":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "10.29.7-alpha.12+f468e817d",
3
+ "version": "10.29.8",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -157,5 +157,5 @@
157
157
  "last 2 versions",
158
158
  "IE 11"
159
159
  ],
160
- "gitHead": "f468e817dbf4deae7459932bfedfa53e547b79fb"
160
+ "gitHead": "05d24775ec7d44bda1e444685a9aafa403e456b8"
161
161
  }