@coorpacademy/components 10.21.0 → 10.21.3
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/atom/input-checkbox/index.js +4 -2
- package/es/atom/input-checkbox/index.js.map +1 -1
- package/es/atom/review-header-step-item/index.js +3 -2
- package/es/atom/review-header-step-item/index.js.map +1 -1
- package/es/molecule/course-sections/index.js +8 -2
- package/es/molecule/course-sections/index.js.map +1 -1
- package/es/molecule/course-sections/style.css +2 -0
- package/es/organism/mooc-header/style.css +2 -2
- package/es/template/app-review/slides/index.js +25 -26
- package/es/template/app-review/slides/index.js.map +1 -1
- package/es/template/app-review/slides/prop-types.js +4 -4
- package/es/template/app-review/slides/prop-types.js.map +1 -1
- package/lib/atom/input-checkbox/index.js +4 -2
- package/lib/atom/input-checkbox/index.js.map +1 -1
- package/lib/atom/review-header-step-item/index.js +3 -2
- package/lib/atom/review-header-step-item/index.js.map +1 -1
- package/lib/molecule/course-sections/index.js +8 -2
- package/lib/molecule/course-sections/index.js.map +1 -1
- package/lib/molecule/course-sections/style.css +2 -0
- package/lib/organism/mooc-header/style.css +2 -2
- package/lib/template/app-review/slides/index.js +25 -26
- package/lib/template/app-review/slides/index.js.map +1 -1
- package/lib/template/app-review/slides/prop-types.js +4 -4
- package/lib/template/app-review/slides/prop-types.js.map +1 -1
- package/locales/hr/global.json +2 -2
- package/package.json +2 -2
|
@@ -39,7 +39,8 @@ const InputCheckbox = props => {
|
|
|
39
39
|
const className = getClassState(defaultContainerClassName, modifiedClassName, errorClassName, modified, error);
|
|
40
40
|
return /*#__PURE__*/React.createElement("label", {
|
|
41
41
|
className: className,
|
|
42
|
-
htmlFor: idCheckbox
|
|
42
|
+
htmlFor: idCheckbox,
|
|
43
|
+
"data-name": "checkbox-input-label"
|
|
43
44
|
}, /*#__PURE__*/React.createElement("input", {
|
|
44
45
|
type: "checkbox",
|
|
45
46
|
className: style.checkbox,
|
|
@@ -47,7 +48,8 @@ const InputCheckbox = props => {
|
|
|
47
48
|
id: idCheckbox,
|
|
48
49
|
checked: checked,
|
|
49
50
|
onChange: handleChange,
|
|
50
|
-
disabled: disabled
|
|
51
|
+
disabled: disabled,
|
|
52
|
+
"data-name": "checkbox-input"
|
|
51
53
|
}), /*#__PURE__*/React.createElement("div", {
|
|
52
54
|
className: classnames(style.label, noLabelMargins ? style.noLabelMargins : undefined)
|
|
53
55
|
}, /*#__PURE__*/React.createElement(CheckIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["React","useMemo","PropTypes","classnames","NovaSolidStatusValidate","CheckIcon","getClassState","style","titleStylesClassNames","inherit","primary","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","noLabelMargins","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","label","undefined","icon","propTypes","string","isRequired","bool","func","oneOf"],"mappings":";;;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,uBAAuB,IAAIC,SAAnC,QAAmD,0BAAnD;AAEA,OAAOC,aAAP,MAA0B,4BAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,qBAAqB,GAAG;AAC5BC,EAAAA,OAAO,EAAEF,KAAK,CAACE,OADa;AAE5BC,EAAAA,OAAO,EAAEH,KAAK,CAACG,OAFa;AAG5BC,EAAAA,SAAS,EAAEJ,KAAK,CAACI,SAHW;AAI5BC,EAAAA,QAAQ,EAAEL,KAAK,CAACK;AAJY,CAA9B;;AAOA,MAAMC,aAAa,GAAGC,KAAK,IAAI;AAC7B,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAAQ,QAFJ;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,QALI;AAMJC,IAAAA,UAAU,GAAG,SANT;AAOJC,IAAAA,QAAQ,GAAG,KAPP;AAQJC,IAAAA,KAAK,GAAG,SARJ;AASJC,IAAAA,KAAK,EAAEC,UATH;AAUJC,IAAAA,cAAc,GAAG;AAVb,MAWFX,KAXJ;AAaA,QAAMY,mBAAmB,GAAGlB,qBAAqB,CAACY,UAAD,CAAjD;;AACA,QAAMO,UAAU,GAAG,UAAS,iBAAT,CAAnB;;AACA,QAAMJ,KAAK,GAAI,GAAEC,UAAW,GAAEL,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAlD;AACA,QAAMS,YAAY,GAAG3B,OAAO,CAAC,MAAM4B,CAAC,IAAIb,QAAQ,CAACa,CAAC,CAACC,MAAF,CAASf,OAAV,CAApB,EAAwC,CAACC,QAAD,CAAxC,CAA5B;AAEA,QAAMe,iBAAiB,GACrBT,KAAK,KAAK,cAAV,GAA2Bf,KAAK,CAACyB,oBAAjC,GAAwDzB,KAAK,CAAC0B,eADhE;AAEA,QAAMC,cAAc,GAAGZ,KAAK,KAAK,cAAV,GAA2Bf,KAAK,CAAC4B,iBAAjC,GAAqD5B,KAAK,CAAC6B,YAAlF;AACA,QAAMC,yBAAyB,GAAGf,KAAK,KAAK,cAAV,GAA2Bf,KAAK,CAAC+B,YAAjC,GAAgD/B,KAAK,CAACgC,OAAxF;AAEA,QAAMC,SAAS,GAAGlC,aAAa,CAC7B+B,yBAD6B,EAE7BN,iBAF6B,EAG7BG,cAH6B,EAI7Bb,QAJ6B,EAK7BJ,KAL6B,CAA/B;AAQA,sBACE;AAAO,IAAA,SAAS,EAAEuB,SAAlB;AAA6B,IAAA,OAAO,EAAEb;
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["React","useMemo","PropTypes","classnames","NovaSolidStatusValidate","CheckIcon","getClassState","style","titleStylesClassNames","inherit","primary","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","noLabelMargins","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","label","undefined","icon","propTypes","string","isRequired","bool","func","oneOf"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidStatusValidate as CheckIcon} from '@coorpacademy/nova-icons';\nimport {keys, noop, uniqueId} from 'lodash/fp';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst titleStylesClassNames = {\n inherit: style.inherit,\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary\n};\n\nconst InputCheckbox = props => {\n const {\n checked,\n onChange = noop,\n error,\n disabled,\n required,\n titleStyle = 'primary',\n modified = false,\n theme = 'default',\n title: propsTitle,\n noLabelMargins = false\n } = props;\n\n const titleStyleClassName = titleStylesClassNames[titleStyle];\n const idCheckbox = uniqueId('input-checkbox-');\n const title = `${propsTitle}${required ? '*' : ''}`;\n const handleChange = useMemo(() => e => onChange(e.target.checked), [onChange]);\n\n const modifiedClassName =\n theme === 'coorpmanager' ? style.coorpManagerModified : style.defaultModified;\n const errorClassName = theme === 'coorpmanager' ? style.coorpManagerError : style.defaultError;\n const defaultContainerClassName = theme === 'coorpmanager' ? style.coorpManager : style.default;\n\n const className = getClassState(\n defaultContainerClassName,\n modifiedClassName,\n errorClassName,\n modified,\n error\n );\n\n return (\n <label className={className} htmlFor={idCheckbox} data-name=\"checkbox-input-label\">\n <input\n type=\"checkbox\"\n className={style.checkbox}\n name={title}\n id={idCheckbox}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n data-name=\"checkbox-input\"\n />\n <div className={classnames(style.label, noLabelMargins ? style.noLabelMargins : undefined)}>\n <CheckIcon className={style.icon} />\n </div>\n <span className={titleStyleClassName} title={title}>\n {title}\n </span>\n </label>\n );\n};\n\nInputCheckbox.propTypes = {\n title: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n checked: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n modified: PropTypes.bool,\n noLabelMargins: PropTypes.bool,\n theme: PropTypes.oneOf(['coorpmanager', 'default']),\n titleStyle: PropTypes.oneOf(keys(titleStylesClassNames))\n};\n\nexport default InputCheckbox;\n"],"file":"index.js"}
|
|
@@ -5,7 +5,8 @@ import { NovaCompositionCoorpacademyCheck as RightIcon, NovaSolidStatusClose as
|
|
|
5
5
|
import style from './style.css';
|
|
6
6
|
export const ICON_VALUES = {
|
|
7
7
|
right: 'right',
|
|
8
|
-
wrong: 'wrong'
|
|
8
|
+
wrong: 'wrong',
|
|
9
|
+
'no-answer': 'no-answer'
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
const Content = ({
|
|
@@ -13,7 +14,7 @@ const Content = ({
|
|
|
13
14
|
current,
|
|
14
15
|
value
|
|
15
16
|
}) => {
|
|
16
|
-
if (
|
|
17
|
+
if (icon === ICON_VALUES['no-answer']) {
|
|
17
18
|
return /*#__PURE__*/React.createElement("span", {
|
|
18
19
|
className: style.value,
|
|
19
20
|
"aria-label": `step ${value}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/review-header-step-item/index.js"],"names":["React","classnames","PropTypes","NovaCompositionCoorpacademyCheck","RightIcon","NovaSolidStatusClose","WrongIcon","style","ICON_VALUES","right","wrong","Content","icon","current","value","rightIcon","currentRightIcon","wrongIcon","currentWrongIcon","ReviewHeaderStepItem","props","default","propTypes","string","bool"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SACEC,gCAAgC,IAAIC,SADtC,EAEEC,oBAAoB,IAAIC,SAF1B,QAGO,0BAHP;AAIA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,OAAO,MAAMC,WAAW,GAAG;AACzBC,EAAAA,KAAK,EAAE,OADkB;AAEzBC,EAAAA,KAAK,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/review-header-step-item/index.js"],"names":["React","classnames","PropTypes","NovaCompositionCoorpacademyCheck","RightIcon","NovaSolidStatusClose","WrongIcon","style","ICON_VALUES","right","wrong","Content","icon","current","value","rightIcon","currentRightIcon","wrongIcon","currentWrongIcon","ReviewHeaderStepItem","props","default","propTypes","string","bool"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SACEC,gCAAgC,IAAIC,SADtC,EAEEC,oBAAoB,IAAIC,SAF1B,QAGO,0BAHP;AAIA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,OAAO,MAAMC,WAAW,GAAG;AACzBC,EAAAA,KAAK,EAAE,OADkB;AAEzBC,EAAAA,KAAK,EAAE,OAFkB;AAGzB,eAAa;AAHY,CAApB;;AAMP,MAAMC,OAAO,GAAG,CAAC;AAACC,EAAAA,IAAD;AAAOC,EAAAA,OAAP;AAAgBC,EAAAA;AAAhB,CAAD,KAA4B;AAC1C,MAAIF,IAAI,KAAKJ,WAAW,CAAC,WAAD,CAAxB,EAAuC;AACrC,wBACE;AAAM,MAAA,SAAS,EAAED,KAAK,CAACO,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,OACGA,KADH,CADF;AAKD;;AAED,MAAIF,IAAI,KAAKJ,WAAW,CAACC,KAAzB,EAAgC;AAC9B,wBACE;AAAM,MAAA,SAAS,EAAEF,KAAK,CAACO,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,oBACE,oBAAC,SAAD;AAAW,MAAA,SAAS,EAAEb,UAAU,CAACM,KAAK,CAACQ,SAAP,EAAkBF,OAAO,IAAIN,KAAK,CAACS,gBAAnC;AAAhC,MADF,CADF;AAKD;;AAED,MAAIJ,IAAI,KAAKJ,WAAW,CAACE,KAAzB,EAAgC;AAC9B,wBACE;AAAM,MAAA,SAAS,EAAEH,KAAK,CAACO,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,oBACE,oBAAC,SAAD;AAAW,MAAA,SAAS,EAAEb,UAAU,CAACM,KAAK,CAACU,SAAP,EAAkBJ,OAAO,IAAIN,KAAK,CAACW,gBAAnC;AAAhC,MADF,CADF;AAKD;AACF,CAxBD;;AA0BA,MAAMC,oBAAoB,GAAGC,KAAK,IAAI;AACpC,QAAM;AAACR,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAkBO,KAAxB;AACA,sBACE;AACE,IAAA,SAAS,EAAEnB,UAAU,CACnBM,KAAK,CAACc,OADa,EAEnBT,IAAI,KAAKJ,WAAW,CAACC,KAArB,IAA8BF,KAAK,CAACE,KAFjB,EAGnBG,IAAI,KAAKJ,WAAW,CAACE,KAArB,IAA8BH,KAAK,CAACG,KAHjB,EAInBG,OAAO,IAAIN,KAAK,CAACM,OAJE,CADvB;AAOE,iBAAU;AAPZ,kBASE,oBAAC,OAAD,EAAaO,KAAb,CATF,CADF;AAaD,CAfD;;AAiBAD,oBAAoB,CAACG,SAArB,2CAAiC;AAC/BV,EAAAA,IAAI,EAAEV,SAAS,CAACqB,MADe;AAE/BV,EAAAA,OAAO,EAAEX,SAAS,CAACsB,IAFY;AAG/BV,EAAAA,KAAK,EAAEZ,SAAS,CAACqB;AAHc,CAAjC;AAMA,eAAeJ,oBAAf","sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nexport const ICON_VALUES = {\n right: 'right',\n wrong: 'wrong',\n 'no-answer': 'no-answer'\n};\n\nconst Content = ({icon, current, value}) => {\n if (icon === ICON_VALUES['no-answer']) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n {value}\n </span>\n );\n }\n\n if (icon === ICON_VALUES.right) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n <RightIcon className={classnames(style.rightIcon, current && style.currentRightIcon)} />\n </span>\n );\n }\n\n if (icon === ICON_VALUES.wrong) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n <WrongIcon className={classnames(style.wrongIcon, current && style.currentWrongIcon)} />\n </span>\n );\n }\n};\n\nconst ReviewHeaderStepItem = props => {\n const {icon, current} = props;\n return (\n <div\n className={classnames(\n style.default,\n icon === ICON_VALUES.right && style.right,\n icon === ICON_VALUES.wrong && style.wrong,\n current && style.current\n )}\n data-name=\"header-step-item\"\n >\n <Content {...props} />\n </div>\n );\n};\n\nReviewHeaderStepItem.propTypes = {\n icon: PropTypes.string,\n current: PropTypes.bool,\n value: PropTypes.string\n};\n\nexport default ReviewHeaderStepItem;\n"],"file":"index.js"}
|
|
@@ -23,7 +23,8 @@ const CourseSections = ({
|
|
|
23
23
|
isLoading,
|
|
24
24
|
title,
|
|
25
25
|
mandatoryCoursesInput,
|
|
26
|
-
inputTitle
|
|
26
|
+
inputTitle,
|
|
27
|
+
totalCourses
|
|
27
28
|
}) => {
|
|
28
29
|
if (isLoading) return /*#__PURE__*/React.createElement(Loading, null);
|
|
29
30
|
|
|
@@ -44,7 +45,11 @@ const CourseSections = ({
|
|
|
44
45
|
title: title,
|
|
45
46
|
type: 'form-group',
|
|
46
47
|
"data-name": 'course-sections-title'
|
|
47
|
-
})
|
|
48
|
+
}), totalCourses ? /*#__PURE__*/React.createElement(Title, {
|
|
49
|
+
title: totalCourses,
|
|
50
|
+
type: 'form-group',
|
|
51
|
+
"data-name": 'course-sections-total-courses'
|
|
52
|
+
}) : null) : null, /*#__PURE__*/React.createElement(DraggableList, {
|
|
48
53
|
itemType: "course-section",
|
|
49
54
|
items: sections,
|
|
50
55
|
onDrop: onDrop
|
|
@@ -54,6 +59,7 @@ const CourseSections = ({
|
|
|
54
59
|
CourseSections.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
55
60
|
inputTitle: PropTypes.string,
|
|
56
61
|
title: PropTypes.string,
|
|
62
|
+
totalCourses: PropTypes.string,
|
|
57
63
|
sections: PropTypes.arrayOf(PropTypes.shape(CourseSection.propTypes)),
|
|
58
64
|
onDrop: PropTypes.func,
|
|
59
65
|
isLoading: PropTypes.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/course-sections/index.js"],"names":["React","PropTypes","InputTextWithTitle","CourseSection","DraggableList","Loader","Title","TitleAndCheckBoxWrapper","style","Loading","loaderContainer","loader","CourseSections","sections","onDrop","isLoading","title","mandatoryCoursesInput","inputTitle","child","childType","sectionTitle","propTypes","string","arrayOf","shape","func","bool"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,OAAO,GAAG,mBACd;AAAK,EAAA,SAAS,EAAED,KAAK,CAACE;AAAtB,gBACE,oBAAC,MAAD;AAAQ,EAAA,SAAS,EAAEF,KAAK,CAACG,MAAzB;AAAiC,EAAA,KAAK,EAAC;AAAvC,EADF,CADF;;AAMA,MAAMC,cAAc,GAAG,CAAC;AACtBC,EAAAA,QADsB;AAEtBC,EAAAA,MAFsB;AAGtBC,EAAAA,SAHsB;AAItBC,EAAAA,KAJsB;AAKtBC,EAAAA,qBALsB;AAMtBC,EAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/course-sections/index.js"],"names":["React","PropTypes","InputTextWithTitle","CourseSection","DraggableList","Loader","Title","TitleAndCheckBoxWrapper","style","Loading","loaderContainer","loader","CourseSections","sections","onDrop","isLoading","title","mandatoryCoursesInput","inputTitle","totalCourses","child","childType","sectionTitle","propTypes","string","arrayOf","shape","func","bool"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,OAAO,GAAG,mBACd;AAAK,EAAA,SAAS,EAAED,KAAK,CAACE;AAAtB,gBACE,oBAAC,MAAD;AAAQ,EAAA,SAAS,EAAEF,KAAK,CAACG,MAAzB;AAAiC,EAAA,KAAK,EAAC;AAAvC,EADF,CADF;;AAMA,MAAMC,cAAc,GAAG,CAAC;AACtBC,EAAAA,QADsB;AAEtBC,EAAAA,MAFsB;AAGtBC,EAAAA,SAHsB;AAItBC,EAAAA,KAJsB;AAKtBC,EAAAA,qBALsB;AAMtBC,EAAAA,UANsB;AAOtBC,EAAAA;AAPsB,CAAD,KAQjB;AACJ,MAAIJ,SAAJ,EAAe,oBAAO,oBAAC,OAAD,OAAP;;AAEf,QAAMK,KAAK,yBAAOH,qBAAP;AAA8BI,IAAAA,SAAS,EAAE;AAAzC,IAAX;;AACA,QAAMC,YAAY,GAAG;AAACN,IAAAA,KAAK,EAAEE,UAAR;AAAoB,iBAAa;AAAjC,GAArB;AACA,sBACE,iCACGD,qBAAqB,IAAIK,YAAzB,gBACC,oBAAC,uBAAD;AAAyB,IAAA,KAAK,EAAEF,KAAhC;AAAuC,IAAA,YAAY,EAAEE;AAArD,IADD,GAEG,IAHN,EAIGN,KAAK,gBACJ;AAAK,IAAA,SAAS,EAAER,KAAK,CAACQ;AAAtB,kBACE,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAEA,KAAd;AAAqB,IAAA,IAAI,EAAE,YAA3B;AAAyC,iBAAW;AAApD,IADF,EAEGG,YAAY,gBACX,oBAAC,KAAD;AACE,IAAA,KAAK,EAAEA,YADT;AAEE,IAAA,IAAI,EAAE,YAFR;AAGE,iBAAW;AAHb,IADW,GAMT,IARN,CADI,GAWF,IAfN,eAgBE,oBAAC,aAAD;AAAe,IAAA,QAAQ,EAAC,gBAAxB;AAAyC,IAAA,KAAK,EAAEN,QAAhD;AAA0D,IAAA,MAAM,EAAEC;AAAlE,IAhBF,CADF;AAoBD,CAjCD;;AAmCAF,cAAc,CAACW,SAAf,2CAA2B;AACzBL,EAAAA,UAAU,EAAEjB,SAAS,CAACuB,MADG;AAEzBR,EAAAA,KAAK,EAAEf,SAAS,CAACuB,MAFQ;AAGzBL,EAAAA,YAAY,EAAElB,SAAS,CAACuB,MAHC;AAIzBX,EAAAA,QAAQ,EAAEZ,SAAS,CAACwB,OAAV,CAAkBxB,SAAS,CAACyB,KAAV,CAAgBvB,aAAa,CAACoB,SAA9B,CAAlB,CAJe;AAKzBT,EAAAA,MAAM,EAAEb,SAAS,CAAC0B,IALO;AAMzBZ,EAAAA,SAAS,EAAEd,SAAS,CAAC2B,IANI;AAOzBX,EAAAA,qBAAqB,EAAEhB,SAAS,CAACyB,KAAV,CAAgBxB,kBAAkB,CAACqB,SAAnC;AAPE,CAA3B;AAUA,eAAeX,cAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport InputTextWithTitle from '../../atom/input-text-with-title';\nimport CourseSection from '../course-section';\nimport DraggableList from '../draggable-list';\nimport Loader from '../../atom/loader';\nimport Title from '../../atom/title';\nimport TitleAndCheckBoxWrapper from '../title-and-checkbox-wrapper';\nimport style from './style.css';\n\nconst Loading = () => (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n);\n\nconst CourseSections = ({\n sections,\n onDrop,\n isLoading,\n title,\n mandatoryCoursesInput,\n inputTitle,\n totalCourses\n}) => {\n if (isLoading) return <Loading />;\n\n const child = {...mandatoryCoursesInput, childType: 'input-text'};\n const sectionTitle = {title: inputTitle, 'data-name': 'mandatory-courses-input-title'};\n return (\n <div>\n {mandatoryCoursesInput && sectionTitle ? (\n <TitleAndCheckBoxWrapper child={child} sectionTitle={sectionTitle} />\n ) : null}\n {title ? (\n <div className={style.title}>\n <Title title={title} type={'form-group'} data-name={'course-sections-title'} />\n {totalCourses ? (\n <Title\n title={totalCourses}\n type={'form-group'}\n data-name={'course-sections-total-courses'}\n />\n ) : null}\n </div>\n ) : null}\n <DraggableList itemType=\"course-section\" items={sections} onDrop={onDrop} />\n </div>\n );\n};\n\nCourseSections.propTypes = {\n inputTitle: PropTypes.string,\n title: PropTypes.string,\n totalCourses: PropTypes.string,\n sections: PropTypes.arrayOf(PropTypes.shape(CourseSection.propTypes)),\n onDrop: PropTypes.func,\n isLoading: PropTypes.bool,\n mandatoryCoursesInput: PropTypes.shape(InputTextWithTitle.propTypes)\n};\n\nexport default CourseSections;\n"],"file":"index.js"}
|
|
@@ -578,14 +578,14 @@
|
|
|
578
578
|
height: auto;
|
|
579
579
|
background-color: white;
|
|
580
580
|
left: 0;
|
|
581
|
-
top: -
|
|
581
|
+
top: -100vh;
|
|
582
582
|
width: 100%;
|
|
583
583
|
transition: top 0.8s ease-out;
|
|
584
584
|
max-height: 100vh;
|
|
585
585
|
}
|
|
586
586
|
|
|
587
587
|
.menuWrapper:last-child {
|
|
588
|
-
padding-bottom:
|
|
588
|
+
padding-bottom: 60px;
|
|
589
589
|
}
|
|
590
590
|
|
|
591
591
|
.hiddenSearchBar {
|
|
@@ -55,14 +55,14 @@ const Slide = ({
|
|
|
55
55
|
updateSlidesOnNext,
|
|
56
56
|
updateReviewStatus,
|
|
57
57
|
updateStepItemsOnNext,
|
|
58
|
-
|
|
58
|
+
progression,
|
|
59
59
|
correctionPopinProps
|
|
60
60
|
}) => {
|
|
61
61
|
const hidden = getOr(false, `${slideNumber}.hidden`, slides);
|
|
62
62
|
const endReview = getOr(false, `${slideNumber}.endReview`, slides);
|
|
63
63
|
const position = get(`${slideNumber}.position`, slides);
|
|
64
64
|
const animationType = getOr(false, `${slideNumber}.animationType`, slides);
|
|
65
|
-
const
|
|
65
|
+
const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);
|
|
66
66
|
const questionText = get(`${slideNumber}.questionText`, slides);
|
|
67
67
|
const answerUI = get(`${slideNumber}.answerUI`, slides);
|
|
68
68
|
const validateLabel = getOr('', 'label', validate);
|
|
@@ -81,7 +81,6 @@ const Slide = ({
|
|
|
81
81
|
be handled on the next slide logic but the content will be carried from here.
|
|
82
82
|
*/
|
|
83
83
|
onClick: async () => {
|
|
84
|
-
// result: 'success' | 'failure'
|
|
85
84
|
// endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'
|
|
86
85
|
await validateSlide();
|
|
87
86
|
},
|
|
@@ -89,7 +88,7 @@ const Slide = ({
|
|
|
89
88
|
label: validateLabel,
|
|
90
89
|
'data-name': `slide-validate-button-${slideNumber}`,
|
|
91
90
|
className: style.validateButton,
|
|
92
|
-
disabled: !isNil(
|
|
91
|
+
disabled: !isNil(isSlideCorrect)
|
|
93
92
|
};
|
|
94
93
|
const klf = getOr({}, 'klf', correctionPopinProps);
|
|
95
94
|
const information = getOr({
|
|
@@ -108,15 +107,15 @@ const Slide = ({
|
|
|
108
107
|
from the content carried from the validate action.
|
|
109
108
|
*/
|
|
110
109
|
onClick: () => {
|
|
111
|
-
const exitNode = get('exitNode',
|
|
110
|
+
const exitNode = get('exitNode', progression);
|
|
112
111
|
updateSlidesOnNext({
|
|
113
112
|
slideNumber,
|
|
114
113
|
newSlideContent: {
|
|
115
|
-
hidden:
|
|
114
|
+
hidden: !!isSlideCorrect,
|
|
116
115
|
position: HIGHEST_INDEX - finishedSlidesSize,
|
|
117
116
|
// to restack the slide
|
|
118
|
-
animationType:
|
|
119
|
-
|
|
117
|
+
animationType: isSlideCorrect ? 'unstack' : 'restack',
|
|
118
|
+
isCorrect: isSlideCorrect,
|
|
120
119
|
endReview: !!exitNode,
|
|
121
120
|
answerUI,
|
|
122
121
|
questionText
|
|
@@ -128,7 +127,7 @@ const Slide = ({
|
|
|
128
127
|
finishedSlides,
|
|
129
128
|
current: finishedSlidesSize === HIGHEST_INDEX &&
|
|
130
129
|
/* istanbul ignore next */
|
|
131
|
-
|
|
130
|
+
!isSlideCorrect
|
|
132
131
|
});
|
|
133
132
|
if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');
|
|
134
133
|
},
|
|
@@ -138,8 +137,8 @@ const Slide = ({
|
|
|
138
137
|
},
|
|
139
138
|
klf,
|
|
140
139
|
information,
|
|
141
|
-
type:
|
|
142
|
-
resultLabel:
|
|
140
|
+
type: isSlideCorrect ? 'right' : 'wrong',
|
|
141
|
+
resultLabel: isSlideCorrect ? successLabel : failureLabel
|
|
143
142
|
};
|
|
144
143
|
const questionOrigin = 'From "Master Design Thinking to become more agile" course';
|
|
145
144
|
const answerProps = get(['model', 'choices'], answerUI) ?
|
|
@@ -174,8 +173,8 @@ const Slide = ({
|
|
|
174
173
|
key: "button-wrapper",
|
|
175
174
|
className: style.validateButtonWrapper
|
|
176
175
|
}, /*#__PURE__*/React.createElement(ButtonLink, validateButtonProps)), /*#__PURE__*/React.createElement("div", {
|
|
177
|
-
className:
|
|
178
|
-
style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !
|
|
176
|
+
className: isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper,
|
|
177
|
+
style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !isSlideCorrect && {
|
|
179
178
|
display: 'none'
|
|
180
179
|
})
|
|
181
180
|
}, /*#__PURE__*/React.createElement(ReviewCorrectionPopin, _correctionPopinProps)));
|
|
@@ -193,7 +192,7 @@ const StackedSlides = ({
|
|
|
193
192
|
updateSlidesOnNext,
|
|
194
193
|
updateReviewStatus,
|
|
195
194
|
updateStepItemsOnNext,
|
|
196
|
-
|
|
195
|
+
progression,
|
|
197
196
|
correctionPopinProps
|
|
198
197
|
}) => {
|
|
199
198
|
const stackedSlides = []; // eslint-disable-next-line fp/no-loops
|
|
@@ -210,7 +209,7 @@ const StackedSlides = ({
|
|
|
210
209
|
updateSlidesOnNext,
|
|
211
210
|
updateReviewStatus,
|
|
212
211
|
updateStepItemsOnNext,
|
|
213
|
-
|
|
212
|
+
progression,
|
|
214
213
|
correctionPopinProps
|
|
215
214
|
}, {
|
|
216
215
|
key: slideNumber
|
|
@@ -240,7 +239,7 @@ const SlidesReview = ({
|
|
|
240
239
|
updateStepItemsOnValidation,
|
|
241
240
|
updateStepItemsOnNext,
|
|
242
241
|
updateFinishedSlides,
|
|
243
|
-
|
|
242
|
+
progression
|
|
244
243
|
}, context) => {
|
|
245
244
|
const {
|
|
246
245
|
skin
|
|
@@ -259,21 +258,21 @@ const SlidesReview = ({
|
|
|
259
258
|
useEffect(
|
|
260
259
|
/* istanbul ignore next */
|
|
261
260
|
() => {
|
|
262
|
-
const slideNumber = get('slideNumber',
|
|
261
|
+
const slideNumber = get('slideNumber', progression);
|
|
263
262
|
|
|
264
|
-
if (
|
|
263
|
+
if (progression) {
|
|
265
264
|
const hidden = getOr(false, `${slideNumber}.hidden`, slides);
|
|
266
265
|
const endReview = getOr(false, `${slideNumber}.endReview`, slides);
|
|
267
266
|
const position = get(`${slideNumber}.position`, slides);
|
|
268
|
-
const
|
|
269
|
-
const exitNode = get('exitNode',
|
|
270
|
-
const nextSlide = get('nextSlide',
|
|
267
|
+
const isCorrect = get('isCorrect', progression);
|
|
268
|
+
const exitNode = get('exitNode', progression);
|
|
269
|
+
const nextSlide = get('nextSlide', progression);
|
|
271
270
|
updateSlidesOnValidation({
|
|
272
271
|
slideNumber,
|
|
273
272
|
newSlideContent: {
|
|
274
273
|
hidden,
|
|
275
274
|
position,
|
|
276
|
-
|
|
275
|
+
isCorrect,
|
|
277
276
|
endReview: !!exitNode
|
|
278
277
|
},
|
|
279
278
|
numberOfFinishedSlides: finishedSlidesSize,
|
|
@@ -281,9 +280,9 @@ const SlidesReview = ({
|
|
|
281
280
|
});
|
|
282
281
|
updateStepItemsOnValidation({
|
|
283
282
|
stepNumber: slideNumber,
|
|
284
|
-
icon:
|
|
283
|
+
icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong
|
|
285
284
|
});
|
|
286
|
-
if (
|
|
285
|
+
if (isCorrect) updateFinishedSlides({
|
|
287
286
|
slideNumber,
|
|
288
287
|
value: true
|
|
289
288
|
});
|
|
@@ -293,7 +292,7 @@ const SlidesReview = ({
|
|
|
293
292
|
}
|
|
294
293
|
}
|
|
295
294
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
296
|
-
[
|
|
295
|
+
[progression]);
|
|
297
296
|
useEffect(
|
|
298
297
|
/* istanbul ignore next */
|
|
299
298
|
() => {
|
|
@@ -339,7 +338,7 @@ const SlidesReview = ({
|
|
|
339
338
|
updateSlidesOnNext,
|
|
340
339
|
updateReviewStatus,
|
|
341
340
|
updateStepItemsOnNext,
|
|
342
|
-
|
|
341
|
+
progression,
|
|
343
342
|
correctionPopinProps
|
|
344
343
|
}))) :
|
|
345
344
|
/* istanbul ignore next */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["React","useState","useMemo","useEffect","classnames","get","getOr","isNil","map","omit","pipe","size","ICON_VALUES","ReviewBackground","ReviewCongrats","ReviewHeader","ReviewCorrectionPopin","Answer","ButtonLink","style","SlidesReviewPropTypes","SlidePropTypes","StackedSlidesPropTypes","stylesByPosition","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","slideValidationResult","correctionPopinProps","endReview","animationType","validationResult","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","StackedSlides","stackedSlides","slide","push","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","shouldMountSlides","updateShouldMountSlides","result","nextSlide","icon","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\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\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const validationResult = getOr(null, `${slideNumber}.validationResult`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\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 nextSlide content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides 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 */\n onClick: async () => {\n // result: 'success' | 'failure'\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(validationResult)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', slideValidationResult);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: validationResult === 'success',\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: validationResult === 'success' ? 'unstack' : 'restack',\n validationResult,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX &&\n /* istanbul ignore next */ validationResult !== 'success'\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: validationResult === 'success' ? 'right' : 'wrong',\n resultLabel: validationResult === 'success' ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\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\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\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 {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n validationResult ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !validationResult && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n slideValidationResult\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', slideValidationResult);\n if (slideValidationResult) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const result = get('result', slideValidationResult);\n const exitNode = get('exitNode', slideValidationResult);\n const nextSlide = get('nextSlide', slideValidationResult);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n validationResult: result,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextSlide\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: result === 'success' ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (result === 'success') updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [slideValidationResult]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\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 {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["React","useState","useMemo","useEffect","classnames","get","getOr","isNil","map","omit","pipe","size","ICON_VALUES","ReviewBackground","ReviewCongrats","ReviewHeader","ReviewCorrectionPopin","Answer","ButtonLink","style","SlidesReviewPropTypes","SlidePropTypes","StackedSlidesPropTypes","stylesByPosition","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","progression","correctionPopinProps","endReview","animationType","isSlideCorrect","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","isCorrect","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","StackedSlides","stackedSlides","slide","push","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","shouldMountSlides","updateShouldMountSlides","nextSlide","icon","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\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\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\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 nextSlide content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides 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 */\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(isSlideCorrect)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', progression);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: !!isSlideCorrect,\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: isSlideCorrect ? 'unstack' : 'restack',\n isCorrect: isSlideCorrect,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX && /* istanbul ignore next */ !isSlideCorrect\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: isSlideCorrect ? 'right' : 'wrong',\n resultLabel: isSlideCorrect ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\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\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\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 {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !isSlideCorrect && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n progression\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', progression);\n if (progression) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const isCorrect = get('isCorrect', progression);\n const exitNode = get('exitNode', progression);\n const nextSlide = get('nextSlide', progression);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n isCorrect,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextSlide\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (isCorrect) updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [progression]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\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 {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
@@ -13,7 +13,7 @@ const NextSlideProp = PropTypes.shape({
|
|
|
13
13
|
// 'unstack' | 'restack'
|
|
14
14
|
animationType: PropTypes.string,
|
|
15
15
|
// 'success' | 'failure'
|
|
16
|
-
|
|
16
|
+
isCorrect: PropTypes.string,
|
|
17
17
|
endReview: PropTypes.bool,
|
|
18
18
|
questionText: PropTypes.string,
|
|
19
19
|
answerUI: Answer
|
|
@@ -70,10 +70,10 @@ export const SlidesReviewPropTypes = {
|
|
|
70
70
|
failureLabel: ReviewCorrectionPopin.propTypes.resultLabel
|
|
71
71
|
}),
|
|
72
72
|
congratsProps: PropTypes.shape(ReviewCongrats.propTypes),
|
|
73
|
-
|
|
73
|
+
progression: PropTypes.shape({
|
|
74
74
|
slideNumber: PropTypes.number,
|
|
75
75
|
// 'success' | 'failure'
|
|
76
|
-
|
|
76
|
+
isCorrect: PropTypes.bool,
|
|
77
77
|
// 'successExitNode' | 'failExitNode'
|
|
78
78
|
exitNode: PropTypes.string,
|
|
79
79
|
nextSlide: PropTypes.shape({
|
|
@@ -105,7 +105,7 @@ export const SlidePropTypes = {
|
|
|
105
105
|
updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,
|
|
106
106
|
updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,
|
|
107
107
|
updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,
|
|
108
|
-
|
|
108
|
+
progression: SlidesReviewPropTypes.progression
|
|
109
109
|
};
|
|
110
110
|
export const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);
|
|
111
111
|
//# sourceMappingURL=prop-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["PropTypes","omit","ReviewCongrats","ReviewCorrectionPopin","ReviewBackground","ReviewHeader","Answer","NextSlideProp","shape","hidden","bool","position","number","animationType","string","
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["PropTypes","omit","ReviewCongrats","ReviewCorrectionPopin","ReviewBackground","ReviewHeader","Answer","NextSlideProp","shape","hidden","bool","position","number","animationType","string","isCorrect","endReview","questionText","answerUI","SlideProp","props","nextSlide","StepItemProp","current","icon","value","SlidesReviewPropTypes","headerProps","propTypes","reviewBackgroundAriaLabel","validate","label","slides","slideNumbers","arrayOf","finishedSlides","stepItems","reviewStatus","correctionPopinProps","klf","information","next","successLabel","resultLabel","failureLabel","congratsProps","progression","slideNumber","exitNode","validateSlide","func","isRequired","updateSlidesOnValidation","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnValidation","updateStepItemsOnNext","updateFinishedSlides","SlidePropTypes","primarySkinColor","finishedSlidesSize","StackedSlidesPropTypes"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport omit from 'lodash/fp/omit';\n\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewHeader from '../../../organism/review-header';\nimport Answer from '../../../molecule/answer';\n\nconst NextSlideProp = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n // 'unstack' | 'restack'\n animationType: PropTypes.string,\n // 'success' | 'failure'\n isCorrect: PropTypes.string,\n endReview: PropTypes.bool,\n questionText: PropTypes.string,\n answerUI: Answer\n});\n\nconst SlideProp = PropTypes.shape({\n ...NextSlideProp.props,\n nextSlide: NextSlideProp\n});\n\nconst StepItemProp = PropTypes.shape({\n current: PropTypes.bool,\n icon: PropTypes.string,\n value: PropTypes.string\n});\n\nexport const SlidesReviewPropTypes = {\n headerProps: PropTypes.shape(omit('steps', ReviewHeader.propTypes)),\n reviewBackgroundAriaLabel: ReviewBackground.propTypes['aria-label'],\n validate: PropTypes.shape({\n label: PropTypes.string\n }),\n slides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: SlideProp,\n 1: SlideProp,\n 2: SlideProp,\n 3: SlideProp,\n 4: SlideProp\n }),\n finishedSlides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: PropTypes.bool,\n 1: PropTypes.bool,\n 2: PropTypes.bool,\n 3: PropTypes.bool,\n 4: PropTypes.bool\n }),\n stepItems: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: StepItemProp,\n 1: StepItemProp,\n 2: StepItemProp,\n 3: StepItemProp,\n 4: StepItemProp\n }),\n // 'finished' | 'ongoing'\n reviewStatus: PropTypes.string,\n correctionPopinProps: PropTypes.shape({\n // ---------------\n klf: ReviewCorrectionPopin.propTypes.klf,\n information: ReviewCorrectionPopin.propTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n successLabel: ReviewCorrectionPopin.propTypes.resultLabel,\n failureLabel: ReviewCorrectionPopin.propTypes.resultLabel\n }),\n congratsProps: PropTypes.shape(ReviewCongrats.propTypes),\n progression: PropTypes.shape({\n slideNumber: PropTypes.number,\n // 'success' | 'failure'\n isCorrect: PropTypes.bool,\n // 'successExitNode' | 'failExitNode'\n exitNode: PropTypes.string,\n nextSlide: PropTypes.shape({\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(Answer.propTypes)\n })\n }),\n // ---------------------------------------------------------------------------\n // Dispatchers\n validateSlide: PropTypes.func.isRequired,\n updateSlidesOnValidation: PropTypes.func.isRequired,\n updateSlidesOnNext: PropTypes.func.isRequired,\n updateReviewStatus: PropTypes.func.isRequired,\n updateStepItemsOnValidation: PropTypes.func.isRequired,\n updateStepItemsOnNext: PropTypes.func.isRequired,\n updateFinishedSlides: PropTypes.func.isRequired\n};\n\nexport const SlidePropTypes = {\n slideNumber: PropTypes.number,\n slides: SlidesReviewPropTypes.slides,\n primarySkinColor: PropTypes.string,\n validate: SlidesReviewPropTypes.validate,\n finishedSlides: SlidesReviewPropTypes.finishedSlides,\n finishedSlidesSize: PropTypes.number,\n correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,\n // ---------------\n // Dispatchers\n validateSlide: SlidesReviewPropTypes.validateSlide,\n updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,\n updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,\n updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,\n progression: SlidesReviewPropTypes.progression\n};\n\nexport const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);\n"],"file":"prop-types.js"}
|
|
@@ -57,7 +57,8 @@ const InputCheckbox = props => {
|
|
|
57
57
|
const className = (0, _getClassState.default)(defaultContainerClassName, modifiedClassName, errorClassName, modified, error);
|
|
58
58
|
return /*#__PURE__*/_react.default.createElement("label", {
|
|
59
59
|
className: className,
|
|
60
|
-
htmlFor: idCheckbox
|
|
60
|
+
htmlFor: idCheckbox,
|
|
61
|
+
"data-name": "checkbox-input-label"
|
|
61
62
|
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
62
63
|
type: "checkbox",
|
|
63
64
|
className: _style.default.checkbox,
|
|
@@ -65,7 +66,8 @@ const InputCheckbox = props => {
|
|
|
65
66
|
id: idCheckbox,
|
|
66
67
|
checked: checked,
|
|
67
68
|
onChange: handleChange,
|
|
68
|
-
disabled: disabled
|
|
69
|
+
disabled: disabled,
|
|
70
|
+
"data-name": "checkbox-input"
|
|
69
71
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
70
72
|
className: (0, _classnames.default)(_style.default.label, noLabelMargins ? _style.default.noLabelMargins : undefined)
|
|
71
73
|
}, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidStatusValidate, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["titleStylesClassNames","inherit","style","primary","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","noLabelMargins","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","label","undefined","icon","propTypes","PropTypes","string","isRequired","bool","func","oneOf"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAG;AAC5BC,EAAAA,OAAO,EAAEC,eAAMD,OADa;AAE5BE,EAAAA,OAAO,EAAED,eAAMC,OAFa;AAG5BC,EAAAA,SAAS,EAAEF,eAAME,SAHW;AAI5BC,EAAAA,QAAQ,EAAEH,eAAMG;AAJY,CAA9B;;AAOA,MAAMC,aAAa,GAAGC,KAAK,IAAI;AAC7B,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAAQ,iBAFJ;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,QALI;AAMJC,IAAAA,UAAU,GAAG,SANT;AAOJC,IAAAA,QAAQ,GAAG,KAPP;AAQJC,IAAAA,KAAK,GAAG,SARJ;AASJC,IAAAA,KAAK,EAAEC,UATH;AAUJC,IAAAA,cAAc,GAAG;AAVb,MAWFX,KAXJ;AAaA,QAAMY,mBAAmB,GAAGnB,qBAAqB,CAACa,UAAD,CAAjD;AACA,QAAMO,UAAU,GAAG,wBAAS,iBAAT,CAAnB;AACA,QAAMJ,KAAK,GAAI,GAAEC,UAAW,GAAEL,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAlD;AACA,QAAMS,YAAY,GAAG,oBAAQ,MAAMC,CAAC,IAAIb,QAAQ,CAACa,CAAC,CAACC,MAAF,CAASf,OAAV,CAA3B,EAA+C,CAACC,QAAD,CAA/C,CAArB;AAEA,QAAMe,iBAAiB,GACrBT,KAAK,KAAK,cAAV,GAA2Bb,eAAMuB,oBAAjC,GAAwDvB,eAAMwB,eADhE;AAEA,QAAMC,cAAc,GAAGZ,KAAK,KAAK,cAAV,GAA2Bb,eAAM0B,iBAAjC,GAAqD1B,eAAM2B,YAAlF;AACA,QAAMC,yBAAyB,GAAGf,KAAK,KAAK,cAAV,GAA2Bb,eAAM6B,YAAjC,GAAgD7B,eAAM8B,OAAxF;AAEA,QAAMC,SAAS,GAAG,4BAChBH,yBADgB,EAEhBN,iBAFgB,EAGhBG,cAHgB,EAIhBb,QAJgB,EAKhBJ,KALgB,CAAlB;AAQA,sBACE;AAAO,IAAA,SAAS,EAAEuB,SAAlB;AAA6B,IAAA,OAAO,EAAEb;
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/input-checkbox/index.js"],"names":["titleStylesClassNames","inherit","style","primary","secondary","tertiary","InputCheckbox","props","checked","onChange","error","disabled","required","titleStyle","modified","theme","title","propsTitle","noLabelMargins","titleStyleClassName","idCheckbox","handleChange","e","target","modifiedClassName","coorpManagerModified","defaultModified","errorClassName","coorpManagerError","defaultError","defaultContainerClassName","coorpManager","default","className","checkbox","label","undefined","icon","propTypes","PropTypes","string","isRequired","bool","func","oneOf"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaSolidStatusValidate as CheckIcon} from '@coorpacademy/nova-icons';\nimport {keys, noop, uniqueId} from 'lodash/fp';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst titleStylesClassNames = {\n inherit: style.inherit,\n primary: style.primary,\n secondary: style.secondary,\n tertiary: style.tertiary\n};\n\nconst InputCheckbox = props => {\n const {\n checked,\n onChange = noop,\n error,\n disabled,\n required,\n titleStyle = 'primary',\n modified = false,\n theme = 'default',\n title: propsTitle,\n noLabelMargins = false\n } = props;\n\n const titleStyleClassName = titleStylesClassNames[titleStyle];\n const idCheckbox = uniqueId('input-checkbox-');\n const title = `${propsTitle}${required ? '*' : ''}`;\n const handleChange = useMemo(() => e => onChange(e.target.checked), [onChange]);\n\n const modifiedClassName =\n theme === 'coorpmanager' ? style.coorpManagerModified : style.defaultModified;\n const errorClassName = theme === 'coorpmanager' ? style.coorpManagerError : style.defaultError;\n const defaultContainerClassName = theme === 'coorpmanager' ? style.coorpManager : style.default;\n\n const className = getClassState(\n defaultContainerClassName,\n modifiedClassName,\n errorClassName,\n modified,\n error\n );\n\n return (\n <label className={className} htmlFor={idCheckbox} data-name=\"checkbox-input-label\">\n <input\n type=\"checkbox\"\n className={style.checkbox}\n name={title}\n id={idCheckbox}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n data-name=\"checkbox-input\"\n />\n <div className={classnames(style.label, noLabelMargins ? style.noLabelMargins : undefined)}>\n <CheckIcon className={style.icon} />\n </div>\n <span className={titleStyleClassName} title={title}>\n {title}\n </span>\n </label>\n );\n};\n\nInputCheckbox.propTypes = {\n title: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n checked: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n modified: PropTypes.bool,\n noLabelMargins: PropTypes.bool,\n theme: PropTypes.oneOf(['coorpmanager', 'default']),\n titleStyle: PropTypes.oneOf(keys(titleStylesClassNames))\n};\n\nexport default InputCheckbox;\n"],"file":"index.js"}
|
|
@@ -17,7 +17,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
17
17
|
|
|
18
18
|
const ICON_VALUES = {
|
|
19
19
|
right: 'right',
|
|
20
|
-
wrong: 'wrong'
|
|
20
|
+
wrong: 'wrong',
|
|
21
|
+
'no-answer': 'no-answer'
|
|
21
22
|
};
|
|
22
23
|
exports.ICON_VALUES = ICON_VALUES;
|
|
23
24
|
|
|
@@ -26,7 +27,7 @@ const Content = ({
|
|
|
26
27
|
current,
|
|
27
28
|
value
|
|
28
29
|
}) => {
|
|
29
|
-
if (
|
|
30
|
+
if (icon === ICON_VALUES['no-answer']) {
|
|
30
31
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
31
32
|
className: _style.default.value,
|
|
32
33
|
"aria-label": `step ${value}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/review-header-step-item/index.js"],"names":["ICON_VALUES","right","wrong","Content","icon","current","value","style","rightIcon","currentRightIcon","wrongIcon","currentWrongIcon","ReviewHeaderStepItem","props","default","propTypes","PropTypes","string","bool"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;AAEO,MAAMA,WAAW,GAAG;AACzBC,EAAAA,KAAK,EAAE,OADkB;AAEzBC,EAAAA,KAAK,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/review-header-step-item/index.js"],"names":["ICON_VALUES","right","wrong","Content","icon","current","value","style","rightIcon","currentRightIcon","wrongIcon","currentWrongIcon","ReviewHeaderStepItem","props","default","propTypes","PropTypes","string","bool"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AAIA;;;;AAEO,MAAMA,WAAW,GAAG;AACzBC,EAAAA,KAAK,EAAE,OADkB;AAEzBC,EAAAA,KAAK,EAAE,OAFkB;AAGzB,eAAa;AAHY,CAApB;;;AAMP,MAAMC,OAAO,GAAG,CAAC;AAACC,EAAAA,IAAD;AAAOC,EAAAA,OAAP;AAAgBC,EAAAA;AAAhB,CAAD,KAA4B;AAC1C,MAAIF,IAAI,KAAKJ,WAAW,CAAC,WAAD,CAAxB,EAAuC;AACrC,wBACE;AAAM,MAAA,SAAS,EAAEO,eAAMD,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,OACGA,KADH,CADF;AAKD;;AAED,MAAIF,IAAI,KAAKJ,WAAW,CAACC,KAAzB,EAAgC;AAC9B,wBACE;AAAM,MAAA,SAAS,EAAEM,eAAMD,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,oBACE,6BAAC,2CAAD;AAAW,MAAA,SAAS,EAAE,yBAAWC,eAAMC,SAAjB,EAA4BH,OAAO,IAAIE,eAAME,gBAA7C;AAAtB,MADF,CADF;AAKD;;AAED,MAAIL,IAAI,KAAKJ,WAAW,CAACE,KAAzB,EAAgC;AAC9B,wBACE;AAAM,MAAA,SAAS,EAAEK,eAAMD,KAAvB;AAA8B,oBAAa,QAAOA,KAAM;AAAxD,oBACE,6BAAC,+BAAD;AAAW,MAAA,SAAS,EAAE,yBAAWC,eAAMG,SAAjB,EAA4BL,OAAO,IAAIE,eAAMI,gBAA7C;AAAtB,MADF,CADF;AAKD;AACF,CAxBD;;AA0BA,MAAMC,oBAAoB,GAAGC,KAAK,IAAI;AACpC,QAAM;AAACT,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAkBQ,KAAxB;AACA,sBACE;AACE,IAAA,SAAS,EAAE,yBACTN,eAAMO,OADG,EAETV,IAAI,KAAKJ,WAAW,CAACC,KAArB,IAA8BM,eAAMN,KAF3B,EAGTG,IAAI,KAAKJ,WAAW,CAACE,KAArB,IAA8BK,eAAML,KAH3B,EAITG,OAAO,IAAIE,eAAMF,OAJR,CADb;AAOE,iBAAU;AAPZ,kBASE,6BAAC,OAAD,EAAaQ,KAAb,CATF,CADF;AAaD,CAfD;;AAiBAD,oBAAoB,CAACG,SAArB,2CAAiC;AAC/BX,EAAAA,IAAI,EAAEY,mBAAUC,MADe;AAE/BZ,EAAAA,OAAO,EAAEW,mBAAUE,IAFY;AAG/BZ,EAAAA,KAAK,EAAEU,mBAAUC;AAHc,CAAjC;eAMeL,oB","sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nexport const ICON_VALUES = {\n right: 'right',\n wrong: 'wrong',\n 'no-answer': 'no-answer'\n};\n\nconst Content = ({icon, current, value}) => {\n if (icon === ICON_VALUES['no-answer']) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n {value}\n </span>\n );\n }\n\n if (icon === ICON_VALUES.right) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n <RightIcon className={classnames(style.rightIcon, current && style.currentRightIcon)} />\n </span>\n );\n }\n\n if (icon === ICON_VALUES.wrong) {\n return (\n <span className={style.value} aria-label={`step ${value}`}>\n <WrongIcon className={classnames(style.wrongIcon, current && style.currentWrongIcon)} />\n </span>\n );\n }\n};\n\nconst ReviewHeaderStepItem = props => {\n const {icon, current} = props;\n return (\n <div\n className={classnames(\n style.default,\n icon === ICON_VALUES.right && style.right,\n icon === ICON_VALUES.wrong && style.wrong,\n current && style.current\n )}\n data-name=\"header-step-item\"\n >\n <Content {...props} />\n </div>\n );\n};\n\nReviewHeaderStepItem.propTypes = {\n icon: PropTypes.string,\n current: PropTypes.bool,\n value: PropTypes.string\n};\n\nexport default ReviewHeaderStepItem;\n"],"file":"index.js"}
|
|
@@ -38,7 +38,8 @@ const CourseSections = ({
|
|
|
38
38
|
isLoading,
|
|
39
39
|
title,
|
|
40
40
|
mandatoryCoursesInput,
|
|
41
|
-
inputTitle
|
|
41
|
+
inputTitle,
|
|
42
|
+
totalCourses
|
|
42
43
|
}) => {
|
|
43
44
|
if (isLoading) return /*#__PURE__*/_react.default.createElement(Loading, null);
|
|
44
45
|
|
|
@@ -59,7 +60,11 @@ const CourseSections = ({
|
|
|
59
60
|
title: title,
|
|
60
61
|
type: 'form-group',
|
|
61
62
|
"data-name": 'course-sections-title'
|
|
62
|
-
})
|
|
63
|
+
}), totalCourses ? /*#__PURE__*/_react.default.createElement(_title.default, {
|
|
64
|
+
title: totalCourses,
|
|
65
|
+
type: 'form-group',
|
|
66
|
+
"data-name": 'course-sections-total-courses'
|
|
67
|
+
}) : null) : null, /*#__PURE__*/_react.default.createElement(_draggableList.default, {
|
|
63
68
|
itemType: "course-section",
|
|
64
69
|
items: sections,
|
|
65
70
|
onDrop: onDrop
|
|
@@ -69,6 +74,7 @@ const CourseSections = ({
|
|
|
69
74
|
CourseSections.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
70
75
|
inputTitle: _propTypes.default.string,
|
|
71
76
|
title: _propTypes.default.string,
|
|
77
|
+
totalCourses: _propTypes.default.string,
|
|
72
78
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape(_courseSection.default.propTypes)),
|
|
73
79
|
onDrop: _propTypes.default.func,
|
|
74
80
|
isLoading: _propTypes.default.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/course-sections/index.js"],"names":["Loading","style","loaderContainer","loader","CourseSections","sections","onDrop","isLoading","title","mandatoryCoursesInput","inputTitle","child","childType","sectionTitle","propTypes","PropTypes","string","arrayOf","shape","CourseSection","func","bool","InputTextWithTitle"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,OAAO,GAAG,mBACd;AAAK,EAAA,SAAS,EAAEC,eAAMC;AAAtB,gBACE,6BAAC,eAAD;AAAQ,EAAA,SAAS,EAAED,eAAME,MAAzB;AAAiC,EAAA,KAAK,EAAC;AAAvC,EADF,CADF;;AAMA,MAAMC,cAAc,GAAG,CAAC;AACtBC,EAAAA,QADsB;AAEtBC,EAAAA,MAFsB;AAGtBC,EAAAA,SAHsB;AAItBC,EAAAA,KAJsB;AAKtBC,EAAAA,qBALsB;AAMtBC,EAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/course-sections/index.js"],"names":["Loading","style","loaderContainer","loader","CourseSections","sections","onDrop","isLoading","title","mandatoryCoursesInput","inputTitle","totalCourses","child","childType","sectionTitle","propTypes","PropTypes","string","arrayOf","shape","CourseSection","func","bool","InputTextWithTitle"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,OAAO,GAAG,mBACd;AAAK,EAAA,SAAS,EAAEC,eAAMC;AAAtB,gBACE,6BAAC,eAAD;AAAQ,EAAA,SAAS,EAAED,eAAME,MAAzB;AAAiC,EAAA,KAAK,EAAC;AAAvC,EADF,CADF;;AAMA,MAAMC,cAAc,GAAG,CAAC;AACtBC,EAAAA,QADsB;AAEtBC,EAAAA,MAFsB;AAGtBC,EAAAA,SAHsB;AAItBC,EAAAA,KAJsB;AAKtBC,EAAAA,qBALsB;AAMtBC,EAAAA,UANsB;AAOtBC,EAAAA;AAPsB,CAAD,KAQjB;AACJ,MAAIJ,SAAJ,EAAe,oBAAO,6BAAC,OAAD,OAAP;;AAEf,QAAMK,KAAK,yBAAOH,qBAAP;AAA8BI,IAAAA,SAAS,EAAE;AAAzC,IAAX;;AACA,QAAMC,YAAY,GAAG;AAACN,IAAAA,KAAK,EAAEE,UAAR;AAAoB,iBAAa;AAAjC,GAArB;AACA,sBACE,0CACGD,qBAAqB,IAAIK,YAAzB,gBACC,6BAAC,gCAAD;AAAyB,IAAA,KAAK,EAAEF,KAAhC;AAAuC,IAAA,YAAY,EAAEE;AAArD,IADD,GAEG,IAHN,EAIGN,KAAK,gBACJ;AAAK,IAAA,SAAS,EAAEP,eAAMO;AAAtB,kBACE,6BAAC,cAAD;AAAO,IAAA,KAAK,EAAEA,KAAd;AAAqB,IAAA,IAAI,EAAE,YAA3B;AAAyC,iBAAW;AAApD,IADF,EAEGG,YAAY,gBACX,6BAAC,cAAD;AACE,IAAA,KAAK,EAAEA,YADT;AAEE,IAAA,IAAI,EAAE,YAFR;AAGE,iBAAW;AAHb,IADW,GAMT,IARN,CADI,GAWF,IAfN,eAgBE,6BAAC,sBAAD;AAAe,IAAA,QAAQ,EAAC,gBAAxB;AAAyC,IAAA,KAAK,EAAEN,QAAhD;AAA0D,IAAA,MAAM,EAAEC;AAAlE,IAhBF,CADF;AAoBD,CAjCD;;AAmCAF,cAAc,CAACW,SAAf,2CAA2B;AACzBL,EAAAA,UAAU,EAAEM,mBAAUC,MADG;AAEzBT,EAAAA,KAAK,EAAEQ,mBAAUC,MAFQ;AAGzBN,EAAAA,YAAY,EAAEK,mBAAUC,MAHC;AAIzBZ,EAAAA,QAAQ,EAAEW,mBAAUE,OAAV,CAAkBF,mBAAUG,KAAV,CAAgBC,uBAAcL,SAA9B,CAAlB,CAJe;AAKzBT,EAAAA,MAAM,EAAEU,mBAAUK,IALO;AAMzBd,EAAAA,SAAS,EAAES,mBAAUM,IANI;AAOzBb,EAAAA,qBAAqB,EAAEO,mBAAUG,KAAV,CAAgBI,4BAAmBR,SAAnC;AAPE,CAA3B;eAUeX,c","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport InputTextWithTitle from '../../atom/input-text-with-title';\nimport CourseSection from '../course-section';\nimport DraggableList from '../draggable-list';\nimport Loader from '../../atom/loader';\nimport Title from '../../atom/title';\nimport TitleAndCheckBoxWrapper from '../title-and-checkbox-wrapper';\nimport style from './style.css';\n\nconst Loading = () => (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n);\n\nconst CourseSections = ({\n sections,\n onDrop,\n isLoading,\n title,\n mandatoryCoursesInput,\n inputTitle,\n totalCourses\n}) => {\n if (isLoading) return <Loading />;\n\n const child = {...mandatoryCoursesInput, childType: 'input-text'};\n const sectionTitle = {title: inputTitle, 'data-name': 'mandatory-courses-input-title'};\n return (\n <div>\n {mandatoryCoursesInput && sectionTitle ? (\n <TitleAndCheckBoxWrapper child={child} sectionTitle={sectionTitle} />\n ) : null}\n {title ? (\n <div className={style.title}>\n <Title title={title} type={'form-group'} data-name={'course-sections-title'} />\n {totalCourses ? (\n <Title\n title={totalCourses}\n type={'form-group'}\n data-name={'course-sections-total-courses'}\n />\n ) : null}\n </div>\n ) : null}\n <DraggableList itemType=\"course-section\" items={sections} onDrop={onDrop} />\n </div>\n );\n};\n\nCourseSections.propTypes = {\n inputTitle: PropTypes.string,\n title: PropTypes.string,\n totalCourses: PropTypes.string,\n sections: PropTypes.arrayOf(PropTypes.shape(CourseSection.propTypes)),\n onDrop: PropTypes.func,\n isLoading: PropTypes.bool,\n mandatoryCoursesInput: PropTypes.shape(InputTextWithTitle.propTypes)\n};\n\nexport default CourseSections;\n"],"file":"index.js"}
|
|
@@ -578,14 +578,14 @@
|
|
|
578
578
|
height: auto;
|
|
579
579
|
background-color: white;
|
|
580
580
|
left: 0;
|
|
581
|
-
top: -
|
|
581
|
+
top: -100vh;
|
|
582
582
|
width: 100%;
|
|
583
583
|
transition: top 0.8s ease-out;
|
|
584
584
|
max-height: 100vh;
|
|
585
585
|
}
|
|
586
586
|
|
|
587
587
|
.menuWrapper:last-child {
|
|
588
|
-
padding-bottom:
|
|
588
|
+
padding-bottom: 60px;
|
|
589
589
|
}
|
|
590
590
|
|
|
591
591
|
.hiddenSearchBar {
|
|
@@ -86,14 +86,14 @@ const Slide = ({
|
|
|
86
86
|
updateSlidesOnNext,
|
|
87
87
|
updateReviewStatus,
|
|
88
88
|
updateStepItemsOnNext,
|
|
89
|
-
|
|
89
|
+
progression,
|
|
90
90
|
correctionPopinProps
|
|
91
91
|
}) => {
|
|
92
92
|
const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
|
|
93
93
|
const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
|
|
94
94
|
const position = (0, _get.default)(`${slideNumber}.position`, slides);
|
|
95
95
|
const animationType = (0, _getOr.default)(false, `${slideNumber}.animationType`, slides);
|
|
96
|
-
const
|
|
96
|
+
const isSlideCorrect = (0, _getOr.default)(null, `${slideNumber}.isCorrect`, slides);
|
|
97
97
|
const questionText = (0, _get.default)(`${slideNumber}.questionText`, slides);
|
|
98
98
|
const answerUI = (0, _get.default)(`${slideNumber}.answerUI`, slides);
|
|
99
99
|
const validateLabel = (0, _getOr.default)('', 'label', validate);
|
|
@@ -112,7 +112,6 @@ const Slide = ({
|
|
|
112
112
|
be handled on the next slide logic but the content will be carried from here.
|
|
113
113
|
*/
|
|
114
114
|
onClick: async () => {
|
|
115
|
-
// result: 'success' | 'failure'
|
|
116
115
|
// endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'
|
|
117
116
|
await validateSlide();
|
|
118
117
|
},
|
|
@@ -120,7 +119,7 @@ const Slide = ({
|
|
|
120
119
|
label: validateLabel,
|
|
121
120
|
'data-name': `slide-validate-button-${slideNumber}`,
|
|
122
121
|
className: _style.default.validateButton,
|
|
123
|
-
disabled: !(0, _isNil.default)(
|
|
122
|
+
disabled: !(0, _isNil.default)(isSlideCorrect)
|
|
124
123
|
};
|
|
125
124
|
const klf = (0, _getOr.default)({}, 'klf', correctionPopinProps);
|
|
126
125
|
const information = (0, _getOr.default)({
|
|
@@ -139,15 +138,15 @@ const Slide = ({
|
|
|
139
138
|
from the content carried from the validate action.
|
|
140
139
|
*/
|
|
141
140
|
onClick: () => {
|
|
142
|
-
const exitNode = (0, _get.default)('exitNode',
|
|
141
|
+
const exitNode = (0, _get.default)('exitNode', progression);
|
|
143
142
|
updateSlidesOnNext({
|
|
144
143
|
slideNumber,
|
|
145
144
|
newSlideContent: {
|
|
146
|
-
hidden:
|
|
145
|
+
hidden: !!isSlideCorrect,
|
|
147
146
|
position: HIGHEST_INDEX - finishedSlidesSize,
|
|
148
147
|
// to restack the slide
|
|
149
|
-
animationType:
|
|
150
|
-
|
|
148
|
+
animationType: isSlideCorrect ? 'unstack' : 'restack',
|
|
149
|
+
isCorrect: isSlideCorrect,
|
|
151
150
|
endReview: !!exitNode,
|
|
152
151
|
answerUI,
|
|
153
152
|
questionText
|
|
@@ -159,7 +158,7 @@ const Slide = ({
|
|
|
159
158
|
finishedSlides,
|
|
160
159
|
current: finishedSlidesSize === HIGHEST_INDEX &&
|
|
161
160
|
/* istanbul ignore next */
|
|
162
|
-
|
|
161
|
+
!isSlideCorrect
|
|
163
162
|
});
|
|
164
163
|
if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');
|
|
165
164
|
},
|
|
@@ -169,8 +168,8 @@ const Slide = ({
|
|
|
169
168
|
},
|
|
170
169
|
klf,
|
|
171
170
|
information,
|
|
172
|
-
type:
|
|
173
|
-
resultLabel:
|
|
171
|
+
type: isSlideCorrect ? 'right' : 'wrong',
|
|
172
|
+
resultLabel: isSlideCorrect ? successLabel : failureLabel
|
|
174
173
|
};
|
|
175
174
|
const questionOrigin = 'From "Master Design Thinking to become more agile" course';
|
|
176
175
|
const answerProps = (0, _get.default)(['model', 'choices'], answerUI) ?
|
|
@@ -205,8 +204,8 @@ const Slide = ({
|
|
|
205
204
|
key: "button-wrapper",
|
|
206
205
|
className: _style.default.validateButtonWrapper
|
|
207
206
|
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, validateButtonProps)), /*#__PURE__*/_react.default.createElement("div", {
|
|
208
|
-
className:
|
|
209
|
-
style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !
|
|
207
|
+
className: isSlideCorrect ? _style.default.correctionPopinWrapper : _style.default.hiddenCorrectionPopinWrapper,
|
|
208
|
+
style: _extends({}, finishedSlidesSize !== HIGHEST_INDEX && !isSlideCorrect && {
|
|
210
209
|
display: 'none'
|
|
211
210
|
})
|
|
212
211
|
}, /*#__PURE__*/_react.default.createElement(_reviewCorrectionPopin.default, _correctionPopinProps)));
|
|
@@ -224,7 +223,7 @@ const StackedSlides = ({
|
|
|
224
223
|
updateSlidesOnNext,
|
|
225
224
|
updateReviewStatus,
|
|
226
225
|
updateStepItemsOnNext,
|
|
227
|
-
|
|
226
|
+
progression,
|
|
228
227
|
correctionPopinProps
|
|
229
228
|
}) => {
|
|
230
229
|
const stackedSlides = []; // eslint-disable-next-line fp/no-loops
|
|
@@ -241,7 +240,7 @@ const StackedSlides = ({
|
|
|
241
240
|
updateSlidesOnNext,
|
|
242
241
|
updateReviewStatus,
|
|
243
242
|
updateStepItemsOnNext,
|
|
244
|
-
|
|
243
|
+
progression,
|
|
245
244
|
correctionPopinProps
|
|
246
245
|
}, {
|
|
247
246
|
key: slideNumber
|
|
@@ -272,7 +271,7 @@ const SlidesReview = ({
|
|
|
272
271
|
updateStepItemsOnValidation,
|
|
273
272
|
updateStepItemsOnNext,
|
|
274
273
|
updateFinishedSlides,
|
|
275
|
-
|
|
274
|
+
progression
|
|
276
275
|
}, context) => {
|
|
277
276
|
const {
|
|
278
277
|
skin
|
|
@@ -291,21 +290,21 @@ const SlidesReview = ({
|
|
|
291
290
|
(0, _react.useEffect)(
|
|
292
291
|
/* istanbul ignore next */
|
|
293
292
|
() => {
|
|
294
|
-
const slideNumber = (0, _get.default)('slideNumber',
|
|
293
|
+
const slideNumber = (0, _get.default)('slideNumber', progression);
|
|
295
294
|
|
|
296
|
-
if (
|
|
295
|
+
if (progression) {
|
|
297
296
|
const hidden = (0, _getOr.default)(false, `${slideNumber}.hidden`, slides);
|
|
298
297
|
const endReview = (0, _getOr.default)(false, `${slideNumber}.endReview`, slides);
|
|
299
298
|
const position = (0, _get.default)(`${slideNumber}.position`, slides);
|
|
300
|
-
const
|
|
301
|
-
const exitNode = (0, _get.default)('exitNode',
|
|
302
|
-
const nextSlide = (0, _get.default)('nextSlide',
|
|
299
|
+
const isCorrect = (0, _get.default)('isCorrect', progression);
|
|
300
|
+
const exitNode = (0, _get.default)('exitNode', progression);
|
|
301
|
+
const nextSlide = (0, _get.default)('nextSlide', progression);
|
|
303
302
|
updateSlidesOnValidation({
|
|
304
303
|
slideNumber,
|
|
305
304
|
newSlideContent: {
|
|
306
305
|
hidden,
|
|
307
306
|
position,
|
|
308
|
-
|
|
307
|
+
isCorrect,
|
|
309
308
|
endReview: !!exitNode
|
|
310
309
|
},
|
|
311
310
|
numberOfFinishedSlides: finishedSlidesSize,
|
|
@@ -313,9 +312,9 @@ const SlidesReview = ({
|
|
|
313
312
|
});
|
|
314
313
|
updateStepItemsOnValidation({
|
|
315
314
|
stepNumber: slideNumber,
|
|
316
|
-
icon:
|
|
315
|
+
icon: isCorrect ? _reviewHeaderStepItem.ICON_VALUES.right : _reviewHeaderStepItem.ICON_VALUES.wrong
|
|
317
316
|
});
|
|
318
|
-
if (
|
|
317
|
+
if (isCorrect) updateFinishedSlides({
|
|
319
318
|
slideNumber,
|
|
320
319
|
value: true
|
|
321
320
|
});
|
|
@@ -325,7 +324,7 @@ const SlidesReview = ({
|
|
|
325
324
|
}
|
|
326
325
|
}
|
|
327
326
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
328
|
-
[
|
|
327
|
+
[progression]);
|
|
329
328
|
(0, _react.useEffect)(
|
|
330
329
|
/* istanbul ignore next */
|
|
331
330
|
() => {
|
|
@@ -371,7 +370,7 @@ const SlidesReview = ({
|
|
|
371
370
|
updateSlidesOnNext,
|
|
372
371
|
updateReviewStatus,
|
|
373
372
|
updateStepItemsOnNext,
|
|
374
|
-
|
|
373
|
+
progression,
|
|
375
374
|
correctionPopinProps
|
|
376
375
|
}))) :
|
|
377
376
|
/* istanbul ignore next */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["stylesByPosition","style","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","slideValidationResult","correctionPopinProps","endReview","animationType","validationResult","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","SlidePropTypes","StackedSlides","stackedSlides","slide","push","StackedSlidesPropTypes","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","size","shouldMountSlides","updateShouldMountSlides","result","nextSlide","icon","ICON_VALUES","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\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\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const validationResult = getOr(null, `${slideNumber}.validationResult`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\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 nextSlide content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides 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 */\n onClick: async () => {\n // result: 'success' | 'failure'\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(validationResult)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', slideValidationResult);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: validationResult === 'success',\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: validationResult === 'success' ? 'unstack' : 'restack',\n validationResult,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX &&\n /* istanbul ignore next */ validationResult !== 'success'\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: validationResult === 'success' ? 'right' : 'wrong',\n resultLabel: validationResult === 'success' ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\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\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\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 {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n validationResult ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !validationResult && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n slideValidationResult\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', slideValidationResult);\n if (slideValidationResult) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const result = get('result', slideValidationResult);\n const exitNode = get('exitNode', slideValidationResult);\n const nextSlide = get('nextSlide', slideValidationResult);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n validationResult: result,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextSlide\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: result === 'success' ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (result === 'success') updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [slideValidationResult]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\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 {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n slideValidationResult,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-review/slides/index.js"],"names":["stylesByPosition","style","position0","position1","position2","position3","position4","TOTAL_SLIDES_STACK","HIGHEST_INDEX","getSlideAnimation","action","position","hidden","slideOutHideAndIn","slideOutAndIn","hiddenSlide","Slide","slideNumber","slides","primarySkinColor","validate","validateSlide","finishedSlides","finishedSlidesSize","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnNext","progression","correctionPopinProps","endReview","animationType","isSlideCorrect","questionText","answerUI","validateLabel","validateButtonProps","customStyle","backgroundColor","onClick","label","className","validateButton","disabled","klf","information","message","next","successLabel","failureLabel","_correctionPopinProps","exitNode","newSlideContent","isCorrect","numberOfFinishedSlides","stepNumber","current","type","resultLabel","questionOrigin","answerProps","model","answers","choices","slideBase","slideContentContainer","question","help","answerContainer","validateButtonWrapper","correctionPopinWrapper","hiddenCorrectionPopinWrapper","display","propTypes","SlidePropTypes","StackedSlides","stackedSlides","slide","push","StackedSlidesPropTypes","SlidesReview","headerProps","reviewBackgroundAriaLabel","stepItems","reviewStatus","congratsProps","updateSlidesOnValidation","updateStepItemsOnValidation","updateFinishedSlides","context","skin","size","shouldMountSlides","updateShouldMountSlides","nextSlide","icon","ICON_VALUES","right","wrong","value","setTimeout","stepItemsArray","stepItem","_headerProps","steps","key","hiddenSteps","slidesRevisionContainer","playerBackground","reviewHeaderContainer","stackedSlidesYAxisOverflowContainer","stackedSlidesContainer","congrats","SlidesReviewPropTypes"],"mappings":"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","sourcesContent":["import React, {useState, useMemo, useEffect} from 'react';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport isNil from 'lodash/fp/isNil';\nimport map from 'lodash/fp/map';\nimport omit from 'lodash/fp/omit';\nimport pipe from 'lodash/fp/pipe';\nimport size from 'lodash/fp/size';\nimport {ICON_VALUES} from '../../../atom/review-header-step-item';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewHeader from '../../../organism/review-header';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport Answer from '../../../molecule/answer';\nimport ButtonLink from '../../../atom/button-link';\nimport style from './style.css';\nimport {SlidesReviewPropTypes, SlidePropTypes, StackedSlidesPropTypes} from './prop-types';\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\nexport const TOTAL_SLIDES_STACK = 5;\nexport const HIGHEST_INDEX = TOTAL_SLIDES_STACK - 1;\n\nconst getSlideAnimation = (action, position, hidden) => {\n switch (action) {\n /* istanbul ignore next */\n case 'unstack':\n return style.slideOutHideAndIn;\n /* istanbul ignore next */\n case 'restack':\n return style.slideOutAndIn;\n default:\n return hidden ? style.hiddenSlide : stylesByPosition[position];\n }\n};\n\nconst Slide = ({\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const animationType = getOr(false, `${slideNumber}.animationType`, slides);\n const isSlideCorrect = getOr(null, `${slideNumber}.isCorrect`, slides);\n const questionText = get(`${slideNumber}.questionText`, slides);\n const answerUI = get(`${slideNumber}.answerUI`, slides);\n\n const validateLabel = getOr('', 'label', validate);\n\n const validateButtonProps = {\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 nextSlide content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slides 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 */\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\n 'aria-label': validateLabel,\n label: validateLabel,\n 'data-name': `slide-validate-button-${slideNumber}`,\n className: style.validateButton,\n disabled: !isNil(isSlideCorrect)\n };\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const successLabel = getOr('', 'successLabel', correctionPopinProps);\n const failureLabel = getOr('', 'failureLabel', correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n /*\n next slide action, this will trigger the slides animations\n if it is the last slide AND the content needs to be different, then that update\n of the content will be handled here (and in the validate as it happens normally )\n from the content carried from the validate action.\n */\n onClick: () => {\n const exitNode = get('exitNode', progression);\n\n updateSlidesOnNext({\n slideNumber,\n newSlideContent: {\n hidden: !!isSlideCorrect,\n position: HIGHEST_INDEX - finishedSlidesSize, // to restack the slide\n animationType: isSlideCorrect ? 'unstack' : 'restack',\n isCorrect: isSlideCorrect,\n endReview: !!exitNode,\n answerUI,\n questionText\n },\n numberOfFinishedSlides: finishedSlidesSize\n });\n updateStepItemsOnNext({\n stepNumber: slideNumber,\n finishedSlides,\n current:\n finishedSlidesSize === HIGHEST_INDEX && /* istanbul ignore next */ !isSlideCorrect\n });\n\n if (finishedSlidesSize === TOTAL_SLIDES_STACK) updateReviewStatus('finished');\n },\n label: next && next.label,\n 'data-name': `next-question-button-${slideNumber}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: isSlideCorrect ? 'right' : 'wrong',\n resultLabel: isSlideCorrect ? successLabel : failureLabel\n };\n\n const questionOrigin = 'From \"Master Design Thinking to become more agile\" course';\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\n key={`slide-${slideNumber}`}\n data-name={`slide-${slideNumber}`}\n className={classnames(\n style.slideBase,\n getSlideAnimation(animationType, position, hidden),\n endReview ? style.endReview : null\n )}\n >\n {answerUI && questionText ? (\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 {answerUI.help}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} key=\"answer\" />\n </div>\n </div>\n ) : null}\n\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n <div\n className={\n isSlideCorrect ? style.correctionPopinWrapper : style.hiddenCorrectionPopinWrapper\n }\n style={{\n ...(finishedSlidesSize !== HIGHEST_INDEX &&\n !isSlideCorrect && {\n display: 'none'\n })\n }}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n </div>\n );\n};\n\nSlide.propTypes = SlidePropTypes;\n\nconst StackedSlides = ({\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n}) => {\n const stackedSlides = [];\n // eslint-disable-next-line fp/no-loops\n for (let slideNumber = 0; slideNumber < TOTAL_SLIDES_STACK; slideNumber++) {\n const slide = (\n <Slide\n {...{\n slideNumber,\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n key={slideNumber}\n />\n );\n stackedSlides.push(slide);\n }\n\n return stackedSlides;\n};\n\nStackedSlides.propTypes = StackedSlidesPropTypes;\n\nconst SlidesReview = (\n {\n headerProps,\n reviewBackgroundAriaLabel,\n validate,\n correctionPopinProps,\n slides,\n finishedSlides,\n stepItems,\n reviewStatus,\n congratsProps,\n validateSlide,\n updateSlidesOnValidation,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnValidation,\n updateStepItemsOnNext,\n updateFinishedSlides,\n progression\n },\n context\n) => {\n const {skin} = context;\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n\n const finishedSlidesSize = useMemo(() => pipe(omit('slideNumbers'), size)(finishedSlides), [\n finishedSlides\n ]);\n\n /*\n ||-------> the slides have an slightly longer lifespan than the \"ongoing\" review State,\n after reviewState changes to \"finished\" the slides don't have to unmount until the last\n slide-out animation is finished, the slides have to be unmounted to be RGAA complaint.\n (if they are only invisible -but- still mounted, then they will be found by the assisting\n tools & clutter them)\n */\n const [shouldMountSlides, updateShouldMountSlides] = useState(true);\n\n useEffect(\n /* istanbul ignore next */ () => {\n const slideNumber = get('slideNumber', progression);\n if (progression) {\n const hidden = getOr(false, `${slideNumber}.hidden`, slides);\n const endReview = getOr(false, `${slideNumber}.endReview`, slides);\n const position = get(`${slideNumber}.position`, slides);\n const isCorrect = get('isCorrect', progression);\n const exitNode = get('exitNode', progression);\n const nextSlide = get('nextSlide', progression);\n updateSlidesOnValidation({\n slideNumber,\n newSlideContent: {\n hidden,\n position,\n isCorrect,\n endReview: !!exitNode\n },\n numberOfFinishedSlides: finishedSlidesSize,\n nextSlide\n });\n updateStepItemsOnValidation({\n stepNumber: slideNumber,\n icon: isCorrect ? ICON_VALUES.right : ICON_VALUES.wrong\n });\n if (isCorrect) updateFinishedSlides({slideNumber, value: true});\n if (endReview) {\n updateReviewStatus('finished');\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [progression]\n );\n\n useEffect(\n /* istanbul ignore next */ () => {\n if (reviewStatus === 'finished') {\n setTimeout(() => updateShouldMountSlides(false), 2000);\n }\n },\n [finishedSlidesSize, reviewStatus, updateReviewStatus]\n );\n\n // ||-------> transform the step items state to Array\n const stepItemsArray = useMemo(\n () =>\n pipe(\n omit('slideNumbers'),\n map(stepItem => stepItem)\n )(stepItems),\n [stepItems]\n );\n\n const _headerProps = {\n ...headerProps,\n steps: stepItemsArray,\n key: 'review-header',\n hiddenSteps: reviewStatus !== 'ongoing'\n };\n\n return (\n <div\n key=\"slides-revision-container\"\n data-name=\"slides-revision-container\"\n className={style.slidesRevisionContainer}\n >\n <div key=\"player-background-container\" className={style.playerBackground}>\n <ReviewBackground aria-label={reviewBackgroundAriaLabel} />\n </div>\n\n <div key=\"review-header-wrapper\" className={style.reviewHeaderContainer}>\n <ReviewHeader {..._headerProps} />\n </div>\n\n {shouldMountSlides ? (\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 {...{\n slides,\n primarySkinColor,\n validate,\n validateSlide,\n finishedSlides,\n finishedSlidesSize,\n updateSlidesOnNext,\n updateReviewStatus,\n updateStepItemsOnNext,\n progression,\n correctionPopinProps\n }}\n />\n </div>\n </div>\n ) : /* istanbul ignore next */ null}\n\n {reviewStatus === 'finished' ? (\n <div className={style.congrats} data-name=\"congrats-container\">\n <ReviewCongrats {...congratsProps} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSlidesReview.propTypes = SlidesReviewPropTypes;\n\nexport default SlidesReview;\n"],"file":"index.js"}
|
|
@@ -27,7 +27,7 @@ const NextSlideProp = _propTypes.default.shape({
|
|
|
27
27
|
// 'unstack' | 'restack'
|
|
28
28
|
animationType: _propTypes.default.string,
|
|
29
29
|
// 'success' | 'failure'
|
|
30
|
-
|
|
30
|
+
isCorrect: _propTypes.default.string,
|
|
31
31
|
endReview: _propTypes.default.bool,
|
|
32
32
|
questionText: _propTypes.default.string,
|
|
33
33
|
answerUI: _answer.default
|
|
@@ -87,10 +87,10 @@ const SlidesReviewPropTypes = {
|
|
|
87
87
|
failureLabel: _reviewCorrectionPopin.default.propTypes.resultLabel
|
|
88
88
|
}),
|
|
89
89
|
congratsProps: _propTypes.default.shape(_reviewCongrats.default.propTypes),
|
|
90
|
-
|
|
90
|
+
progression: _propTypes.default.shape({
|
|
91
91
|
slideNumber: _propTypes.default.number,
|
|
92
92
|
// 'success' | 'failure'
|
|
93
|
-
|
|
93
|
+
isCorrect: _propTypes.default.bool,
|
|
94
94
|
// 'successExitNode' | 'failExitNode'
|
|
95
95
|
exitNode: _propTypes.default.string,
|
|
96
96
|
nextSlide: _propTypes.default.shape({
|
|
@@ -123,7 +123,7 @@ const SlidePropTypes = {
|
|
|
123
123
|
updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,
|
|
124
124
|
updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,
|
|
125
125
|
updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,
|
|
126
|
-
|
|
126
|
+
progression: SlidesReviewPropTypes.progression
|
|
127
127
|
};
|
|
128
128
|
exports.SlidePropTypes = SlidePropTypes;
|
|
129
129
|
const StackedSlidesPropTypes = (0, _omit.default)('slideNumber', SlidePropTypes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["NextSlideProp","PropTypes","shape","hidden","bool","position","number","animationType","string","
|
|
1
|
+
{"version":3,"sources":["../../../../src/template/app-review/slides/prop-types.js"],"names":["NextSlideProp","PropTypes","shape","hidden","bool","position","number","animationType","string","isCorrect","endReview","questionText","answerUI","Answer","SlideProp","props","nextSlide","StepItemProp","current","icon","value","SlidesReviewPropTypes","headerProps","ReviewHeader","propTypes","reviewBackgroundAriaLabel","ReviewBackground","validate","label","slides","slideNumbers","arrayOf","finishedSlides","stepItems","reviewStatus","correctionPopinProps","klf","ReviewCorrectionPopin","information","next","successLabel","resultLabel","failureLabel","congratsProps","ReviewCongrats","progression","slideNumber","exitNode","validateSlide","func","isRequired","updateSlidesOnValidation","updateSlidesOnNext","updateReviewStatus","updateStepItemsOnValidation","updateStepItemsOnNext","updateFinishedSlides","SlidePropTypes","primarySkinColor","finishedSlidesSize","StackedSlidesPropTypes"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport omit from 'lodash/fp/omit';\n\nimport ReviewCongrats from '../../../organism/review-congrats';\nimport ReviewCorrectionPopin from '../../../molecule/review-correction-popin';\nimport ReviewBackground from '../../../atom/review-background';\nimport ReviewHeader from '../../../organism/review-header';\nimport Answer from '../../../molecule/answer';\n\nconst NextSlideProp = PropTypes.shape({\n hidden: PropTypes.bool,\n position: PropTypes.number,\n // 'unstack' | 'restack'\n animationType: PropTypes.string,\n // 'success' | 'failure'\n isCorrect: PropTypes.string,\n endReview: PropTypes.bool,\n questionText: PropTypes.string,\n answerUI: Answer\n});\n\nconst SlideProp = PropTypes.shape({\n ...NextSlideProp.props,\n nextSlide: NextSlideProp\n});\n\nconst StepItemProp = PropTypes.shape({\n current: PropTypes.bool,\n icon: PropTypes.string,\n value: PropTypes.string\n});\n\nexport const SlidesReviewPropTypes = {\n headerProps: PropTypes.shape(omit('steps', ReviewHeader.propTypes)),\n reviewBackgroundAriaLabel: ReviewBackground.propTypes['aria-label'],\n validate: PropTypes.shape({\n label: PropTypes.string\n }),\n slides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: SlideProp,\n 1: SlideProp,\n 2: SlideProp,\n 3: SlideProp,\n 4: SlideProp\n }),\n finishedSlides: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: PropTypes.bool,\n 1: PropTypes.bool,\n 2: PropTypes.bool,\n 3: PropTypes.bool,\n 4: PropTypes.bool\n }),\n stepItems: PropTypes.shape({\n slideNumbers: PropTypes.arrayOf(PropTypes.number),\n 0: StepItemProp,\n 1: StepItemProp,\n 2: StepItemProp,\n 3: StepItemProp,\n 4: StepItemProp\n }),\n // 'finished' | 'ongoing'\n reviewStatus: PropTypes.string,\n correctionPopinProps: PropTypes.shape({\n // ---------------\n klf: ReviewCorrectionPopin.propTypes.klf,\n information: ReviewCorrectionPopin.propTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string\n }),\n successLabel: ReviewCorrectionPopin.propTypes.resultLabel,\n failureLabel: ReviewCorrectionPopin.propTypes.resultLabel\n }),\n congratsProps: PropTypes.shape(ReviewCongrats.propTypes),\n progression: PropTypes.shape({\n slideNumber: PropTypes.number,\n // 'success' | 'failure'\n isCorrect: PropTypes.bool,\n // 'successExitNode' | 'failExitNode'\n exitNode: PropTypes.string,\n nextSlide: PropTypes.shape({\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(Answer.propTypes)\n })\n }),\n // ---------------------------------------------------------------------------\n // Dispatchers\n validateSlide: PropTypes.func.isRequired,\n updateSlidesOnValidation: PropTypes.func.isRequired,\n updateSlidesOnNext: PropTypes.func.isRequired,\n updateReviewStatus: PropTypes.func.isRequired,\n updateStepItemsOnValidation: PropTypes.func.isRequired,\n updateStepItemsOnNext: PropTypes.func.isRequired,\n updateFinishedSlides: PropTypes.func.isRequired\n};\n\nexport const SlidePropTypes = {\n slideNumber: PropTypes.number,\n slides: SlidesReviewPropTypes.slides,\n primarySkinColor: PropTypes.string,\n validate: SlidesReviewPropTypes.validate,\n finishedSlides: SlidesReviewPropTypes.finishedSlides,\n finishedSlidesSize: PropTypes.number,\n correctionPopinProps: SlidesReviewPropTypes.correctionPopinProps,\n // ---------------\n // Dispatchers\n validateSlide: SlidesReviewPropTypes.validateSlide,\n updateSlidesOnNext: SlidesReviewPropTypes.updateSlidesOnNext,\n updateReviewStatus: SlidesReviewPropTypes.updateReviewStatus,\n updateStepItemsOnNext: SlidesReviewPropTypes.updateStepItemsOnNext,\n progression: SlidesReviewPropTypes.progression\n};\n\nexport const StackedSlidesPropTypes = omit('slideNumber', SlidePropTypes);\n"],"file":"prop-types.js"}
|
package/locales/hr/global.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"clue_stars_to_loose": "Otključavanje traga smanjuje zvjezdice koje možete dobiti na ovo pitanje do {{count}} (ako dobro shvatite)",
|
|
16
16
|
"confirm_unsubscribe": "Jeste li sigurni da želite otkazati pretplatu?",
|
|
17
17
|
"cookies_details": "Ova mrežna stranica koristi kolačiće kako bismo vam mogli pružiti najbolje iskustvo učenja. Ako želite saznati više o kolačićima koje koristimo i o tome kako koristimo vaše podatke, pročitajte našu",
|
|
18
|
-
"cookies_policy": "
|
|
18
|
+
"cookies_policy": "Politika privatnosti i kolačića.",
|
|
19
19
|
"cookies_title": "Kako koristimo kolačiće:",
|
|
20
20
|
"Create a new cohort": "Stvorite novu skupinu",
|
|
21
21
|
"Delete": "Izbrišite",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"zuora_discount_code_submit": "Prijavite se",
|
|
77
77
|
"zuora_discount_code": "Promotivni kod",
|
|
78
78
|
"mandatory_fields": "*Obavezna polja",
|
|
79
|
-
"something_went_wrong": "Ajoj! Nešto je
|
|
79
|
+
"something_went_wrong": "Ajoj! Nešto je otišlo ukrivo."
|
|
80
80
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "10.21.
|
|
3
|
+
"version": "10.21.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -130,5 +130,5 @@
|
|
|
130
130
|
"webpack": "^4.43.0"
|
|
131
131
|
},
|
|
132
132
|
"author": "CoorpAcademy",
|
|
133
|
-
"gitHead": "
|
|
133
|
+
"gitHead": "e56c49d3c4ba099a60afb29e6cec578e33f8c39e"
|
|
134
134
|
}
|