@coorpacademy/components 11.2.2 → 11.2.4

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.
Files changed (64) hide show
  1. package/es/atom/choice/index.native.d.ts.map +1 -1
  2. package/es/atom/choice/index.native.js +3 -2
  3. package/es/atom/choice/index.native.js.map +1 -1
  4. package/es/molecule/card-content/index.d.ts.map +1 -1
  5. package/es/molecule/card-content/index.js +3 -3
  6. package/es/molecule/card-content/index.js.map +1 -1
  7. package/es/molecule/dashboard/cards-list/index.d.ts +4 -0
  8. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  9. package/es/molecule/dashboard/cards-list/index.js +11 -4
  10. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  11. package/es/organism/mooc-footer/index.d.ts +1 -1
  12. package/es/organism/mooc-footer/index.js +2 -2
  13. package/es/organism/mooc-footer/index.js.map +1 -1
  14. package/es/organism/mooc-header/index.d.ts +1 -0
  15. package/es/organism/mooc-header/index.d.ts.map +1 -1
  16. package/es/organism/mooc-header/index.js +7 -3
  17. package/es/organism/mooc-header/index.js.map +1 -1
  18. package/es/organism/review-slide/index.native.d.ts.map +1 -1
  19. package/es/organism/review-slide/index.native.js +16 -10
  20. package/es/organism/review-slide/index.native.js.map +1 -1
  21. package/es/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  22. package/es/organism/review-stacked-slides/index.native.js +3 -2
  23. package/es/organism/review-stacked-slides/index.native.js.map +1 -1
  24. package/es/template/app-player/popin-end/index.d.ts +4 -0
  25. package/es/template/app-player/popin-end/summary.d.ts +4 -0
  26. package/es/template/common/dashboard/index.d.ts +10 -6
  27. package/es/template/common/dashboard/index.d.ts.map +1 -1
  28. package/es/template/common/dashboard/index.js +9 -3
  29. package/es/template/common/dashboard/index.js.map +1 -1
  30. package/es/template/common/search-page/index.d.ts +4 -0
  31. package/es/template/teams-dashboard/index.d.ts +4 -0
  32. package/lib/atom/choice/index.native.d.ts.map +1 -1
  33. package/lib/atom/choice/index.native.js +3 -2
  34. package/lib/atom/choice/index.native.js.map +1 -1
  35. package/lib/molecule/card-content/index.d.ts.map +1 -1
  36. package/lib/molecule/card-content/index.js +3 -3
  37. package/lib/molecule/card-content/index.js.map +1 -1
  38. package/lib/molecule/dashboard/cards-list/index.d.ts +4 -0
  39. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  40. package/lib/molecule/dashboard/cards-list/index.js +11 -4
  41. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  42. package/lib/organism/mooc-footer/index.d.ts +1 -1
  43. package/lib/organism/mooc-footer/index.js +2 -2
  44. package/lib/organism/mooc-footer/index.js.map +1 -1
  45. package/lib/organism/mooc-header/index.d.ts +1 -0
  46. package/lib/organism/mooc-header/index.d.ts.map +1 -1
  47. package/lib/organism/mooc-header/index.js +7 -3
  48. package/lib/organism/mooc-header/index.js.map +1 -1
  49. package/lib/organism/review-slide/index.native.d.ts.map +1 -1
  50. package/lib/organism/review-slide/index.native.js +15 -9
  51. package/lib/organism/review-slide/index.native.js.map +1 -1
  52. package/lib/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  53. package/lib/organism/review-stacked-slides/index.native.js +2 -1
  54. package/lib/organism/review-stacked-slides/index.native.js.map +1 -1
  55. package/lib/template/app-player/popin-end/index.d.ts +4 -0
  56. package/lib/template/app-player/popin-end/summary.d.ts +4 -0
  57. package/lib/template/common/dashboard/index.d.ts +10 -6
  58. package/lib/template/common/dashboard/index.d.ts.map +1 -1
  59. package/lib/template/common/dashboard/index.js +9 -3
  60. package/lib/template/common/dashboard/index.js.map +1 -1
  61. package/lib/template/common/search-page/index.d.ts +4 -0
  62. package/lib/template/teams-dashboard/index.d.ts +4 -0
  63. package/locales/.mtslconfig.json +1 -0
  64. package/package.json +2 -2
@@ -1 +1 @@
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
+ {"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;AAqEF,QAAA,MAAM,MAAM,8GAUT,KAAK,uBAqFP,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -16,7 +16,7 @@ const createStyleSheet = (theme, squeezed) => StyleSheet.create({
16
16
  height: 4
17
17
  },
18
18
  shadowOpacity: 0.12,
19
- shadowRadius: 16,
19
+ shadowRadius: 8,
20
20
  elevation: 8,
21
21
  backgroundColor: '#0000'
22
22
  },
@@ -24,7 +24,8 @@ const createStyleSheet = (theme, squeezed) => StyleSheet.create({
24
24
  backgroundColor: theme.colors.white,
25
25
  borderRadius: theme.radius.regular,
26
26
  flexDirection: 'row',
27
- alignItems: 'stretch'
27
+ alignItems: 'stretch',
28
+ minHeight: 60
28
29
  },
29
30
  textContainer: {
30
31
  paddingHorizontal: 24,
@@ -1 +1 @@
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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"}
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","minHeight","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: 8,\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 minHeight: 60\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":";;AAAA,OAAOA,KAAP,IAAeC,SAAf,EAA0BC,QAA1B,QAAyC,OAAzC;AACA,SAAQC,IAAR,EAAcC,UAAd,QAAqD,cAArD;AAEA,OAAOC,IAAP,MAAiB,sBAAjB;AACA,OAAOC,eAAP,MAA4B,kCAA5B;AAEA,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,CAJL;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,SAJH;IAKTC,SAAS,EAAE;EALF,CATK;EAgBhBC,aAAa,EAAE;IACbC,iBAAiB,EAAE,EADN;IAEbC,eAAe,EAAE,EAFJ;IAGbC,cAAc,EAAE,QAHH;IAIbL,UAAU,EAAE,QAJC;IAKbM,IAAI,EAAE;EALO,CAhBC;EAuBhBC,qBAAqB,EAAE;IACrBC,OAAO,EAAE3B,KAAK,CAAC4B,OAAN,CAAcC,KADF;IAErBC,WAAW,EAAEC,SAFQ;IAGrBR,eAAe,EAAEQ,SAHI;IAIrBC,YAAY,EAAED,SAJO;IAKrBN,IAAI,EAAE;EALe,CAvBP;EA8BhBQ,IAAI,EAAE;IACJC,QAAQ,EAAEjC,QAAQ,GAAGD,KAAK,CAACkC,QAAN,CAAeC,MAAlB,GAA2BnC,KAAK,CAACkC,QAAN,CAAejB,OADxD;IAEJmB,UAAU,EAAEpC,KAAK,CAACoC,UAAN,CAAiBC,IAFzB;IAGJC,KAAK,EAAEtC,KAAK,CAACa,MAAN,CAAa0B,KAHhB;IAIJC,SAAS,EAAE;EAJP,CA9BU;EAoChBC,YAAY,EAAE;IACZH,KAAK,EAAEtC,KAAK,CAACa,MAAN,CAAaC;EADR,CApCE;EAuChB4B,wBAAwB,EAAE;IACxBC,gBAAgB,EAAE3C,KAAK,CAACa,MAAN,CAAa+B;EADP,CAvCV;EA0ChBC,cAAc,EAAE;IACdtC,MAAM,EAAE,MADM;IAEdD,KAAK,EAAE,KAFO;IAGdwC,QAAQ,EAAE,QAHI;IAIdC,mBAAmB,EAAE/C,KAAK,CAACgB,MAAN,CAAaC,OAJpB;IAKd+B,sBAAsB,EAAEhD,KAAK,CAACgB,MAAN,CAAaC;EALvB,CA1CA;EAiDhBgC,KAAK,EAAE;IACLxB,IAAI,EAAE;EADD;AAjDS,CAAlB,CADF;;AAuDA,MAAMyB,MAAM,GAAG,CAAC;EACdC,QADc;EAEdC,UAAU,GAAG,KAFC;EAGdnD,QAAQ,GAAG,KAHG;EAIdoD,UAJc;EAKdC,OALc;EAMdC,KANc;EAOdC,MAAM,EAAEC,YAPM;EAQdC,KARc;EASdC;AATc,CAAD,KAUF;EACX,MAAMC,eAAe,GAAG9D,kBAAkB,EAA1C;EACA,MAAM;IAACE,KAAD;IAAQ6D;EAAR,IAAsBD,eAA5B;EAEA,MAAM,CAACE,UAAD,EAAaC,aAAb,IAA8BxE,QAAQ,CAAwB,IAAxB,CAA5C;EAEAD,SAAS,CAAC,MAAM;IACd,MAAM0E,WAAW,GAAGjE,gBAAgB,CAACC,KAAD,EAAQC,QAAR,CAApC;;IACA8D,aAAa,CAACC,WAAD,CAAb;EACD,CAHQ,EAGN,CAAChE,KAAD,EAAQC,QAAR,CAHM,CAAT;;EAKA,IAAI,CAAC6D,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,IAIA3E,WAAW,CAAC2D,KAAK,CAACe,GAAN,CAAU,CAAV,EAAaD,GAAd,CALb;EAOA,MAAMG,MAAM,GAAG;IAACC,GAAG,EAAEJ,GAAG,GAAGzE,WAAW,CAACyE,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,IAAIpB,QAAJ,EAAc;IACZ2E,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/BlD,eAAe,EAAEkD,UAAU,CAAChD,MAAX,EAAmBkE,OADL;MAE/BC,WAAW,EAAEnB,UAAU,CAAChD,MAAX,EAAmBkE;IAFD,GAG3BV,GAAG,GACH;MACEY,oBAAoB,EAAEjF,KAAK,CAACgB,MAAN,CAAaC,OADrC;MAEEiE,uBAAuB,EAAElF,KAAK,CAACgB,MAAN,CAAaC;IAFxC,CADG,GAKH;MACEF,YAAY,EAAEf,KAAK,CAACgB,MAAN,CAAaC;IAD7B,CAR2B,CAAjC;;IAaA,IAAI6D,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,CAAC3D,SAAZ,EAAuB2D,UAAU,CAAClD,SAAlC,CADT;IAEE,MAAM,EAAE6C,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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;AAyHA;;;;;;;;;;;;;;gBAgFC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;AAyHA;;;;;;;;;;;;;;gBA6EC"}
@@ -145,10 +145,10 @@ const ContentInfo = ({
145
145
  "aria-label": _get('progression', ariaLabel)
146
146
  }) : null) : null;
147
147
  const adaptiveIcon = adaptiv ? /*#__PURE__*/React.createElement("div", {
148
- className: classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null),
149
- "aria-label": _get('adaptive', ariaLabel)
148
+ className: classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null)
150
149
  }, /*#__PURE__*/React.createElement(AdaptivIcon, {
151
- height: 25
150
+ height: 25,
151
+ "aria-label": _get('adaptive', ariaLabel)
152
152
  })) : null;
153
153
  return /*#__PURE__*/React.createElement("div", {
154
154
  "data-name": "info",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionCoorpacademyAdaptive","AdaptivIcon","NovaSolidStatusCheckCircle2","CheckIcon","NovaCompositionCoorpacademyTimer","TimerIcon","isExternalContent","EXTERNAL_CONTENT_ICONS","Provider","ContentBadge","style","MODES","HERO","CARD","THEMES","default","coorpmanager","ContentTypeInfo","mode","type","externalContent","context","translate","microLearningIcon","timerIcon","microLearninglabel","textColor","color","contentTypeInfo","contextTypes","skin","childContextTypes","propTypes","bool","string","CardTitle","title","empty","courseContent","innerHTML","lightTitle","darkTitle","__html","AuthorName","author","certifiedAuthor","ariaLabel","checkIcon","authorIcon","iconShadow","darkAuthorTitle","ContentInfo","adaptiv","disabled","progress","badgeCategory","badgeLabel","theme","progressBarColor","inlineProgressValueStyle","backgroundColor","width","chapterContent","progressBar","progressWrapper","hideProgressBar","adaptiveIcon","infoWrapper","hero","card","progressBarDisabled","cardInfo","microLearningCardInfo","iconWrapper","number","category","label","oneOf","shape","progression","adaptive"],"sources":["../../../src/molecule/card-content/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyAdaptive as AdaptivIcon,\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport ContentBadge from '../../atom/content-badge';\nimport style from './style.css';\n\nexport const MODES = {\n HERO: 'hero',\n CARD: 'card'\n};\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ContentTypeInfo = ({mode, type, externalContent}, context) => {\n const {translate} = context;\n if (mode !== MODES.CARD) {\n return null;\n }\n\n if (type === 'chapter') {\n return (\n <div className={style.microLearningIcon}>\n <TimerIcon className={style.timerIcon} />\n <span className={style.microLearninglabel}>{\"5' learning\"}</span>\n </div>\n );\n }\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const textColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n return (\n <div className={style.contentTypeInfo} style={{color: textColor}}>\n {type === 'scorm' ? translate('external_content_scorm') : ''}\n {type === 'video' ? translate('external_content_video') : ''}\n {type === 'article' ? translate('external_content_article') : ''}\n {type === 'podcast' ? translate('external_content_podcast') : ''}\n </div>\n );\n }\n\n return null;\n};\n\nContentTypeInfo.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContentTypeInfo.propTypes = {\n externalContent: PropTypes.bool,\n type: PropTypes.string,\n mode: PropTypes.string\n};\n\nconst CardTitle = ({title, empty, courseContent}) => {\n return (\n <div\n className={classnames(\n style.title,\n style.innerHTML,\n courseContent ? style.lightTitle : style.darkTitle,\n empty ? style.empty : null\n )}\n data-name=\"title\"\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n};\n\nCardTitle.propTypes = {\n title: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool\n};\n\nconst AuthorName = ({author, empty, courseContent, certifiedAuthor, 'aria-label': ariaLabel}) => {\n const checkIcon = certifiedAuthor ? (\n <CheckIcon\n className={classnames(style.authorIcon, courseContent ? style.iconShadow : null)}\n color=\"inherit\"\n />\n ) : null;\n\n return (\n <div\n data-name=\"author\"\n title={author}\n aria-label={ariaLabel}\n className={classnames(\n style.author,\n courseContent ? style.lightTitle : style.darkAuthorTitle,\n empty ? style.empty : null\n )}\n >\n <span>{author}</span>\n {checkIcon}\n </div>\n );\n};\n\nAuthorName.propTypes = {\n author: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool,\n certifiedAuthor: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst ContentInfo = ({\n adaptiv,\n author,\n certifiedAuthor = false,\n disabled = false,\n empty = false,\n mode = MODES.CARD,\n progress,\n title,\n type,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': ariaLabel\n}) => {\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${progress * 100}%`\n };\n const externalContent = isExternalContent(type);\n const courseContent = type === 'course';\n const chapterContent = type === 'chapter';\n\n const progressBar =\n mode === MODES.HERO || (!empty && !disabled) ? (\n <div className={!isNil(progress) ? style.progressWrapper : style.hideProgressBar}>\n {!disabled ? (\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n aria-label={get('progression', ariaLabel)}\n />\n ) : null}\n </div>\n ) : null;\n\n const adaptiveIcon = adaptiv ? (\n <div\n className={classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null)}\n aria-label={get('adaptive', ariaLabel)}\n >\n <AdaptivIcon height={25} />\n </div>\n ) : null;\n\n return (\n <div\n data-name=\"info\"\n className={classnames(\n THEMES[theme],\n style.infoWrapper,\n mode === MODES.HERO ? style.hero : style.card,\n disabled ? style.progressBarDisabled : null,\n externalContent ? style.externalContent : null\n )}\n >\n <ContentTypeInfo mode={mode} type={type} externalContent={externalContent} />\n <div\n className={classnames(style.cardInfo, chapterContent ? style.microLearningCardInfo : null)}\n >\n <div className={style.iconWrapper}>\n {adaptiveIcon}\n {!empty && badgeLabel && badgeCategory && courseContent ? (\n <ContentBadge category={badgeCategory} label={badgeLabel} />\n ) : null}\n </div>\n <CardTitle title={title} empty={empty} courseContent={courseContent} />\n <AuthorName\n author={author}\n empty={empty}\n courseContent={courseContent}\n certifiedAuthor={certifiedAuthor}\n aria-label={get('author', ariaLabel)}\n />\n </div>\n {progressBar}\n </div>\n );\n};\n\nContentInfo.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nContentInfo.propTypes = {\n adaptiv: PropTypes.bool,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n progress: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.string,\n mode: PropTypes.string,\n badgeCategory: ContentBadge.propTypes.category,\n badgeLabel: ContentBadge.propTypes.label,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.shape({\n author: PropTypes.string,\n progression: PropTypes.string,\n adaptive: PropTypes.string\n })\n};\n\nexport default ContentInfo;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","NovaCompositionCoorpacademyAdaptive","AdaptivIcon","NovaSolidStatusCheckCircle2","CheckIcon","NovaCompositionCoorpacademyTimer","TimerIcon","isExternalContent","EXTERNAL_CONTENT_ICONS","Provider","ContentBadge","style","MODES","HERO","CARD","THEMES","default","coorpmanager","ContentTypeInfo","mode","type","externalContent","context","translate","microLearningIcon","timerIcon","microLearninglabel","textColor","color","contentTypeInfo","contextTypes","skin","childContextTypes","propTypes","bool","string","CardTitle","title","empty","courseContent","innerHTML","lightTitle","darkTitle","__html","AuthorName","author","certifiedAuthor","ariaLabel","checkIcon","authorIcon","iconShadow","darkAuthorTitle","ContentInfo","adaptiv","disabled","progress","badgeCategory","badgeLabel","theme","progressBarColor","inlineProgressValueStyle","backgroundColor","width","chapterContent","progressBar","progressWrapper","hideProgressBar","adaptiveIcon","infoWrapper","hero","card","progressBarDisabled","cardInfo","microLearningCardInfo","iconWrapper","number","category","label","oneOf","shape","progression","adaptive"],"sources":["../../../src/molecule/card-content/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyAdaptive as AdaptivIcon,\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport ContentBadge from '../../atom/content-badge';\nimport style from './style.css';\n\nexport const MODES = {\n HERO: 'hero',\n CARD: 'card'\n};\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ContentTypeInfo = ({mode, type, externalContent}, context) => {\n const {translate} = context;\n if (mode !== MODES.CARD) {\n return null;\n }\n\n if (type === 'chapter') {\n return (\n <div className={style.microLearningIcon}>\n <TimerIcon className={style.timerIcon} />\n <span className={style.microLearninglabel}>{\"5' learning\"}</span>\n </div>\n );\n }\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const textColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n return (\n <div className={style.contentTypeInfo} style={{color: textColor}}>\n {type === 'scorm' ? translate('external_content_scorm') : ''}\n {type === 'video' ? translate('external_content_video') : ''}\n {type === 'article' ? translate('external_content_article') : ''}\n {type === 'podcast' ? translate('external_content_podcast') : ''}\n </div>\n );\n }\n\n return null;\n};\n\nContentTypeInfo.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContentTypeInfo.propTypes = {\n externalContent: PropTypes.bool,\n type: PropTypes.string,\n mode: PropTypes.string\n};\n\nconst CardTitle = ({title, empty, courseContent}) => {\n return (\n <div\n className={classnames(\n style.title,\n style.innerHTML,\n courseContent ? style.lightTitle : style.darkTitle,\n empty ? style.empty : null\n )}\n data-name=\"title\"\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n};\n\nCardTitle.propTypes = {\n title: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool\n};\n\nconst AuthorName = ({author, empty, courseContent, certifiedAuthor, 'aria-label': ariaLabel}) => {\n const checkIcon = certifiedAuthor ? (\n <CheckIcon\n className={classnames(style.authorIcon, courseContent ? style.iconShadow : null)}\n color=\"inherit\"\n />\n ) : null;\n\n return (\n <div\n data-name=\"author\"\n title={author}\n aria-label={ariaLabel}\n className={classnames(\n style.author,\n courseContent ? style.lightTitle : style.darkAuthorTitle,\n empty ? style.empty : null\n )}\n >\n <span>{author}</span>\n {checkIcon}\n </div>\n );\n};\n\nAuthorName.propTypes = {\n author: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool,\n certifiedAuthor: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst ContentInfo = ({\n adaptiv,\n author,\n certifiedAuthor = false,\n disabled = false,\n empty = false,\n mode = MODES.CARD,\n progress,\n title,\n type,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': ariaLabel\n}) => {\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${progress * 100}%`\n };\n const externalContent = isExternalContent(type);\n const courseContent = type === 'course';\n const chapterContent = type === 'chapter';\n\n const progressBar =\n mode === MODES.HERO || (!empty && !disabled) ? (\n <div className={!isNil(progress) ? style.progressWrapper : style.hideProgressBar}>\n {!disabled ? (\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n aria-label={get('progression', ariaLabel)}\n />\n ) : null}\n </div>\n ) : null;\n\n const adaptiveIcon = adaptiv ? (\n <div className={classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null)}>\n <AdaptivIcon height={25} aria-label={get('adaptive', ariaLabel)} />\n </div>\n ) : null;\n\n return (\n <div\n data-name=\"info\"\n className={classnames(\n THEMES[theme],\n style.infoWrapper,\n mode === MODES.HERO ? style.hero : style.card,\n disabled ? style.progressBarDisabled : null,\n externalContent ? style.externalContent : null\n )}\n >\n <ContentTypeInfo mode={mode} type={type} externalContent={externalContent} />\n <div\n className={classnames(style.cardInfo, chapterContent ? style.microLearningCardInfo : null)}\n >\n <div className={style.iconWrapper}>\n {adaptiveIcon}\n {!empty && badgeLabel && badgeCategory && courseContent ? (\n <ContentBadge category={badgeCategory} label={badgeLabel} />\n ) : null}\n </div>\n <CardTitle title={title} empty={empty} courseContent={courseContent} />\n <AuthorName\n author={author}\n empty={empty}\n courseContent={courseContent}\n certifiedAuthor={certifiedAuthor}\n aria-label={get('author', ariaLabel)}\n />\n </div>\n {progressBar}\n </div>\n );\n};\n\nContentInfo.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nContentInfo.propTypes = {\n adaptiv: PropTypes.bool,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n progress: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.string,\n mode: PropTypes.string,\n badgeCategory: ContentBadge.propTypes.category,\n badgeLabel: ContentBadge.propTypes.label,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.shape({\n author: PropTypes.string,\n progression: PropTypes.string,\n adaptive: PropTypes.string\n })\n};\n\nexport default ContentInfo;\n"],"mappings":"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"}
@@ -8,6 +8,10 @@ declare class CardsList extends React.PureComponent<any, any, any> {
8
8
  cards: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
9
9
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
10
10
  onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
11
+ 'arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
12
+ showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
13
+ showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
14
+ }>>;
11
15
  };
12
16
  static contextTypes: {
13
17
  skin: PropTypes.Requireable<PropTypes.InferProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;;;;;;MAQE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IApBC;;;;;;;;MAQC;IAED,0DAAgE;IAuGlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAxIC,uEAA6D;IA0I/D,mCAIC;IA1DD,oCAMC;IAED,sCAIC;IA1DD,qBAGC;IAlCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IAOD,wCAuCC;IAGC,kBAA2B;IA2D7B,sBAkEC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;;;;;;;;;;MAYE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IApBC;;;;;;;;MAQC;IAED,0DAAgE;IAuGlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAxIC,uEAA6D;IA0I/D,mCAIC;IA1DD,oCAMC;IAED,sCAIC;IA1DD,qBAGC;IAlCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IAOD,wCAuCC;IAGC,kBAA2B;IA2D7B,sBAsFC;CACF"}
@@ -273,7 +273,8 @@ class CardsList extends React.PureComponent {
273
273
  cards,
274
274
  onShowMore,
275
275
  dataName,
276
- contentType
276
+ contentType,
277
+ 'arrows-aria-label': ariaLabel = {}
277
278
  } = this.props;
278
279
  const {
279
280
  skin
@@ -303,7 +304,8 @@ class CardsList extends React.PureComponent {
303
304
  color: dark,
304
305
  className: style.left,
305
306
  width: 10,
306
- height: 10
307
+ height: 10,
308
+ "aria-label": ariaLabel.showMoreOnLeftAriaLabel
307
309
  }));
308
310
  const rightArrowView = /*#__PURE__*/React.createElement("div", {
309
311
  className: style.circle,
@@ -313,7 +315,8 @@ class CardsList extends React.PureComponent {
313
315
  color: dark,
314
316
  className: style.right,
315
317
  width: 10,
316
- height: 10
318
+ height: 10,
319
+ "aria-label": ariaLabel.showMoreOnRightAriaLabel
317
320
  }));
318
321
  const titleView = /*#__PURE__*/React.createElement("span", {
319
322
  "data-name": "title",
@@ -358,7 +361,11 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
358
361
  showMore: PropTypes.string,
359
362
  cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),
360
363
  onScroll: PropTypes.func,
361
- onShowMore: PropTypes.func
364
+ onShowMore: PropTypes.func,
365
+ 'arrows-aria-label': PropTypes.shape({
366
+ showMoreOnLeftAriaLabel: PropTypes.string,
367
+ showMoreOnRightAriaLabel: PropTypes.string
368
+ })
362
369
  } : {};
363
370
  export default CardsList;
364
371
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","rightArrowView","right","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {title, showMore, cards, onShowMore, dataName, contentType} = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","showMoreOnLeftAriaLabel","rightArrowView","right","showMoreOnRightAriaLabel","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n })\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {\n title,\n showMore,\n cards,\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {}\n } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft\n color={dark}\n className={style.left}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnLeftAriaLabel}\n />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight\n color={dark}\n className={style.right}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnRightAriaLabel}\n />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ declare namespace MoocFooter {
8
8
  appStoreButtonImageUrl: PropTypes.Requireable<string>;
9
9
  playStoreButtonImageUrl: PropTypes.Requireable<string>;
10
10
  onPlayStoreButtonClick: PropTypes.Requireable<(...args: any[]) => any>;
11
- 'mobile-logo-aria-label': PropTypes.Requireable<string>;
11
+ 'logo-aria-label': PropTypes.Requireable<string>;
12
12
  'android-alt': PropTypes.Requireable<string>;
13
13
  'ios-alt': PropTypes.Requireable<string>;
14
14
  }>>;
@@ -59,7 +59,7 @@ function MoocFooter(props) {
59
59
  className: style.logoWrapper
60
60
  }, /*#__PURE__*/React.createElement(CoorpAppLogo, {
61
61
  className: style.coorpAppLogo,
62
- "aria-label": headSection['mobile-logo-aria-label']
62
+ "aria-label": headSection['logo-aria-label']
63
63
  })), /*#__PURE__*/React.createElement("div", {
64
64
  "data-name": "mobile-marketing-text",
65
65
  className: style.marketingLabel
@@ -151,7 +151,7 @@ MoocFooter.propTypes = process.env.NODE_ENV !== "production" ? {
151
151
  appStoreButtonImageUrl: PropTypes.string,
152
152
  playStoreButtonImageUrl: PropTypes.string,
153
153
  onPlayStoreButtonClick: PropTypes.func,
154
- 'mobile-logo-aria-label': PropTypes.string,
154
+ 'logo-aria-label': PropTypes.string,
155
155
  'android-alt': PropTypes.string,
156
156
  'ios-alt': PropTypes.string
157
157
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionCoorpacademyCoorpApp","CoorpAppLogo","NovaCompositionCoorpacademyCoorpLogo","CoorpLogo","Link","SocialLink","Picture","style","socialLinksTypes","StoresLinks","onAppStoreButtonClick","appStoreButtonImageUrl","playStoreButtonImageUrl","onPlayStoreButtonClick","androidAlt","iosAlt","storeLinksContainer","imgApple","img","propTypes","func","string","MoocFooter","props","headSection","socialLinks","logoAriaLabel","socialLinksAriaLabel","siteMapSections","headSectionView","headSpacingContainer","headSectionWrapper","logoAndLabelWrapper","logoWrapper","coorpAppLogo","marketingLabel","title","mobileAppLinks","renderPagesFromSection","pages","pagesList","map","page","pindex","handleClick","onClick","link","pageLink","target","sections","section","index","sectionWrapper","sectionTitle","socialLinksView","socialLink","type","socialNetworks","logoSocialNetworksContainer","coorpLogo","socialNetworksWrapper","siteMap","siteMapSpacingContainer","siteMapContainer","sectionsContainer","shape","arrayOf","oneOf"],"sources":["../../../src/organism/mooc-footer/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCoorpApp as CoorpAppLogo,\n NovaCompositionCoorpacademyCoorpLogo as CoorpLogo\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/link';\nimport SocialLink from '../../atom/social-link';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst socialLinksTypes = ['facebook', 'twitter', 'linkedin', 'youtube', 'instagram'];\n\nconst StoresLinks = ({\n onAppStoreButtonClick,\n appStoreButtonImageUrl,\n playStoreButtonImageUrl,\n onPlayStoreButtonClick,\n 'android-alt': androidAlt,\n 'ios-alt': iosAlt\n}) => (\n <div className={style.storeLinksContainer}>\n <Picture\n className={style.imgApple}\n src={appStoreButtonImageUrl}\n onClick={onAppStoreButtonClick}\n alt={iosAlt}\n />\n <Picture\n className={style.img}\n src={playStoreButtonImageUrl}\n onClick={onPlayStoreButtonClick}\n alt={androidAlt}\n />\n </div>\n);\n\nStoresLinks.propTypes = {\n onAppStoreButtonClick: PropTypes.func,\n appStoreButtonImageUrl: PropTypes.string,\n playStoreButtonImageUrl: PropTypes.string,\n onPlayStoreButtonClick: PropTypes.func,\n 'android-alt': PropTypes.string,\n 'ios-alt': PropTypes.string\n};\n\nfunction MoocFooter(props) {\n const {\n headSection = {},\n socialLinks = [],\n 'logo-aria-label': logoAriaLabel,\n 'social-links-aria-label': socialLinksAriaLabel,\n siteMapSections = []\n } = props;\n\n // Header section of the footer (the marketing banner)\n\n const headSectionView = !isEmpty(headSection) ? (\n <div data-name=\"headSpacingContainer\" className={style.headSpacingContainer}>\n <div data-name=\"headSection\" className={style.headSectionWrapper}>\n <div className={style.logoAndLabelWrapper}>\n <div className={style.logoWrapper}>\n <CoorpAppLogo\n className={style.coorpAppLogo}\n aria-label={headSection['mobile-logo-aria-label']}\n />\n </div>\n <div data-name=\"mobile-marketing-text\" className={style.marketingLabel}>\n {headSection.title}\n </div>\n </div>\n <div data-name=\"mobile-apps-buttons-wrapper\" className={style.mobileAppLinks}>\n <StoresLinks\n // ignored due to naming conventions in JSX rather than a linting error\n // eslint-disable-next-line react/jsx-handler-names\n onAppStoreButtonClick={headSection.onAppStoreButtonClick}\n appStoreButtonImageUrl={headSection.appStoreButtonImageUrl}\n playStoreButtonImageUrl={headSection.playStoreButtonImageUrl}\n // eslint-disable-next-line react/jsx-handler-names\n onPlayStoreButtonClick={headSection.onPlayStoreButtonClick}\n android-alt={headSection['android-alt']}\n ios-alt={headSection['ios-alt']}\n />\n </div>\n </div>\n </div>\n ) : null;\n\n // Sitemap section of the footer (contains HELP, TOOLBOX... and other pages, as well as social links)\n\n const renderPagesFromSection = pages => {\n return (\n <ul className={style.pagesList} data-name=\"pages-list\">\n {pages.map((page, pindex) => {\n const handleClick = page.onClick;\n return (\n <li key={pindex}>\n <Link\n href={page.link}\n onClick={handleClick}\n title={page.title}\n data-text={page.title}\n className={style.pageLink}\n target={page.target}\n data-name={page.title}\n >\n {page.title}\n </Link>\n </li>\n );\n })}\n </ul>\n );\n };\n\n const sections = !isEmpty(siteMapSections)\n ? siteMapSections.map((section, index) => {\n return (\n <div key={index} className={style.sectionWrapper}>\n <p className={style.sectionTitle}>{section.title}</p>\n {renderPagesFromSection(section.pages)}\n </div>\n );\n })\n : null;\n\n const socialLinksView = socialLinks.map((socialLink, index) => {\n return (\n <li className={style.socialLink} key={index}>\n <SocialLink\n type={socialLink.type}\n link={socialLink.link}\n mode=\"footer\"\n aria-label={socialLink['aria-label']}\n />\n </li>\n );\n });\n\n const socialNetworks = (\n <div data-name=\"logo-social-networks-container\" className={style.logoSocialNetworksContainer}>\n <CoorpLogo\n className={style.coorpLogo}\n data-name=\"coorp-social-networks-logo\"\n aria-label={logoAriaLabel}\n />\n <ul\n data-name=\"social-networks-wrapper\"\n className={style.socialNetworksWrapper}\n aria-label={socialLinksAriaLabel}\n >\n {socialLinksView}\n </ul>\n </div>\n );\n\n const siteMap = (\n <div data-name=\"site-map-spacing-container\" className={style.siteMapSpacingContainer}>\n <div data-name=\"site-map\" className={style.siteMapContainer}>\n <div data-name=\"sections\" className={style.sectionsContainer}>\n {sections}\n </div>\n {socialNetworks}\n </div>\n </div>\n );\n\n return (\n <footer data-name=\"mooc-footer\">\n {headSectionView}\n {siteMap}\n </footer>\n );\n}\n\nMoocFooter.propTypes = {\n headSection: PropTypes.shape({\n title: PropTypes.string,\n onAppStoreButtonClick: PropTypes.func,\n appStoreButtonImageUrl: PropTypes.string,\n playStoreButtonImageUrl: PropTypes.string,\n onPlayStoreButtonClick: PropTypes.func,\n 'mobile-logo-aria-label': PropTypes.string,\n 'android-alt': PropTypes.string,\n 'ios-alt': PropTypes.string\n }),\n siteMapSections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n pages: PropTypes.arrayOf(\n PropTypes.shape({title: PropTypes.string, link: PropTypes.string, target: PropTypes.string})\n )\n })\n ),\n socialLinks: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf(socialLinksTypes),\n link: PropTypes.string,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n ),\n 'logo-aria-label': PropTypes.string,\n 'social-links-aria-label': PropTypes.string\n};\n\nexport default MoocFooter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionCoorpacademyCoorpApp","CoorpAppLogo","NovaCompositionCoorpacademyCoorpLogo","CoorpLogo","Link","SocialLink","Picture","style","socialLinksTypes","StoresLinks","onAppStoreButtonClick","appStoreButtonImageUrl","playStoreButtonImageUrl","onPlayStoreButtonClick","androidAlt","iosAlt","storeLinksContainer","imgApple","img","propTypes","func","string","MoocFooter","props","headSection","socialLinks","logoAriaLabel","socialLinksAriaLabel","siteMapSections","headSectionView","headSpacingContainer","headSectionWrapper","logoAndLabelWrapper","logoWrapper","coorpAppLogo","marketingLabel","title","mobileAppLinks","renderPagesFromSection","pages","pagesList","map","page","pindex","handleClick","onClick","link","pageLink","target","sections","section","index","sectionWrapper","sectionTitle","socialLinksView","socialLink","type","socialNetworks","logoSocialNetworksContainer","coorpLogo","socialNetworksWrapper","siteMap","siteMapSpacingContainer","siteMapContainer","sectionsContainer","shape","arrayOf","oneOf"],"sources":["../../../src/organism/mooc-footer/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCoorpApp as CoorpAppLogo,\n NovaCompositionCoorpacademyCoorpLogo as CoorpLogo\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/link';\nimport SocialLink from '../../atom/social-link';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst socialLinksTypes = ['facebook', 'twitter', 'linkedin', 'youtube', 'instagram'];\n\nconst StoresLinks = ({\n onAppStoreButtonClick,\n appStoreButtonImageUrl,\n playStoreButtonImageUrl,\n onPlayStoreButtonClick,\n 'android-alt': androidAlt,\n 'ios-alt': iosAlt\n}) => (\n <div className={style.storeLinksContainer}>\n <Picture\n className={style.imgApple}\n src={appStoreButtonImageUrl}\n onClick={onAppStoreButtonClick}\n alt={iosAlt}\n />\n <Picture\n className={style.img}\n src={playStoreButtonImageUrl}\n onClick={onPlayStoreButtonClick}\n alt={androidAlt}\n />\n </div>\n);\n\nStoresLinks.propTypes = {\n onAppStoreButtonClick: PropTypes.func,\n appStoreButtonImageUrl: PropTypes.string,\n playStoreButtonImageUrl: PropTypes.string,\n onPlayStoreButtonClick: PropTypes.func,\n 'android-alt': PropTypes.string,\n 'ios-alt': PropTypes.string\n};\n\nfunction MoocFooter(props) {\n const {\n headSection = {},\n socialLinks = [],\n 'logo-aria-label': logoAriaLabel,\n 'social-links-aria-label': socialLinksAriaLabel,\n siteMapSections = []\n } = props;\n\n // Header section of the footer (the marketing banner)\n\n const headSectionView = !isEmpty(headSection) ? (\n <div data-name=\"headSpacingContainer\" className={style.headSpacingContainer}>\n <div data-name=\"headSection\" className={style.headSectionWrapper}>\n <div className={style.logoAndLabelWrapper}>\n <div className={style.logoWrapper}>\n <CoorpAppLogo\n className={style.coorpAppLogo}\n aria-label={headSection['logo-aria-label']}\n />\n </div>\n <div data-name=\"mobile-marketing-text\" className={style.marketingLabel}>\n {headSection.title}\n </div>\n </div>\n <div data-name=\"mobile-apps-buttons-wrapper\" className={style.mobileAppLinks}>\n <StoresLinks\n // ignored due to naming conventions in JSX rather than a linting error\n // eslint-disable-next-line react/jsx-handler-names\n onAppStoreButtonClick={headSection.onAppStoreButtonClick}\n appStoreButtonImageUrl={headSection.appStoreButtonImageUrl}\n playStoreButtonImageUrl={headSection.playStoreButtonImageUrl}\n // eslint-disable-next-line react/jsx-handler-names\n onPlayStoreButtonClick={headSection.onPlayStoreButtonClick}\n android-alt={headSection['android-alt']}\n ios-alt={headSection['ios-alt']}\n />\n </div>\n </div>\n </div>\n ) : null;\n\n // Sitemap section of the footer (contains HELP, TOOLBOX... and other pages, as well as social links)\n\n const renderPagesFromSection = pages => {\n return (\n <ul className={style.pagesList} data-name=\"pages-list\">\n {pages.map((page, pindex) => {\n const handleClick = page.onClick;\n return (\n <li key={pindex}>\n <Link\n href={page.link}\n onClick={handleClick}\n title={page.title}\n data-text={page.title}\n className={style.pageLink}\n target={page.target}\n data-name={page.title}\n >\n {page.title}\n </Link>\n </li>\n );\n })}\n </ul>\n );\n };\n\n const sections = !isEmpty(siteMapSections)\n ? siteMapSections.map((section, index) => {\n return (\n <div key={index} className={style.sectionWrapper}>\n <p className={style.sectionTitle}>{section.title}</p>\n {renderPagesFromSection(section.pages)}\n </div>\n );\n })\n : null;\n\n const socialLinksView = socialLinks.map((socialLink, index) => {\n return (\n <li className={style.socialLink} key={index}>\n <SocialLink\n type={socialLink.type}\n link={socialLink.link}\n mode=\"footer\"\n aria-label={socialLink['aria-label']}\n />\n </li>\n );\n });\n\n const socialNetworks = (\n <div data-name=\"logo-social-networks-container\" className={style.logoSocialNetworksContainer}>\n <CoorpLogo\n className={style.coorpLogo}\n data-name=\"coorp-social-networks-logo\"\n aria-label={logoAriaLabel}\n />\n <ul\n data-name=\"social-networks-wrapper\"\n className={style.socialNetworksWrapper}\n aria-label={socialLinksAriaLabel}\n >\n {socialLinksView}\n </ul>\n </div>\n );\n\n const siteMap = (\n <div data-name=\"site-map-spacing-container\" className={style.siteMapSpacingContainer}>\n <div data-name=\"site-map\" className={style.siteMapContainer}>\n <div data-name=\"sections\" className={style.sectionsContainer}>\n {sections}\n </div>\n {socialNetworks}\n </div>\n </div>\n );\n\n return (\n <footer data-name=\"mooc-footer\">\n {headSectionView}\n {siteMap}\n </footer>\n );\n}\n\nMoocFooter.propTypes = {\n headSection: PropTypes.shape({\n title: PropTypes.string,\n onAppStoreButtonClick: PropTypes.func,\n appStoreButtonImageUrl: PropTypes.string,\n playStoreButtonImageUrl: PropTypes.string,\n onPlayStoreButtonClick: PropTypes.func,\n 'logo-aria-label': PropTypes.string,\n 'android-alt': PropTypes.string,\n 'ios-alt': PropTypes.string\n }),\n siteMapSections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n pages: PropTypes.arrayOf(\n PropTypes.shape({title: PropTypes.string, link: PropTypes.string, target: PropTypes.string})\n )\n })\n ),\n socialLinks: PropTypes.arrayOf(\n PropTypes.shape({\n type: PropTypes.oneOf(socialLinksTypes),\n link: PropTypes.string,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n ),\n 'logo-aria-label': PropTypes.string,\n 'social-links-aria-label': PropTypes.string\n};\n\nexport default MoocFooter;\n"],"mappings":"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"}
@@ -85,6 +85,7 @@ declare class MoocHeader extends React.Component<any, any, any> {
85
85
  }>>;
86
86
  'settings-aria-label': PropTypes.Requireable<string>;
87
87
  'close-settings-aria-label': PropTypes.Requireable<string>;
88
+ 'active-page-aria-label': PropTypes.Requireable<string>;
88
89
  settings: PropTypes.Requireable<(PropTypes.InferProps<{
89
90
  title: PropTypes.Requireable<string>;
90
91
  name: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0FE;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,6BA8YC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2FE;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,6BA+YC;CACF"}
@@ -162,7 +162,8 @@ class MoocHeader extends React.Component {
162
162
  search,
163
163
  'search-reset-aria-label': searchResetAriaLabel,
164
164
  'settings-aria-label': settingsAriaLabel,
165
- 'close-settings-aria-label': closeSettingsAriaLabel
165
+ 'close-settings-aria-label': closeSettingsAriaLabel,
166
+ 'active-page-aria-label': activePageAriaLabel
166
167
  } = this.props;
167
168
  const {
168
169
  isFocus,
@@ -211,6 +212,7 @@ class MoocHeader extends React.Component {
211
212
  const {
212
213
  'page-count-aria-label': pageCountAriaLabel
213
214
  } = item;
215
+ const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;
214
216
  const pageBadge = item.counter > 0 ? /*#__PURE__*/React.createElement(Link, {
215
217
  href: item.href,
216
218
  "data-name": "item-badge",
@@ -228,7 +230,7 @@ class MoocHeader extends React.Component {
228
230
  skinHover: true,
229
231
  onClick: this.handleLinkClick,
230
232
  target: item.target || null,
231
- "aria-label": item.title,
233
+ "aria-label": itemLabel,
232
234
  style: _extends({}, activeColor)
233
235
  }, item.title, pageBadge, /*#__PURE__*/React.createElement("span", {
234
236
  className: style.bar,
@@ -241,6 +243,7 @@ class MoocHeader extends React.Component {
241
243
  const activeColor = item.selected ? {
242
244
  color: primaryColor
243
245
  } : null;
246
+ const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;
244
247
  const {
245
248
  name: itemName = index
246
249
  } = item;
@@ -250,7 +253,7 @@ class MoocHeader extends React.Component {
250
253
  className: style.option,
251
254
  "data-name": `item-more-${itemName}`,
252
255
  target: item.target || null,
253
- "aria-label": item.title,
256
+ "aria-label": itemLabel,
254
257
  onClick: this.handleLinkClick,
255
258
  skinHover: true,
256
259
  style: _extends({}, activeColor)
@@ -587,6 +590,7 @@ MoocHeader.propTypes = process.env.NODE_ENV !== "production" ? {
587
590
  }),
588
591
  'settings-aria-label': PropTypes.string,
589
592
  'close-settings-aria-label': PropTypes.string,
593
+ 'active-page-aria-label': PropTypes.string,
590
594
  settings: PropTypes.arrayOf(PropTypes.shape({
591
595
  title: PropTypes.string,
592
596
  name: PropTypes.string,