@coorpacademy/components 10.22.24 → 10.22.25

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 (91) hide show
  1. package/es/atom/choice/index.native.js +4 -4
  2. package/es/atom/choice/index.native.js.map +1 -1
  3. package/es/atom/select-modal/index.native.js +1 -1
  4. package/es/atom/select-modal/index.native.js.map +1 -1
  5. package/es/hoc/modal/select/index.native.js.map +1 -1
  6. package/es/molecule/answer/index.native.js +85 -0
  7. package/es/molecule/answer/index.native.js.map +1 -0
  8. package/es/molecule/answer/prop-types.js +22 -3
  9. package/es/molecule/answer/prop-types.js.map +1 -1
  10. package/es/molecule/questions/mobile/draggable/index.native.js +8 -29
  11. package/es/molecule/questions/mobile/draggable/index.native.js.map +1 -1
  12. package/es/molecule/questions/mobile/switch/index.native.js +57 -54
  13. package/es/molecule/questions/mobile/switch/index.native.js.map +1 -1
  14. package/es/molecule/questions/mobile/template/index.native.js +18 -23
  15. package/es/molecule/questions/mobile/template/index.native.js.map +1 -1
  16. package/es/molecule/questions/types.js +2 -0
  17. package/{lib/types/styles.d.js.map → es/molecule/questions/types.js.map} +1 -1
  18. package/es/organism/review-congrats/index.js +3 -1
  19. package/es/organism/review-congrats/index.js.map +1 -1
  20. package/es/organism/review-congrats/style.css +5 -0
  21. package/es/organism/review-slide/index.js +7 -11
  22. package/es/organism/review-slide/index.js.map +1 -1
  23. package/es/organism/review-slide/index.native.js +213 -0
  24. package/es/organism/review-slide/index.native.js.map +1 -0
  25. package/es/organism/review-slide/prop-types.js +4 -3
  26. package/es/organism/review-slide/prop-types.js.map +1 -1
  27. package/es/organism/review-slide/style.css +4 -0
  28. package/es/organism/review-stacked-slides/index.native.js +34 -0
  29. package/es/organism/review-stacked-slides/index.native.js.map +1 -0
  30. package/es/organism/review-stacked-slides/prop-types.js +3 -2
  31. package/es/organism/review-stacked-slides/prop-types.js.map +1 -1
  32. package/es/template/app-review/player/index.native.js +33 -230
  33. package/es/template/app-review/player/index.native.js.map +1 -1
  34. package/es/template/app-review/player/prop-types.js.map +1 -1
  35. package/es/template/app-review/player/style.css +7 -0
  36. package/es/template/app-review/template-context.js +3 -1
  37. package/es/template/app-review/template-context.js.map +1 -1
  38. package/es/types/styles.js +2 -0
  39. package/es/types/{styles.d.js.map → styles.js.map} +1 -1
  40. package/lib/atom/choice/index.native.js +4 -4
  41. package/lib/atom/choice/index.native.js.map +1 -1
  42. package/lib/atom/select-modal/index.native.js +1 -1
  43. package/lib/atom/select-modal/index.native.js.map +1 -1
  44. package/lib/hoc/modal/select/index.native.js.map +1 -1
  45. package/lib/molecule/answer/index.native.js +94 -0
  46. package/lib/molecule/answer/index.native.js.map +1 -0
  47. package/lib/molecule/answer/prop-types.js +25 -3
  48. package/lib/molecule/answer/prop-types.js.map +1 -1
  49. package/lib/molecule/questions/mobile/draggable/index.native.js +8 -31
  50. package/lib/molecule/questions/mobile/draggable/index.native.js.map +1 -1
  51. package/lib/molecule/questions/mobile/switch/index.native.js +64 -62
  52. package/lib/molecule/questions/mobile/switch/index.native.js.map +1 -1
  53. package/lib/molecule/questions/mobile/template/index.native.js +18 -23
  54. package/lib/molecule/questions/mobile/template/index.native.js.map +1 -1
  55. package/lib/molecule/questions/types.js +2 -0
  56. package/lib/{types/app-review.d.js.map → molecule/questions/types.js.map} +1 -1
  57. package/lib/organism/review-congrats/index.js +3 -1
  58. package/lib/organism/review-congrats/index.js.map +1 -1
  59. package/lib/organism/review-congrats/style.css +5 -0
  60. package/lib/organism/review-slide/index.js +7 -11
  61. package/lib/organism/review-slide/index.js.map +1 -1
  62. package/lib/organism/review-slide/index.native.js +232 -0
  63. package/lib/organism/review-slide/index.native.js.map +1 -0
  64. package/lib/organism/review-slide/prop-types.js +6 -5
  65. package/lib/organism/review-slide/prop-types.js.map +1 -1
  66. package/lib/organism/review-slide/style.css +4 -0
  67. package/lib/organism/review-stacked-slides/index.native.js +47 -0
  68. package/lib/organism/review-stacked-slides/index.native.js.map +1 -0
  69. package/lib/organism/review-stacked-slides/prop-types.js +3 -2
  70. package/lib/organism/review-stacked-slides/prop-types.js.map +1 -1
  71. package/lib/template/app-review/player/index.native.js +36 -233
  72. package/lib/template/app-review/player/index.native.js.map +1 -1
  73. package/lib/template/app-review/player/prop-types.js.map +1 -1
  74. package/lib/template/app-review/player/style.css +7 -0
  75. package/lib/template/app-review/template-context.js +3 -1
  76. package/lib/template/app-review/template-context.js.map +1 -1
  77. package/lib/types/styles.js +2 -0
  78. package/{es/types/app-review.d.js.map → lib/types/styles.js.map} +1 -1
  79. package/package.json +2 -2
  80. package/es/molecule/questions/qcm/index.native.js +0 -50
  81. package/es/molecule/questions/qcm/index.native.js.map +0 -1
  82. package/es/types/app-review.d.js +0 -2
  83. package/es/types/progression-engine.d.js +0 -2
  84. package/es/types/progression-engine.d.js.map +0 -1
  85. package/es/types/styles.d.js +0 -2
  86. package/lib/molecule/questions/qcm/index.native.js +0 -62
  87. package/lib/molecule/questions/qcm/index.native.js.map +0 -1
  88. package/lib/types/app-review.d.js +0 -2
  89. package/lib/types/progression-engine.d.js +0 -2
  90. package/lib/types/progression-engine.d.js.map +0 -1
  91. package/lib/types/styles.d.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","ReviewCorrectionPopin","GetSkinFromContext","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,KAAP,MAAkB,iBAAlB;AACA,OAAOC,MAAP,MAAmB,uBAAnB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,qBAAP,MAAkC,wCAAlC;AACA,SAAQC,kBAAR,QAAiC,qBAAjC;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,eAAe,GAAG,CAAC;AACvBC,EAAAA,oBADuB;AAEvBC,EAAAA,UAFuB;AAGvBC,EAAAA,mBAHuB;AAIvBC,EAAAA;AAJuB,CAAD,KAKlB;AACJ,MAAI,CAACD,mBAAL,EAA0B,OAAO,IAAP;AAE1B,QAAME,GAAG,GAAGb,KAAK,CAAC,EAAD,EAAK,KAAL,EAAYS,oBAAZ,CAAjB;AACA,QAAMK,WAAW,GAAGd,KAAK,CAAC;AAACe,IAAAA,KAAK,EAAE,EAAR;AAAYC,IAAAA,OAAO,EAAE;AAArB,GAAD,EAA2B,aAA3B,EAA0CP,oBAA1C,CAAzB;AACA,QAAMQ,IAAI,GAAGlB,GAAG,CAAC,MAAD,EAASU,oBAAT,CAAhB;AAEA,QAAMS,qBAAqB,GAAG;AAC5BD,IAAAA,IAAI,EAAE;AACJE,MAAAA,OAAO,EAAE,MAAM;AACb;AACAC,QAAAA,OAAO,CAACC,GAAR,CAAY,YAAZ;AACD,OAJG;AAKJN,MAAAA,KAAK,EAAEE,IAAI,IAAIA,IAAI,CAACF,KALhB;AAMJ,mBAAc,wBAAuBL,UAAW,EAN5C;AAOJ,oBAAcO,IAAI,IAAIA,IAAI,CAAC,YAAD;AAPtB,KADsB;AAU5BJ,IAAAA,GAV4B;AAW5BC,IAAAA,WAX4B;AAY5BQ,IAAAA,IAAI,EAAEb,oBAAoB,CAACa,IAZC;AAa5BC,IAAAA,WAAW,EAAEd,oBAAoB,CAACc;AAbN,GAA9B;AAgBA,sBACE;AACE,IAAA,SAAS,EAAEzB,UAAU,CACnBS,KAAK,CAACiB,sBADa,EAEnBZ,sBAAsB,GAAGL,KAAK,CAACkB,cAAT,GAA0B,IAF7B;AADvB,kBAME,oBAAC,qBAAD,EAA2BP,qBAA3B,CANF,CADF;AAUD,CAtCD;;AAwCAV,eAAe,CAACF,SAAhB,2CAA4B;AAC1BI,EAAAA,UAAU,EAAEb,SAAS,CAAC6B,MADI;AAE1Bf,EAAAA,mBAAmB,EAAEd,SAAS,CAAC8B,IAFL;AAG1Bf,EAAAA,sBAAsB,EAAEf,SAAS,CAAC8B,IAHR;AAI1BlB,EAAAA,oBAAoB,EAAEH,SAAS,CAACG;AAJN,CAA5B;;AAOA,MAAMmB,cAAc,GAAG,CAAC;AAAClB,EAAAA,UAAD;AAAamB,EAAAA,cAAb;AAA6BC,EAAAA;AAA7B,CAAD,KAAoD;AACzE,QAAM;AAACf,IAAAA,KAAD;AAAQI,IAAAA,OAAR;AAAiBY,IAAAA;AAAjB,MAA6BF,cAAnC;AACA,QAAMG,mBAAmB,GAAG;AAC1BV,IAAAA,IAAI,EAAE,SADoB;AAE1BP,IAAAA,KAF0B;AAG1B,kBAAcA,KAHY;AAI1B,iBAAc,yBAAwBL,UAAW,EAJvB;AAK1BS,IAAAA,OAL0B;AAM1BY,IAAAA,QAN0B;AAO1BE,IAAAA,SAAS,EAAE1B,KAAK,CAACsB,cAPS;AAQ1BK,IAAAA,WAAW,EAAE;AACXC,MAAAA,eAAe,EAAEL;AADN;AAGb;;;;;;;;;;;;;AAX0B,GAA5B;AA0BA,sBACE;AAAK,IAAA,GAAG,EAAC,gBAAT;AAA0B,IAAA,SAAS,EAAEvB,KAAK,CAAC6B;AAA3C,kBACE,oBAAC,UAAD,EAAgBJ,mBAAhB,CADF,CADF;AAKD,CAjCD;;AAmCAJ,cAAc,CAACtB,SAAf,2CAA2B;AACzBI,EAAAA,UAAU,EAAEb,SAAS,CAAC6B,MADG;AAEzBG,EAAAA,cAAc,EAAEvB,SAAS,CAACuB,cAFD;AAGzBC,EAAAA,gBAAgB,EAAEjC,SAAS,CAAC6B;AAHH,CAA3B;;AAMA,MAAMW,iBAAiB,GAAGC,KAAK,IAAI;AACjC,QAAM;AAACC,IAAAA,QAAD;AAAWC,IAAAA,YAAX;AAAyBC,IAAAA;AAAzB,MAA2CH,KAAjD;AACA,MAAI,CAACC,QAAD,IAAa,CAACC,YAAlB,EAAgC,OAAO,IAAP;AAEhC,QAAME,WAAW,GAAG3C,GAAG,CAAC,CAAC,OAAD,EAAU,SAAV,CAAD,EAAuBwC,QAAvB,CAAH;AAChB;AADgB,wBAEXA,QAFW;AAGdI,IAAAA,KAAK,wBACAJ,QAAQ,CAACI,KADT;AAEHC,MAAAA,OAAO,EAAEL,QAAQ,CAACI,KAAT,CAAeE;AAFrB;AAHS,OAQhBN,QARJ;AAUA,sBACE;AAAK,IAAA,GAAG,EAAC,mBAAT;AAA6B,IAAA,SAAS,EAAEhC,KAAK,CAACuC;AAA9C,kBACE;AAAK,IAAA,GAAG,EAAC,aAAT;AAAuB,IAAA,SAAS,EAAEvC,KAAK,CAACkC;AAAxC,KACGA,cADH,CADF,eAIE;AACE,IAAA,GAAG,EAAC,OADN;AAEE,IAAA,SAAS,EAAElC,KAAK,CAACwC,QAFnB,CAGE;AAHF;AAIE,IAAA,uBAAuB,EAAE;AAACC,MAAAA,MAAM,EAAER;AAAT;AAJ3B,IAJF,eAUE;AAAK,IAAA,GAAG,EAAC,MAAT;AAAgB,IAAA,SAAS,EAAEjC,KAAK,CAAC0C;AAAjC,KACGlD,GAAG,CAAC,MAAD,EAASwC,QAAT,CADN,CAVF,eAaE;AAAK,IAAA,GAAG,EAAC,kBAAT;AAA4B,IAAA,SAAS,EAAEhC,KAAK,CAAC2C;AAA7C,kBACE,oBAAC,MAAD,eAAYR,WAAZ;AAAyB,IAAA,GAAG,EAAC;AAA7B,KADF,CAbF,CADF;AAmBD,CAjCD;;AAmCAL,iBAAiB,CAAC/B,SAAlB,2CAA8B;AAC5BiC,EAAAA,QAAQ,EAAE1C,SAAS,CAACsD,KAAV,CAAgB7C,SAAS,CAAC8C,KAAV,CAAgBb,QAAhC,CADkB;AAE5BC,EAAAA,YAAY,EAAE3C,SAAS,CAAC6B,MAFI;AAG5Be,EAAAA,cAAc,EAAE5C,SAAS,CAAC6B;AAHE,CAA9B;;AAMA,MAAM2B,WAAW,GAAGf,KAAK,IAAI;AAC3B,QAAM;AAACc,IAAAA,KAAD;AAAQvB,IAAAA,cAAR;AAAwBpB,IAAAA,oBAAxB;AAA8CC,IAAAA,UAAU,GAAG;AAA3D,MAAkE4B,KAAxE;AAEA,QAAMgB,IAAI,GAAGjD,kBAAkB,EAA/B;AACA,QAAMyB,gBAAgB,GAAGlC,OAAO,CAAC,MAAMI,KAAK,CAAC,SAAD,EAAY,gBAAZ,EAA8BsD,IAA9B,CAAZ,EAAiD,CAACA,IAAD,CAAjD,CAAhC;AACA,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,gBAFI;AAGJC,IAAAA,kBAHI;AAIJjB,IAAAA,YAJI;AAKJD,IAAAA,QALI;AAMJ5B,IAAAA,mBANI;AAOJC,IAAAA;AAPI,MAQFwC,KARJ;AAUA,sBACE;AAAK,iBAAY,iBAAjB;AAAmC,IAAA,SAAS,EAAE7C,KAAK,CAAC6C;AAApD,KACGG,OAAO,gBACN,oBAAC,MAAD;AAAQ,IAAA,SAAS,EAAEhD,KAAK,CAACmD,MAAzB;AAAiC,IAAA,KAAK,EAAC,SAAvC;AAAiD,kBAAYF;AAA7D,IADM,GAGN,cACE,oBAAC,iBAAD;AACE,IAAA,cAAc,EAAEC,kBADlB;AAEE,IAAA,YAAY,EAAEjB,YAFhB;AAGE,IAAA,QAAQ,EAAED,QAHZ;AAIE,IAAA,GAAG,EAAC;AAJN,IADF,eAOE,oBAAC,cAAD;AACE,IAAA,UAAU,EAAE7B,UADd;AAEE,IAAA,cAAc,EAAEmB,cAFlB;AAGE,IAAA,gBAAgB,EAAEC,gBAHpB;AAIE,IAAA,GAAG,EAAC;AAJN,IAPF,eAaE,oBAAC,eAAD;AACE,IAAA,oBAAoB,EAAErB,oBADxB;AAEE,IAAA,UAAU,EAAEC,UAFd;AAGE,IAAA,mBAAmB,EAAEC,mBAHvB;AAIE,IAAA,sBAAsB,EAAEC,sBAJ1B;AAKE,IAAA,GAAG,EAAC;AALN,IAbF,CAJJ,CADF;AA6BD,CA5CD;;AA8CAyC,WAAW,CAAC/C,SAAZ,2CAAwBA,SAAxB;AAEA,eAAe+C,WAAf","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n /*\n slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n */\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin} = props;\n if (!answerUI || !questionText) return null;\n\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n [\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />,\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />,\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ]\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","ReviewCorrectionPopin","GetSkinFromContext","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","disableContent","slideContentContainer","disabledSlideContent","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n /*\n slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n */\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin, disableContent} = props;\n if (!answerUI || !questionText) return null;\n\n return (\n <div\n key=\"content-container\"\n className={classnames(\n style.slideContentContainer,\n disableContent ? style.disabledSlideContent : null\n )}\n >\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerUI} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string,\n disableContent: PropTypes.bool\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n [\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n disableContent={!showCorrectionPopin}\n key=\"question-container\"\n />,\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />,\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ]\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"file":"index.js"}
@@ -0,0 +1,213 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { StyleSheet, useWindowDimensions, View } from 'react-native';
3
+ import get from 'lodash/fp/get';
4
+ import getOr from 'lodash/fp/getOr';
5
+ import Text from '../../atom/text/index.native';
6
+ import Answer from '../../molecule/answer/index.native'; // import Loader from '../../atom/loader';
7
+ // import ReviewCorrectionPopin from '../../molecule/review-correction-popin';
8
+
9
+ import { useTemplateContext } from '../../template/app-review/template-context';
10
+ import Touchable from '../../hoc/touchable/index.native';
11
+
12
+ const CorrectionPopin = ({
13
+ correctionPopinProps,
14
+ slideIndex,
15
+ showCorrectionPopin,
16
+ animateCorrectionPopin
17
+ }) => {
18
+ if (!showCorrectionPopin) return null;
19
+ const klf = getOr({}, 'klf', correctionPopinProps);
20
+ const information = getOr({
21
+ label: '',
22
+ message: ''
23
+ }, 'information', correctionPopinProps);
24
+ const next = get('next', correctionPopinProps);
25
+ const _correctionPopinProps = {
26
+ next: {
27
+ onClick: () => {
28
+ // eslint-disable-next-line no-console
29
+ console.log('Next Slide');
30
+ },
31
+ label: next && next.label,
32
+ 'data-name': `next-question-button-${slideIndex}`,
33
+ 'aria-label': next && next['aria-label']
34
+ },
35
+ klf,
36
+ information,
37
+ type: correctionPopinProps.type,
38
+ resultLabel: correctionPopinProps.resultLabel
39
+ };
40
+ return /*#__PURE__*/React.createElement(Text, null, "ReviewCorrectionPopin") // <ReviewCorrectionPopin {..._correctionPopinProps} />
41
+ ;
42
+ }; // const ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {
43
+ // const {label, onClick, disabled} = validateButton;
44
+ // const validateButtonProps = {
45
+ // type: 'primary',
46
+ // label,
47
+ // 'aria-label': label,
48
+ // 'data-name': `slide-validate-button-${slideIndex}`,
49
+ // onClick,
50
+ // disabled,
51
+ // customStyle: {
52
+ // backgroundColor: primarySkinColor
53
+ // }
54
+ // };
55
+ // return <Button title="validate todo" />;
56
+ // };
57
+
58
+
59
+ const createQuestionStyle = (theme, brandTheme) => StyleSheet.create({
60
+ questionHeading: {
61
+ // backgroundColor: '#f00', // flex-debug
62
+ justifyContent: 'space-between'
63
+ },
64
+ questionOrigin: {
65
+ fontSize: 12,
66
+ lineHeight: 16,
67
+ color: theme.colors.text.primary,
68
+ marginBottom: theme.spacing.tiny,
69
+ marginTop: theme.spacing.small,
70
+ textAlign: 'center'
71
+ },
72
+ questionText: {
73
+ fontSize: 16,
74
+ lineHeight: 22,
75
+ fontWeight: '700',
76
+ color: theme.colors.text.primary,
77
+ textAlign: 'center'
78
+ },
79
+ questionHelp: {
80
+ // backgroundColor: '#38295b', // flex-debug
81
+ fontSize: 12,
82
+ lineHeight: 16,
83
+ color: theme.colors.gray.medium,
84
+ marginBottom: 0,
85
+ marginTop: theme.spacing.small,
86
+ textAlign: 'center'
87
+ },
88
+ choicesContainer: {
89
+ flex: 1,
90
+ width: '100%',
91
+ // backgroundColor: '#ff0', // flex-debug
92
+ justifyContent: 'center'
93
+ },
94
+ validateButton: {
95
+ backgroundColor: brandTheme?.colors.primary || theme.colors.text.primary,
96
+ borderRadius: 7,
97
+ width: '100%'
98
+ },
99
+ validateButtonText: {
100
+ fontSize: 14,
101
+ lineHeight: 20,
102
+ fontWeight: '700',
103
+ color: theme.colors.white,
104
+ marginBottom: 16,
105
+ marginTop: 16,
106
+ textAlign: 'center'
107
+ }
108
+ });
109
+
110
+ const Question = props => {
111
+ const {
112
+ answerUI,
113
+ questionText,
114
+ questionOrigin
115
+ } = props;
116
+ const {
117
+ theme,
118
+ brandTheme
119
+ } = useTemplateContext();
120
+ const [style, setStyle] = useState(null);
121
+ useEffect(() => {
122
+ const questionStyle = createQuestionStyle(theme, brandTheme);
123
+ setStyle(questionStyle);
124
+ }, [theme, brandTheme]);
125
+ if (!answerUI || !questionText || !style) return null;
126
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
127
+ style: style.questionHeading
128
+ }, /*#__PURE__*/React.createElement(Text, {
129
+ style: style.questionOrigin
130
+ }, questionOrigin), /*#__PURE__*/React.createElement(Text, {
131
+ style: style.questionText
132
+ }, questionText), /*#__PURE__*/React.createElement(Text, {
133
+ style: style.questionHelp
134
+ }, get('help', answerUI))), /*#__PURE__*/React.createElement(View, {
135
+ style: style.choicesContainer
136
+ }, /*#__PURE__*/React.createElement(Answer, answerUI)), /*#__PURE__*/React.createElement(Touchable, {
137
+ style: style.validateButton
138
+ }, /*#__PURE__*/React.createElement(Text, {
139
+ style: style.validateButtonText
140
+ }, "@todo validate")));
141
+ };
142
+
143
+ const creatSlideStyle = (num, screenWidth, screenHeight) => {
144
+ const slideWidth = screenWidth - 40 - num * 8;
145
+ const slideHeight = screenHeight * 0.75;
146
+ return StyleSheet.create({
147
+ slide: {
148
+ position: 'absolute',
149
+ top: num * -5,
150
+ left: -slideWidth / 2,
151
+ flex: 1,
152
+ backgroundColor: '#fff',
153
+ // theme.colors.white
154
+ height: slideHeight,
155
+ width: slideWidth,
156
+ justifyContent: 'space-between',
157
+ alignItems: 'center',
158
+ padding: 25,
159
+ shadowColor: '#000',
160
+ shadowOffset: {
161
+ width: 0,
162
+ height: -1
163
+ },
164
+ shadowOpacity: 0.05,
165
+ shadowRadius: 16,
166
+ elevation: 10 - num * 1,
167
+ borderRadius: 16
168
+ }
169
+ });
170
+ };
171
+
172
+ const Slide = props => {
173
+ const {
174
+ slide,
175
+ validateButton,
176
+ correctionPopinProps,
177
+ num,
178
+ slideIndex = '0'
179
+ } = props;
180
+ const {
181
+ width,
182
+ height
183
+ } = useWindowDimensions();
184
+ const slideStyle = creatSlideStyle(num, width, height);
185
+ const {
186
+ loading,
187
+ parentContentTitle,
188
+ questionText,
189
+ answerUI,
190
+ showCorrectionPopin,
191
+ animateCorrectionPopin
192
+ } = slide;
193
+ return /*#__PURE__*/React.createElement(View, {
194
+ style: slideStyle.slide
195
+ }, loading ?
196
+ /*#__PURE__*/
197
+ // <Loader className={style.loader} theme="default" aria-label={loadingAriaLabel} />
198
+ React.createElement(Text, null, "@todo loader ", num) : [/*#__PURE__*/React.createElement(Question, {
199
+ questionOrigin: parentContentTitle,
200
+ questionText: questionText,
201
+ answerUI: answerUI,
202
+ key: "question-container"
203
+ }), /*#__PURE__*/React.createElement(CorrectionPopin, {
204
+ correctionPopinProps: correctionPopinProps,
205
+ slideIndex: slideIndex,
206
+ showCorrectionPopin: showCorrectionPopin,
207
+ animateCorrectionPopin: animateCorrectionPopin,
208
+ key: "correction-popin"
209
+ })]);
210
+ };
211
+
212
+ export default Slide;
213
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/organism/review-slide/index.native.tsx"],"names":["React","useEffect","useState","StyleSheet","useWindowDimensions","View","get","getOr","Text","Answer","useTemplateContext","Touchable","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","createQuestionStyle","theme","brandTheme","create","questionHeading","justifyContent","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesContainer","flex","width","validateButton","backgroundColor","borderRadius","validateButtonText","white","Question","props","answerUI","style","setStyle","questionStyle","creatSlideStyle","num","screenWidth","screenHeight","slideWidth","slideHeight","slide","position","top","left","height","alignItems","padding","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","slideStyle","loading","parentContentTitle"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,SAAf,EAAmCC,QAAnC,QAAkD,OAAlD;AACA,SAAQC,UAAR,EAAoBC,mBAApB,EAAyCC,IAAzC,QAAoD,cAApD;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,KAAP,MAAkB,iBAAlB;AACA,OAAOC,IAAP,MAAiB,8BAAjB;AACA,OAAOC,MAAP,MAAmB,oCAAnB,C,CACA;AACA;;AACA,SAAQC,kBAAR,QAAiC,4CAAjC;AAEA,OAAOC,SAAP,MAAsB,kCAAtB;;AAGA,MAAMC,eAAe,GAAG,CAAC;AACvBC,EAAAA,oBADuB;AAEvBC,EAAAA,UAFuB;AAGvBC,EAAAA,mBAHuB;AAIvBC,EAAAA;AAJuB,CAAD,KAKlB;AACJ,MAAI,CAACD,mBAAL,EAA0B,OAAO,IAAP;AAE1B,QAAME,GAAG,GAAGV,KAAK,CAAC,EAAD,EAAK,KAAL,EAAYM,oBAAZ,CAAjB;AACA,QAAMK,WAAW,GAAGX,KAAK,CAAC;AAACY,IAAAA,KAAK,EAAE,EAAR;AAAYC,IAAAA,OAAO,EAAE;AAArB,GAAD,EAA2B,aAA3B,EAA0CP,oBAA1C,CAAzB;AACA,QAAMQ,IAAI,GAAGf,GAAG,CAAC,MAAD,EAASO,oBAAT,CAAhB;AAEA,QAAMS,qBAAqB,GAAG;AAC5BD,IAAAA,IAAI,EAAE;AACJE,MAAAA,OAAO,EAAE,MAAM;AACb;AACAC,QAAAA,OAAO,CAACC,GAAR,CAAY,YAAZ;AACD,OAJG;AAKJN,MAAAA,KAAK,EAAEE,IAAI,IAAIA,IAAI,CAACF,KALhB;AAMJ,mBAAc,wBAAuBL,UAAW,EAN5C;AAOJ,oBAAcO,IAAI,IAAIA,IAAI,CAAC,YAAD;AAPtB,KADsB;AAU5BJ,IAAAA,GAV4B;AAW5BC,IAAAA,WAX4B;AAY5BQ,IAAAA,IAAI,EAAEb,oBAAoB,CAACa,IAZC;AAa5BC,IAAAA,WAAW,EAAEd,oBAAoB,CAACc;AAbN,GAA9B;AAgBA,sBACE,oBAAC,IAAD,gCADF,CAEE;AAFF;AAID,CAhCD,C,CAkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;AAEA,MAAMC,mBAAmB,GAAG,CAACC,KAAD,EAAeC,UAAf,KAC1B3B,UAAU,CAAC4B,MAAX,CAAkB;AAChBC,EAAAA,eAAe,EAAE;AACf;AACAC,IAAAA,cAAc,EAAE;AAFD,GADD;AAKhBC,EAAAA,cAAc,EAAE;AACdC,IAAAA,QAAQ,EAAE,EADI;AAEdC,IAAAA,UAAU,EAAE,EAFE;AAGdC,IAAAA,KAAK,EAAER,KAAK,CAACS,MAAN,CAAaC,IAAb,CAAkBC,OAHX;AAIdC,IAAAA,YAAY,EAAEZ,KAAK,CAACa,OAAN,CAAcC,IAJd;AAKdC,IAAAA,SAAS,EAAEf,KAAK,CAACa,OAAN,CAAcG,KALX;AAMdC,IAAAA,SAAS,EAAE;AANG,GALA;AAahBC,EAAAA,YAAY,EAAE;AACZZ,IAAAA,QAAQ,EAAE,EADE;AAEZC,IAAAA,UAAU,EAAE,EAFA;AAGZY,IAAAA,UAAU,EAAE,KAHA;AAIZX,IAAAA,KAAK,EAAER,KAAK,CAACS,MAAN,CAAaC,IAAb,CAAkBC,OAJb;AAKZM,IAAAA,SAAS,EAAE;AALC,GAbE;AAoBhBG,EAAAA,YAAY,EAAE;AACZ;AACAd,IAAAA,QAAQ,EAAE,EAFE;AAGZC,IAAAA,UAAU,EAAE,EAHA;AAIZC,IAAAA,KAAK,EAAER,KAAK,CAACS,MAAN,CAAaY,IAAb,CAAkBC,MAJb;AAKZV,IAAAA,YAAY,EAAE,CALF;AAMZG,IAAAA,SAAS,EAAEf,KAAK,CAACa,OAAN,CAAcG,KANb;AAOZC,IAAAA,SAAS,EAAE;AAPC,GApBE;AA6BhBM,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,IAAI,EAAE,CADU;AAEhBC,IAAAA,KAAK,EAAE,MAFS;AAGhB;AACArB,IAAAA,cAAc,EAAE;AAJA,GA7BF;AAmChBsB,EAAAA,cAAc,EAAE;AACdC,IAAAA,eAAe,EAAE1B,UAAU,EAAEQ,MAAZ,CAAmBE,OAAnB,IAA8BX,KAAK,CAACS,MAAN,CAAaC,IAAb,CAAkBC,OADnD;AAEdiB,IAAAA,YAAY,EAAE,CAFA;AAGdH,IAAAA,KAAK,EAAE;AAHO,GAnCA;AAwChBI,EAAAA,kBAAkB,EAAE;AAClBvB,IAAAA,QAAQ,EAAE,EADQ;AAElBC,IAAAA,UAAU,EAAE,EAFM;AAGlBY,IAAAA,UAAU,EAAE,KAHM;AAIlBX,IAAAA,KAAK,EAAER,KAAK,CAACS,MAAN,CAAaqB,KAJF;AAKlBlB,IAAAA,YAAY,EAAE,EALI;AAMlBG,IAAAA,SAAS,EAAE,EANO;AAOlBE,IAAAA,SAAS,EAAE;AAPO;AAxCJ,CAAlB,CADF;;AA0DA,MAAMc,QAAQ,GAAIC,KAAD,IAA0B;AACzC,QAAM;AAACC,IAAAA,QAAD;AAAWf,IAAAA,YAAX;AAAyBb,IAAAA;AAAzB,MAA2C2B,KAAjD;AACA,QAAM;AAAChC,IAAAA,KAAD;AAAQC,IAAAA;AAAR,MAAsBpB,kBAAkB,EAA9C;AACA,QAAM,CAACqD,KAAD,EAAQC,QAAR,IAAoB9D,QAAQ,CAAa,IAAb,CAAlC;AAEAD,EAAAA,SAAS,CAAC,MAAM;AACd,UAAMgE,aAAa,GAAGrC,mBAAmB,CAACC,KAAD,EAAQC,UAAR,CAAzC;AACAkC,IAAAA,QAAQ,CAACC,aAAD,CAAR;AACD,GAHQ,EAGN,CAACpC,KAAD,EAAQC,UAAR,CAHM,CAAT;AAKA,MAAI,CAACgC,QAAD,IAAa,CAACf,YAAd,IAA8B,CAACgB,KAAnC,EAA0C,OAAO,IAAP;AAE1C,sBACE,uDACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEA,KAAK,CAAC/B;AAAnB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE+B,KAAK,CAAC7B;AAAnB,KAAoCA,cAApC,CADF,eAEE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE6B,KAAK,CAAChB;AAAnB,KAAkCA,YAAlC,CAFF,eAGE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEgB,KAAK,CAACd;AAAnB,KAAkC3C,GAAG,CAAC,MAAD,EAASwD,QAAT,CAArC,CAHF,CADF,eAME,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEC,KAAK,CAACX;AAAnB,kBACE,oBAAC,MAAD,EAAYU,QAAZ,CADF,CANF,eASE,oBAAC,SAAD;AAAW,IAAA,KAAK,EAAEC,KAAK,CAACR;AAAxB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEQ,KAAK,CAACL;AAAnB,sBADF,CATF,CADF;AAeD,CA3BD;;AA6BA,MAAMQ,eAAe,GAAG,CAACC,GAAD,EAAcC,WAAd,EAAmCC,YAAnC,KAA4D;AAClF,QAAMC,UAAU,GAAGF,WAAW,GAAG,EAAd,GAAmBD,GAAG,GAAG,CAA5C;AACA,QAAMI,WAAW,GAAGF,YAAY,GAAG,IAAnC;AAEA,SAAOlE,UAAU,CAAC4B,MAAX,CAAkB;AACvByC,IAAAA,KAAK,EAAE;AACLC,MAAAA,QAAQ,EAAE,UADL;AAELC,MAAAA,GAAG,EAAEP,GAAG,GAAG,CAAC,CAFP;AAGLQ,MAAAA,IAAI,EAAE,CAACL,UAAD,GAAc,CAHf;AAILjB,MAAAA,IAAI,EAAE,CAJD;AAKLG,MAAAA,eAAe,EAAE,MALZ;AAKoB;AACzBoB,MAAAA,MAAM,EAAEL,WANH;AAOLjB,MAAAA,KAAK,EAAEgB,UAPF;AAQLrC,MAAAA,cAAc,EAAE,eARX;AASL4C,MAAAA,UAAU,EAAE,QATP;AAULC,MAAAA,OAAO,EAAE,EAVJ;AAWLC,MAAAA,WAAW,EAAE,MAXR;AAYLC,MAAAA,YAAY,EAAE;AAAC1B,QAAAA,KAAK,EAAE,CAAR;AAAWsB,QAAAA,MAAM,EAAE,CAAC;AAApB,OAZT;AAaLK,MAAAA,aAAa,EAAE,IAbV;AAcLC,MAAAA,YAAY,EAAE,EAdT;AAeLC,MAAAA,SAAS,EAAE,KAAKhB,GAAG,GAAG,CAfjB;AAgBLV,MAAAA,YAAY,EAAE;AAhBT;AADgB,GAAlB,CAAP;AAoBD,CAxBD;;AA0BA,MAAM2B,KAAK,GAAIvB,KAAD,IAAkB;AAC9B,QAAM;AAACW,IAAAA,KAAD;AAAQjB,IAAAA,cAAR;AAAwB1C,IAAAA,oBAAxB;AAA8CsD,IAAAA,GAA9C;AAAmDrD,IAAAA,UAAU,GAAG;AAAhE,MAAuE+C,KAA7E;AAEA,QAAM;AAACP,IAAAA,KAAD;AAAQsB,IAAAA;AAAR,MAAkBxE,mBAAmB,EAA3C;AACA,QAAMiF,UAAU,GAAGnB,eAAe,CAACC,GAAD,EAAMb,KAAN,EAAasB,MAAb,CAAlC;AAEA,QAAM;AACJU,IAAAA,OADI;AAEJC,IAAAA,kBAFI;AAGJxC,IAAAA,YAHI;AAIJe,IAAAA,QAJI;AAKJ/C,IAAAA,mBALI;AAMJC,IAAAA;AANI,MAOFwD,KAPJ;AASA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEa,UAAU,CAACb;AAAxB,KACGc,OAAO;AAAA;AACN;AACA,sBAAC,IAAD,yBAAoBnB,GAApB,CAFM,GAIN,cACE,oBAAC,QAAD;AACE,IAAA,cAAc,EAAEoB,kBADlB;AAEE,IAAA,YAAY,EAAExC,YAFhB;AAGE,IAAA,QAAQ,EAAEe,QAHZ;AAIE,IAAA,GAAG,EAAC;AAJN,IADF,eAOE,oBAAC,eAAD;AACE,IAAA,oBAAoB,EAAEjD,oBADxB;AAEE,IAAA,UAAU,EAAEC,UAFd;AAGE,IAAA,mBAAmB,EAAEC,mBAHvB;AAIE,IAAA,sBAAsB,EAAEC,sBAJ1B;AAKE,IAAA,GAAG,EAAC;AALN,IAPF,CALJ,CADF;AAwBD,CAvCD;;AAyCA,eAAeoE,KAAf","sourcesContent":["import React, {useEffect, useMemo, useState} from 'react';\nimport {StyleSheet, useWindowDimensions, View} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Text from '../../atom/text/index.native';\nimport Answer from '../../molecule/answer/index.native';\n// import Loader from '../../atom/loader';\n// import ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Touchable from '../../hoc/touchable/index.native';\nimport {Props, SlideProps} from './prop-types';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <Text>ReviewCorrectionPopin</Text>\n // <ReviewCorrectionPopin {..._correctionPopinProps} />\n );\n};\n\n// const ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n// const {label, onClick, disabled} = validateButton;\n// const validateButtonProps = {\n// type: 'primary',\n// label,\n// 'aria-label': label,\n// 'data-name': `slide-validate-button-${slideIndex}`,\n// onClick,\n// disabled,\n// customStyle: {\n// backgroundColor: primarySkinColor\n// }\n// };\n\n// return <Button title=\"validate todo\" />;\n// };\n\nconst createQuestionStyle = (theme: Theme, brandTheme: any) =>\n StyleSheet.create({\n questionHeading: {\n // backgroundColor: '#f00', // flex-debug\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 // backgroundColor: '#38295b', // flex-debug\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 choicesContainer: {\n flex: 1,\n width: '100%',\n // backgroundColor: '#ff0', // flex-debug\n justifyContent: 'center'\n },\n validateButton: {\n backgroundColor: brandTheme?.colors.primary || theme.colors.text.primary,\n borderRadius: 7,\n width: '100%'\n },\n validateButtonText: {\n fontSize: 14,\n lineHeight: 20,\n fontWeight: '700',\n color: theme.colors.white,\n marginBottom: 16,\n marginTop: 16,\n textAlign: 'center'\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, brandTheme} = useTemplateContext();\n const [style, setStyle] = useState<any | null>(null);\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme, brandTheme);\n setStyle(questionStyle);\n }, [theme, brandTheme]);\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 <View style={style.choicesContainer}>\n <Answer {...answerUI} />\n </View>\n <Touchable style={style.validateButton}>\n <Text style={style.validateButtonText}>@todo validate</Text>\n </Touchable>\n </>\n );\n};\n\nconst creatSlideStyle = (num: number, screenWidth: number, screenHeight: number) => {\n const slideWidth = screenWidth - 40 - num * 8;\n const slideHeight = screenHeight * 0.75;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n top: num * -5,\n left: -slideWidth / 2,\n flex: 1,\n backgroundColor: '#fff', // theme.colors.white\n height: slideHeight,\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: Props) => {\n const {slide, validateButton, correctionPopinProps, num, slideIndex = '0'} = props;\n\n const {width, height} = useWindowDimensions();\n const slideStyle = creatSlideStyle(num, width, height);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <View style={slideStyle.slide}>\n {loading ? (\n // <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n <Text>@todo loader {num}</Text>\n ) : (\n [\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />,\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ]\n )}\n </View>\n );\n};\n\nexport default Slide;\n"],"file":"index.native.js"}
@@ -1,7 +1,7 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import ReviewCorrectionPopinPropTypes from '../../molecule/review-correction-popin/prop-types';
3
3
  import AnswerPropTypes from '../../molecule/answer/prop-types';
4
- export const SlideProp = PropTypes.shape({
4
+ export const SlidePropsTypes = PropTypes.shape({
5
5
  hidden: PropTypes.bool,
6
6
  position: PropTypes.number,
7
7
  loading: PropTypes.bool,
@@ -15,9 +15,9 @@ export const SlideProp = PropTypes.shape({
15
15
  questionText: PropTypes.string,
16
16
  answerUI: PropTypes.shape(AnswerPropTypes)
17
17
  });
18
- export default {
18
+ const propTypes = {
19
19
  slideIndex: PropTypes.string,
20
- slide: SlideProp,
20
+ slide: SlidePropsTypes,
21
21
  validateButton: PropTypes.shape({
22
22
  label: PropTypes.string.isRequired,
23
23
  onClick: PropTypes.func.isRequired,
@@ -36,4 +36,5 @@ export default {
36
36
  type: ReviewCorrectionPopinPropTypes.type
37
37
  })
38
38
  };
39
+ export default propTypes;
39
40
  //# sourceMappingURL=prop-types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/organism/review-slide/prop-types.js"],"names":["PropTypes","ReviewCorrectionPopinPropTypes","AnswerPropTypes","SlideProp","shape","hidden","bool","position","number","loading","loadingAriaLabel","string","animationType","isCorrect","animateCorrectionPopin","showCorrectionPopin","parentContentTitle","questionText","answerUI","slideIndex","slide","validateButton","label","isRequired","onClick","func","disabled","correctionPopinProps","klf","information","next","resultLabel","type"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,8BAAP,MAA2C,mDAA3C;AACA,OAAOC,eAAP,MAA4B,kCAA5B;AAEA,OAAO,MAAMC,SAAS,GAAGH,SAAS,CAACI,KAAV,CAAgB;AACvCC,EAAAA,MAAM,EAAEL,SAAS,CAACM,IADqB;AAEvCC,EAAAA,QAAQ,EAAEP,SAAS,CAACQ,MAFmB;AAGvCC,EAAAA,OAAO,EAAET,SAAS,CAACM,IAHoB;AAIvCI,EAAAA,gBAAgB,EAAEV,SAAS,CAACW,MAJW;AAKvCC,EAAAA,aAAa,EAAEZ,SAAS,CAACW,MALc;AAKN;AACjCE,EAAAA,SAAS,EAAEb,SAAS,CAACM,IANkB;AAOvCQ,EAAAA,sBAAsB,EAAEd,SAAS,CAACM,IAPK;AAQvCS,EAAAA,mBAAmB,EAAEf,SAAS,CAACM,IARQ;AASvCU,EAAAA,kBAAkB,EAAEhB,SAAS,CAACW,MATS;AAUvCM,EAAAA,YAAY,EAAEjB,SAAS,CAACW,MAVe;AAWvCO,EAAAA,QAAQ,EAAElB,SAAS,CAACI,KAAV,CAAgBF,eAAhB;AAX6B,CAAhB,CAAlB;AAcP,eAAe;AACbiB,EAAAA,UAAU,EAAEnB,SAAS,CAACW,MADT;AAEbS,EAAAA,KAAK,EAAEjB,SAFM;AAGbkB,EAAAA,cAAc,EAAErB,SAAS,CAACI,KAAV,CAAgB;AAC9BkB,IAAAA,KAAK,EAAEtB,SAAS,CAACW,MAAV,CAAiBY,UADM;AAE9BC,IAAAA,OAAO,EAAExB,SAAS,CAACyB,IAAV,CAAeF,UAFM;AAG9BG,IAAAA,QAAQ,EAAE1B,SAAS,CAACM;AAHU,GAAhB,CAHH;AAQbqB,EAAAA,oBAAoB,EAAE3B,SAAS,CAACI,KAAV,CAAgB;AACpCwB,IAAAA,GAAG,EAAE3B,8BAA8B,CAAC2B,GADA;AAEpCC,IAAAA,WAAW,EAAE5B,8BAA8B,CAAC4B,WAFR;AAGpCC,IAAAA,IAAI,EAAE9B,SAAS,CAACI,KAAV,CAAgB;AACpBkB,MAAAA,KAAK,EAAEtB,SAAS,CAACW,MADG;AAEpB,oBAAcX,SAAS,CAACW,MAFJ,CAEW;AAC/B;;AAHoB,KAAhB,CAH8B;AAQpCoB,IAAAA,WAAW,EAAE9B,8BAA8B,CAAC8B,WARR;AASpCC,IAAAA,IAAI,EAAE/B,8BAA8B,CAAC+B;AATD,GAAhB;AART,CAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewCorrectionPopinPropTypes from '../../molecule/review-correction-popin/prop-types';\nimport AnswerPropTypes from '../../molecule/answer/prop-types';\n\nexport const SlideProp = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n loading: PropTypes.bool,\n loadingAriaLabel: PropTypes.string,\n animationType: PropTypes.string, // 'unstack' | 'restack'\n isCorrect: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n showCorrectionPopin: PropTypes.bool,\n parentContentTitle: PropTypes.string,\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(AnswerPropTypes)\n});\n\nexport default {\n slideIndex: PropTypes.string,\n slide: SlideProp,\n validateButton: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool\n }),\n correctionPopinProps: PropTypes.shape({\n klf: ReviewCorrectionPopinPropTypes.klf,\n information: ReviewCorrectionPopinPropTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string // Pourquoi le onClick du next n'est pas ici !\n // updateSlidesOnNext: PropTypes.func.isRequired ???\n }),\n resultLabel: ReviewCorrectionPopinPropTypes.resultLabel,\n type: ReviewCorrectionPopinPropTypes.type\n })\n};\n"],"file":"prop-types.js"}
1
+ {"version":3,"sources":["../../../src/organism/review-slide/prop-types.ts"],"names":["PropTypes","ReviewCorrectionPopinPropTypes","AnswerPropTypes","SlidePropsTypes","shape","hidden","bool","position","number","loading","loadingAriaLabel","string","animationType","isCorrect","animateCorrectionPopin","showCorrectionPopin","parentContentTitle","questionText","answerUI","propTypes","slideIndex","slide","validateButton","label","isRequired","onClick","func","disabled","correctionPopinProps","klf","information","next","resultLabel","type"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,8BAAP,MAA2C,mDAA3C;AACA,OAAOC,eAAP,MAAoD,kCAApD;AAEA,OAAO,MAAMC,eAAe,GAAGH,SAAS,CAACI,KAAV,CAAgB;AAC7CC,EAAAA,MAAM,EAAEL,SAAS,CAACM,IAD2B;AAE7CC,EAAAA,QAAQ,EAAEP,SAAS,CAACQ,MAFyB;AAG7CC,EAAAA,OAAO,EAAET,SAAS,CAACM,IAH0B;AAI7CI,EAAAA,gBAAgB,EAAEV,SAAS,CAACW,MAJiB;AAK7CC,EAAAA,aAAa,EAAEZ,SAAS,CAACW,MALoB;AAKZ;AACjCE,EAAAA,SAAS,EAAEb,SAAS,CAACM,IANwB;AAO7CQ,EAAAA,sBAAsB,EAAEd,SAAS,CAACM,IAPW;AAQ7CS,EAAAA,mBAAmB,EAAEf,SAAS,CAACM,IARc;AAS7CU,EAAAA,kBAAkB,EAAEhB,SAAS,CAACW,MATe;AAU7CM,EAAAA,YAAY,EAAEjB,SAAS,CAACW,MAVqB;AAW7CO,EAAAA,QAAQ,EAAElB,SAAS,CAACI,KAAV,CAAgBF,eAAhB;AAXmC,CAAhB,CAAxB;AAcP,MAAMiB,SAAS,GAAG;AAChBC,EAAAA,UAAU,EAAEpB,SAAS,CAACW,MADN;AAEhBU,EAAAA,KAAK,EAAElB,eAFS;AAGhBmB,EAAAA,cAAc,EAAEtB,SAAS,CAACI,KAAV,CAAgB;AAC9BmB,IAAAA,KAAK,EAAEvB,SAAS,CAACW,MAAV,CAAiBa,UADM;AAE9BC,IAAAA,OAAO,EAAEzB,SAAS,CAAC0B,IAAV,CAAeF,UAFM;AAG9BG,IAAAA,QAAQ,EAAE3B,SAAS,CAACM;AAHU,GAAhB,CAHA;AAQhBsB,EAAAA,oBAAoB,EAAE5B,SAAS,CAACI,KAAV,CAAgB;AACpCyB,IAAAA,GAAG,EAAE5B,8BAA8B,CAAC4B,GADA;AAEpCC,IAAAA,WAAW,EAAE7B,8BAA8B,CAAC6B,WAFR;AAGpCC,IAAAA,IAAI,EAAE/B,SAAS,CAACI,KAAV,CAAgB;AACpBmB,MAAAA,KAAK,EAAEvB,SAAS,CAACW,MADG;AAEpB,oBAAcX,SAAS,CAACW,MAFJ,CAEW;AAC/B;;AAHoB,KAAhB,CAH8B;AAQpCqB,IAAAA,WAAW,EAAE/B,8BAA8B,CAAC+B,WARR;AASpCC,IAAAA,IAAI,EAAEhC,8BAA8B,CAACgC;AATD,GAAhB;AARN,CAAlB;AAqBA,eAAed,SAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewCorrectionPopinPropTypes from '../../molecule/review-correction-popin/prop-types';\nimport AnswerPropTypes, {Props as AnswerProps} from '../../molecule/answer/prop-types';\n\nexport const SlidePropsTypes = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n loading: PropTypes.bool,\n loadingAriaLabel: PropTypes.string,\n animationType: PropTypes.string, // 'unstack' | 'restack'\n isCorrect: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n showCorrectionPopin: PropTypes.bool,\n parentContentTitle: PropTypes.string,\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(AnswerPropTypes)\n});\n\nconst propTypes = {\n slideIndex: PropTypes.string,\n slide: SlidePropsTypes,\n validateButton: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool\n }),\n correctionPopinProps: PropTypes.shape({\n klf: ReviewCorrectionPopinPropTypes.klf,\n information: ReviewCorrectionPopinPropTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string // Pourquoi le onClick du next n'est pas ici !\n // updateSlidesOnNext: PropTypes.func.isRequired ???\n }),\n resultLabel: ReviewCorrectionPopinPropTypes.resultLabel,\n type: ReviewCorrectionPopinPropTypes.type\n })\n};\n\nexport default propTypes;\n\nexport type Props = PropTypes.InferProps<typeof propTypes> & {\n num: number;\n};\n\nexport type SlideProps = {\n hidden: boolean;\n position: number;\n loading: boolean;\n loadingAriaLabel: string;\n animationType: 'unstack' | 'restack';\n isCorrect: boolean;\n animateCorrectionPopin: boolean;\n showCorrectionPopin: boolean;\n parentContentTitle: string;\n questionText: string;\n answerUI: AnswerProps;\n};\n"],"file":"prop-types.js"}
@@ -138,6 +138,10 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
138
138
  width: 60px;
139
139
  }
140
140
 
141
+ .disabledSlideContent {
142
+ pointer-events: none;
143
+ }
144
+
141
145
  @media tablet {
142
146
  @keyframes popInAnimation {
143
147
  from {
@@ -0,0 +1,34 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { View } from 'react-native';
5
+ import keys from 'lodash/fp/keys';
6
+ import Slide from '../review-slide/index.native';
7
+ export const TOTAL_SLIDES_STACK = 5;
8
+
9
+ const StackedSlides = props => {
10
+ const {
11
+ slides = {},
12
+ endReview,
13
+ validateButton,
14
+ correctionPopinProps
15
+ } = props;
16
+ const indexes = keys(slides).reverse();
17
+ const stackedSlides = indexes.map(slideIndex => {
18
+ const slide = slides[slideIndex]; // const {animationType, hidden, position} = slide;
19
+
20
+ return /*#__PURE__*/React.createElement(Slide, _extends({
21
+ num: Number.parseInt(slideIndex),
22
+ slideIndex,
23
+ slide,
24
+ validateButton,
25
+ correctionPopinProps
26
+ }, {
27
+ key: slideIndex
28
+ }));
29
+ });
30
+ return /*#__PURE__*/React.createElement(View, null, stackedSlides);
31
+ };
32
+
33
+ export default StackedSlides;
34
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"names":["React","View","keys","Slide","TOTAL_SLIDES_STACK","StackedSlides","props","slides","endReview","validateButton","correctionPopinProps","indexes","reverse","stackedSlides","map","slideIndex","slide","num","Number","parseInt"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAQC,IAAR,QAAmB,cAAnB;AACA,OAAOC,IAAP,MAAiB,gBAAjB;AACA,OAAOC,KAAP,MAAkB,8BAAlB;AAGA,OAAO,MAAMC,kBAAkB,GAAG,CAA3B;;AAEP,MAAMC,aAAa,GAAIC,KAAD,IAAkB;AACtC,QAAM;AAACC,IAAAA,MAAM,GAAG,EAAV;AAAcC,IAAAA,SAAd;AAAyBC,IAAAA,cAAzB;AAAyCC,IAAAA;AAAzC,MAAiEJ,KAAvE;AAEA,QAAMK,OAAO,GAAGT,IAAI,CAACK,MAAD,CAAJ,CAAaK,OAAb,EAAhB;AACA,QAAMC,aAAa,GAAGF,OAAO,CAACG,GAAR,CAAYC,UAAU,IAAI;AAC9C,UAAMC,KAAK,GAAGT,MAAM,CAACQ,UAAD,CAApB,CAD8C,CAE9C;;AAEA,wBACE,oBAAC,KAAD,WACM;AACFE,MAAAA,GAAG,EAAEC,MAAM,CAACC,QAAP,CAAgBJ,UAAhB,CADH;AAEFA,MAAAA,UAFE;AAGFC,MAAAA,KAHE;AAIFP,MAAAA,cAJE;AAKFC,MAAAA;AALE,KADN;AAQE,MAAA,GAAG,EAAEK;AARP,OADF;AAYD,GAhBqB,CAAtB;AAkBA,sBAAO,oBAAC,IAAD,QAAOF,aAAP,CAAP;AACD,CAvBD;;AAyBA,eAAeR,aAAf","sourcesContent":["import React from 'react';\nimport {View} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport Slide from '../review-slide/index.native';\nimport {Props} from './prop-types';\n\nexport const TOTAL_SLIDES_STACK = 5;\n\nconst StackedSlides = (props: Props) => {\n const {slides = {}, endReview, validateButton, correctionPopinProps} = props;\n\n const indexes = keys(slides).reverse();\n const stackedSlides = indexes.map(slideIndex => {\n const slide = slides[slideIndex];\n // const {animationType, hidden, position} = slide;\n\n return (\n <Slide\n {...{\n num: Number.parseInt(slideIndex),\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n return <View>{stackedSlides}</View>;\n};\n\nexport default StackedSlides;\n"],"file":"index.native.js"}
@@ -1,6 +1,6 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import ReviewSlideProps, { SlideProp } from '../review-slide/prop-types';
3
- export default {
3
+ const propTypes = {
4
4
  validateButton: ReviewSlideProps.validateButton,
5
5
  correctionPopinProps: ReviewSlideProps.correctionPopinProps,
6
6
  slides: PropTypes.shape({
@@ -9,7 +9,8 @@ export default {
9
9
  '2': SlideProp,
10
10
  '3': SlideProp,
11
11
  '4': SlideProp
12
- }),
12
+ }).isRequired,
13
13
  endReview: PropTypes.bool
14
14
  };
15
+ export default propTypes;
15
16
  //# sourceMappingURL=prop-types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/organism/review-stacked-slides/prop-types.js"],"names":["PropTypes","ReviewSlideProps","SlideProp","validateButton","correctionPopinProps","slides","shape","endReview","bool"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,gBAAP,IAA0BC,SAA1B,QAA0C,4BAA1C;AAEA,eAAe;AACbC,EAAAA,cAAc,EAAEF,gBAAgB,CAACE,cADpB;AAEbC,EAAAA,oBAAoB,EAAEH,gBAAgB,CAACG,oBAF1B;AAGbC,EAAAA,MAAM,EAAEL,SAAS,CAACM,KAAV,CAAgB;AACtB,SAAKJ,SADiB;AAEtB,SAAKA,SAFiB;AAGtB,SAAKA,SAHiB;AAItB,SAAKA,SAJiB;AAKtB,SAAKA;AALiB,GAAhB,CAHK;AAUbK,EAAAA,SAAS,EAAEP,SAAS,CAACQ;AAVR,CAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewSlideProps, {SlideProp} from '../review-slide/prop-types';\n\nexport default {\n validateButton: ReviewSlideProps.validateButton,\n correctionPopinProps: ReviewSlideProps.correctionPopinProps,\n slides: PropTypes.shape({\n '0': SlideProp,\n '1': SlideProp,\n '2': SlideProp,\n '3': SlideProp,\n '4': SlideProp\n }),\n endReview: PropTypes.bool\n};\n"],"file":"prop-types.js"}
1
+ {"version":3,"sources":["../../../src/organism/review-stacked-slides/prop-types.ts"],"names":["PropTypes","ReviewSlideProps","SlideProp","propTypes","validateButton","correctionPopinProps","slides","shape","isRequired","endReview","bool"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,gBAAP,IAA0BC,SAA1B,QAA0C,4BAA1C;AAEA,MAAMC,SAAS,GAAG;AAChBC,EAAAA,cAAc,EAAEH,gBAAgB,CAACG,cADjB;AAEhBC,EAAAA,oBAAoB,EAAEJ,gBAAgB,CAACI,oBAFvB;AAGhBC,EAAAA,MAAM,EAAEN,SAAS,CAACO,KAAV,CAAgB;AACtB,SAAKL,SADiB;AAEtB,SAAKA,SAFiB;AAGtB,SAAKA,SAHiB;AAItB,SAAKA,SAJiB;AAKtB,SAAKA;AALiB,GAAhB,EAMLM,UATa;AAUhBC,EAAAA,SAAS,EAAET,SAAS,CAACU;AAVL,CAAlB;AAaA,eAAeP,SAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewSlideProps, {SlideProp} from '../review-slide/prop-types';\n\nconst propTypes = {\n validateButton: ReviewSlideProps.validateButton,\n correctionPopinProps: ReviewSlideProps.correctionPopinProps,\n slides: PropTypes.shape({\n '0': SlideProp,\n '1': SlideProp,\n '2': SlideProp,\n '3': SlideProp,\n '4': SlideProp\n }).isRequired,\n endReview: PropTypes.bool\n};\n\nexport default propTypes;\n\nexport type Props = PropTypes.InferProps<typeof propTypes>;\n"],"file":"prop-types.js"}