@coorpacademy/components 11.2.6 → 11.2.7

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 (58) hide show
  1. package/es/molecule/filters/index.d.ts +2 -0
  2. package/es/molecule/filters/index.d.ts.map +1 -1
  3. package/es/molecule/filters/index.js +10 -4
  4. package/es/molecule/filters/index.js.map +1 -1
  5. package/es/organism/mooc-footer/index.d.ts +1 -0
  6. package/es/organism/mooc-footer/index.d.ts.map +1 -1
  7. package/es/organism/mooc-footer/index.js +3 -1
  8. package/es/organism/mooc-footer/index.js.map +1 -1
  9. package/es/organism/mooc-header/index.d.ts.map +1 -1
  10. package/es/organism/mooc-header/index.js +4 -3
  11. package/es/organism/mooc-header/index.js.map +1 -1
  12. package/es/organism/review-congrats/index.native.d.ts.map +1 -1
  13. package/es/organism/review-congrats/index.native.js +5 -4
  14. package/es/organism/review-congrats/index.native.js.map +1 -1
  15. package/es/organism/review-slide/index.native.d.ts.map +1 -1
  16. package/es/organism/review-slide/index.native.js +3 -1
  17. package/es/organism/review-slide/index.native.js.map +1 -1
  18. package/es/organism/review-stacked-slides/index.native.d.ts +0 -1
  19. package/es/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  20. package/es/organism/review-stacked-slides/index.native.js +37 -32
  21. package/es/organism/review-stacked-slides/index.native.js.map +1 -1
  22. package/es/template/activity/stars-summary.css +2 -0
  23. package/es/template/activity/stars-summary.js +2 -2
  24. package/es/template/activity/stars-summary.js.map +1 -1
  25. package/es/template/common/search-page/index.d.ts +4 -0
  26. package/es/template/common/search-page/index.d.ts.map +1 -1
  27. package/es/template/common/search-page/index.js +10 -3
  28. package/es/template/common/search-page/index.js.map +1 -1
  29. package/lib/molecule/filters/index.d.ts +2 -0
  30. package/lib/molecule/filters/index.d.ts.map +1 -1
  31. package/lib/molecule/filters/index.js +10 -4
  32. package/lib/molecule/filters/index.js.map +1 -1
  33. package/lib/organism/mooc-footer/index.d.ts +1 -0
  34. package/lib/organism/mooc-footer/index.d.ts.map +1 -1
  35. package/lib/organism/mooc-footer/index.js +3 -1
  36. package/lib/organism/mooc-footer/index.js.map +1 -1
  37. package/lib/organism/mooc-header/index.d.ts.map +1 -1
  38. package/lib/organism/mooc-header/index.js +4 -3
  39. package/lib/organism/mooc-header/index.js.map +1 -1
  40. package/lib/organism/review-congrats/index.native.d.ts.map +1 -1
  41. package/lib/organism/review-congrats/index.native.js +5 -4
  42. package/lib/organism/review-congrats/index.native.js.map +1 -1
  43. package/lib/organism/review-slide/index.native.d.ts.map +1 -1
  44. package/lib/organism/review-slide/index.native.js +3 -1
  45. package/lib/organism/review-slide/index.native.js.map +1 -1
  46. package/lib/organism/review-stacked-slides/index.native.d.ts +0 -1
  47. package/lib/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  48. package/lib/organism/review-stacked-slides/index.native.js +38 -34
  49. package/lib/organism/review-stacked-slides/index.native.js.map +1 -1
  50. package/lib/template/activity/stars-summary.css +2 -0
  51. package/lib/template/activity/stars-summary.js +2 -2
  52. package/lib/template/activity/stars-summary.js.map +1 -1
  53. package/lib/template/common/search-page/index.d.ts +4 -0
  54. package/lib/template/common/search-page/index.d.ts.map +1 -1
  55. package/lib/template/common/search-page/index.js +10 -3
  56. package/lib/template/common/search-page/index.js.map +1 -1
  57. package/locales/.mtslconfig.json +1 -0
  58. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","ScrollView","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Button","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","justifyContent","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","marginVertical","choicesScrollContent","padding","Question","props","answerUI","setStyle","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","backgroundColor","height","alignItems","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderRadius","Slide","validateButton","slideStyle","loading","parentContentTitle","handleValidatePress","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {\n Animated,\n Easing,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginVertical: 20,\n width: '100%'\n },\n choicesScrollContent: {\n padding: 10\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n <Answer {...answerUI} />\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n const {onClick: handleValidatePress} = validateButton;\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","ScrollView","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Button","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","justifyContent","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","marginVertical","choicesScrollContent","padding","Question","props","answerUI","setStyle","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","backgroundColor","height","alignItems","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderRadius","Slide","validateButton","slideStyle","loading","parentContentTitle","handleValidatePress","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {\n Animated,\n Easing,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginVertical: 20,\n width: '100%'\n },\n choicesScrollContent: {\n padding: 10\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n <Answer {...answerUI} />\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 34 + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n const {onClick: handleValidatePress} = validateButton;\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { ReviewStackProps } from './prop-types';
3
- export declare const TOTAL_SLIDES_STACK = 5;
4
3
  declare const StackedSlides: (props: ReviewStackProps) => JSX.Element;
5
4
  export default StackedSlides;
6
5
  //# sourceMappingURL=index.native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAyBpC,QAAA,MAAM,aAAa,UAAW,gBAAgB,gBA2G7C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAenD,QAAA,MAAM,aAAa,UAAW,gBAAgB,gBAuI7C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -3,7 +3,6 @@ import { Animated, Easing, StyleSheet, useWindowDimensions } from 'react-native'
3
3
  import keys from 'lodash/fp/keys';
4
4
  import { useTranslateY } from '@coorpacademy/react-native-animation';
5
5
  import Slide from '../review-slide/index.native';
6
- export const TOTAL_SLIDES_STACK = 5;
7
6
  const style = StyleSheet.create({
8
7
  slides: {
9
8
  flex: 1,
@@ -11,26 +10,12 @@ const style = StyleSheet.create({
11
10
  width: '100%'
12
11
  }
13
12
  });
14
-
15
- const FakeSlide = ({
16
- position,
17
- validateButton
18
- }) => /*#__PURE__*/React.createElement(Slide, {
19
- num: position,
20
- slide: {
21
- loading: true,
22
- position
23
- },
24
- slideIndex: `${position}`,
25
- validateButton: validateButton
26
- });
27
13
  /*
28
14
  - slides are ordered to be played from left to right: [0,1,2,3]
29
15
  - slides are piled on the view, so we need to reverse the order:
30
16
  -> it's like our eye is looking from the right [3,2,1,0] <-- oO
31
17
  */
32
18
 
33
-
34
19
  const StackedSlides = props => {
35
20
  const {
36
21
  height: windowHeight
@@ -42,7 +27,8 @@ const StackedSlides = props => {
42
27
  correctionPopinProps
43
28
  } = props;
44
29
  const [unstacked, setUnstacked] = useState([]);
45
- const [restacked, setRestacked] = useState();
30
+ const [restacking, setRestacking] = useState(null);
31
+ const [restackingDone, setRestackingDone] = useState(false);
46
32
  const hideSlides = useTranslateY({
47
33
  fromValue: 0,
48
34
  toValue: windowHeight,
@@ -54,6 +40,12 @@ const StackedSlides = props => {
54
40
  duration: 500,
55
41
  easing: Easing.cubic
56
42
  });
43
+ const restackTranslation = useTranslateY({
44
+ toValue: 0,
45
+ fromValue: -windowHeight,
46
+ duration: 1200,
47
+ easing: Easing.out(Easing.cubic)
48
+ });
57
49
  useEffect(() => {
58
50
  if (endReview) {
59
51
  hideSlides.start();
@@ -63,10 +55,12 @@ const StackedSlides = props => {
63
55
  const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');
64
56
  const remainingKeys = keys(slides).filter(k => slides[k].position >= 0 && !slides[k].animationType);
65
57
  const orderedKeys = remainingKeys.sort((k1, k2) => slides[k2].position > slides[k1].position ? 1 : -1);
66
- const animatedSlide = restackingSlide || unstackingSlide;
58
+ const animatedFrontSlide = unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);
59
+ const animatedRestackedSlide = restacking !== null;
67
60
  useEffect(() => {
68
- if (restacked && orderedKeys.includes(restacked)) {
69
- setRestacked(null);
61
+ if (restacking !== null && orderedKeys.includes(restacking)) {
62
+ setRestacking(null);
63
+ setRestackingDone(false);
70
64
  } // this effect is required only when the list orderedKeys changes
71
65
  // eslint-disable-next-line react-hooks/exhaustive-deps
72
66
 
@@ -81,18 +75,24 @@ const StackedSlides = props => {
81
75
  }
82
76
  }, [unstackingSlide, unstacked, setUnstacked, translateDown]);
83
77
  useEffect(() => {
84
- const restacking = restackingSlide && restacked !== restackingSlide;
78
+ const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;
85
79
 
86
- if (restacking) {
80
+ if (startRestacking) {
87
81
  translateDown.start(() => {
88
- setRestacked(restackingSlide);
82
+ setRestacking(restackingSlide);
83
+ restackTranslation.start(() => {
84
+ setRestackingDone(true);
85
+ });
89
86
  });
90
- }
91
- }, [restackingSlide, restacked, setRestacked, translateDown]);
87
+ } // this effect is required only to trigger the restack animation when a new restackingSlide is set
88
+ // eslint-disable-next-line react-hooks/exhaustive-deps
89
+
90
+ }, [restackingSlide, restacking]);
92
91
  const stackedSlides = orderedKeys.map((slideIndex, index) => {
93
92
  const slide = slides[slideIndex];
93
+ const num = orderedKeys.length - index;
94
94
  return /*#__PURE__*/React.createElement(Slide, {
95
- num: orderedKeys.length - index,
95
+ num,
96
96
  slideIndex,
97
97
  slide,
98
98
  validateButton,
@@ -101,23 +101,28 @@ const StackedSlides = props => {
101
101
  });
102
102
  });
103
103
 
104
- if (animatedSlide) {
104
+ if (animatedFrontSlide) {
105
105
  stackedSlides.push( /*#__PURE__*/React.createElement(Slide, {
106
106
  num: 0,
107
- slideIndex: animatedSlide,
108
- slide: slides[animatedSlide],
107
+ slideIndex: animatedFrontSlide,
108
+ slide: slides[animatedFrontSlide],
109
109
  validateButton,
110
110
  correctionPopinProps,
111
111
  animatedStyle: [translateDown.animatedStyle],
112
- key: animatedSlide
112
+ key: animatedFrontSlide
113
113
  }));
114
114
  }
115
115
 
116
116
  return /*#__PURE__*/React.createElement(Animated.View, {
117
117
  style: [style.slides, hideSlides.animatedStyle]
118
- }, restacked ? /*#__PURE__*/React.createElement(FakeSlide, {
119
- position: orderedKeys.length + 1,
120
- validateButton: validateButton
118
+ }, animatedRestackedSlide ? /*#__PURE__*/React.createElement(Slide, {
119
+ num: orderedKeys.length + 1,
120
+ slideIndex: restacking,
121
+ slide: slides[restacking],
122
+ validateButton,
123
+ correctionPopinProps,
124
+ animatedStyle: [restackTranslation.animatedStyle],
125
+ key: restacking
121
126
  }) : null, stackedSlides);
122
127
  };
123
128
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","keys","useTranslateY","Slide","TOTAL_SLIDES_STACK","style","create","slides","flex","height","width","FakeSlide","position","validateButton","loading","StackedSlides","props","windowHeight","endReview","correctionPopinProps","unstacked","setUnstacked","restacked","setRestacked","hideSlides","fromValue","toValue","duration","translateDown","easing","cubic","start","restackingSlide","find","k","animationType","unstackingSlide","remainingKeys","filter","orderedKeys","sort","k1","k2","animatedSlide","includes","toString","unstacking","restacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewSlideProps} from '../review-slide/prop-types';\nimport type {ReviewStackProps} from './prop-types';\n\nexport const TOTAL_SLIDES_STACK = 5;\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\ntype FakeSlideProps = {position: number; validateButton: ReviewSlideProps['validateButton']};\nconst FakeSlide = ({position, validateButton}: FakeSlideProps) => (\n <Slide\n num={position}\n slide={{loading: true, position}}\n slideIndex={`${position}`}\n validateButton={validateButton}\n />\n);\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacked, setRestacked] = useState<string | null>();\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedSlide = restackingSlide || unstackingSlide;\n\n useEffect(() => {\n if (restacked && orderedKeys.includes(restacked)) {\n setRestacked(null);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const restacking = restackingSlide && restacked !== restackingSlide;\n\n if (restacking) {\n translateDown.start(() => {\n setRestacked(restackingSlide);\n });\n }\n }, [restackingSlide, restacked, setRestacked, translateDown]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n\n return (\n <Slide\n {...{\n num: orderedKeys.length - index,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedSlide,\n slide: slides[animatedSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {restacked ? (\n <FakeSlide position={orderedKeys.length + 1} validateButton={validateButton} />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","keys","useTranslateY","Slide","style","create","slides","flex","height","width","StackedSlides","props","windowHeight","endReview","validateButton","correctionPopinProps","unstacked","setUnstacked","restacking","setRestacking","restackingDone","setRestackingDone","hideSlides","fromValue","toValue","duration","translateDown","easing","cubic","restackTranslation","out","start","restackingSlide","find","k","animationType","unstackingSlide","remainingKeys","filter","position","orderedKeys","sort","k1","k2","animatedFrontSlide","undefined","animatedRestackedSlide","includes","toString","unstacking","startRestacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewStackProps} from './prop-types';\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacking, setRestacking] = useState<string | null>(null);\n const [restackingDone, setRestackingDone] = useState<boolean>(false);\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n const restackTranslation = useTranslateY({\n toValue: 0,\n fromValue: -windowHeight,\n duration: 1200,\n easing: Easing.out(Easing.cubic)\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedFrontSlide =\n unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);\n\n const animatedRestackedSlide = restacking !== null;\n\n useEffect(() => {\n if (restacking !== null && orderedKeys.includes(restacking)) {\n setRestacking(null);\n setRestackingDone(false);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;\n\n if (startRestacking) {\n translateDown.start(() => {\n setRestacking(restackingSlide);\n restackTranslation.start(() => {\n setRestackingDone(true);\n });\n });\n }\n // this effect is required only to trigger the restack animation when a new restackingSlide is set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restackingSlide, restacking]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n const num = orderedKeys.length - index;\n\n return (\n <Slide\n {...{\n num,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedFrontSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedFrontSlide,\n slide: slides[animatedFrontSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedFrontSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {animatedRestackedSlide ? (\n <Slide\n {...{\n num: orderedKeys.length + 1,\n slideIndex: restacking,\n slide: slides[restacking],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[restackTranslation.animatedStyle]}\n key={restacking}\n />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
@@ -21,6 +21,8 @@
21
21
  display: flex;
22
22
  flex-direction: row;
23
23
  overflow: hidden;
24
+ margin: auto;
25
+ padding-left: 0;
24
26
  }
25
27
 
26
28
  .myStars {
@@ -21,7 +21,7 @@ const EngineTab = ({
21
21
  type
22
22
  } = engine;
23
23
  const state = engineIndex < firstItem ? 'hidden' : 'active';
24
- return /*#__PURE__*/React.createElement("div", {
24
+ return /*#__PURE__*/React.createElement("li", {
25
25
  className: style[state],
26
26
  key: type,
27
27
  "data-name": `${type}_total_${state}`
@@ -137,7 +137,7 @@ class StarsSummary extends React.Component {
137
137
  }, /*#__PURE__*/React.createElement("div", {
138
138
  "data-name": "myStars-wrapper",
139
139
  className: style.myStarsWrapper
140
- }, /*#__PURE__*/React.createElement("div", {
140
+ }, /*#__PURE__*/React.createElement("ul", {
141
141
  className: style.allStars,
142
142
  "data-name": "engineList"
143
143
  }, /*#__PURE__*/React.createElement(EngineTabs, {
@@ -1 +1 @@
1
- {"version":3,"file":"stars-summary.js","names":["React","useMemo","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaCompositionCoorpacademyStar","StarIcon","Provider","EngineStars","style","EngineTab","engine","engineIndex","firstItem","type","state","hidden","active","propTypes","shape","number","EngineTabs","engines","convert","cap","index","arrayOf","StarsSummary","Component","constructor","props","totalItems","length","handleOnLeft","bind","handleOnRight","scrollTo","page","setState","render","total","skin","context","dark","primary","leftArrowView","circle","left","rightArrowView","right","myStars","myStarsWrapper","allStars","footerSummaryStars","backgroundColor","totalStars","label","stars","iconBubble","iconHeader","navigationLeft","navigationRight","contextTypes","childContextTypes","string","isRequired"],"sources":["../../../src/template/activity/stars-summary.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, getOr, isEmpty, map} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionCoorpacademyStar as StarIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport EngineStars from './engine-stars';\nimport style from './stars-summary.css';\n\nconst EngineTab = ({engine, engineIndex, firstItem}) => {\n const {type} = engine;\n const state = engineIndex < firstItem ? 'hidden' : 'active';\n return (\n <div className={style[state]} key={type} data-name={`${type}_total_${state}`}>\n <EngineStars {...engine} className={engineIndex < firstItem ? style.hidden : style.active} />\n </div>\n );\n};\nEngineTab.propTypes = {\n engine: PropTypes.shape(EngineStars.propTypes),\n engineIndex: PropTypes.number,\n firstItem: PropTypes.number\n};\n\nconst EngineTabs = ({engines, firstItem}) => {\n return useMemo(\n () =>\n map.convert({cap: false})(\n (engine, index) => (\n <EngineTab\n engine={engine}\n key={`engineTab_${index}`}\n firstItem={firstItem}\n engineIndex={index}\n />\n ),\n engines\n ),\n [engines, firstItem]\n );\n};\n\nEngineTabs.propTypes = {\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n firstItem: PropTypes.number\n};\n\nclass StarsSummary extends React.Component {\n static propTypes = {\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes))\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n\n const {engines = []} = props;\n this.state = {\n firstItem: 0,\n totalItems: engines.length\n };\n\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n }\n\n handleOnLeft() {\n const {firstItem} = this.state;\n this.scrollTo(firstItem - 1);\n }\n\n handleOnRight() {\n const {firstItem} = this.state;\n this.scrollTo(firstItem + 1);\n }\n\n scrollTo(page) {\n this.setState({\n firstItem: page\n });\n }\n\n render() {\n const {total, engines = []} = this.props;\n const {skin} = this.context;\n const {firstItem, totalItems} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const primary = get('common.primary', skin);\n\n if (isEmpty(engines)) {\n return null;\n }\n const leftArrowView =\n totalItems > 6 && firstItem > 0 ? (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n ) : null;\n\n const rightArrowView =\n totalItems > 6 && firstItem < totalItems - 6 ? (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n ) : null;\n\n return (\n <div data-name=\"myStars\" className={style.myStars}>\n <div data-name=\"myStars-wrapper\" className={style.myStarsWrapper}>\n <div className={style.allStars} data-name=\"engineList\">\n <EngineTabs engines={engines} firstItem={firstItem} />\n </div>\n <div\n className={style.footerSummaryStars}\n style={{\n backgroundColor: primary\n }}\n >\n <div className={style.totalStars}>\n <span>{total.label}</span>\n <p data-name=\"star-counter\">{total.stars}</p>\n <div className={style.iconBubble}>\n <StarIcon className={style.iconHeader} color={primary} />\n </div>\n </div>\n <div className={style.navigationLeft}>{leftArrowView}</div>\n <div className={style.navigationRight}>{rightArrowView}</div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default StarsSummary;\n"],"mappings":"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"}
1
+ {"version":3,"file":"stars-summary.js","names":["React","useMemo","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaCompositionCoorpacademyStar","StarIcon","Provider","EngineStars","style","EngineTab","engine","engineIndex","firstItem","type","state","hidden","active","propTypes","shape","number","EngineTabs","engines","convert","cap","index","arrayOf","StarsSummary","Component","constructor","props","totalItems","length","handleOnLeft","bind","handleOnRight","scrollTo","page","setState","render","total","skin","context","dark","primary","leftArrowView","circle","left","rightArrowView","right","myStars","myStarsWrapper","allStars","footerSummaryStars","backgroundColor","totalStars","label","stars","iconBubble","iconHeader","navigationLeft","navigationRight","contextTypes","childContextTypes","string","isRequired"],"sources":["../../../src/template/activity/stars-summary.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, getOr, isEmpty, map} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionCoorpacademyStar as StarIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport EngineStars from './engine-stars';\nimport style from './stars-summary.css';\n\nconst EngineTab = ({engine, engineIndex, firstItem}) => {\n const {type} = engine;\n const state = engineIndex < firstItem ? 'hidden' : 'active';\n return (\n <li className={style[state]} key={type} data-name={`${type}_total_${state}`}>\n <EngineStars {...engine} className={engineIndex < firstItem ? style.hidden : style.active} />\n </li>\n );\n};\nEngineTab.propTypes = {\n engine: PropTypes.shape(EngineStars.propTypes),\n engineIndex: PropTypes.number,\n firstItem: PropTypes.number\n};\n\nconst EngineTabs = ({engines, firstItem}) => {\n return useMemo(\n () =>\n map.convert({cap: false})(\n (engine, index) => (\n <EngineTab\n engine={engine}\n key={`engineTab_${index}`}\n firstItem={firstItem}\n engineIndex={index}\n />\n ),\n engines\n ),\n [engines, firstItem]\n );\n};\n\nEngineTabs.propTypes = {\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n firstItem: PropTypes.number\n};\n\nclass StarsSummary extends React.Component {\n static propTypes = {\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes))\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n\n const {engines = []} = props;\n this.state = {\n firstItem: 0,\n totalItems: engines.length\n };\n\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n }\n\n handleOnLeft() {\n const {firstItem} = this.state;\n this.scrollTo(firstItem - 1);\n }\n\n handleOnRight() {\n const {firstItem} = this.state;\n this.scrollTo(firstItem + 1);\n }\n\n scrollTo(page) {\n this.setState({\n firstItem: page\n });\n }\n\n render() {\n const {total, engines = []} = this.props;\n const {skin} = this.context;\n const {firstItem, totalItems} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const primary = get('common.primary', skin);\n\n if (isEmpty(engines)) {\n return null;\n }\n const leftArrowView =\n totalItems > 6 && firstItem > 0 ? (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n ) : null;\n\n const rightArrowView =\n totalItems > 6 && firstItem < totalItems - 6 ? (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n ) : null;\n\n return (\n <div data-name=\"myStars\" className={style.myStars}>\n <div data-name=\"myStars-wrapper\" className={style.myStarsWrapper}>\n <ul className={style.allStars} data-name=\"engineList\">\n <EngineTabs engines={engines} firstItem={firstItem} />\n </ul>\n <div\n className={style.footerSummaryStars}\n style={{\n backgroundColor: primary\n }}\n >\n <div className={style.totalStars}>\n <span>{total.label}</span>\n <p data-name=\"star-counter\">{total.stars}</p>\n <div className={style.iconBubble}>\n <StarIcon className={style.iconHeader} color={primary} />\n </div>\n </div>\n <div className={style.navigationLeft}>{leftArrowView}</div>\n <div className={style.navigationRight}>{rightArrowView}</div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default StarsSummary;\n"],"mappings":"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"}
@@ -62,6 +62,8 @@ declare namespace SearchPage {
62
62
  onSearch: PropTypes.Requireable<(...args: any[]) => any>;
63
63
  onToggleFilters: PropTypes.Requireable<(...args: any[]) => any>;
64
64
  onToggleSorts: PropTypes.Requireable<(...args: any[]) => any>;
65
+ moreSortAriaLabel: PropTypes.Requireable<string>;
66
+ moreFilterAriaLabel: PropTypes.Requireable<string>;
65
67
  }>>;
66
68
  const cards: PropTypes.Requireable<PropTypes.InferProps<{
67
69
  list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
@@ -96,6 +98,8 @@ declare namespace SearchPage {
96
98
  showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
97
99
  }>>;
98
100
  }>>;
101
+ const moreSortAriaLabel: PropTypes.Requireable<string>;
102
+ const moreFilterAriaLabel: PropTypes.Requireable<string>;
99
103
  }
100
104
  }
101
105
  import PropTypes from "prop-types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAUA,mEAmCC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAUA,mEAgDC"}
@@ -19,7 +19,9 @@ const SearchPage = (props, context) => {
19
19
  cards,
20
20
  noresultsfound,
21
21
  clearFilters,
22
- recommendations
22
+ recommendations,
23
+ moreSortAriaLabel,
24
+ moreFilterAriaLabel
23
25
  } = props;
24
26
  const {
25
27
  skin
@@ -40,7 +42,10 @@ const SearchPage = (props, context) => {
40
42
  },
41
43
  type: "link"
42
44
  }))), recommendationsView) : /*#__PURE__*/React.createElement(CardsGrid, cards);
43
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Filters, searchFilters), /*#__PURE__*/React.createElement("div", {
45
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Filters, _extends({}, searchFilters, {
46
+ moreSortAriaLabel: moreSortAriaLabel,
47
+ moreFilterAriaLabel: moreFilterAriaLabel
48
+ })), /*#__PURE__*/React.createElement("div", {
44
49
  "data-name": "searchResult",
45
50
  className: style.cardsWrapper
46
51
  }, /*#__PURE__*/React.createElement("div", {
@@ -57,7 +62,9 @@ SearchPage.propTypes = process.env.NODE_ENV !== "production" ? {
57
62
  searchFilters: PropTypes.shape(Filters.propTypes),
58
63
  cards: PropTypes.shape(CardsGrid.propTypes),
59
64
  clearFilters: PropTypes.shape(Button.propTypes),
60
- recommendations: PropTypes.shape(CardsList.propTypes)
65
+ recommendations: PropTypes.shape(CardsList.propTypes),
66
+ moreSortAriaLabel: PropTypes.string,
67
+ moreFilterAriaLabel: PropTypes.string
61
68
  } : {};
62
69
  export default SearchPage;
63
70
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","Provider","Button","Filters","CardsGrid","CardsList","style","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","skin","defaultColor","recommendationsView","cardsView","list","noresults","noresultstxt","clear","background","cardsWrapper","contextTypes","childContextTypes","propTypes","string","shape"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {title, searchFilters, cards, noresultsfound, clearFilters, recommendations} = props;\n\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n const cardsView = isEmpty(cards.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n return (\n <div>\n <Filters {...searchFilters} />\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title}>{title}</div>\n {cardsView}\n </div>\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes)\n};\n\nexport default SearchPage;\n"],"mappings":";;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,QAAP,MAAqB,wBAArB;AACA,OAAOC,MAAP,MAAmB,sBAAnB;AACA,OAAOC,OAAP,MAAoB,2BAApB;AACA,OAAOC,SAAP,MAAsB,8BAAtB;AACA,OAAOC,SAAP,MAAsB,wCAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,UAAU,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACrC,MAAM;IAACC,KAAD;IAAQC,aAAR;IAAuBC,KAAvB;IAA8BC,cAA9B;IAA8CC,YAA9C;IAA4DC;EAA5D,IAA+EP,KAArF;EAEA,MAAM;IAACQ;EAAD,IAASP,OAAf;;EACA,MAAMQ,YAAY,GAAG,OAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAArB;;EAEA,MAAME,mBAAmB,GAAG,SAAQH,eAAR,IAA2B,IAA3B,gBAAkC,oBAAC,SAAD,EAAeA,eAAf,CAA9D;EAEA,MAAMI,SAAS,GAAG,SAAQP,KAAK,CAACQ,IAAd,iBAChB,8CACE;IAAK,SAAS,EAAEd,KAAK,CAACe;EAAtB,gBACE;IAAK,SAAS,EAAEf,KAAK,CAACgB;EAAtB,GAAqCT,cAArC,CADF,eAEE,oBAAC,MAAD,eACMC,YADN;IAEE,aAAU,iBAFZ;IAGE,SAAS,EAAER,KAAK,CAACiB,KAHnB;IAIE,KAAK,EAAE;MAACC,UAAU,EAAEP;IAAb,CAJT;IAKE,IAAI,EAAC;EALP,GAFF,CADF,EAWGC,mBAXH,CADgB,gBAehB,oBAAC,SAAD,EAAeN,KAAf,CAfF;EAkBA,oBACE,8CACE,oBAAC,OAAD,EAAaD,aAAb,CADF,eAEE;IAAK,aAAU,cAAf;IAA8B,SAAS,EAAEL,KAAK,CAACmB;EAA/C,gBACE;IAAK,SAAS,EAAEnB,KAAK,CAACI;EAAtB,GAA8BA,KAA9B,CADF,EAEGS,SAFH,CAFF,CADF;AASD,CAnCD;;AAqCAZ,UAAU,CAACmB,YAAX,GAA0B;EACxBV,IAAI,EAAEf,QAAQ,CAAC0B,iBAAT,CAA2BX;AADT,CAA1B;AAIAT,UAAU,CAACqB,SAAX,2CAAuB;EACrBf,cAAc,EAAEb,SAAS,CAAC6B,MADL;EAErBnB,KAAK,EAAEV,SAAS,CAAC6B,MAFI;EAGrBlB,aAAa,EAAEX,SAAS,CAAC8B,KAAV,CAAgB3B,OAAO,CAACyB,SAAxB,CAHM;EAIrBhB,KAAK,EAAEZ,SAAS,CAAC8B,KAAV,CAAgB1B,SAAS,CAACwB,SAA1B,CAJc;EAKrBd,YAAY,EAAEd,SAAS,CAAC8B,KAAV,CAAgB5B,MAAM,CAAC0B,SAAvB,CALO;EAMrBb,eAAe,EAAEf,SAAS,CAAC8B,KAAV,CAAgBzB,SAAS,CAACuB,SAA1B;AANI,CAAvB;AASA,eAAerB,UAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","Provider","Button","Filters","CardsGrid","CardsList","style","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","moreSortAriaLabel","moreFilterAriaLabel","skin","defaultColor","recommendationsView","cardsView","list","noresults","noresultstxt","clear","background","cardsWrapper","contextTypes","childContextTypes","propTypes","string","shape"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {\n title,\n searchFilters,\n cards,\n noresultsfound,\n clearFilters,\n recommendations,\n moreSortAriaLabel,\n moreFilterAriaLabel\n } = props;\n\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n const cardsView = isEmpty(cards.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n return (\n <div>\n <Filters\n {...searchFilters}\n moreSortAriaLabel={moreSortAriaLabel}\n moreFilterAriaLabel={moreFilterAriaLabel}\n />\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title}>{title}</div>\n {cardsView}\n </div>\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes),\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string\n};\n\nexport default SearchPage;\n"],"mappings":";;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,QAAP,MAAqB,wBAArB;AACA,OAAOC,MAAP,MAAmB,sBAAnB;AACA,OAAOC,OAAP,MAAoB,2BAApB;AACA,OAAOC,SAAP,MAAsB,8BAAtB;AACA,OAAOC,SAAP,MAAsB,wCAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,UAAU,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACrC,MAAM;IACJC,KADI;IAEJC,aAFI;IAGJC,KAHI;IAIJC,cAJI;IAKJC,YALI;IAMJC,eANI;IAOJC,iBAPI;IAQJC;EARI,IASFT,KATJ;EAWA,MAAM;IAACU;EAAD,IAAST,OAAf;;EACA,MAAMU,YAAY,GAAG,OAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAArB;;EAEA,MAAME,mBAAmB,GAAG,SAAQL,eAAR,IAA2B,IAA3B,gBAAkC,oBAAC,SAAD,EAAeA,eAAf,CAA9D;EAEA,MAAMM,SAAS,GAAG,SAAQT,KAAK,CAACU,IAAd,iBAChB,8CACE;IAAK,SAAS,EAAEhB,KAAK,CAACiB;EAAtB,gBACE;IAAK,SAAS,EAAEjB,KAAK,CAACkB;EAAtB,GAAqCX,cAArC,CADF,eAEE,oBAAC,MAAD,eACMC,YADN;IAEE,aAAU,iBAFZ;IAGE,SAAS,EAAER,KAAK,CAACmB,KAHnB;IAIE,KAAK,EAAE;MAACC,UAAU,EAAEP;IAAb,CAJT;IAKE,IAAI,EAAC;EALP,GAFF,CADF,EAWGC,mBAXH,CADgB,gBAehB,oBAAC,SAAD,EAAeR,KAAf,CAfF;EAkBA,oBACE,8CACE,oBAAC,OAAD,eACMD,aADN;IAEE,iBAAiB,EAAEK,iBAFrB;IAGE,mBAAmB,EAAEC;EAHvB,GADF,eAME;IAAK,aAAU,cAAf;IAA8B,SAAS,EAAEX,KAAK,CAACqB;EAA/C,gBACE;IAAK,SAAS,EAAErB,KAAK,CAACI;EAAtB,GAA8BA,KAA9B,CADF,EAEGW,SAFH,CANF,CADF;AAaD,CAhDD;;AAkDAd,UAAU,CAACqB,YAAX,GAA0B;EACxBV,IAAI,EAAEjB,QAAQ,CAAC4B,iBAAT,CAA2BX;AADT,CAA1B;AAIAX,UAAU,CAACuB,SAAX,2CAAuB;EACrBjB,cAAc,EAAEb,SAAS,CAAC+B,MADL;EAErBrB,KAAK,EAAEV,SAAS,CAAC+B,MAFI;EAGrBpB,aAAa,EAAEX,SAAS,CAACgC,KAAV,CAAgB7B,OAAO,CAAC2B,SAAxB,CAHM;EAIrBlB,KAAK,EAAEZ,SAAS,CAACgC,KAAV,CAAgB5B,SAAS,CAAC0B,SAA1B,CAJc;EAKrBhB,YAAY,EAAEd,SAAS,CAACgC,KAAV,CAAgB9B,MAAM,CAAC4B,SAAvB,CALO;EAMrBf,eAAe,EAAEf,SAAS,CAACgC,KAAV,CAAgB3B,SAAS,CAACyB,SAA1B,CANI;EAOrBd,iBAAiB,EAAEhB,SAAS,CAAC+B,MAPR;EAQrBd,mBAAmB,EAAEjB,SAAS,CAAC+B;AARV,CAAvB;AAWA,eAAexB,UAAf"}
@@ -35,6 +35,8 @@ declare class Filters extends React.Component<any, any, any> {
35
35
  onSearch: PropTypes.Requireable<(...args: any[]) => any>;
36
36
  onToggleFilters: PropTypes.Requireable<(...args: any[]) => any>;
37
37
  onToggleSorts: PropTypes.Requireable<(...args: any[]) => any>;
38
+ moreSortAriaLabel: PropTypes.Requireable<string>;
39
+ moreFilterAriaLabel: PropTypes.Requireable<string>;
38
40
  };
39
41
  static contextTypes: {
40
42
  skin: PropTypes.Requireable<PropTypes.InferProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/filters/index.js"],"names":[],"mappings":";AASA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,wBASC;IAPC;;;MAGC;IAMH,yBAcC;IAED,uBAYC;IAED,qBAOC;IAED,sBA8EC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/filters/index.js"],"names":[],"mappings":";AASA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAcE;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,wBASC;IAPC;;;MAGC;IAMH,yBAcC;IAED,uBAYC;IAED,qBAOC;IAED,sBAsFC;CACF"}
@@ -84,7 +84,9 @@ class Filters extends _react.default.Component {
84
84
  filterTabLabel,
85
85
  sortCTALabel,
86
86
  sortTabLabel,
87
- filters
87
+ filters,
88
+ moreFilterAriaLabel,
89
+ moreSortAriaLabel
88
90
  } = this.props;
89
91
  const {
90
92
  filter,
@@ -116,7 +118,8 @@ class Filters extends _react.default.Component {
116
118
  className: _style.default.arrow
117
119
  }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
118
120
  color: darkColor,
119
- height: 14
121
+ height: 14,
122
+ "aria-label": moreFilterAriaLabel
120
123
  })))), /*#__PURE__*/_react.default.createElement("div", {
121
124
  "data-name": "sortBy",
122
125
  "data-open": sortingActive,
@@ -129,7 +132,8 @@ class Filters extends _react.default.Component {
129
132
  className: _style.default.arrow
130
133
  }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowDown, {
131
134
  color: darkColor,
132
- height: 14
135
+ height: 14,
136
+ "aria-label": moreSortAriaLabel
133
137
  })))), /*#__PURE__*/_react.default.createElement("div", {
134
138
  "data-name": "filterWrapper",
135
139
  className: filtersActive ? _style.default.activeWrapperFilters : _style.default.wrapperFilters
@@ -172,7 +176,9 @@ Filters.propTypes = process.env.NODE_ENV !== "production" ? {
172
176
  sorting: _propTypes.default.shape(_select.default.propTypes),
173
177
  onSearch: _propTypes.default.func,
174
178
  onToggleFilters: _propTypes.default.func,
175
- onToggleSorts: _propTypes.default.func
179
+ onToggleSorts: _propTypes.default.func,
180
+ moreSortAriaLabel: _propTypes.default.string,
181
+ moreFilterAriaLabel: _propTypes.default.string
176
182
  } : {};
177
183
  var _default = Filters;
178
184
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Filters","React","Component","constructor","props","state","filter","openFilters","sorted","openSorts","handleOpenFilter","bind","handleOpenSort","handleSearch","onToggleFilters","newValue","setState","onToggleSorts","onSearch","render","sorting","filterCTALabel","filterTabLabel","sortCTALabel","sortTabLabel","filters","skin","context","defaultColor","darkColor","filtersActive","sortingActive","sortView","undefined","style","select","search","activeDefault","default","title","arrow","activeWrapperSortBy","wrapperSortBy","activeWrapperFilters","wrapperFilters","wrapper","CTAfilter","backgroundColor","activeSorting","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","FiltersWrapper","shape","Select","func"],"sources":["../../../src/molecule/filters/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Select from '../../atom/select';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\nimport FiltersWrapper from './filters-wrapper';\n\nclass Filters extends React.Component {\n static propTypes = {\n filterCTALabel: PropTypes.string,\n filterTabLabel: PropTypes.string,\n sortCTALabel: PropTypes.string,\n sortTabLabel: PropTypes.string,\n openFilters: PropTypes.bool,\n openSorts: PropTypes.bool,\n filters: FiltersWrapper.propTypes.filters,\n sorting: PropTypes.shape(Select.propTypes),\n onSearch: PropTypes.func,\n onToggleFilters: PropTypes.func,\n onToggleSorts: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n filter: !!props.openFilters,\n sorted: !!props.openSorts\n };\n this.handleOpenFilter = this.handleOpenFilter.bind(this);\n this.handleOpenSort = this.handleOpenSort.bind(this);\n this.handleSearch = this.handleSearch.bind(this);\n }\n\n handleOpenFilter() {\n const {filter} = this.state;\n const {onToggleFilters} = this.props;\n\n const newValue = !filter;\n\n this.setState({\n filter: newValue,\n sorted: false\n });\n\n if (onToggleFilters) {\n onToggleFilters(newValue);\n }\n }\n\n handleOpenSort() {\n const {sorted} = this.state;\n const {onToggleSorts} = this.props;\n\n const newValue = !sorted;\n\n this.setState({\n sorted: newValue,\n filter: false\n });\n\n if (onToggleSorts) onToggleSorts(newValue);\n }\n\n handleSearch() {\n const {onSearch} = this.props;\n this.setState({\n sorted: false,\n filter: false\n });\n if (onSearch) onSearch();\n }\n\n render() {\n const {sorting, filterCTALabel, filterTabLabel, sortCTALabel, sortTabLabel, filters} =\n this.props;\n const {filter, sorted} = this.state;\n const {skin} = this.context;\n\n const defaultColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const filtersActive = filter === true;\n const sortingActive = sorted === true;\n\n const sortView =\n sorting !== undefined ? (\n <div data-name=\"choice\" className={style.select}>\n <Select {...sorting} />\n </div>\n ) : null;\n\n return (\n <div data-name=\"search\" className={style.search}>\n <div\n data-name=\"filter\"\n data-open={filtersActive}\n className={filtersActive ? style.activeDefault : style.default}\n >\n <div className={style.title} data-name=\"filterButton\" onClick={this.handleOpenFilter}>\n {filterTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} />\n </div>\n </div>\n </div>\n <div\n data-name=\"sortBy\"\n data-open={sortingActive}\n className={sortingActive ? style.activeWrapperSortBy : style.wrapperSortBy}\n >\n <div className={style.title} data-name=\"sortButton\" onClick={this.handleOpenSort}>\n {sortTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} />\n </div>\n </div>\n </div>\n <div\n data-name=\"filterWrapper\"\n className={filtersActive ? style.activeWrapperFilters : style.wrapperFilters}\n >\n <FiltersWrapper className={style.wrapper} filters={filters} />\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {filterCTALabel}\n </div>\n </div>\n <div\n data-name=\"sortWrapper\"\n className={sortingActive ? style.activeSorting : style.sorting}\n >\n {sortView}\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {sortCTALabel}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default Filters;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Filters","React","Component","constructor","props","state","filter","openFilters","sorted","openSorts","handleOpenFilter","bind","handleOpenSort","handleSearch","onToggleFilters","newValue","setState","onToggleSorts","onSearch","render","sorting","filterCTALabel","filterTabLabel","sortCTALabel","sortTabLabel","filters","moreFilterAriaLabel","moreSortAriaLabel","skin","context","defaultColor","darkColor","filtersActive","sortingActive","sortView","undefined","style","select","search","activeDefault","default","title","arrow","activeWrapperSortBy","wrapperSortBy","activeWrapperFilters","wrapperFilters","wrapper","CTAfilter","backgroundColor","activeSorting","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","FiltersWrapper","shape","Select","func"],"sources":["../../../src/molecule/filters/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Select from '../../atom/select';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\nimport FiltersWrapper from './filters-wrapper';\n\nclass Filters extends React.Component {\n static propTypes = {\n filterCTALabel: PropTypes.string,\n filterTabLabel: PropTypes.string,\n sortCTALabel: PropTypes.string,\n sortTabLabel: PropTypes.string,\n openFilters: PropTypes.bool,\n openSorts: PropTypes.bool,\n filters: FiltersWrapper.propTypes.filters,\n sorting: PropTypes.shape(Select.propTypes),\n onSearch: PropTypes.func,\n onToggleFilters: PropTypes.func,\n onToggleSorts: PropTypes.func,\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n filter: !!props.openFilters,\n sorted: !!props.openSorts\n };\n this.handleOpenFilter = this.handleOpenFilter.bind(this);\n this.handleOpenSort = this.handleOpenSort.bind(this);\n this.handleSearch = this.handleSearch.bind(this);\n }\n\n handleOpenFilter() {\n const {filter} = this.state;\n const {onToggleFilters} = this.props;\n\n const newValue = !filter;\n\n this.setState({\n filter: newValue,\n sorted: false\n });\n\n if (onToggleFilters) {\n onToggleFilters(newValue);\n }\n }\n\n handleOpenSort() {\n const {sorted} = this.state;\n const {onToggleSorts} = this.props;\n\n const newValue = !sorted;\n\n this.setState({\n sorted: newValue,\n filter: false\n });\n\n if (onToggleSorts) onToggleSorts(newValue);\n }\n\n handleSearch() {\n const {onSearch} = this.props;\n this.setState({\n sorted: false,\n filter: false\n });\n if (onSearch) onSearch();\n }\n\n render() {\n const {\n sorting,\n filterCTALabel,\n filterTabLabel,\n sortCTALabel,\n sortTabLabel,\n filters,\n moreFilterAriaLabel,\n moreSortAriaLabel\n } = this.props;\n const {filter, sorted} = this.state;\n const {skin} = this.context;\n\n const defaultColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const filtersActive = filter === true;\n const sortingActive = sorted === true;\n\n const sortView =\n sorting !== undefined ? (\n <div data-name=\"choice\" className={style.select}>\n <Select {...sorting} />\n </div>\n ) : null;\n\n return (\n <div data-name=\"search\" className={style.search}>\n <div\n data-name=\"filter\"\n data-open={filtersActive}\n className={filtersActive ? style.activeDefault : style.default}\n >\n <div className={style.title} data-name=\"filterButton\" onClick={this.handleOpenFilter}>\n {filterTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} aria-label={moreFilterAriaLabel} />\n </div>\n </div>\n </div>\n <div\n data-name=\"sortBy\"\n data-open={sortingActive}\n className={sortingActive ? style.activeWrapperSortBy : style.wrapperSortBy}\n >\n <div className={style.title} data-name=\"sortButton\" onClick={this.handleOpenSort}>\n {sortTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} aria-label={moreSortAriaLabel} />\n </div>\n </div>\n </div>\n <div\n data-name=\"filterWrapper\"\n className={filtersActive ? style.activeWrapperFilters : style.wrapperFilters}\n >\n <FiltersWrapper className={style.wrapper} filters={filters} />\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {filterCTALabel}\n </div>\n </div>\n <div\n data-name=\"sortWrapper\"\n className={sortingActive ? style.activeSorting : style.sorting}\n >\n {sortView}\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {sortCTALabel}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default Filters;\n"],"mappings":"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"}
@@ -18,6 +18,7 @@ declare namespace MoocFooter {
18
18
  title: PropTypes.Requireable<string>;
19
19
  link: PropTypes.Requireable<string>;
20
20
  target: PropTypes.Requireable<string>;
21
+ ariaLabel: PropTypes.Requireable<string>;
21
22
  }> | null | undefined)[]>;
22
23
  }> | null | undefined)[]>;
23
24
  socialLinks: PropTypes.Requireable<(PropTypes.InferProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-footer/index.js"],"names":[],"mappings":";AA+CA,qDA+HC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-footer/index.js"],"names":[],"mappings":";AA+CA,qDAgIC"}
@@ -108,6 +108,7 @@ function MoocFooter(props) {
108
108
  "data-text": page.title,
109
109
  className: _style.default.pageLink,
110
110
  target: page.target,
111
+ "aria-label": page.ariaLabel ? page.ariaLabel : page.title,
111
112
  "data-name": page.title
112
113
  }, page.title));
113
114
  }));
@@ -178,7 +179,8 @@ MoocFooter.propTypes = process.env.NODE_ENV !== "production" ? {
178
179
  pages: _propTypes.default.arrayOf(_propTypes.default.shape({
179
180
  title: _propTypes.default.string,
180
181
  link: _propTypes.default.string,
181
- target: _propTypes.default.string
182
+ target: _propTypes.default.string,
183
+ ariaLabel: _propTypes.default.string
182
184
  }))
183
185
  })),
184
186
  socialLinks: _propTypes.default.arrayOf(_propTypes.default.shape({