@coorpacademy/components 10.22.8 → 10.22.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/molecule/cm-popin/index.js +4 -2
- package/es/molecule/cm-popin/index.js.map +1 -1
- package/es/molecule/review-correction-popin/prop-types.js +0 -1
- package/es/molecule/review-correction-popin/prop-types.js.map +1 -1
- package/es/organism/review-congrats/style.css +1 -1
- package/es/organism/review-slide/index.js +184 -0
- package/es/organism/review-slide/index.js.map +1 -0
- package/es/organism/review-slide/prop-types.js +37 -0
- package/es/organism/review-slide/prop-types.js.map +1 -0
- package/es/organism/review-slide/style.css +171 -0
- package/es/organism/review-stacked-slides/index.js +81 -0
- package/es/organism/review-stacked-slides/index.js.map +1 -0
- package/es/organism/review-stacked-slides/prop-types.js +16 -0
- package/es/organism/review-stacked-slides/prop-types.js.map +1 -0
- package/es/organism/review-stacked-slides/style.css +179 -0
- package/es/template/app-review/index.js +7 -8
- package/es/template/app-review/index.js.map +1 -1
- package/es/template/app-review/index.native.js +6 -10
- package/es/template/app-review/index.native.js.map +1 -1
- package/es/template/app-review/player/index.js +36 -0
- package/es/template/app-review/player/index.js.map +1 -0
- package/es/template/app-review/{slides → player}/index.native.js +15 -13
- package/es/template/app-review/player/index.native.js.map +1 -0
- package/es/template/app-review/player/prop-types.js +12 -0
- package/es/template/app-review/player/prop-types.js.map +1 -0
- package/es/template/app-review/player/style.css +41 -0
- package/es/template/app-review/prop-types.js +3 -3
- package/es/template/app-review/prop-types.js.map +1 -1
- package/lib/molecule/cm-popin/index.js +4 -2
- package/lib/molecule/cm-popin/index.js.map +1 -1
- package/lib/molecule/review-correction-popin/prop-types.js +0 -1
- package/lib/molecule/review-correction-popin/prop-types.js.map +1 -1
- package/lib/organism/review-congrats/style.css +1 -1
- package/lib/organism/review-slide/index.js +206 -0
- package/lib/organism/review-slide/index.js.map +1 -0
- package/lib/organism/review-slide/prop-types.js +50 -0
- package/lib/organism/review-slide/prop-types.js.map +1 -0
- package/lib/organism/review-slide/style.css +171 -0
- package/lib/organism/review-stacked-slides/index.js +99 -0
- package/lib/organism/review-stacked-slides/index.js.map +1 -0
- package/lib/organism/review-stacked-slides/prop-types.js +30 -0
- package/lib/organism/review-stacked-slides/prop-types.js.map +1 -0
- package/lib/organism/review-stacked-slides/style.css +179 -0
- package/lib/template/app-review/index.js +6 -8
- package/lib/template/app-review/index.js.map +1 -1
- package/lib/template/app-review/index.native.js +6 -11
- package/lib/template/app-review/index.native.js.map +1 -1
- package/lib/template/app-review/player/index.js +51 -0
- package/lib/template/app-review/player/index.js.map +1 -0
- package/lib/template/app-review/{slides → player}/index.native.js +14 -12
- package/lib/template/app-review/player/index.native.js.map +1 -0
- package/lib/template/app-review/player/prop-types.js +25 -0
- package/lib/template/app-review/player/prop-types.js.map +1 -0
- package/lib/template/app-review/player/style.css +41 -0
- package/lib/template/app-review/prop-types.js +3 -3
- package/lib/template/app-review/prop-types.js.map +1 -1
- package/package.json +2 -2
- package/es/template/app-review/slides/index.js +0 -352
- package/es/template/app-review/slides/index.js.map +0 -1
- package/es/template/app-review/slides/index.native.js.map +0 -1
- package/es/template/app-review/slides/prop-types.js +0 -111
- package/es/template/app-review/slides/prop-types.js.map +0 -1
- package/es/template/app-review/slides/style.css +0 -409
- package/lib/template/app-review/slides/index.js +0 -385
- package/lib/template/app-review/slides/index.js.map +0 -1
- package/lib/template/app-review/slides/index.native.js.map +0 -1
- package/lib/template/app-review/slides/prop-types.js +0 -131
- package/lib/template/app-review/slides/prop-types.js.map +0 -1
- package/lib/template/app-review/slides/style.css +0 -409
|
@@ -76,7 +76,8 @@ const CMPopin = props => {
|
|
|
76
76
|
theme,
|
|
77
77
|
details,
|
|
78
78
|
requiredSelection,
|
|
79
|
-
disabled
|
|
79
|
+
disabled,
|
|
80
|
+
id
|
|
80
81
|
} = el;
|
|
81
82
|
return /*#__PURE__*/React.createElement("div", {
|
|
82
83
|
key: index,
|
|
@@ -90,7 +91,8 @@ const CMPopin = props => {
|
|
|
90
91
|
theme,
|
|
91
92
|
details,
|
|
92
93
|
requiredSelection,
|
|
93
|
-
disabled
|
|
94
|
+
disabled,
|
|
95
|
+
id
|
|
94
96
|
}));
|
|
95
97
|
})(listBtnSwicth);
|
|
96
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","NovaLineSettingsCookie","Cookie","map","Cta","ButtonLinkIconOnly","InputSwitch","style","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","renderHeader","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","convert","cap","el","type","title","value","onChange","titlePosition","theme","details","requiredSelection","disabled","background","popinCookie","popin","popinHeader","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","propTypes","string","oneOf","shape","func","bool","boolean","arrayOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth\n } = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const renderHeader = () => {\n if (header) return <img className={style.headerBackground} src={header} />;\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n return null;\n };\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={mode === 'cookie' ? style.popinCookie : style.popin}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.titleContainer}>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {renderBtnSwitch()}\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information', 'cookie']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary'])\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n thirdButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string,\n cookieTitle: PropTypes.string,\n descriptionBtnTxt: PropTypes.string,\n listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","NovaLineSettingsCookie","Cookie","map","Cta","ButtonLinkIconOnly","InputSwitch","style","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","renderHeader","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","convert","cap","el","type","title","value","onChange","titlePosition","theme","details","requiredSelection","disabled","id","background","popinCookie","popin","popinHeader","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","propTypes","string","oneOf","shape","func","bool","boolean","arrayOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth\n } = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const renderHeader = () => {\n if (header) return <img className={style.headerBackground} src={header} />;\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n return null;\n };\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={mode === 'cookie' ? style.popinCookie : style.popin}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.titleContainer}>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {renderBtnSwitch()}\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information', 'cookie']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary'])\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n thirdButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.boolean\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string,\n cookieTitle: PropTypes.string,\n descriptionBtnTxt: PropTypes.string,\n listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/review-correction-popin/prop-types.js"],"names":["PropTypes","type","oneOf","resultLabel","string","information","shape","label","message","next","onClick","func","klf","tooltip"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,eAAe;AACbC,EAAAA,IAAI,EAAED,SAAS,CAACE,KAAV,CAAgB,CAAC,OAAD,EAAU,OAAV,CAAhB,CADO;AAEbC,EAAAA,WAAW,EAAEH,SAAS,CAACI,MAFV;AAGbC,EAAAA,WAAW,EAAEL,SAAS,CAACM,KAAV,CAAgB;AAC3BC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADU;AAE3BI,IAAAA,OAAO,EAAER,SAAS,CAACI;AAFQ,GAAhB,CAHA;AAObK,EAAAA,IAAI,EAAET,SAAS,CAACM,KAAV,CAAgB;AACpBC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADG;AAEpBM,IAAAA,OAAO,EAAEV,SAAS,CAACW,IAFC;AAGpB,iBAAaX,SAAS,CAACI,MAHH;AAIpB,kBAAcJ,SAAS,CAACI;AAJJ,GAAhB,CAPO;AAabQ,EAAAA,GAAG,EAAEZ,SAAS,CAACM,KAAV,CAAgB;AACnBC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADE;
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/review-correction-popin/prop-types.js"],"names":["PropTypes","type","oneOf","resultLabel","string","information","shape","label","message","next","onClick","func","klf","tooltip"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,eAAe;AACbC,EAAAA,IAAI,EAAED,SAAS,CAACE,KAAV,CAAgB,CAAC,OAAD,EAAU,OAAV,CAAhB,CADO;AAEbC,EAAAA,WAAW,EAAEH,SAAS,CAACI,MAFV;AAGbC,EAAAA,WAAW,EAAEL,SAAS,CAACM,KAAV,CAAgB;AAC3BC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADU;AAE3BI,IAAAA,OAAO,EAAER,SAAS,CAACI;AAFQ,GAAhB,CAHA;AAObK,EAAAA,IAAI,EAAET,SAAS,CAACM,KAAV,CAAgB;AACpBC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADG;AAEpBM,IAAAA,OAAO,EAAEV,SAAS,CAACW,IAFC;AAGpB,iBAAaX,SAAS,CAACI,MAHH;AAIpB,kBAAcJ,SAAS,CAACI;AAJJ,GAAhB,CAPO;AAabQ,EAAAA,GAAG,EAAEZ,SAAS,CAACM,KAAV,CAAgB;AACnBC,IAAAA,KAAK,EAAEP,SAAS,CAACI,MADE;AAEnBS,IAAAA,OAAO,EAAEb,SAAS,CAACI;AAFA,GAAhB;AAbQ,CAAf","sourcesContent":["import PropTypes from 'prop-types';\n\nexport default {\n type: PropTypes.oneOf(['right', 'wrong']),\n resultLabel: PropTypes.string,\n information: PropTypes.shape({\n label: PropTypes.string,\n message: PropTypes.string\n }),\n next: PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n 'data-name': PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n klf: PropTypes.shape({\n label: PropTypes.string,\n tooltip: PropTypes.string\n })\n};\n"],"file":"prop-types.js"}
|
|
@@ -0,0 +1,184 @@
|
|
|
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, { useMemo } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import get from 'lodash/fp/get';
|
|
7
|
+
import getOr from 'lodash/fp/getOr';
|
|
8
|
+
import Answer from '../../molecule/answer';
|
|
9
|
+
import ButtonLink from '../../atom/button-link';
|
|
10
|
+
import Provider from '../../atom/provider';
|
|
11
|
+
import ReviewCorrectionPopin from '../../molecule/review-correction-popin';
|
|
12
|
+
import propTypes from './prop-types';
|
|
13
|
+
import style from './style.css';
|
|
14
|
+
|
|
15
|
+
const CorrectionPopin = ({
|
|
16
|
+
correctionPopinProps,
|
|
17
|
+
slideIndex,
|
|
18
|
+
showCorrectionPopin,
|
|
19
|
+
animateCorrectionPopin
|
|
20
|
+
}) => {
|
|
21
|
+
if (!showCorrectionPopin) return null;
|
|
22
|
+
const klf = getOr({}, 'klf', correctionPopinProps);
|
|
23
|
+
const information = getOr({
|
|
24
|
+
label: '',
|
|
25
|
+
message: ''
|
|
26
|
+
}, 'information', correctionPopinProps);
|
|
27
|
+
const next = get('next', correctionPopinProps);
|
|
28
|
+
const _correctionPopinProps = {
|
|
29
|
+
next: {
|
|
30
|
+
onClick: () => {
|
|
31
|
+
// eslint-disable-next-line no-console
|
|
32
|
+
console.log('Next Slide');
|
|
33
|
+
},
|
|
34
|
+
label: next && next.label,
|
|
35
|
+
'data-name': `next-question-button-${slideIndex}`,
|
|
36
|
+
'aria-label': next && next['aria-label']
|
|
37
|
+
},
|
|
38
|
+
klf,
|
|
39
|
+
information,
|
|
40
|
+
type: correctionPopinProps.type,
|
|
41
|
+
resultLabel: correctionPopinProps.resultLabel
|
|
42
|
+
};
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
className: classnames(style.correctionPopinWrapper, animateCorrectionPopin ? style.popinAnimation : null)
|
|
45
|
+
}, /*#__PURE__*/React.createElement(ReviewCorrectionPopin, _correctionPopinProps));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
CorrectionPopin.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
49
|
+
slideIndex: PropTypes.string,
|
|
50
|
+
showCorrectionPopin: PropTypes.bool,
|
|
51
|
+
animateCorrectionPopin: PropTypes.bool,
|
|
52
|
+
correctionPopinProps: propTypes.correctionPopinProps
|
|
53
|
+
} : {};
|
|
54
|
+
|
|
55
|
+
const ValidateButton = ({
|
|
56
|
+
slideIndex,
|
|
57
|
+
validateButton,
|
|
58
|
+
primarySkinColor
|
|
59
|
+
}) => {
|
|
60
|
+
const {
|
|
61
|
+
label,
|
|
62
|
+
onClick,
|
|
63
|
+
disabled
|
|
64
|
+
} = validateButton;
|
|
65
|
+
const validateButtonProps = {
|
|
66
|
+
type: 'primary',
|
|
67
|
+
label,
|
|
68
|
+
'aria-label': label,
|
|
69
|
+
'data-name': `slide-validate-button-${slideIndex}`,
|
|
70
|
+
onClick,
|
|
71
|
+
disabled,
|
|
72
|
+
className: style.validateButton,
|
|
73
|
+
customStyle: {
|
|
74
|
+
backgroundColor: primarySkinColor
|
|
75
|
+
}
|
|
76
|
+
/*
|
|
77
|
+
slide validation action, this will trigger the correction popin
|
|
78
|
+
(with the useEffect that fires the dispatchers, if there is a nextContent content,
|
|
79
|
+
it will be loaded here) but will not trigger any animations unless the endReview
|
|
80
|
+
signal is received (all slide will disappear, also fired in a useEffect),
|
|
81
|
+
if it is the last slide and the content needs to be different, then that update will
|
|
82
|
+
be handled on the next slide logic but the content will be carried from here.
|
|
83
|
+
onClick: async () => {
|
|
84
|
+
// endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'
|
|
85
|
+
await validateSlide();
|
|
86
|
+
},
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
};
|
|
90
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
91
|
+
key: "button-wrapper",
|
|
92
|
+
className: style.validateButtonWrapper
|
|
93
|
+
}, /*#__PURE__*/React.createElement(ButtonLink, validateButtonProps));
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
ValidateButton.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
97
|
+
slideIndex: PropTypes.string,
|
|
98
|
+
validateButton: propTypes.validateButton,
|
|
99
|
+
primarySkinColor: PropTypes.string
|
|
100
|
+
} : {};
|
|
101
|
+
|
|
102
|
+
const QuestionContainer = props => {
|
|
103
|
+
const {
|
|
104
|
+
answerUI,
|
|
105
|
+
questionText,
|
|
106
|
+
questionOrigin
|
|
107
|
+
} = props;
|
|
108
|
+
if (!answerUI || !questionText) return null;
|
|
109
|
+
const answerProps = get(['model', 'choices'], answerUI) ?
|
|
110
|
+
/* istanbul ignore next */
|
|
111
|
+
_extends(_extends({}, answerUI), {}, {
|
|
112
|
+
model: _extends(_extends({}, answerUI.model), {}, {
|
|
113
|
+
answers: answerUI.model.choices
|
|
114
|
+
})
|
|
115
|
+
}) : answerUI;
|
|
116
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
117
|
+
key: "content-container",
|
|
118
|
+
className: style.slideContentContainer
|
|
119
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
120
|
+
key: "from-course",
|
|
121
|
+
className: style.questionOrigin
|
|
122
|
+
}, questionOrigin), /*#__PURE__*/React.createElement("div", {
|
|
123
|
+
key: "title",
|
|
124
|
+
className: style.question
|
|
125
|
+
}, questionText), /*#__PURE__*/React.createElement("div", {
|
|
126
|
+
key: "help",
|
|
127
|
+
className: style.help
|
|
128
|
+
}, get('help', answerUI)), /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
key: "answer-container",
|
|
130
|
+
className: style.answerContainer
|
|
131
|
+
}, /*#__PURE__*/React.createElement(Answer, _extends({}, answerProps, {
|
|
132
|
+
key: "answer"
|
|
133
|
+
}))));
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
QuestionContainer.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
137
|
+
answerUI: PropTypes.shape(propTypes.slide.answerUI),
|
|
138
|
+
questionText: PropTypes.string,
|
|
139
|
+
questionOrigin: PropTypes.string
|
|
140
|
+
} : {};
|
|
141
|
+
|
|
142
|
+
const Slide = (props, context) => {
|
|
143
|
+
const {
|
|
144
|
+
slide,
|
|
145
|
+
validateButton,
|
|
146
|
+
correctionPopinProps,
|
|
147
|
+
slideIndex = '0'
|
|
148
|
+
} = props;
|
|
149
|
+
const {
|
|
150
|
+
skin
|
|
151
|
+
} = context;
|
|
152
|
+
const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);
|
|
153
|
+
const {
|
|
154
|
+
parentContentTitle,
|
|
155
|
+
questionText,
|
|
156
|
+
answerUI,
|
|
157
|
+
showCorrectionPopin,
|
|
158
|
+
animateCorrectionPopin
|
|
159
|
+
} = slide;
|
|
160
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
"data-name": `slide-container`,
|
|
162
|
+
className: style.slide
|
|
163
|
+
}, /*#__PURE__*/React.createElement(QuestionContainer, {
|
|
164
|
+
questionOrigin: parentContentTitle,
|
|
165
|
+
questionText: questionText,
|
|
166
|
+
answerUI: answerUI
|
|
167
|
+
}), /*#__PURE__*/React.createElement(ValidateButton, {
|
|
168
|
+
slideIndex: slideIndex,
|
|
169
|
+
validateButton: validateButton,
|
|
170
|
+
primarySkinColor: primarySkinColor
|
|
171
|
+
}), /*#__PURE__*/React.createElement(CorrectionPopin, {
|
|
172
|
+
correctionPopinProps: correctionPopinProps,
|
|
173
|
+
slideIndex: slideIndex,
|
|
174
|
+
showCorrectionPopin: showCorrectionPopin,
|
|
175
|
+
animateCorrectionPopin: animateCorrectionPopin
|
|
176
|
+
}));
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
Slide.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
|
|
180
|
+
Slide.contextTypes = {
|
|
181
|
+
skin: Provider.childContextTypes.skin
|
|
182
|
+
};
|
|
183
|
+
export default Slide;
|
|
184
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Provider","ReviewCorrectionPopin","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","help","answerContainer","shape","slide","Slide","context","skin","parentContentTitle","contextTypes","childContextTypes"],"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,QAAP,MAAqB,qBAArB;AACA,OAAOC,qBAAP,MAAkC,wCAAlC;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,GAAGZ,KAAK,CAAC,EAAD,EAAK,KAAL,EAAYQ,oBAAZ,CAAjB;AACA,QAAMK,WAAW,GAAGb,KAAK,CAAC;AAACc,IAAAA,KAAK,EAAE,EAAR;AAAYC,IAAAA,OAAO,EAAE;AAArB,GAAD,EAA2B,aAA3B,EAA0CP,oBAA1C,CAAzB;AACA,QAAMQ,IAAI,GAAGjB,GAAG,CAAC,MAAD,EAASS,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,EAAExB,UAAU,CACnBQ,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,EAAEZ,SAAS,CAAC4B,MADI;AAE1Bf,EAAAA,mBAAmB,EAAEb,SAAS,CAAC6B,IAFL;AAG1Bf,EAAAA,sBAAsB,EAAEd,SAAS,CAAC6B,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,EAAEZ,SAAS,CAAC4B,MADG;AAEzBG,EAAAA,cAAc,EAAEvB,SAAS,CAACuB,cAFD;AAGzBC,EAAAA,gBAAgB,EAAEhC,SAAS,CAAC4B;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,GAAG1C,GAAG,CAAC,CAAC,OAAD,EAAU,SAAV,CAAD,EAAuBuC,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;AAAK,IAAA,GAAG,EAAC,OAAT;AAAiB,IAAA,SAAS,EAAElC,KAAK,CAACwC;AAAlC,KACGP,YADH,CAJF,eAOE;AAAK,IAAA,GAAG,EAAC,MAAT;AAAgB,IAAA,SAAS,EAAEjC,KAAK,CAACyC;AAAjC,KACGhD,GAAG,CAAC,MAAD,EAASuC,QAAT,CADN,CAPF,eAUE;AAAK,IAAA,GAAG,EAAC,kBAAT;AAA4B,IAAA,SAAS,EAAEhC,KAAK,CAAC0C;AAA7C,kBACE,oBAAC,MAAD,eAAYP,WAAZ;AAAyB,IAAA,GAAG,EAAC;AAA7B,KADF,CAVF,CADF;AAgBD,CA9BD;;AAgCAL,iBAAiB,CAAC/B,SAAlB,2CAA8B;AAC5BiC,EAAAA,QAAQ,EAAEzC,SAAS,CAACoD,KAAV,CAAgB5C,SAAS,CAAC6C,KAAV,CAAgBZ,QAAhC,CADkB;AAE5BC,EAAAA,YAAY,EAAE1C,SAAS,CAAC4B,MAFI;AAG5Be,EAAAA,cAAc,EAAE3C,SAAS,CAAC4B;AAHE,CAA9B;;AAMA,MAAM0B,KAAK,GAAG,CAACd,KAAD,EAAQe,OAAR,KAAoB;AAChC,QAAM;AAACF,IAAAA,KAAD;AAAQtB,IAAAA,cAAR;AAAwBpB,IAAAA,oBAAxB;AAA8CC,IAAAA,UAAU,GAAG;AAA3D,MAAkE4B,KAAxE;AAEA,QAAM;AAACgB,IAAAA;AAAD,MAASD,OAAf;AACA,QAAMvB,gBAAgB,GAAGjC,OAAO,CAAC,MAAMI,KAAK,CAAC,SAAD,EAAY,gBAAZ,EAA8BqD,IAA9B,CAAZ,EAAiD,CAACA,IAAD,CAAjD,CAAhC;AACA,QAAM;AACJC,IAAAA,kBADI;AAEJf,IAAAA,YAFI;AAGJD,IAAAA,QAHI;AAIJ5B,IAAAA,mBAJI;AAKJC,IAAAA;AALI,MAMFuC,KANJ;AAQA,sBACE;AAAK,iBAAY,iBAAjB;AAAmC,IAAA,SAAS,EAAE5C,KAAK,CAAC4C;AAApD,kBACE,oBAAC,iBAAD;AACE,IAAA,cAAc,EAAEI,kBADlB;AAEE,IAAA,YAAY,EAAEf,YAFhB;AAGE,IAAA,QAAQ,EAAED;AAHZ,IADF,eAME,oBAAC,cAAD;AACE,IAAA,UAAU,EAAE7B,UADd;AAEE,IAAA,cAAc,EAAEmB,cAFlB;AAGE,IAAA,gBAAgB,EAAEC;AAHpB,IANF,eAWE,oBAAC,eAAD;AACE,IAAA,oBAAoB,EAAErB,oBADxB;AAEE,IAAA,UAAU,EAAEC,UAFd;AAGE,IAAA,mBAAmB,EAAEC,mBAHvB;AAIE,IAAA,sBAAsB,EAAEC;AAJ1B,IAXF,CADF;AAoBD,CAjCD;;AAmCAwC,KAAK,CAAC9C,SAAN,2CAAkBA,SAAlB;AAEA8C,KAAK,CAACI,YAAN,GAAqB;AACnBF,EAAAA,IAAI,EAAElD,QAAQ,CAACqD,iBAAT,CAA2BH;AADd,CAArB;AAIA,eAAeF,KAAf","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 Provider from '../../atom/provider';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\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 key=\"title\" className={style.question}>\n {questionText}\n </div>\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 Slide = (props, context) => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\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 <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n />\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n />\n </div>\n );\n};\n\nSlide.propTypes = propTypes;\n\nSlide.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default Slide;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import ReviewCorrectionPopinPropTypes from '../../molecule/review-correction-popin/prop-types';
|
|
3
|
+
import AnswerPropTypes from '../../molecule/answer/prop-types';
|
|
4
|
+
export const SlideProp = PropTypes.shape({
|
|
5
|
+
hidden: PropTypes.bool,
|
|
6
|
+
position: PropTypes.number,
|
|
7
|
+
animationType: PropTypes.string,
|
|
8
|
+
// 'unstack' | 'restack'
|
|
9
|
+
isCorrect: PropTypes.bool,
|
|
10
|
+
animateCorrectionPopin: PropTypes.bool,
|
|
11
|
+
showCorrectionPopin: PropTypes.bool,
|
|
12
|
+
parentContentTitle: PropTypes.string,
|
|
13
|
+
questionText: PropTypes.string,
|
|
14
|
+
answerUI: PropTypes.shape(AnswerPropTypes)
|
|
15
|
+
});
|
|
16
|
+
export default {
|
|
17
|
+
slideIndex: PropTypes.string,
|
|
18
|
+
slide: SlideProp,
|
|
19
|
+
validateButton: PropTypes.shape({
|
|
20
|
+
label: PropTypes.string.isRequired,
|
|
21
|
+
onClick: PropTypes.func.isRequired,
|
|
22
|
+
disabled: PropTypes.bool
|
|
23
|
+
}),
|
|
24
|
+
correctionPopinProps: PropTypes.shape({
|
|
25
|
+
klf: ReviewCorrectionPopinPropTypes.klf,
|
|
26
|
+
information: ReviewCorrectionPopinPropTypes.information,
|
|
27
|
+
next: PropTypes.shape({
|
|
28
|
+
label: PropTypes.string,
|
|
29
|
+
'aria-label': PropTypes.string // Pourquoi le onClick du next n'est pas ici !
|
|
30
|
+
// updateSlidesOnNext: PropTypes.func.isRequired ???
|
|
31
|
+
|
|
32
|
+
}),
|
|
33
|
+
resultLabel: ReviewCorrectionPopinPropTypes.resultLabel,
|
|
34
|
+
type: ReviewCorrectionPopinPropTypes.type
|
|
35
|
+
})
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=prop-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-slide/prop-types.js"],"names":["PropTypes","ReviewCorrectionPopinPropTypes","AnswerPropTypes","SlideProp","shape","hidden","bool","position","number","animationType","string","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,aAAa,EAAET,SAAS,CAACU,MAHc;AAGN;AACjCC,EAAAA,SAAS,EAAEX,SAAS,CAACM,IAJkB;AAKvCM,EAAAA,sBAAsB,EAAEZ,SAAS,CAACM,IALK;AAMvCO,EAAAA,mBAAmB,EAAEb,SAAS,CAACM,IANQ;AAOvCQ,EAAAA,kBAAkB,EAAEd,SAAS,CAACU,MAPS;AAQvCK,EAAAA,YAAY,EAAEf,SAAS,CAACU,MARe;AASvCM,EAAAA,QAAQ,EAAEhB,SAAS,CAACI,KAAV,CAAgBF,eAAhB;AAT6B,CAAhB,CAAlB;AAYP,eAAe;AACbe,EAAAA,UAAU,EAAEjB,SAAS,CAACU,MADT;AAEbQ,EAAAA,KAAK,EAAEf,SAFM;AAGbgB,EAAAA,cAAc,EAAEnB,SAAS,CAACI,KAAV,CAAgB;AAC9BgB,IAAAA,KAAK,EAAEpB,SAAS,CAACU,MAAV,CAAiBW,UADM;AAE9BC,IAAAA,OAAO,EAAEtB,SAAS,CAACuB,IAAV,CAAeF,UAFM;AAG9BG,IAAAA,QAAQ,EAAExB,SAAS,CAACM;AAHU,GAAhB,CAHH;AAQbmB,EAAAA,oBAAoB,EAAEzB,SAAS,CAACI,KAAV,CAAgB;AACpCsB,IAAAA,GAAG,EAAEzB,8BAA8B,CAACyB,GADA;AAEpCC,IAAAA,WAAW,EAAE1B,8BAA8B,CAAC0B,WAFR;AAGpCC,IAAAA,IAAI,EAAE5B,SAAS,CAACI,KAAV,CAAgB;AACpBgB,MAAAA,KAAK,EAAEpB,SAAS,CAACU,MADG;AAEpB,oBAAcV,SAAS,CAACU,MAFJ,CAEW;AAC/B;;AAHoB,KAAhB,CAH8B;AAQpCmB,IAAAA,WAAW,EAAE5B,8BAA8B,CAAC4B,WARR;AASpCC,IAAAA,IAAI,EAAE7B,8BAA8B,CAAC6B;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 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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
@value colors: "../../variables/colors.css";
|
|
2
|
+
@value black from colors;
|
|
3
|
+
@value white from colors;
|
|
4
|
+
@value cm_blue_900 from colors;
|
|
5
|
+
@value cm_grey_400 from colors;
|
|
6
|
+
@value breakpoints: "../../variables/breakpoints.css";
|
|
7
|
+
@value mobile from breakpoints;
|
|
8
|
+
@value tablet from breakpoints;
|
|
9
|
+
|
|
10
|
+
.fontBase {
|
|
11
|
+
font-family: "Gilroy";
|
|
12
|
+
user-select: none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.slide{
|
|
16
|
+
align-items: center;
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
justify-content: flex-start;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.slideContentContainer {
|
|
23
|
+
margin-top: 15px;
|
|
24
|
+
height: 563px;
|
|
25
|
+
display: flex;
|
|
26
|
+
justify-items: center;
|
|
27
|
+
align-items: center;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
overflow-y: auto;
|
|
30
|
+
position: relative;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* ie fallback */
|
|
34
|
+
_:-ms-fullscreen, :root .slideContentContainer {
|
|
35
|
+
width: 100%;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.validateButtonWrapper {
|
|
39
|
+
position: absolute;
|
|
40
|
+
bottom: 64px;
|
|
41
|
+
background-color: black;
|
|
42
|
+
border-radius: 7px;
|
|
43
|
+
min-width: 250px;
|
|
44
|
+
width: min-content;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ie fallback */
|
|
48
|
+
_:-ms-fullscreen, :root .validateButtonWrapper {
|
|
49
|
+
width: 300px;
|
|
50
|
+
left: 40%;
|
|
51
|
+
right: 40%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.answerContainer {
|
|
55
|
+
width: 95%;
|
|
56
|
+
display: flex;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
height: 100%;
|
|
59
|
+
/*
|
|
60
|
+
To break wrappers layout (to enclose large answers in the scroll bar), works like
|
|
61
|
+
display: contents for this use case but w ie11 support
|
|
62
|
+
*/
|
|
63
|
+
display: grid;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.question {
|
|
67
|
+
composes: fontBase;
|
|
68
|
+
font-size: 20px;
|
|
69
|
+
font-weight: bold;
|
|
70
|
+
color: cm_blue_900;
|
|
71
|
+
text-align: center;
|
|
72
|
+
margin: 24px 0 4px;
|
|
73
|
+
max-width: 70%;
|
|
74
|
+
width: 100%;
|
|
75
|
+
padding: 0 9px;
|
|
76
|
+
box-sizing: border-box;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.questionOrigin {
|
|
80
|
+
composes: fontBase;
|
|
81
|
+
font-size: 15px;
|
|
82
|
+
color: cm_blue_900;
|
|
83
|
+
margin-top: 49px;
|
|
84
|
+
text-align: center;
|
|
85
|
+
width: 85%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.questionOrigin:empty:after {
|
|
89
|
+
content: "\a0";
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.help {
|
|
93
|
+
composes: fontBase;
|
|
94
|
+
font-size: 15px;
|
|
95
|
+
color: cm_grey_400;
|
|
96
|
+
flex-grow: 0.1;
|
|
97
|
+
margin: 4px 0 10px;
|
|
98
|
+
text-align: center;
|
|
99
|
+
max-width: 70%;
|
|
100
|
+
width: 100%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* to keep the content space even if the help label is empty */
|
|
104
|
+
.help:empty:after {
|
|
105
|
+
content: "\a0";
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@keyframes popInAnimation {
|
|
109
|
+
from {
|
|
110
|
+
transform: translate3d(0, 200px, 0);
|
|
111
|
+
}
|
|
112
|
+
to {
|
|
113
|
+
transform: translate3d(0, 0, 0);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.correctionPopinWrapper {
|
|
118
|
+
position: absolute;
|
|
119
|
+
bottom: 0px;
|
|
120
|
+
border-radius: 7px;
|
|
121
|
+
margin: 0 15px 40px;
|
|
122
|
+
width: 95%;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.popinAnimation {
|
|
126
|
+
animation: popInAnimation 0.5s ease-out forwards;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* ie fallback */
|
|
130
|
+
_:-ms-fullscreen, :root .correctionPopinWrapper {
|
|
131
|
+
left: 15px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.validateButton {
|
|
135
|
+
color: white;
|
|
136
|
+
transition: opacity 0.25s ease-in;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.validateButton:hover {
|
|
140
|
+
opacity: 0.8;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@media tablet {
|
|
144
|
+
.slideContentContainer {
|
|
145
|
+
height: 473px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@keyframes popInAnimation {
|
|
149
|
+
from {
|
|
150
|
+
transform: translate3d(0, 400px, 0);
|
|
151
|
+
}
|
|
152
|
+
to {
|
|
153
|
+
transform: translate3d(0, 0, 0);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@media mobile {
|
|
159
|
+
.slideContentContainer {
|
|
160
|
+
height: 511px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@keyframes popInAnimation {
|
|
164
|
+
from {
|
|
165
|
+
transform: translate3d(0, 500px, 0);
|
|
166
|
+
}
|
|
167
|
+
to {
|
|
168
|
+
transform: translate3d(0, 0, 0);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
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 classnames from 'classnames';
|
|
5
|
+
import _toString from 'lodash/fp/toString';
|
|
6
|
+
import isNil from 'lodash/fp/isNil';
|
|
7
|
+
import Loader from '../../atom/loader';
|
|
8
|
+
import ReviewSlide from '../review-slide';
|
|
9
|
+
import propTypes from './prop-types';
|
|
10
|
+
import style from './style.css';
|
|
11
|
+
export const TOTAL_SLIDES_STACK = 5;
|
|
12
|
+
const stylesByPosition = {
|
|
13
|
+
0: style.position0,
|
|
14
|
+
1: style.position1,
|
|
15
|
+
2: style.position2,
|
|
16
|
+
3: style.position3,
|
|
17
|
+
4: style.position4
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const getSlideAnimation = (action, position, hidden) => {
|
|
21
|
+
switch (action) {
|
|
22
|
+
case 'unstack':
|
|
23
|
+
return style.slideOutHideAndIn;
|
|
24
|
+
|
|
25
|
+
case 'restack':
|
|
26
|
+
return style.slideOutAndIn;
|
|
27
|
+
|
|
28
|
+
default:
|
|
29
|
+
return hidden ? style.hiddenSlide : stylesByPosition[position];
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const StackedSlides = ({
|
|
34
|
+
slides,
|
|
35
|
+
endReview,
|
|
36
|
+
validateButton,
|
|
37
|
+
correctionPopinProps,
|
|
38
|
+
loadingAriaLabel
|
|
39
|
+
}) => {
|
|
40
|
+
const stackedSlides = []; // eslint-disable-next-line fp/no-loops
|
|
41
|
+
|
|
42
|
+
for (let slideIndex = 0; slideIndex < TOTAL_SLIDES_STACK; slideIndex++) {
|
|
43
|
+
const slide = slides[_toString(slideIndex)];
|
|
44
|
+
|
|
45
|
+
const {
|
|
46
|
+
animationType,
|
|
47
|
+
hidden,
|
|
48
|
+
position
|
|
49
|
+
} = slide;
|
|
50
|
+
const slideView = /*#__PURE__*/React.createElement("div", {
|
|
51
|
+
key: `slide-${slideIndex}`,
|
|
52
|
+
"data-name": `slide-${slideIndex}`,
|
|
53
|
+
className: classnames(style.slideBase, getSlideAnimation(animationType, position, hidden), endReview ? style.endReview : null)
|
|
54
|
+
}, isNil(slide.answerUI) && slide.position === 0 ? /*#__PURE__*/React.createElement(Loader, {
|
|
55
|
+
className: style.loader,
|
|
56
|
+
theme: "default",
|
|
57
|
+
"aria-label": loadingAriaLabel
|
|
58
|
+
}) : /*#__PURE__*/React.createElement(ReviewSlide, _extends({
|
|
59
|
+
slideIndex: _toString(slideIndex),
|
|
60
|
+
slide,
|
|
61
|
+
validateButton,
|
|
62
|
+
correctionPopinProps
|
|
63
|
+
}, {
|
|
64
|
+
key: slideIndex
|
|
65
|
+
})));
|
|
66
|
+
stackedSlides.push(slideView);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
70
|
+
key: "stacked-slides-container-y-overflow",
|
|
71
|
+
className: style.stackedSlidesYAxisOverflowContainer
|
|
72
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
73
|
+
key: "stacked-slides-container",
|
|
74
|
+
"data-name": "stacked-slides-container",
|
|
75
|
+
className: style.stackedSlidesContainer
|
|
76
|
+
}, stackedSlides));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
StackedSlides.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
|
|
80
|
+
export default StackedSlides;
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-stacked-slides/index.js"],"names":["React","classnames","_toString","isNil","Loader","ReviewSlide","propTypes","style","TOTAL_SLIDES_STACK","stylesByPosition","position0","position1","position2","position3","position4","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","StackedSlides","slides","endReview","validateButton","correctionPopinProps","loadingAriaLabel","stackedSlides","slideIndex","slide","animationType","slideView","slideBase","answerUI","loader","push","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,oBAAtB;AACA,OAAOC,KAAP,MAAkB,iBAAlB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,OAAO,MAAMC,kBAAkB,GAAG,CAA3B;AAEP,MAAMC,gBAAgB,GAAG;AACvB,KAAGF,KAAK,CAACG,SADc;AAEvB,KAAGH,KAAK,CAACI,SAFc;AAGvB,KAAGJ,KAAK,CAACK,SAHc;AAIvB,KAAGL,KAAK,CAACM,SAJc;AAKvB,KAAGN,KAAK,CAACO;AALc,CAAzB;;AAQA,MAAMC,iBAAiB,GAAG,CAACC,MAAD,EAASC,QAAT,EAAmBC,MAAnB,KAA8B;AACtD,UAAQF,MAAR;AACE,SAAK,SAAL;AACE,aAAOT,KAAK,CAACY,iBAAb;;AACF,SAAK,SAAL;AACE,aAAOZ,KAAK,CAACa,aAAb;;AACF;AACE,aAAOF,MAAM,GAAGX,KAAK,CAACc,WAAT,GAAuBZ,gBAAgB,CAACQ,QAAD,CAApD;AANJ;AAQD,CATD;;AAWA,MAAMK,aAAa,GAAG,CAAC;AACrBC,EAAAA,MADqB;AAErBC,EAAAA,SAFqB;AAGrBC,EAAAA,cAHqB;AAIrBC,EAAAA,oBAJqB;AAKrBC,EAAAA;AALqB,CAAD,KAMhB;AACJ,QAAMC,aAAa,GAAG,EAAtB,CADI,CAEJ;;AACA,OAAK,IAAIC,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAGrB,kBAAtC,EAA0DqB,UAAU,EAApE,EAAwE;AACtE,UAAMC,KAAK,GAAGP,MAAM,CAACrB,SAAS,CAAC2B,UAAD,CAAV,CAApB;;AACA,UAAM;AAACE,MAAAA,aAAD;AAAgBb,MAAAA,MAAhB;AAAwBD,MAAAA;AAAxB,QAAoCa,KAA1C;AAEA,UAAME,SAAS,gBACb;AACE,MAAA,GAAG,EAAG,SAAQH,UAAW,EAD3B;AAEE,mBAAY,SAAQA,UAAW,EAFjC;AAGE,MAAA,SAAS,EAAE5B,UAAU,CACnBM,KAAK,CAAC0B,SADa,EAEnBlB,iBAAiB,CAACgB,aAAD,EAAgBd,QAAhB,EAA0BC,MAA1B,CAFE,EAGnBM,SAAS,GAAGjB,KAAK,CAACiB,SAAT,GAAqB,IAHX;AAHvB,OASGrB,KAAK,CAAC2B,KAAK,CAACI,QAAP,CAAL,IAAyBJ,KAAK,CAACb,QAAN,KAAmB,CAA5C,gBACC,oBAAC,MAAD;AAAQ,MAAA,SAAS,EAAEV,KAAK,CAAC4B,MAAzB;AAAiC,MAAA,KAAK,EAAC,SAAvC;AAAiD,oBAAYR;AAA7D,MADD,gBAGC,oBAAC,WAAD,WACM;AACFE,MAAAA,UAAU,EAAE3B,SAAS,CAAC2B,UAAD,CADnB;AAEFC,MAAAA,KAFE;AAGFL,MAAAA,cAHE;AAIFC,MAAAA;AAJE,KADN;AAOE,MAAA,GAAG,EAAEG;AAPP,OAZJ,CADF;AAyBAD,IAAAA,aAAa,CAACQ,IAAd,CAAmBJ,SAAnB;AACD;;AAED,sBACE;AACE,IAAA,GAAG,EAAC,qCADN;AAEE,IAAA,SAAS,EAAEzB,KAAK,CAAC8B;AAFnB,kBAIE;AACE,IAAA,GAAG,EAAC,0BADN;AAEE,iBAAU,0BAFZ;AAGE,IAAA,SAAS,EAAE9B,KAAK,CAAC+B;AAHnB,KAKGV,aALH,CAJF,CADF;AAcD,CAvDD;;AAyDAN,aAAa,CAAChB,SAAd,2CAA0BA,SAA1B;AAEA,eAAegB,aAAf","sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport _toString from 'lodash/fp/toString';\nimport isNil from 'lodash/fp/isNil';\nimport Loader from '../../atom/loader';\nimport ReviewSlide from '../review-slide';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nexport const TOTAL_SLIDES_STACK = 5;\n\nconst stylesByPosition = {\n 0: style.position0,\n 1: style.position1,\n 2: style.position2,\n 3: style.position3,\n 4: style.position4\n};\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n case 'unstack':\n return style.slideOutHideAndIn;\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst StackedSlides = ({\n slides,\n endReview,\n validateButton,\n correctionPopinProps,\n loadingAriaLabel\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideIndex = 0; slideIndex < TOTAL_SLIDES_STACK; slideIndex++) {\n const slide = slides[_toString(slideIndex)];\n const {animationType, hidden, position} = slide;\n\n const slideView = (\n <div\n key={`slide-${slideIndex}`}\n data-name={`slide-${slideIndex}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {isNil(slide.answerUI) && slide.position === 0 ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n <ReviewSlide\n {...{\n slideIndex: _toString(slideIndex),\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n )}\n </div>\n );\n stackedSlides.push(slideView);\n }\n\n return (\n <div\n key=\"stacked-slides-container-y-overflow\"\n className={style.stackedSlidesYAxisOverflowContainer}\n >\n <div\n key=\"stacked-slides-container\"\n data-name=\"stacked-slides-container\"\n className={style.stackedSlidesContainer}\n >\n {stackedSlides}\n </div>\n </div>\n );\n};\n\nStackedSlides.propTypes = propTypes;\n\nexport default StackedSlides;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import ReviewSlideProps, { SlideProp } from '../review-slide/prop-types';
|
|
3
|
+
export default {
|
|
4
|
+
validateButton: ReviewSlideProps.validateButton,
|
|
5
|
+
correctionPopinProps: ReviewSlideProps.correctionPopinProps,
|
|
6
|
+
slides: PropTypes.shape({
|
|
7
|
+
'0': SlideProp,
|
|
8
|
+
'1': SlideProp,
|
|
9
|
+
'2': SlideProp,
|
|
10
|
+
'3': SlideProp,
|
|
11
|
+
'4': SlideProp
|
|
12
|
+
}),
|
|
13
|
+
endReview: PropTypes.bool,
|
|
14
|
+
loadingAriaLabel: PropTypes.string
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=prop-types.js.map
|