@coorpacademy/components 10.21.1 → 10.21.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/atom/content-badge/index.js +15 -3
- package/es/atom/content-badge/index.js.map +1 -1
- package/es/atom/content-badge/style.css +6 -0
- 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/banner/index.js +9 -4
- package/es/molecule/banner/index.js.map +1 -1
- package/es/molecule/banner/style.css +41 -6
- package/es/molecule/card/index.js +5 -1
- package/es/molecule/card/index.js.map +1 -1
- package/es/molecule/card/selectable.css +49 -2
- package/es/molecule/card/selectable.js +10 -2
- package/es/molecule/card/selectable.js.map +1 -1
- package/es/molecule/cm-popin/index.js +12 -5
- package/es/molecule/cm-popin/index.js.map +1 -1
- package/es/molecule/cm-popin/style.css +28 -0
- package/es/molecule/go1-banner/index.js +56 -0
- package/es/molecule/go1-banner/index.js.map +1 -0
- package/es/molecule/go1-banner/style.css +90 -0
- package/es/organism/brand-dashboard/index.js +6 -3
- package/es/organism/brand-dashboard/index.js.map +1 -1
- 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/es/variables/colors.css +4 -0
- package/lib/atom/content-badge/index.js +17 -4
- package/lib/atom/content-badge/index.js.map +1 -1
- package/lib/atom/content-badge/style.css +6 -0
- 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/banner/index.js +9 -4
- package/lib/molecule/banner/index.js.map +1 -1
- package/lib/molecule/banner/style.css +41 -6
- package/lib/molecule/card/index.js +3 -1
- package/lib/molecule/card/index.js.map +1 -1
- package/lib/molecule/card/selectable.css +49 -2
- package/lib/molecule/card/selectable.js +9 -1
- package/lib/molecule/card/selectable.js.map +1 -1
- package/lib/molecule/cm-popin/index.js +12 -5
- package/lib/molecule/cm-popin/index.js.map +1 -1
- package/lib/molecule/cm-popin/style.css +28 -0
- package/lib/molecule/go1-banner/index.js +67 -0
- package/lib/molecule/go1-banner/index.js.map +1 -0
- package/lib/molecule/go1-banner/style.css +90 -0
- package/lib/organism/brand-dashboard/index.js +7 -3
- package/lib/organism/brand-dashboard/index.js.map +1 -1
- 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/lib/variables/colors.css +4 -0
- package/locales/hr/global.json +2 -2
- package/package.json +2 -2
|
@@ -8,9 +8,11 @@ import style from './style.css';
|
|
|
8
8
|
const CMPopin = props => {
|
|
9
9
|
const {
|
|
10
10
|
content,
|
|
11
|
+
mode = 'alert',
|
|
11
12
|
firstButton,
|
|
12
13
|
secondButton,
|
|
13
14
|
onClose,
|
|
15
|
+
header,
|
|
14
16
|
icon
|
|
15
17
|
} = props;
|
|
16
18
|
const logo = {
|
|
@@ -24,7 +26,10 @@ const CMPopin = props => {
|
|
|
24
26
|
className: style.popin
|
|
25
27
|
}, /*#__PURE__*/React.createElement("header", {
|
|
26
28
|
className: style.popinHeader
|
|
27
|
-
},
|
|
29
|
+
}, header ? /*#__PURE__*/React.createElement("img", {
|
|
30
|
+
className: style.headerBackground,
|
|
31
|
+
src: header
|
|
32
|
+
}) : null, onClose ? /*#__PURE__*/React.createElement(ButtonLinkIconOnly, {
|
|
28
33
|
onClick: onClose,
|
|
29
34
|
"data-name": 'close-icon',
|
|
30
35
|
"aria-label": 'close-icon',
|
|
@@ -34,14 +39,14 @@ const CMPopin = props => {
|
|
|
34
39
|
className: style.contentSection
|
|
35
40
|
}, LogoComponent ? /*#__PURE__*/React.createElement(LogoComponent, {
|
|
36
41
|
className: style.icon
|
|
37
|
-
}) : null, /*#__PURE__*/React.createElement("p", {
|
|
38
|
-
className: style.content,
|
|
42
|
+
}) : null, content ? /*#__PURE__*/React.createElement("p", {
|
|
43
|
+
className: mode === 'alert' ? style.content : style.message,
|
|
39
44
|
"data-name": `cm-popin-content` // eslint-disable-next-line react/no-danger
|
|
40
45
|
,
|
|
41
46
|
dangerouslySetInnerHTML: {
|
|
42
47
|
__html: content
|
|
43
48
|
}
|
|
44
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
}) : null), /*#__PURE__*/React.createElement("div", {
|
|
45
50
|
className: style.buttonContainer
|
|
46
51
|
}, firstButton ? /*#__PURE__*/React.createElement("div", {
|
|
47
52
|
className: style.button
|
|
@@ -59,11 +64,13 @@ const CMPopin = props => {
|
|
|
59
64
|
"data-name": `cm-popin-cta-${secondButton.type}`,
|
|
60
65
|
"aria-label": firstButton['aria-label'],
|
|
61
66
|
type: secondButton.type
|
|
62
|
-
})) : null))
|
|
67
|
+
})) : null)));
|
|
63
68
|
};
|
|
64
69
|
|
|
65
70
|
CMPopin.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
66
71
|
content: PropTypes.string,
|
|
72
|
+
mode: PropTypes.oneOf(['alert', 'information']),
|
|
73
|
+
header: PropTypes.string,
|
|
67
74
|
firstButton: PropTypes.shape({
|
|
68
75
|
label: PropTypes.string,
|
|
69
76
|
handleOnclick: PropTypes.func,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","Cta","ButtonLinkIconOnly","style","CMPopin","props","content","firstButton","secondButton","onClose","icon","logo","LogoComponent","background","popin","popinHeader","contentSection","__html","buttonContainer","button","label","handleOnclick","type","propTypes","string","
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/cm-popin/index.js"],"names":["React","PropTypes","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","Cta","ButtonLinkIconOnly","style","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","logo","LogoComponent","background","popin","popinHeader","headerBackground","contentSection","message","__html","buttonContainer","button","label","handleOnclick","type","propTypes","string","oneOf","shape","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload\n} from '@coorpacademy/nova-icons';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport style from './style.css';\n\nconst CMPopin = props => {\n const {content, mode = 'alert', firstButton, secondButton, onClose, header, icon} = props;\n\n const logo = {\n AlertDiamond,\n WindowUpload\n };\n const LogoComponent = logo[icon];\n\n return (\n <div className={style.background}>\n <div className={style.popin}>\n <header className={style.popinHeader}>\n {header ? <img className={style.headerBackground} src={header} /> : null}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={`cm-popin-content`}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={`cm-popin-cta`}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={firstButton['aria-label']}\n type={secondButton.type}\n />\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n type: PropTypes.string\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary']),\n 'aria-label': PropTypes.string\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string\n};\n\nexport default CMPopin;\n"],"file":"index.js"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
@value cm_grey_800 from colors;
|
|
7
7
|
@value negative from colors;
|
|
8
8
|
@value lightGreen from colors;
|
|
9
|
+
@value xtraLightGrey from colors;
|
|
9
10
|
@value cm_grey_50 from colors;
|
|
10
11
|
@value cm_negative_100 from colors;
|
|
11
12
|
@value cm_negative_200 from colors;
|
|
@@ -29,6 +30,12 @@
|
|
|
29
30
|
position:fixed;
|
|
30
31
|
}
|
|
31
32
|
|
|
33
|
+
.headerBackground {
|
|
34
|
+
width: calc(100% + 32px);
|
|
35
|
+
height: auto;
|
|
36
|
+
margin: -16px -16px 0px -16px;
|
|
37
|
+
}
|
|
38
|
+
|
|
32
39
|
.popin {
|
|
33
40
|
position: absolute;
|
|
34
41
|
overflow: auto;
|
|
@@ -46,6 +53,23 @@
|
|
|
46
53
|
animation: popup 0.7s;
|
|
47
54
|
}
|
|
48
55
|
|
|
56
|
+
.message {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
align-items: center;
|
|
61
|
+
padding: 40px 40px 0px;
|
|
62
|
+
position: absolute;
|
|
63
|
+
background: xtraLightGrey;
|
|
64
|
+
font-family: 'Gilroy';
|
|
65
|
+
font-weight: 500;
|
|
66
|
+
font-size: 14px;
|
|
67
|
+
line-height: 20px;
|
|
68
|
+
margin: 0;
|
|
69
|
+
}
|
|
70
|
+
.message p {
|
|
71
|
+
margin: 10px 0px;
|
|
72
|
+
}
|
|
49
73
|
@keyframes popup {
|
|
50
74
|
0%{
|
|
51
75
|
transform: scale(0);
|
|
@@ -98,4 +122,8 @@
|
|
|
98
122
|
width: 100%;
|
|
99
123
|
display: flex;
|
|
100
124
|
justify-content: flex-end;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.popinHeader button {
|
|
128
|
+
position: absolute;
|
|
101
129
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import Button from '../../atom/button';
|
|
4
|
+
import style from './style.css';
|
|
5
|
+
|
|
6
|
+
const Go1Banner = props => {
|
|
7
|
+
const {
|
|
8
|
+
image,
|
|
9
|
+
title,
|
|
10
|
+
subTitle,
|
|
11
|
+
onClick,
|
|
12
|
+
submitValue
|
|
13
|
+
} = props;
|
|
14
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
15
|
+
className: style.background,
|
|
16
|
+
"data-name": "go1-banner"
|
|
17
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: style.textSection
|
|
19
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
20
|
+
className: style.title // eslint-disable-next-line react/no-danger
|
|
21
|
+
,
|
|
22
|
+
dangerouslySetInnerHTML: {
|
|
23
|
+
__html: title
|
|
24
|
+
}
|
|
25
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
26
|
+
className: style.subTitle // eslint-disable-next-line react/no-danger
|
|
27
|
+
,
|
|
28
|
+
dangerouslySetInnerHTML: {
|
|
29
|
+
__html: subTitle
|
|
30
|
+
}
|
|
31
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: style.buttonWrapper
|
|
33
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
34
|
+
type: "link",
|
|
35
|
+
"data-name": "learn-more-button",
|
|
36
|
+
onClick: onClick,
|
|
37
|
+
submitValue: submitValue,
|
|
38
|
+
className: style.ctaButton,
|
|
39
|
+
style: {
|
|
40
|
+
backgroundColor: '#D5FD42'
|
|
41
|
+
}
|
|
42
|
+
}))), /*#__PURE__*/React.createElement("img", {
|
|
43
|
+
className: style.image,
|
|
44
|
+
src: image
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
Go1Banner.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
49
|
+
image: PropTypes.string,
|
|
50
|
+
title: PropTypes.string,
|
|
51
|
+
subTitle: PropTypes.string,
|
|
52
|
+
onClick: Button.propTypes.onClick,
|
|
53
|
+
submitValue: Button.propTypes.submitValue
|
|
54
|
+
} : {};
|
|
55
|
+
export default Go1Banner;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/go1-banner/index.js"],"names":["React","PropTypes","Button","style","Go1Banner","props","image","title","subTitle","onClick","submitValue","background","textSection","__html","buttonWrapper","ctaButton","backgroundColor","propTypes","string"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA,KAAR;AAAeC,IAAAA,QAAf;AAAyBC,IAAAA,OAAzB;AAAkCC,IAAAA;AAAlC,MAAiDL,KAAvD;AAEA,sBACE;AAAK,IAAA,SAAS,EAAEF,KAAK,CAACQ,UAAtB;AAAkC,iBAAU;AAA5C,kBACE;AAAK,IAAA,SAAS,EAAER,KAAK,CAACS;AAAtB,kBACE;AACE,IAAA,SAAS,EAAET,KAAK,CAACI,KADnB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACM,MAAAA,MAAM,EAAEN;AAAT;AAH3B,IADF,eAME;AACE,IAAA,SAAS,EAAEJ,KAAK,CAACK,QADnB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACK,MAAAA,MAAM,EAAEL;AAAT;AAH3B,IANF,eAWE;AAAK,IAAA,SAAS,EAAEL,KAAK,CAACW;AAAtB,kBACE,oBAAC,MAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,iBAAU,mBAFZ;AAGE,IAAA,OAAO,EAAEL,OAHX;AAIE,IAAA,WAAW,EAAEC,WAJf;AAKE,IAAA,SAAS,EAAEP,KAAK,CAACY,SALnB;AAME,IAAA,KAAK,EAAE;AAACC,MAAAA,eAAe,EAAE;AAAlB;AANT,IADF,CAXF,CADF,eAuBE;AAAK,IAAA,SAAS,EAAEb,KAAK,CAACG,KAAtB;AAA6B,IAAA,GAAG,EAAEA;AAAlC,IAvBF,CADF;AA2BD,CA9BD;;AAgCAF,SAAS,CAACa,SAAV,2CAAsB;AACpBX,EAAAA,KAAK,EAAEL,SAAS,CAACiB,MADG;AAEpBX,EAAAA,KAAK,EAAEN,SAAS,CAACiB,MAFG;AAGpBV,EAAAA,QAAQ,EAAEP,SAAS,CAACiB,MAHA;AAIpBT,EAAAA,OAAO,EAAEP,MAAM,CAACe,SAAP,CAAiBR,OAJN;AAKpBC,EAAAA,WAAW,EAAER,MAAM,CAACe,SAAP,CAAiBP;AALV,CAAtB;AAQA,eAAeN,SAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../atom/button';\nimport style from './style.css';\n\nconst Go1Banner = props => {\n const {image, title, subTitle, onClick, submitValue} = props;\n\n return (\n <div className={style.background} data-name=\"go1-banner\">\n <div className={style.textSection}>\n <span\n className={style.title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <span\n className={style.subTitle}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: subTitle}}\n />\n <div className={style.buttonWrapper}>\n <Button\n type=\"link\"\n data-name=\"learn-more-button\"\n onClick={onClick}\n submitValue={submitValue}\n className={style.ctaButton}\n style={{backgroundColor: '#D5FD42'}}\n />\n </div>\n </div>\n <img className={style.image} src={image} />\n </div>\n );\n};\n\nGo1Banner.propTypes = {\n image: PropTypes.string,\n title: PropTypes.string,\n subTitle: PropTypes.string,\n onClick: Button.propTypes.onClick,\n submitValue: Button.propTypes.submitValue\n};\n\nexport default Go1Banner;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
@value breakpoints: "../../variables/breakpoints.css";
|
|
2
|
+
@value tablet from breakpoints;
|
|
3
|
+
@value mobile from breakpoints;
|
|
4
|
+
@value colors: "../../variables/colors.css";
|
|
5
|
+
@value go1_primary_hover from colors;
|
|
6
|
+
@value go1_primary from colors;
|
|
7
|
+
@value go1_backgound from colors;
|
|
8
|
+
@value white from colors;
|
|
9
|
+
|
|
10
|
+
.background {
|
|
11
|
+
background: go1_backgound;
|
|
12
|
+
border-radius: 8px;
|
|
13
|
+
width: 100%;
|
|
14
|
+
min-height: 246px;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
justify-content: space-between;
|
|
18
|
+
margin-top: 30px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.buttonWrapper {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: row;
|
|
24
|
+
justify-content: center;
|
|
25
|
+
align-items: center;
|
|
26
|
+
width: 122px;
|
|
27
|
+
height: 44px;
|
|
28
|
+
background: go1_primary;
|
|
29
|
+
border-radius: 7px;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
order: 2;
|
|
32
|
+
margin: 36px 10px 10px 52px;
|
|
33
|
+
}
|
|
34
|
+
.buttonWrapper:hover {
|
|
35
|
+
background: go1_primary_hover;
|
|
36
|
+
}
|
|
37
|
+
.textSection {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.ctaButton a {
|
|
43
|
+
color: go1_backgound;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.title {
|
|
47
|
+
font-family: 'Gilroy';
|
|
48
|
+
font-style: normal;
|
|
49
|
+
font-weight: 500;
|
|
50
|
+
font-size: 16px;
|
|
51
|
+
line-height: 22px;
|
|
52
|
+
display: block;
|
|
53
|
+
color: white;
|
|
54
|
+
order: 0;
|
|
55
|
+
margin: 34px 10px 8px 76px;
|
|
56
|
+
background: color(white a(13%));
|
|
57
|
+
width: fit-content;
|
|
58
|
+
border-radius: 5px;
|
|
59
|
+
padding: 7px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.subTitle {
|
|
63
|
+
font-family: 'Gilroy';
|
|
64
|
+
font-style: normal;
|
|
65
|
+
font-weight: 600;
|
|
66
|
+
font-size: 28px;
|
|
67
|
+
line-height: 36px;
|
|
68
|
+
color: white;
|
|
69
|
+
order: 1;
|
|
70
|
+
background: color(white a(13%));
|
|
71
|
+
width: fit-content;
|
|
72
|
+
border-radius: 5px;
|
|
73
|
+
padding: 6px 10px;
|
|
74
|
+
margin-left: 50px;
|
|
75
|
+
}
|
|
76
|
+
.image {
|
|
77
|
+
width: auto;
|
|
78
|
+
height: 206px;
|
|
79
|
+
padding: 20px 30px;
|
|
80
|
+
}
|
|
81
|
+
@media tablet {
|
|
82
|
+
.image {
|
|
83
|
+
display: none;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
@media mobile {
|
|
87
|
+
.image {
|
|
88
|
+
display: none;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -4,16 +4,18 @@ import React from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import Title from '../../atom/title';
|
|
6
6
|
import QuickAccessCardGroup from '../../molecule/quick-access-cards-group';
|
|
7
|
+
import Go1Banner from '../../molecule/go1-banner';
|
|
7
8
|
import style from './style.css';
|
|
8
9
|
|
|
9
10
|
const Dashboard = props => {
|
|
10
11
|
const {
|
|
11
12
|
header,
|
|
12
|
-
quickAccessCards
|
|
13
|
+
quickAccessCards,
|
|
14
|
+
banner
|
|
13
15
|
} = props;
|
|
14
16
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Title, _extends({}, header, {
|
|
15
17
|
type: 'page'
|
|
16
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
}))), banner ? /*#__PURE__*/React.createElement(Go1Banner, banner) : null, /*#__PURE__*/React.createElement("div", {
|
|
17
19
|
className: style.sectionWrapper
|
|
18
20
|
}, /*#__PURE__*/React.createElement(Title, {
|
|
19
21
|
title: quickAccessCards.title,
|
|
@@ -31,7 +33,8 @@ Dashboard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
31
33
|
quickAccessCards: PropTypes.shape({
|
|
32
34
|
title: PropTypes.string,
|
|
33
35
|
cards: PropTypes.shape(QuickAccessCardGroup.propTypes)
|
|
34
|
-
})
|
|
36
|
+
}),
|
|
37
|
+
banner: PropTypes.shape(Go1Banner.propTypes)
|
|
35
38
|
} : {};
|
|
36
39
|
export default Dashboard;
|
|
37
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/organism/brand-dashboard/index.js"],"names":["React","PropTypes","Title","QuickAccessCardGroup","style","Dashboard","props","header","quickAccessCards","sectionWrapper","title","cardsWrapper","cards","propTypes","shape","string","subtitle"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AACA,OAAOC,oBAAP,MAAiC,yCAAjC;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AAACC,IAAAA,MAAD;AAASC,IAAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/brand-dashboard/index.js"],"names":["React","PropTypes","Title","QuickAccessCardGroup","Go1Banner","style","Dashboard","props","header","quickAccessCards","banner","sectionWrapper","title","cardsWrapper","cards","propTypes","shape","string","subtitle"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AACA,OAAOC,oBAAP,MAAiC,yCAAjC;AACA,OAAOC,SAAP,MAAsB,2BAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AAACC,IAAAA,MAAD;AAASC,IAAAA,gBAAT;AAA2BC,IAAAA;AAA3B,MAAqCH,KAA3C;AACA,sBACE,8CACE,8CACE,oBAAC,KAAD,eAAWC,MAAX;AAAmB,IAAA,IAAI,EAAE;AAAzB,KADF,CADF,EAIGE,MAAM,gBAAG,oBAAC,SAAD,EAAeA,MAAf,CAAH,GAA+B,IAJxC,eAKE;AAAK,IAAA,SAAS,EAAEL,KAAK,CAACM;AAAtB,kBACE,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAEF,gBAAgB,CAACG,KAA/B;AAAsC,IAAA,IAAI,EAAE;AAA5C,IADF,eAEE;AAAK,IAAA,SAAS,EAAEP,KAAK,CAACQ;AAAtB,kBACE,oBAAC,oBAAD,EAA0BJ,gBAAgB,CAACK,KAA3C,CADF,CAFF,CALF,CADF;AAcD,CAhBD;;AAkBAR,SAAS,CAACS,SAAV,2CAAsB;AACpBP,EAAAA,MAAM,EAAEP,SAAS,CAACe,KAAV,CAAgB;AACtBJ,IAAAA,KAAK,EAAEX,SAAS,CAACgB,MADK;AAEtBC,IAAAA,QAAQ,EAAEjB,SAAS,CAACgB;AAFE,GAAhB,CADY;AAKpBR,EAAAA,gBAAgB,EAAER,SAAS,CAACe,KAAV,CAAgB;AAChCJ,IAAAA,KAAK,EAAEX,SAAS,CAACgB,MADe;AAEhCH,IAAAA,KAAK,EAAEb,SAAS,CAACe,KAAV,CAAgBb,oBAAoB,CAACY,SAArC;AAFyB,GAAhB,CALE;AASpBL,EAAAA,MAAM,EAAET,SAAS,CAACe,KAAV,CAAgBZ,SAAS,CAACW,SAA1B;AATY,CAAtB;AAYA,eAAeT,SAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Title from '../../atom/title';\nimport QuickAccessCardGroup from '../../molecule/quick-access-cards-group';\nimport Go1Banner from '../../molecule/go1-banner';\nimport style from './style.css';\n\nconst Dashboard = props => {\n const {header, quickAccessCards, banner} = props;\n return (\n <div>\n <div>\n <Title {...header} type={'page'} />\n </div>\n {banner ? <Go1Banner {...banner} /> : null}\n <div className={style.sectionWrapper}>\n <Title title={quickAccessCards.title} type={'form-group'} />\n <div className={style.cardsWrapper}>\n <QuickAccessCardGroup {...quickAccessCards.cards} />\n </div>\n </div>\n </div>\n );\n};\n\nDashboard.propTypes = {\n header: PropTypes.shape({\n title: PropTypes.string,\n subtitle: PropTypes.string\n }),\n quickAccessCards: PropTypes.shape({\n title: PropTypes.string,\n cards: PropTypes.shape(QuickAccessCardGroup.propTypes)\n }),\n banner: PropTypes.shape(Go1Banner.propTypes)\n};\n\nexport default Dashboard;\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 */
|