@coorpacademy/components 10.21.3 → 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/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/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/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/variables/colors.css +4 -0
- package/package.json +2 -2
|
@@ -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"}
|
package/es/variables/colors.css
CHANGED
|
@@ -67,3 +67,7 @@
|
|
|
67
67
|
@value box_shadow_light_dark: rgba(0, 0, 0, 0.12);
|
|
68
68
|
@value box_shadow_medium_dark: rgba(0, 0, 0, 0.2);
|
|
69
69
|
@value box_shadow_orange_700: rgba(255, 84, 31, 0.15);
|
|
70
|
+
|
|
71
|
+
@value go1_backgound: #144953;
|
|
72
|
+
@value go1_primary: #D5FD42;
|
|
73
|
+
@value go1_primary_hover: #BFE33B;
|
|
@@ -3,28 +3,41 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
|
|
6
|
+
var _keys2 = _interopRequireDefault(require("lodash/fp/keys"));
|
|
7
|
+
|
|
6
8
|
var _react = _interopRequireDefault(require("react"));
|
|
7
9
|
|
|
8
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
11
|
|
|
10
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
-
|
|
12
12
|
var _style = _interopRequireDefault(require("./style.css"));
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
|
+
const CATEGORIES = {
|
|
17
|
+
base: _style.default.base,
|
|
18
|
+
advanced: _style.default.advanced,
|
|
19
|
+
coach: _style.default.coach,
|
|
20
|
+
chapter: _style.default.chapter,
|
|
21
|
+
scorm: _style.default.scorm,
|
|
22
|
+
video: _style.default.video,
|
|
23
|
+
article: _style.default.article,
|
|
24
|
+
podcast: _style.default.podcast,
|
|
25
|
+
course: _style.default.course,
|
|
26
|
+
hidden: _style.default.hidden
|
|
27
|
+
};
|
|
28
|
+
|
|
16
29
|
const ContentBadge = props => {
|
|
17
30
|
const {
|
|
18
31
|
category,
|
|
19
32
|
label
|
|
20
33
|
} = props;
|
|
21
34
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
22
|
-
className:
|
|
35
|
+
className: CATEGORIES[category]
|
|
23
36
|
}, label);
|
|
24
37
|
};
|
|
25
38
|
|
|
26
39
|
ContentBadge.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
27
|
-
category: _propTypes.default.oneOf(
|
|
40
|
+
category: _propTypes.default.oneOf((0, _keys2.default)(CATEGORIES)),
|
|
28
41
|
label: _propTypes.default.string
|
|
29
42
|
} : {};
|
|
30
43
|
var _default = ContentBadge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/content-badge/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/content-badge/index.js"],"names":["CATEGORIES","base","style","advanced","coach","chapter","scorm","video","article","podcast","course","hidden","ContentBadge","props","category","label","propTypes","PropTypes","oneOf","string"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAEA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,IAAI,EAAEC,eAAMD,IADK;AAEjBE,EAAAA,QAAQ,EAAED,eAAMC,QAFC;AAGjBC,EAAAA,KAAK,EAAEF,eAAME,KAHI;AAIjBC,EAAAA,OAAO,EAAEH,eAAMG,OAJE;AAKjBC,EAAAA,KAAK,EAAEJ,eAAMI,KALI;AAMjBC,EAAAA,KAAK,EAAEL,eAAMK,KANI;AAOjBC,EAAAA,OAAO,EAAEN,eAAMM,OAPE;AAQjBC,EAAAA,OAAO,EAAEP,eAAMO,OARE;AASjBC,EAAAA,MAAM,EAAER,eAAMQ,MATG;AAUjBC,EAAAA,MAAM,EAAET,eAAMS;AAVG,CAAnB;;AAaA,MAAMC,YAAY,GAAGC,KAAK,IAAI;AAC5B,QAAM;AAACC,IAAAA,QAAD;AAAWC,IAAAA;AAAX,MAAoBF,KAA1B;AACA,sBAAO;AAAM,IAAA,SAAS,EAAEb,UAAU,CAACc,QAAD;AAA3B,KAAwCC,KAAxC,CAAP;AACD,CAHD;;AAKAH,YAAY,CAACI,SAAb,2CAAyB;AACvBF,EAAAA,QAAQ,EAAEG,mBAAUC,KAAV,CAAgB,oBAAKlB,UAAL,CAAhB,CADa;AAEvBe,EAAAA,KAAK,EAAEE,mBAAUE;AAFM,CAAzB;eAKeP,Y","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {keys} from 'lodash/fp';\nimport style from './style.css';\n\nconst CATEGORIES = {\n base: style.base,\n advanced: style.advanced,\n coach: style.coach,\n chapter: style.chapter,\n scorm: style.scorm,\n video: style.video,\n article: style.article,\n podcast: style.podcast,\n course: style.course,\n hidden: style.hidden\n};\n\nconst ContentBadge = props => {\n const {category, label} = props;\n return <span className={CATEGORIES[category]}>{label}</span>;\n};\n\nContentBadge.propTypes = {\n category: PropTypes.oneOf(keys(CATEGORIES)),\n label: PropTypes.string\n};\n\nexport default ContentBadge;\n"],"file":"index.js"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
@value cm_red_200 from colors;
|
|
10
10
|
@value cm_red_video from colors;
|
|
11
11
|
@value cm_violet_podcast from colors;
|
|
12
|
+
@value cm_negative_200 from colors;
|
|
12
13
|
|
|
13
14
|
.level {
|
|
14
15
|
font-family: Gilroy;
|
|
@@ -24,6 +25,11 @@
|
|
|
24
25
|
background-color: cm_red_200;
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
.hidden {
|
|
29
|
+
composes: level;
|
|
30
|
+
background-color: cm_negative_200;
|
|
31
|
+
}
|
|
32
|
+
|
|
27
33
|
.base {
|
|
28
34
|
composes: level;
|
|
29
35
|
background-color: cm_green_200;
|
|
@@ -24,6 +24,11 @@ const ICONS = {
|
|
|
24
24
|
error: _novaIcons.NovaSolidInterfaceFeedbackInterfaceAlertDiamond,
|
|
25
25
|
warning: _novaIcons.NovaSolidInterfaceFeedbackInterfaceAlertDiamond
|
|
26
26
|
};
|
|
27
|
+
const STYLES = {
|
|
28
|
+
success: _style.default.success,
|
|
29
|
+
error: _style.default.error,
|
|
30
|
+
warning: _style.default.warning
|
|
31
|
+
};
|
|
27
32
|
|
|
28
33
|
const Banner = props => {
|
|
29
34
|
const {
|
|
@@ -40,7 +45,7 @@ const Banner = props => {
|
|
|
40
45
|
const Icon = ICONS[type];
|
|
41
46
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
42
47
|
key: bannerKey,
|
|
43
|
-
className: (0, _classnames.default)(_style.default.banner, type
|
|
48
|
+
className: (0, _classnames.default)(_style.default.banner, STYLES[type], temporary && _style.default.temporaryBanner),
|
|
44
49
|
onAnimationEnd: onEnd,
|
|
45
50
|
title: message
|
|
46
51
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -49,7 +54,7 @@ const Banner = props => {
|
|
|
49
54
|
}, /*#__PURE__*/_react.default.createElement(Icon, {
|
|
50
55
|
className: (0, _classnames.default)(_style.default.icon, temporary && _style.default.temporaryIcon)
|
|
51
56
|
}), message), firstCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
-
className: _style.default.button
|
|
57
|
+
className: (0, _classnames.default)(_style.default.button, STYLES[type])
|
|
53
58
|
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
54
59
|
"data-name": "first-banner-cta",
|
|
55
60
|
"aria-label": firstCTALabel,
|
|
@@ -57,9 +62,9 @@ const Banner = props => {
|
|
|
57
62
|
onClick: firstCTA,
|
|
58
63
|
type: "text"
|
|
59
64
|
})) : null, firstCTALabel && secondCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
-
className: _style.default.buttonsBar
|
|
65
|
+
className: (0, _classnames.default)(_style.default.buttonsBar, STYLES[type])
|
|
61
66
|
}) : null, secondCTALabel ? /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
-
className: _style.default.button
|
|
67
|
+
className: (0, _classnames.default)(_style.default.button, STYLES[type])
|
|
63
68
|
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
64
69
|
"data-name": "second-banner-cta",
|
|
65
70
|
onClick: secondCTA,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["ICONS","success","ValidateIcon","error","QuestionIcon","warning","Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","temporary","bannerKey","onEnd","Icon","
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/banner/index.js"],"names":["ICONS","success","ValidateIcon","error","QuestionIcon","warning","STYLES","style","Banner","props","type","message","firstCTA","firstCTALabel","secondCTALabel","secondCTA","temporary","bannerKey","onEnd","Icon","banner","temporaryBanner","icon","temporaryIcon","button","buttonsBar","propTypes","PropTypes","string","oneOf","isRequired","func","bool"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;;;AAEA,MAAMA,KAAK,GAAG;AACZC,EAAAA,OAAO,EAAEC,8CADG;AAEZC,EAAAA,KAAK,EAAEC,0DAFK;AAGZC,EAAAA,OAAO,EAAED;AAHG,CAAd;AAMA,MAAME,MAAM,GAAG;AACbL,EAAAA,OAAO,EAAEM,eAAMN,OADF;AAEbE,EAAAA,KAAK,EAAEI,eAAMJ,KAFA;AAGbE,EAAAA,OAAO,EAAEE,eAAMF;AAHF,CAAf;;AAMA,MAAMG,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AACJC,IAAAA,IADI;AAEJC,IAAAA,OAFI;AAGJC,IAAAA,QAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,cALI;AAMJC,IAAAA,SANI;AAOJC,IAAAA,SAPI;AAQJC,IAAAA,SARI;AASJC,IAAAA;AATI,MAUFT,KAVJ;AAWA,QAAMU,IAAI,GAAGnB,KAAK,CAACU,IAAD,CAAlB;AACA,sBACE;AACE,IAAA,GAAG,EAAEO,SADP;AAEE,IAAA,SAAS,EAAE,yBAAWV,eAAMa,MAAjB,EAAyBd,MAAM,CAACI,IAAD,CAA/B,EAAuCM,SAAS,IAAIT,eAAMc,eAA1D,CAFb;AAGE,IAAA,cAAc,EAAEH,KAHlB;AAIE,IAAA,KAAK,EAAEP;AAJT,kBAME;AAAK,iBAAY,GAAED,IAAK,iBAAxB;AAA0C,IAAA,SAAS,EAAEH,eAAMI;AAA3D,kBACE,6BAAC,IAAD;AAAM,IAAA,SAAS,EAAE,yBAAWJ,eAAMe,IAAjB,EAAuBN,SAAS,IAAIT,eAAMgB,aAA1C;AAAjB,IADF,EAEGZ,OAFH,CANF,EAUGE,aAAa,gBACZ;AAAK,IAAA,SAAS,EAAE,yBAAWN,eAAMiB,MAAjB,EAAyBlB,MAAM,CAACI,IAAD,CAA/B;AAAhB,kBACE,6BAAC,mBAAD;AACE,iBAAU,kBADZ;AAEE,kBAAYG,aAFd;AAGE,IAAA,KAAK,EAAEA,aAHT;AAIE,IAAA,OAAO,EAAED,QAJX;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADY,GAUV,IApBN,EAqBGC,aAAa,IAAIC,cAAjB,gBACC;AAAK,IAAA,SAAS,EAAE,yBAAWP,eAAMkB,UAAjB,EAA6BnB,MAAM,CAACI,IAAD,CAAnC;AAAhB,IADD,GAEG,IAvBN,EAwBGI,cAAc,gBACb;AAAK,IAAA,SAAS,EAAE,yBAAWP,eAAMiB,MAAjB,EAAyBlB,MAAM,CAACI,IAAD,CAA/B;AAAhB,kBACE,6BAAC,mBAAD;AACE,iBAAU,mBADZ;AAEE,IAAA,OAAO,EAAEK,SAFX;AAGE,kBAAYD,cAHd;AAIE,IAAA,KAAK,EAAEA,cAJT;AAKE,IAAA,IAAI,EAAC;AALP,IADF,CADa,GAUX,IAlCN,CADF;AAsCD,CAnDD;;AAqDAN,MAAM,CAACkB,SAAP,2CAAmB;AACjBT,EAAAA,SAAS,EAAEU,mBAAUC,MADJ;AAEjBlB,EAAAA,IAAI,EAAEiB,mBAAUE,KAAV,CAAgB,oBAAK7B,KAAL,CAAhB,CAFW;AAGjBW,EAAAA,OAAO,EAAEgB,mBAAUC,MAAV,CAAiBE,UAHT;AAIjBlB,EAAAA,QAAQ,EAAEe,mBAAUI,IAJH;AAKjBlB,EAAAA,aAAa,EAAEc,mBAAUC,MALR;AAMjBd,EAAAA,cAAc,EAAEa,mBAAUC,MANT;AAOjBb,EAAAA,SAAS,EAAEY,mBAAUI,IAPJ;AAQjBf,EAAAA,SAAS,EAAEW,mBAAUK,IARJ;AASjBd,EAAAA,KAAK,EAAES,mBAAUI;AATA,CAAnB;eAYevB,M","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {keys} from 'lodash/fp';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as QuestionIcon,\n NovaCompositionCoorpacademyValidate as ValidateIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/button-link';\nimport style from './style.css';\n\nconst ICONS = {\n success: ValidateIcon,\n error: QuestionIcon,\n warning: QuestionIcon\n};\n\nconst STYLES = {\n success: style.success,\n error: style.error,\n warning: style.warning\n};\n\nconst Banner = props => {\n const {\n type,\n message,\n firstCTA,\n firstCTALabel,\n secondCTALabel,\n secondCTA,\n temporary,\n bannerKey,\n onEnd\n } = props;\n const Icon = ICONS[type];\n return (\n <div\n key={bannerKey}\n className={classnames(style.banner, STYLES[type], temporary && style.temporaryBanner)}\n onAnimationEnd={onEnd}\n title={message}\n >\n <div data-name={`${type}-banner-message`} className={style.message}>\n <Icon className={classnames(style.icon, temporary && style.temporaryIcon)} />\n {message}\n </div>\n {firstCTALabel ? (\n <div className={classnames(style.button, STYLES[type])}>\n <Link\n data-name=\"first-banner-cta\"\n aria-label={firstCTALabel}\n label={firstCTALabel}\n onClick={firstCTA}\n type=\"text\"\n />\n </div>\n ) : null}\n {firstCTALabel && secondCTALabel ? (\n <div className={classnames(style.buttonsBar, STYLES[type])} />\n ) : null}\n {secondCTALabel ? (\n <div className={classnames(style.button, STYLES[type])}>\n <Link\n data-name=\"second-banner-cta\"\n onClick={secondCTA}\n aria-label={secondCTALabel}\n label={secondCTALabel}\n type=\"text\"\n />\n </div>\n ) : null}\n </div>\n );\n};\n\nBanner.propTypes = {\n bannerKey: PropTypes.string,\n type: PropTypes.oneOf(keys(ICONS)),\n message: PropTypes.string.isRequired,\n firstCTA: PropTypes.func,\n firstCTALabel: PropTypes.string,\n secondCTALabel: PropTypes.string,\n secondCTA: PropTypes.func,\n temporary: PropTypes.bool,\n onEnd: PropTypes.func\n};\n\nexport default Banner;\n"],"file":"index.js"}
|
|
@@ -36,16 +36,19 @@
|
|
|
36
36
|
gap: 8px;
|
|
37
37
|
padding: 16px 24px;
|
|
38
38
|
border-radius: 5px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.banner.warning {
|
|
39
42
|
background-color: cm_warning_50;
|
|
40
43
|
color: cm_yellow_200;
|
|
41
|
-
border-radius: 5px;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
.
|
|
46
|
+
.banner.error {
|
|
45
47
|
background-color: cm_negative_50;
|
|
46
48
|
color: cm_negative_200;
|
|
47
49
|
}
|
|
48
|
-
|
|
50
|
+
|
|
51
|
+
.banner.success {
|
|
49
52
|
background-color: color(cm_positive_100 a(15%));
|
|
50
53
|
color: cm_positive_100;
|
|
51
54
|
}
|
|
@@ -71,22 +74,54 @@
|
|
|
71
74
|
|
|
72
75
|
.button{
|
|
73
76
|
background-color: transparent;
|
|
74
|
-
color: cm_yellow_200;
|
|
75
77
|
white-space: nowrap;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
.button
|
|
79
|
-
color:
|
|
80
|
+
.button.warning {
|
|
81
|
+
color: cm_yellow_200;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.button.warning:hover {
|
|
85
|
+
color: color(cm_yellow_200 blackness(+12%));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.button.error {
|
|
89
|
+
color: cm_negative_200;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.button.error:hover {
|
|
93
|
+
color: color(cm_negative_200 blackness(+12%));
|
|
80
94
|
}
|
|
81
95
|
|
|
96
|
+
.button.success {
|
|
97
|
+
color: cm_positive_100;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.button.success:hover {
|
|
101
|
+
color: color(cm_positive_100 blackness(+12%));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
|
|
82
105
|
.buttonsBar {
|
|
83
106
|
width: 2px;
|
|
84
107
|
align-self: stretch;
|
|
85
108
|
flex-grow: 0;
|
|
86
109
|
opacity: 0.3;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.buttonsBar.warning {
|
|
87
113
|
background-color: cm_yellow_200;
|
|
88
114
|
}
|
|
89
115
|
|
|
116
|
+
.buttonsBar.error {
|
|
117
|
+
background-color: cm_negative_200;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.buttonsBar.success {
|
|
121
|
+
background-color: cm_positive_100;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
90
125
|
.icon {
|
|
91
126
|
height: 22px;
|
|
92
127
|
margin-right: 16px;
|
|
@@ -142,7 +142,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
|
|
|
142
142
|
image,
|
|
143
143
|
badge,
|
|
144
144
|
adaptiv,
|
|
145
|
-
disabled = false,
|
|
145
|
+
disabled: hidden = false,
|
|
146
146
|
type = 'course',
|
|
147
147
|
title,
|
|
148
148
|
author,
|
|
@@ -172,6 +172,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
|
|
|
172
172
|
const primaryColor = (0, _get2.default)('common.primary', skin);
|
|
173
173
|
const whiteColor = (0, _get2.default)('common.white', skin);
|
|
174
174
|
const cardStyle = (0, _classnames.default)(THEMES[theme], type === 'chapter' ? _style.default.chapter : _style.default.course, title ? null : _style.default.lazy, _style.default.grid, empty ? _style.default.empty : null);
|
|
175
|
+
const disabled = hidden && (!isSelected || (0, _isUndefined2.default)(isSelected));
|
|
175
176
|
const handleClick = (0, _react.useMemo)(() => e => !disabled && onClick(e), [disabled, onClick]);
|
|
176
177
|
const lock = disabled ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidLoginLocked, {
|
|
177
178
|
className: _style.default.lockIcon,
|
|
@@ -218,6 +219,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
|
|
|
218
219
|
"aria-label": favoriteAriaLabel
|
|
219
220
|
}) : null, /*#__PURE__*/_react.default.createElement(_selectable.default, {
|
|
220
221
|
isSelected: isSelected,
|
|
222
|
+
hidden: hidden,
|
|
221
223
|
"aria-label": selectableAriaLabel
|
|
222
224
|
}), notification ? /*#__PURE__*/_react.default.createElement(_notification.default, notification) : null, customer ? /*#__PURE__*/_react.default.createElement(_customer.default, _extends({}, customer, {
|
|
223
225
|
theme: theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf","Favorite","Selectable"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\nexport default Card;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["THEMES","default","coorpmanager","style","CardBackground","type","image","empty","ariaLabel","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","hidden","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","theme","cardArialabel","backgroundAriaLabel","favoriteAriaLabel","selectableAriaLabel","customerAriaLabel","badgeAriaLabel","disabledArialabel","cardContentLabelAriaLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo","oneOf","Favorite","Selectable"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,MAAMA,MAAM,GAAG;AACpBC,EAAAA,OAAO,EAAE,IADW;AAEpBC,EAAAA,YAAY,EAAEC,eAAMD;AAFA,CAAf;;;AAKP,MAAME,cAAc,GAAG,CAAC;AAACC,EAAAA,IAAD;AAAOC,EAAAA,KAAP;AAAcC,EAAAA,KAAd;AAAqB,gBAAcC;AAAnC,CAAD,EAAgD;AAACC,EAAAA;AAAD,CAAhD,KAA2D;AAChF,QAAMC,eAAe,GAAG,wCAAkBL,IAAlB,CAAxB;AACA,QAAMM,YAAY,GAAG,mBAAI,gBAAJ,EAAsBF,IAAtB,CAArB;AACA,QAAMG,UAAU,GAAG,mBAAI,cAAJ,EAAoBH,IAApB,CAAnB;;AAEA,MAAIC,eAAe,IAAIG,wCAAuBR,IAAvB,CAAvB,EAAqD;AACnD,UAAMS,QAAQ,GAAGD,wCAAuBR,IAAvB,EAA6BU,IAA9C;AACA,UAAMC,SAAS,GAAGH,wCAAuBR,IAAvB,EAA6BY,KAA/C;;AACA,UAAMC,cAAc,gBAClB;AAAK,MAAA,SAAS,EAAEf,eAAMgB;AAAtB,oBACE,6BAAC,QAAD;AAAU,MAAA,SAAS,EAAEhB,eAAMiB;AAA3B,MADF,CADF;;AAMA,QAAId,KAAJ,EAAW;AACT,YAAMe,eAAe,gBACnB;AACE,QAAA,SAAS,EAAE,yBACTlB,eAAMgB,yBADG,EAEThB,eAAMmB,kCAFG,CADb;AAKE,QAAA,KAAK,EAAE;AACLC,UAAAA,eAAe,EAAEP;AADZ;AALT,sBASE,6BAAC,QAAD;AAAU,QAAA,SAAS,EAAEb,eAAMqB;AAA3B,QATF,CADF;;AAcA,0BACE;AAAK,QAAA,SAAS,EAAErB,eAAMsB;AAAtB,sBACE;AACE,qBAAU,OADZ;AAEE,sBAAYjB,SAFd;AAGE,QAAA,KAAK,EAAE;AACLe,UAAAA,eAAe,EAAEP,SADZ;AAELU,UAAAA,eAAe,EAAG,QAAOpB,KAAM;AAF1B,SAHT;AAOE,QAAA,SAAS,EAAE,yBAAWH,eAAMwB,qBAAjB,EAAwCxB,eAAMyB,kBAA9C;AAPb,SASGP,eATH,CADF,CADF;AAeD;;AACD,wBACE;AAAK,MAAA,SAAS,EAAElB,eAAMsB;AAAtB,oBACE;AACE,mBAAU,OADZ;AAEE,oBAAYjB,SAFd;AAGE,MAAA,KAAK,EAAE;AACLe,QAAAA,eAAe,EAAEP;AADZ,OAHT;AAME,MAAA,SAAS,EAAEb,eAAMwB;AANnB,OAQGT,cARH,CADF,CADF;AAcD;;AAED,QAAMW,SAAS,GAAGtB,KAAK,gBAAG,6BAAC,8CAAD;AAAc,IAAA,SAAS,EAAEJ,eAAM0B,SAA/B;AAA0C,IAAA,KAAK,EAAEjB;AAAjD,IAAH,GAAqE,IAA5F;AACA,sBACE;AACE,IAAA,SAAS,EAAE,yBACTT,eAAMsB,YADG,EAETpB,IAAI,KAAK,SAAT,GAAqBF,eAAM2B,mBAA3B,GAAiD,IAFxC;AADb,kBAME;AACE,iBAAU,OADZ;AAEE,kBAAYtB,SAFd;AAGE,IAAA,SAAS,EAAEL,eAAMG,KAHnB;AAIE,IAAA,KAAK,EAAE;AACLiB,MAAAA,eAAe,EAAEZ,YADZ;AAELe,MAAAA,eAAe,EAAEpB,KAAK,GAAI,QAAOA,KAAM,IAAjB,GAAuB;AAFxC;AAJT,KASGuB,SATH,CANF,CADF;AAoBD,CAlFD;;AAoFAzB,cAAc,CAAC2B,YAAf,GAA8B;AAC5BtB,EAAAA,IAAI,EAAEuB,kBAASC,iBAAT,CAA2BxB;AADL,CAA9B;AAIAL,cAAc,CAAC8B,SAAf,2CAA2B;AACzB7B,EAAAA,IAAI,EAAE8B,mBAAUC,MADS;AAEzB9B,EAAAA,KAAK,EAAE6B,mBAAUC,MAFQ;AAGzB7B,EAAAA,KAAK,EAAE4B,mBAAUE,IAHQ;AAIzB,gBAAcF,mBAAUC;AAJC,CAA3B;AAOA,MAAME,IAAI,GAAG,iBAAK,SAASA,IAAT,CAAcC,KAAd,EAAqBC,OAArB,EAA8B;AAC9C,QAAM;AAAC/B,IAAAA;AAAD,MAAS+B,OAAf;AACA,QAAM;AACJlC,IAAAA,KADI;AAEJmC,IAAAA,KAFI;AAGJC,IAAAA,OAHI;AAIJC,IAAAA,QAAQ,EAAEC,MAAM,GAAG,KAJf;AAKJvC,IAAAA,IAAI,GAAG,QALH;AAMJwC,IAAAA,KANI;AAOJC,IAAAA,MAPI;AAQJC,IAAAA,QARI;AASJC,IAAAA,eATI;AAUJC,IAAAA,QAVI;AAWJC,IAAAA,QAXI;AAYJC,IAAAA,kBAZI;AAaJC,IAAAA,qBAbI;AAcJC,IAAAA,OAdI;AAeJC,IAAAA,eAfI;AAgBJC,IAAAA,UAhBI;AAiBJC,IAAAA,YAjBI;AAkBJC,IAAAA,aAlBI;AAmBJC,IAAAA,UAnBI;AAoBJC,IAAAA,KAAK,GAAG,SApBJ;AAqBJ,kBAAcC,aArBV;AAsBJ,6BAAyBC,mBAtBrB;AAuBJ,2BAAuBC,iBAvBnB;AAwBJ,6BAAyBC,mBAxBrB;AAyBJ,2BAAuBC,iBAzBnB;AA0BJ,wBAAoBC,cA1BhB;AA2BJ,2BAAuBC,iBA3BnB;AA4BJ,+BAA2BC;AA5BvB,MA6BF5B,KA7BJ;AA8BA,QAAMhC,KAAK,GAAG,uBAAQ,oBAAK,CAAC,OAAD,EAAU,MAAV,EAAkB,QAAlB,EAA4B,OAA5B,CAAL,EAA2CgC,KAA3C,CAAR,CAAd;AACA,QAAM5B,YAAY,GAAG,mBAAI,gBAAJ,EAAsBF,IAAtB,CAArB;AACA,QAAMG,UAAU,GAAG,mBAAI,cAAJ,EAAoBH,IAApB,CAAnB;AACA,QAAM2D,SAAS,GAAG,yBAChBpE,MAAM,CAAC2D,KAAD,CADU,EAEhBtD,IAAI,KAAK,SAAT,GAAqBF,eAAMkE,OAA3B,GAAqClE,eAAMmE,MAF3B,EAGhBzB,KAAK,GAAG,IAAH,GAAU1C,eAAMoE,IAHL,EAIhBpE,eAAMqE,IAJU,EAKhBjE,KAAK,GAAGJ,eAAMI,KAAT,GAAiB,IALN,CAAlB;AAOA,QAAMoC,QAAQ,GAAGC,MAAM,KAAK,CAACW,UAAD,IAAe,2BAAYA,UAAZ,CAApB,CAAvB;AACA,QAAMkB,WAAW,GAAG,oBAAQ,MAAMC,CAAC,IAAI,CAAC/B,QAAD,IAAaU,OAAO,CAACqB,CAAD,CAAvC,EAA4C,CAAC/B,QAAD,EAAWU,OAAX,CAA5C,CAApB;AACA,QAAMsB,IAAI,GAAGhC,QAAQ,gBACnB,6BAAC,+BAAD;AAAU,IAAA,SAAS,EAAExC,eAAMyE,QAA3B;AAAqC,IAAA,KAAK,EAAEhE,UAA5C;AAAwD,IAAA,MAAM,EAAE;AAAhE,IADmB,GAEjB,IAFJ;AAGA,QAAMiE,gBAAgB,GAAG;AAAC5D,IAAAA,KAAK,EAAEN;AAAR,GAAzB;;AACA,QAAMmE,OAAO,GAAGC,WAAW,IAAI;AAC7B,YAAQA,WAAR;AACE,WAAK,SAAL;AACE,eAAO,eAAP;;AACF,WAAK,QAAL;AACE,eAAO,SAAP;;AACF;AACE,eAAOA,WAAP;AANJ;AAQD,GATD;;AAWA,sBACE;AACE,IAAA,SAAS,EAAEX,SADb;AAEE,iBAAU,MAFZ;AAGE,iBAAWzB,QAHb;AAIE,iBAAWmC,OAAO,CAACzE,IAAD,CAJpB;AAKE,IAAA,QAAQ,EAAEsC,QALZ;AAME,IAAA,OAAO,EAAE8B,WANX;AAOE,kBAAYb;AAPd,kBASE,6BAAC,cAAD;AAAgB,IAAA,IAAI,EAAEvD,IAAtB;AAA4B,IAAA,KAAK,EAAEC,KAAnC;AAA0C,IAAA,KAAK,EAAEC,KAAjD;AAAwD,kBAAYsD;AAApE,IATF,EAUG,2BAAYN,UAAZ,KAA2B,CAAC,2BAAYL,QAAZ,CAA5B,gBACC,6BAAC,iBAAD;AACE,IAAA,SAAS,EAAE/C,eAAM+C,QADnB;AAEE,IAAA,QAAQ,EAAEA,QAFZ;AAGE,IAAA,QAAQ,EAAEP,QAHZ;AAIE,IAAA,eAAe,EAAEW,eAJnB;AAKE,IAAA,kBAAkB,EAAEH,kBALtB;AAME,IAAA,qBAAqB,EAAEC,qBANzB;AAOE,kBAAYU;AAPd,IADD,GAUG,IApBN,eAqBE,6BAAC,mBAAD;AAAY,IAAA,UAAU,EAAEP,UAAxB;AAAoC,IAAA,MAAM,EAAEX,MAA5C;AAAoD,kBAAYmB;AAAhE,IArBF,EAsBGP,YAAY,gBAAG,6BAAC,qBAAD,EAAkBA,YAAlB,CAAH,GAAwC,IAtBvD,EAuBGT,QAAQ,gBACP,6BAAC,iBAAD,eACMA,QADN;AAEE,IAAA,KAAK,EAAEY,KAFT;AAGE,IAAA,IAAI,EAAEtD,IAHR;AAIE,IAAA,QAAQ,EAAEsC,QAJZ;AAKE,kBAAYqB;AALd,KADO,GAQL,IA/BN,eAgCE,6BAAC,oBAAD;AACE,IAAA,IAAI,EAAEgB,mBAAMC,IADd;AAEE,IAAA,OAAO,EAAEvC,OAFX;AAGE,IAAA,MAAM,EAAEI,MAHV;AAIE,IAAA,eAAe,EAAEE,eAJnB;AAKE,IAAA,QAAQ,EAAEL,QALZ;AAME,IAAA,KAAK,EAAEpC,KANT;AAOE,IAAA,QAAQ,EAAE0C,QAPZ;AAQE,IAAA,KAAK,EAAEJ,KART;AASE,IAAA,IAAI,EAAExC,IATR;AAUE,IAAA,aAAa,EAAEoD,aAVjB;AAWE,IAAA,UAAU,EAAEC,UAXd;AAYE,IAAA,KAAK,EAAEC,KAZT;AAaE,kBAAYQ;AAbd,IAhCF,EA+CG1B,KAAK,gBACJ;AAAK,IAAA,SAAS,EAAEtC,eAAMsC,KAAtB;AAA6B,IAAA,KAAK,EAAEoC,gBAApC;AAAsD,kBAAYZ;AAAlE,KACGxB,KADH,CADI,GAIF,IAnDN,EAoDGE,QAAQ,gBACP;AAAK,IAAA,SAAS,EAAExC,eAAM+E,WAAtB;AAAmC,kBAAYhB;AAA/C,KACGS,IADH,CADO,GAIL,IAxDN,CADF;AA4DD,CAvHY,CAAb;AAyHArC,IAAI,CAACP,YAAL,GAAoB;AAClBtB,EAAAA,IAAI,EAAEuB,kBAASC,iBAAT,CAA2BxB;AADf,CAApB;AAIA6B,IAAI,CAACJ,SAAL,2CAAiB;AACfO,EAAAA,KAAK,EAAEN,mBAAUC,MADF;AAEf9B,EAAAA,KAAK,EAAE6B,mBAAUC,MAFF;AAGfO,EAAAA,QAAQ,EAAER,mBAAUE,IAHL;AAIfK,EAAAA,OAAO,EAAEP,mBAAUE,IAJJ;AAKfhC,EAAAA,IAAI,EAAE8B,mBAAUC,MALD;AAMfS,EAAAA,KAAK,EAAEV,mBAAUC,MANF;AAOfU,EAAAA,MAAM,EAAEX,mBAAUC,MAPH;AAQfY,EAAAA,eAAe,EAAEb,mBAAUE,IARZ;AASfU,EAAAA,QAAQ,EAAEZ,mBAAUgD,KAAV,CAAgBC,kBAASlD,SAAzB,CATK;AAUfe,EAAAA,QAAQ,EAAEd,mBAAUkD,MAVL;AAWfnC,EAAAA,QAAQ,EAAEf,mBAAUE,IAXL;AAYfc,EAAAA,kBAAkB,EAAEhB,mBAAUC,MAZf;AAafgB,EAAAA,qBAAqB,EAAEjB,mBAAUC,MAblB;AAcfiB,EAAAA,OAAO,EAAElB,mBAAUmD,IAdJ;AAefhC,EAAAA,eAAe,EAAEnB,mBAAUmD,IAfZ;AAgBf/B,EAAAA,UAAU,EAAEpB,mBAAUE,IAhBP;AAiBfmB,EAAAA,YAAY,EAAErB,mBAAUgD,KAAV,CAAgBI,sBAAarD,SAA7B,CAjBC;AAkBfuB,EAAAA,aAAa,EAAE+B,qBAAgBtD,SAAhB,CAA0BuB,aAlB1B;AAmBfC,EAAAA,UAAU,EAAE8B,qBAAgBtD,SAAhB,CAA0BwB,UAnBvB;AAoBfC,EAAAA,KAAK,EAAExB,mBAAUsD,KAAV,CAAgB,oBAAKzF,MAAL,CAAhB,CApBQ;AAqBf,gBAAcmC,mBAAUC,MArBT;AAsBf,2BAAyBD,mBAAUC,MAtBpB;AAuBf,yBAAuBsD,kBAASxD,SAAT,CAAmB,YAAnB,CAvBR;AAwBf,2BAAyByD,oBAAWzD,SAAX,CAAqB,YAArB,CAxBV;AAyBf,yBAAuBkD,kBAASlD,SAAT,CAAmB,YAAnB,CAzBR;AA0Bf,sBAAoBC,mBAAUC,MA1Bf;AA2Bf,yBAAuBD,mBAAUC,MA3BlB;AA4Bf,6BAA2BoD,qBAAgBtD,SAAhB,CAA0B,YAA1B;AA5BZ,CAAjB;eA8BeI,I","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick, keys} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst CardBackground = ({type, image, empty, 'aria-label': ariaLabel}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n aria-label={ariaLabel}\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled: hidden = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': cardArialabel,\n 'background-aria-label': backgroundAriaLabel,\n 'favorite-aria-label': favoriteAriaLabel,\n 'selectable-aria-label': selectableAriaLabel,\n 'customer-aria-label': customerAriaLabel,\n 'badge-aria-label': badgeAriaLabel,\n 'disabled-aria-label': disabledArialabel,\n 'card-content-aria-label': cardContentLabelAriaLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n THEMES[theme],\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const disabled = hidden && (!isSelected || isUndefined(isSelected));\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n aria-label={cardArialabel}\n >\n <CardBackground type={type} image={image} empty={empty} aria-label={backgroundAriaLabel} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n aria-label={favoriteAriaLabel}\n />\n ) : null}\n <Selectable isSelected={isSelected} hidden={hidden} aria-label={selectableAriaLabel} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n theme={theme}\n type={type}\n disabled={disabled}\n aria-label={customerAriaLabel}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n theme={theme}\n aria-label={cardContentLabelAriaLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle} aria-label={badgeAriaLabel}>\n {badge}\n </div>\n ) : null}\n {disabled ? (\n <div className={style.lockWrapper} aria-label={disabledArialabel}>\n {lock}\n </div>\n ) : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.string,\n 'background-aria-label': PropTypes.string,\n 'favorite-aria-label': Favorite.propTypes['aria-label'],\n 'selectable-aria-label': Selectable.propTypes['aria-label'],\n 'customer-aria-label': Customer.propTypes['aria-label'],\n 'badge-aria-label': PropTypes.string,\n 'disabled-aria-label': PropTypes.string,\n 'card-content-aria-label': CardContentInfo.propTypes['aria-label']\n};\nexport default Card;\n"],"file":"index.js"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
@value colors: "../../variables/colors.css";
|
|
2
2
|
@value positive from colors;
|
|
3
3
|
@value cm_grey_400 from colors;
|
|
4
|
+
@value cm_negative_200 from colors;
|
|
4
5
|
|
|
5
6
|
.selectable {
|
|
6
7
|
width: 100%;
|
|
@@ -34,6 +35,15 @@
|
|
|
34
35
|
display: none;
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
.eyeIcons {
|
|
39
|
+
color: white;
|
|
40
|
+
width: 30px;
|
|
41
|
+
height: 30px;
|
|
42
|
+
padding: 4px 4px;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
display: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
37
47
|
.checkIcon {
|
|
38
48
|
color: positive;
|
|
39
49
|
composes: icons;
|
|
@@ -44,14 +54,43 @@
|
|
|
44
54
|
composes: icons;
|
|
45
55
|
}
|
|
46
56
|
|
|
57
|
+
.showIcon {
|
|
58
|
+
background: cm_grey_400;
|
|
59
|
+
composes: eyeIcons;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.hideIcon {
|
|
63
|
+
background: cm_negative_200;
|
|
64
|
+
composes: eyeIcons;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
.selectable.selected.hidden .showIcon,
|
|
69
|
+
.selectable.selected.hidden .addIcon,
|
|
70
|
+
.selectable.hidden .addIcon,
|
|
71
|
+
.selectable.hidden .checkIcon,
|
|
72
|
+
.selectable.hidden:hover .checkIcon {
|
|
73
|
+
display: none;
|
|
74
|
+
}
|
|
75
|
+
.hidden.selectable .hideIcon {
|
|
76
|
+
display: block;
|
|
77
|
+
}
|
|
78
|
+
.hidden.selectable:hover .hideIcon {
|
|
79
|
+
display: none;
|
|
80
|
+
}
|
|
81
|
+
.hidden.selectable:hover .showIcon {
|
|
82
|
+
display: block;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
47
86
|
.selectable:hover .addIcon,
|
|
48
87
|
.selectable:hover .circle {
|
|
49
88
|
display: block;
|
|
50
89
|
}
|
|
51
90
|
|
|
52
|
-
.selectable.selected .checkIcon,
|
|
91
|
+
.selectable.selected:not(.hidden) .checkIcon,
|
|
53
92
|
.selectable.selected .circle,
|
|
54
|
-
.selectable.selected:hover .checkIcon {
|
|
93
|
+
.selectable.selected:not(.hidden):hover .checkIcon {
|
|
55
94
|
display: block;
|
|
56
95
|
}
|
|
57
96
|
|
|
@@ -62,3 +101,11 @@
|
|
|
62
101
|
.selectable.selected:hover .addIcon {
|
|
63
102
|
display: none;
|
|
64
103
|
}
|
|
104
|
+
|
|
105
|
+
.selectable.selected.hidden:hover .circle {
|
|
106
|
+
display: block;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.selectable.selected.hidden:hover .addIcon {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|