@coorpacademy/components 10.14.1 → 10.14.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/molecule/external-content-viewer/index.js +3 -2
- package/es/molecule/external-content-viewer/index.js.map +1 -1
- package/es/molecule/filters/index.js +6 -12
- package/es/molecule/filters/index.js.map +1 -1
- package/es/molecule/filters/style.css +1 -62
- package/es/organism/review-skills/index.js +94 -0
- package/es/organism/review-skills/index.js.map +1 -0
- package/es/organism/review-skills/style.css +113 -0
- package/es/organism/review-skills/test/fixtures/loading.js +9 -0
- package/es/organism/review-skills/test/fixtures/loading.js.map +1 -0
- package/es/organism/review-skills/test/fixtures/many-skills.js +30 -0
- package/es/organism/review-skills/test/fixtures/many-skills.js.map +1 -0
- package/es/organism/review-skills/test/fixtures/no-skills.js +11 -0
- package/es/organism/review-skills/test/fixtures/no-skills.js.map +1 -0
- package/es/organism/review-skills/test/fixtures.js +17 -0
- package/es/organism/review-skills/test/fixtures.js.map +1 -0
- package/es/template/external-course/index.js +3 -1
- package/es/template/external-course/index.js.map +1 -1
- package/es/template/external-course/test/fixtures/pdf-mobile.js +10 -0
- package/es/template/external-course/test/fixtures/pdf-mobile.js.map +1 -0
- package/es/template/external-course/test/fixtures/pdf-no-mobile.js +18 -0
- package/es/template/external-course/test/fixtures/pdf-no-mobile.js.map +1 -0
- package/es/template/external-course/test/fixtures.js +4 -0
- package/es/template/external-course/test/fixtures.js.map +1 -1
- package/lib/molecule/external-content-viewer/index.js +3 -2
- package/lib/molecule/external-content-viewer/index.js.map +1 -1
- package/lib/molecule/filters/index.js +6 -12
- package/lib/molecule/filters/index.js.map +1 -1
- package/lib/molecule/filters/style.css +1 -62
- package/lib/organism/review-skills/index.js +109 -0
- package/lib/organism/review-skills/index.js.map +1 -0
- package/lib/organism/review-skills/style.css +113 -0
- package/lib/organism/review-skills/test/fixtures/loading.js +14 -0
- package/lib/organism/review-skills/test/fixtures/loading.js.map +1 -0
- package/lib/organism/review-skills/test/fixtures/many-skills.js +39 -0
- package/lib/organism/review-skills/test/fixtures/many-skills.js.map +1 -0
- package/lib/organism/review-skills/test/fixtures/no-skills.js +16 -0
- package/lib/organism/review-skills/test/fixtures/no-skills.js.map +1 -0
- package/lib/organism/review-skills/test/fixtures.js +28 -0
- package/lib/organism/review-skills/test/fixtures.js.map +1 -0
- package/lib/template/external-course/index.js +3 -1
- package/lib/template/external-course/index.js.map +1 -1
- package/lib/template/external-course/test/fixtures/pdf-mobile.js +15 -0
- package/lib/template/external-course/test/fixtures/pdf-mobile.js.map +1 -0
- package/lib/template/external-course/test/fixtures/pdf-no-mobile.js +23 -0
- package/lib/template/external-course/test/fixtures/pdf-no-mobile.js.map +1 -0
- package/lib/template/external-course/test/fixtures.js +6 -0
- package/lib/template/external-course/test/fixtures.js.map +1 -1
- package/package.json +3 -3
- package/es/molecule/input-text-with-titeled-checkbox/test/fixtures.js +0 -15
- package/es/molecule/input-text-with-titeled-checkbox/test/fixtures.js.map +0 -1
- package/es/molecule/search/test/fixtures.js +0 -15
- package/es/molecule/search/test/fixtures.js.map +0 -1
- package/es/organism/playlist-translation/test/fixtures.js +0 -15
- package/es/organism/playlist-translation/test/fixtures.js.map +0 -1
- package/lib/molecule/input-text-with-titeled-checkbox/test/fixtures.js +0 -25
- package/lib/molecule/input-text-with-titeled-checkbox/test/fixtures.js.map +0 -1
- package/lib/molecule/search/test/fixtures.js +0 -25
- package/lib/molecule/search/test/fixtures.js.map +0 -1
- package/lib/organism/playlist-translation/test/fixtures.js +0 -25
- package/lib/organism/playlist-translation/test/fixtures.js.map +0 -1
|
@@ -9,7 +9,8 @@ const podcastWrapperStyle = {
|
|
|
9
9
|
};
|
|
10
10
|
const iframeStyle = {
|
|
11
11
|
default: style.iframe,
|
|
12
|
-
cockpit: style.iframeCockpit
|
|
12
|
+
cockpit: style.iframeCockpit,
|
|
13
|
+
mobile: style.iframe
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
function ExternalContentViewer(props) {
|
|
@@ -40,7 +41,7 @@ function ExternalContentViewer(props) {
|
|
|
40
41
|
src: url,
|
|
41
42
|
type: contentType
|
|
42
43
|
}))) : /*#__PURE__*/React.createElement("iframe", {
|
|
43
|
-
src: isPdf ? googleViewer : url,
|
|
44
|
+
src: isPdf && mode === 'mobile' ? googleViewer : url,
|
|
44
45
|
frameBorder: 0,
|
|
45
46
|
className: iframeStyle[mode],
|
|
46
47
|
allowFullScreen: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/external-content-viewer/index.js"],"names":["React","startsWith","includes","PropTypes","style","podcastWrapperStyle","default","podcastWrapper","cockpit","podcastWrapperCockpit","iframeStyle","iframe","iframeCockpit","ExternalContentViewer","props","url","backgroundImageUrl","contentType","mode","isPdf","googleViewer","bgPodcast","backgroundImage","podcast","propTypes","string","isRequired"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,sBAAvB;AACA,OAAOC,QAAP,MAAqB,oBAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,mBAAmB,GAAG;AAC1BC,EAAAA,OAAO,EAAEF,KAAK,CAACG,cADW;AAE1BC,EAAAA,OAAO,EAAEJ,KAAK,CAACK;AAFW,CAA5B;AAKA,MAAMC,WAAW,GAAG;AAClBJ,EAAAA,OAAO,EAAEF,KAAK,CAACO,MADG;AAElBH,EAAAA,OAAO,EAAEJ,KAAK,CAACQ;
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/external-content-viewer/index.js"],"names":["React","startsWith","includes","PropTypes","style","podcastWrapperStyle","default","podcastWrapper","cockpit","podcastWrapperCockpit","iframeStyle","iframe","iframeCockpit","mobile","ExternalContentViewer","props","url","backgroundImageUrl","contentType","mode","isPdf","googleViewer","bgPodcast","backgroundImage","podcast","propTypes","string","isRequired"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,sBAAvB;AACA,OAAOC,QAAP,MAAqB,oBAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,mBAAmB,GAAG;AAC1BC,EAAAA,OAAO,EAAEF,KAAK,CAACG,cADW;AAE1BC,EAAAA,OAAO,EAAEJ,KAAK,CAACK;AAFW,CAA5B;AAKA,MAAMC,WAAW,GAAG;AAClBJ,EAAAA,OAAO,EAAEF,KAAK,CAACO,MADG;AAElBH,EAAAA,OAAO,EAAEJ,KAAK,CAACQ,aAFG;AAGlBC,EAAAA,MAAM,EAAET,KAAK,CAACO;AAHI,CAApB;;AAMA,SAASG,qBAAT,CAA+BC,KAA/B,EAAsC;AACpC,QAAM;AAACC,IAAAA,GAAD;AAAMC,IAAAA,kBAAN;AAA0BC,IAAAA,WAA1B;AAAuCC,IAAAA,IAAI,GAAG;AAA9C,MAA2DJ,KAAjE;AACA,QAAMK,KAAK,GAAGlB,QAAQ,CAAC,MAAD,EAASc,GAAT,CAAtB;AACA,QAAMK,YAAY,GAAI,6DAA4DL,GAAI,EAAtF;AAEA,SAAOf,UAAU,CAAC,OAAD,EAAUiB,WAAV,CAAV,gBACL;AAAK,IAAA,SAAS,EAAEb,mBAAmB,CAACc,IAAD;AAAnC,kBACE;AACE,IAAA,SAAS,EAAEf,KAAK,CAACkB,SADnB;AAEE,IAAA,KAAK,EAAE;AAACC,MAAAA,eAAe,EAAEN,kBAAkB,IAAK,OAAMA,kBAAmB;AAAlE;AAFT,IADF,eAKE;AACE,IAAA,SAAS,EAAEb,KAAK,CAACoB,OADnB;AAEE,IAAA,QAAQ,MAFV;AAGE,IAAA,YAAY,EAAC,YAHf;AAIE,IAAA,QAAQ,EAAC,EAJX;AAKE,IAAA,IAAI,EAAC,OALP;AAME,iBAAU,0BANZ;AAOE,IAAA,OAAO,EAAC;AAPV,kBASE;AAAQ,IAAA,GAAG,EAAER,GAAb;AAAkB,IAAA,IAAI,EAAEE;AAAxB,IATF,CALF,CADK,gBAmBL;AACE,IAAA,GAAG,EAAEE,KAAK,IAAID,IAAI,KAAK,QAAlB,GAA6BE,YAA7B,GAA4CL,GADnD;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,SAAS,EAAEN,WAAW,CAACS,IAAD,CAHxB;AAIE,IAAA,eAAe,MAJjB;AAKE,iBAAU;AALZ,IAnBF;AA2BD;;AAEDL,qBAAqB,CAACW,SAAtB,2CAAkC;AAChCT,EAAAA,GAAG,EAAEb,SAAS,CAACuB,MAAV,CAAiBC,UADU;AAEhCV,EAAAA,kBAAkB,EAAEd,SAAS,CAACuB,MAFE;AAGhCR,EAAAA,WAAW,EAAEf,SAAS,CAACuB,MAHS;AAIhCP,EAAAA,IAAI,EAAEhB,SAAS,CAACuB;AAJgB,CAAlC;AAOA,eAAeZ,qBAAf","sourcesContent":["import React from 'react';\nimport startsWith from 'lodash/fp/startsWith';\nimport includes from 'lodash/fp/includes';\nimport PropTypes from 'prop-types';\nimport style from './style.css';\n\nconst podcastWrapperStyle = {\n default: style.podcastWrapper,\n cockpit: style.podcastWrapperCockpit\n};\n\nconst iframeStyle = {\n default: style.iframe,\n cockpit: style.iframeCockpit,\n mobile: style.iframe\n};\n\nfunction ExternalContentViewer(props) {\n const {url, backgroundImageUrl, contentType, mode = 'default'} = props;\n const isPdf = includes('.pdf', url);\n const googleViewer = `https://docs.google.com/viewerng/viewer?embedded=true&url=${url}`;\n\n return startsWith('audio', contentType) ? (\n <div className={podcastWrapperStyle[mode]}>\n <div\n className={style.bgPodcast}\n style={{backgroundImage: backgroundImageUrl && `url(${backgroundImageUrl})`}}\n />\n <audio\n className={style.podcast}\n controls\n controlsList=\"nodownload\"\n autoPlay=\"\"\n name=\"media\"\n data-name=\"external-content-podcast\"\n preload=\"auto\"\n >\n <source src={url} type={contentType} />\n </audio>\n </div>\n ) : (\n <iframe\n src={isPdf && mode === 'mobile' ? googleViewer : url}\n frameBorder={0}\n className={iframeStyle[mode]}\n allowFullScreen\n data-name=\"external-content-iframe\"\n />\n );\n}\n\nExternalContentViewer.propTypes = {\n url: PropTypes.string.isRequired,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string\n};\n\nexport default ExternalContentViewer;\n"],"file":"index.js"}
|
|
@@ -15,8 +15,7 @@ class Filters extends React.Component {
|
|
|
15
15
|
super(props);
|
|
16
16
|
this.state = {
|
|
17
17
|
filter: !!props.openFilters,
|
|
18
|
-
sorted: !!props.openSorts
|
|
19
|
-
animated: false
|
|
18
|
+
sorted: !!props.openSorts
|
|
20
19
|
};
|
|
21
20
|
this.handleOpenFilter = this.handleOpenFilter.bind(this);
|
|
22
21
|
this.handleOpenSort = this.handleOpenSort.bind(this);
|
|
@@ -33,8 +32,7 @@ class Filters extends React.Component {
|
|
|
33
32
|
const newValue = !filter;
|
|
34
33
|
this.setState({
|
|
35
34
|
filter: newValue,
|
|
36
|
-
sorted: false
|
|
37
|
-
animated: true
|
|
35
|
+
sorted: false
|
|
38
36
|
});
|
|
39
37
|
|
|
40
38
|
if (onToggleFilters) {
|
|
@@ -52,8 +50,7 @@ class Filters extends React.Component {
|
|
|
52
50
|
const newValue = !sorted;
|
|
53
51
|
this.setState({
|
|
54
52
|
sorted: newValue,
|
|
55
|
-
filter: false
|
|
56
|
-
animated: true
|
|
53
|
+
filter: false
|
|
57
54
|
});
|
|
58
55
|
if (onToggleSorts) onToggleSorts(newValue);
|
|
59
56
|
}
|
|
@@ -64,8 +61,7 @@ class Filters extends React.Component {
|
|
|
64
61
|
} = this.props;
|
|
65
62
|
this.setState({
|
|
66
63
|
sorted: false,
|
|
67
|
-
filter: false
|
|
68
|
-
animated: true
|
|
64
|
+
filter: false
|
|
69
65
|
});
|
|
70
66
|
if (onSearch) onSearch();
|
|
71
67
|
}
|
|
@@ -81,8 +77,7 @@ class Filters extends React.Component {
|
|
|
81
77
|
} = this.props;
|
|
82
78
|
const {
|
|
83
79
|
filter,
|
|
84
|
-
sorted
|
|
85
|
-
animated = true
|
|
80
|
+
sorted
|
|
86
81
|
} = this.state;
|
|
87
82
|
const {
|
|
88
83
|
skin
|
|
@@ -100,8 +95,7 @@ class Filters extends React.Component {
|
|
|
100
95
|
}, /*#__PURE__*/React.createElement(Select, sorting)) : null;
|
|
101
96
|
return /*#__PURE__*/React.createElement("div", {
|
|
102
97
|
"data-name": "search",
|
|
103
|
-
className: style.search
|
|
104
|
-
"data-animated": animated
|
|
98
|
+
className: style.search
|
|
105
99
|
}, /*#__PURE__*/React.createElement("div", {
|
|
106
100
|
"data-name": "filter",
|
|
107
101
|
"data-open": filtersActive,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/filters/index.js"],"names":["React","PropTypes","NovaCompositionNavigationArrowDown","ArrowDown","Select","Provider","style","FiltersWrapper","Filters","Component","constructor","props","state","filter","openFilters","sorted","openSorts","
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/filters/index.js"],"names":["React","PropTypes","NovaCompositionNavigationArrowDown","ArrowDown","Select","Provider","style","FiltersWrapper","Filters","Component","constructor","props","state","filter","openFilters","sorted","openSorts","handleOpenFilter","bind","handleOpenSort","handleSearch","onToggleFilters","newValue","setState","onToggleSorts","onSearch","render","sorting","filterCTALabel","filterTabLabel","sortCTALabel","sortTabLabel","filters","skin","context","defaultColor","darkColor","filtersActive","sortingActive","sortView","undefined","select","search","activeDefault","default","title","arrow","activeWrapperSortBy","wrapperSortBy","activeWrapperFilters","wrapperFilters","wrapper","CTAfilter","backgroundColor","activeSorting","childContextTypes","propTypes","string","bool","shape","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get} from 'lodash/fp';\nimport {NovaCompositionNavigationArrowDown as ArrowDown} from '@coorpacademy/nova-icons';\nimport Select from '../../atom/select';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\nimport FiltersWrapper from './filters-wrapper';\n\nclass Filters extends React.Component {\n static propTypes = {\n filterCTALabel: PropTypes.string,\n filterTabLabel: PropTypes.string,\n sortCTALabel: PropTypes.string,\n sortTabLabel: PropTypes.string,\n openFilters: PropTypes.bool,\n openSorts: PropTypes.bool,\n filters: FiltersWrapper.propTypes.filters,\n sorting: PropTypes.shape(Select.propTypes),\n onSearch: PropTypes.func,\n onToggleFilters: PropTypes.func,\n onToggleSorts: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {\n filter: !!props.openFilters,\n sorted: !!props.openSorts\n };\n this.handleOpenFilter = this.handleOpenFilter.bind(this);\n this.handleOpenSort = this.handleOpenSort.bind(this);\n this.handleSearch = this.handleSearch.bind(this);\n }\n\n handleOpenFilter() {\n const {filter} = this.state;\n const {onToggleFilters} = this.props;\n\n const newValue = !filter;\n\n this.setState({\n filter: newValue,\n sorted: false\n });\n\n if (onToggleFilters) {\n onToggleFilters(newValue);\n }\n }\n\n handleOpenSort() {\n const {sorted} = this.state;\n const {onToggleSorts} = this.props;\n\n const newValue = !sorted;\n\n this.setState({\n sorted: newValue,\n filter: false\n });\n\n if (onToggleSorts) onToggleSorts(newValue);\n }\n\n handleSearch() {\n const {onSearch} = this.props;\n this.setState({\n sorted: false,\n filter: false\n });\n if (onSearch) onSearch();\n }\n\n render() {\n const {\n sorting,\n filterCTALabel,\n filterTabLabel,\n sortCTALabel,\n sortTabLabel,\n filters\n } = this.props;\n const {filter, sorted} = this.state;\n const {skin} = this.context;\n\n const defaultColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const filtersActive = filter === true;\n const sortingActive = sorted === true;\n\n const sortView =\n sorting !== undefined ? (\n <div data-name=\"choice\" className={style.select}>\n <Select {...sorting} />\n </div>\n ) : null;\n\n return (\n <div data-name=\"search\" className={style.search}>\n <div\n data-name=\"filter\"\n data-open={filtersActive}\n className={filtersActive ? style.activeDefault : style.default}\n >\n <div className={style.title} data-name=\"filterButton\" onClick={this.handleOpenFilter}>\n {filterTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} />\n </div>\n </div>\n </div>\n <div\n data-name=\"sortBy\"\n data-open={sortingActive}\n className={sortingActive ? style.activeWrapperSortBy : style.wrapperSortBy}\n >\n <div className={style.title} data-name=\"sortButton\" onClick={this.handleOpenSort}>\n {sortTabLabel}\n <div className={style.arrow}>\n <ArrowDown color={darkColor} height={14} />\n </div>\n </div>\n </div>\n <div\n data-name=\"filterWrapper\"\n className={filtersActive ? style.activeWrapperFilters : style.wrapperFilters}\n >\n <FiltersWrapper className={style.wrapper} filters={filters} />\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {filterCTALabel}\n </div>\n </div>\n <div\n data-name=\"sortWrapper\"\n className={sortingActive ? style.activeSorting : style.sorting}\n >\n {sortView}\n <div\n data-name=\"cta\"\n className={style.CTAfilter}\n style={{\n backgroundColor: defaultColor\n }}\n onClick={this.handleSearch}\n >\n {sortCTALabel}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default Filters;\n"],"file":"index.js"}
|
|
@@ -151,6 +151,7 @@
|
|
|
151
151
|
width: 100%;
|
|
152
152
|
box-sizing: border-box;
|
|
153
153
|
background: light;
|
|
154
|
+
transition: all 0.4s ease-out;
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
.activeSorting {
|
|
@@ -211,60 +212,6 @@
|
|
|
211
212
|
display: none;
|
|
212
213
|
}
|
|
213
214
|
|
|
214
|
-
[data-animated='true'] .sorting {
|
|
215
|
-
transition: all 0.4s ease-out;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
[data-animated='true'] .activeSorting {
|
|
219
|
-
transition: all 0.4s ease-out;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
[data-animated='true'] .wrapperFilters {
|
|
223
|
-
transition: all 0.4s ease-out;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
[data-animated='true'] .activeWrapperFilters {
|
|
227
|
-
transition: all 0.4s ease-out;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
[data-animated='false'] .activeWrapperFilters {
|
|
231
|
-
animation: open-filters-desktop 0.4s ease-out 0s;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
[data-animated='false'] .activeSorting {
|
|
235
|
-
animation: open-sorts 0.4s ease-out 0s;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
[data-animated='false'] .activeDefault .arrow,
|
|
239
|
-
[data-animated='false'] .activeWrapperSortBy .arrow {
|
|
240
|
-
animation: rotate 0.4s ease-out 0.2s;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
@keyframes open-filters-desktop {
|
|
244
|
-
0% {max-height: 0px;}
|
|
245
|
-
100% {max-height: 270px;}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
@keyframes open-filters-tablet {
|
|
249
|
-
0% {max-height: 0px;}
|
|
250
|
-
100% {max-height: 380px;}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
@keyframes open-filters-mobile {
|
|
254
|
-
0% {max-height: 0px;}
|
|
255
|
-
100% {max-height: 850px;}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
@keyframes open-sorts {
|
|
259
|
-
0% {max-height: 0px;}
|
|
260
|
-
100% {max-height: 150px;}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
@keyframes rotate {
|
|
264
|
-
0% {transform: rotate(0deg);}
|
|
265
|
-
100% {transform: rotate(180deg);}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
215
|
@media tablet {
|
|
269
216
|
.search {
|
|
270
217
|
border-top: 1px solid light;
|
|
@@ -274,10 +221,6 @@
|
|
|
274
221
|
max-height: 380px;
|
|
275
222
|
}
|
|
276
223
|
|
|
277
|
-
[data-animated='false'] .activeWrapperFilters {
|
|
278
|
-
animation: open-filters-tablet 0.4s ease-out 0s;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
224
|
.select {
|
|
282
225
|
width: 50%;
|
|
283
226
|
}
|
|
@@ -308,10 +251,6 @@
|
|
|
308
251
|
max-height: 850px;
|
|
309
252
|
}
|
|
310
253
|
|
|
311
|
-
[data-animated='false'] .activeWrapperFilters {
|
|
312
|
-
animation: open-filters-mobile 0.4s ease-out 0s;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
254
|
.sorting,
|
|
316
255
|
.activeSorting {
|
|
317
256
|
padding-left: 15px;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import isEmpty from 'lodash/fp/isEmpty';
|
|
6
|
+
import map from 'lodash/fp/map';
|
|
7
|
+
import { NovaCompositionCoorpacademyEmptyStateHomeRevision as EmptyStateHomeRevision, NovaCompositionCoorpacademyInformationIcon as InformationIcon } from '@coorpacademy/nova-icons';
|
|
8
|
+
import Loader from '../../atom/loader';
|
|
9
|
+
import SkillCard from '../../molecule/skill-card';
|
|
10
|
+
import style from './style.css';
|
|
11
|
+
|
|
12
|
+
const ReviewListSkills = ({
|
|
13
|
+
listSkills
|
|
14
|
+
}) => {
|
|
15
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
16
|
+
className: style.listSkillsContainer
|
|
17
|
+
}, listSkills && map.convert({
|
|
18
|
+
cap: false
|
|
19
|
+
})((skillCard, key) => {
|
|
20
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: style.skillCardContainer,
|
|
22
|
+
key: `step-${key}`
|
|
23
|
+
}, /*#__PURE__*/React.createElement(SkillCard, skillCard));
|
|
24
|
+
}, listSkills));
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const ReviewNoSkills = ({
|
|
28
|
+
titleNoSkills,
|
|
29
|
+
textNoSkills,
|
|
30
|
+
iconSkillAriaLabel
|
|
31
|
+
}) => {
|
|
32
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
className: style.noSkillsContainer
|
|
34
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
35
|
+
className: style.titleNoSkills
|
|
36
|
+
}, titleNoSkills), /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: style.textNoSkills
|
|
38
|
+
}, " ", textNoSkills), /*#__PURE__*/React.createElement(EmptyStateHomeRevision, {
|
|
39
|
+
className: style.imgNoSkills,
|
|
40
|
+
"aria-label": iconSkillAriaLabel
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const ReviewSkills = props => {
|
|
45
|
+
const {
|
|
46
|
+
'aria-label': ariaLabel,
|
|
47
|
+
title,
|
|
48
|
+
listSkills,
|
|
49
|
+
titleNoSkills,
|
|
50
|
+
textNoSkills,
|
|
51
|
+
iconSkillAriaLabel,
|
|
52
|
+
isLoading = false,
|
|
53
|
+
isLoadingAriaLabel
|
|
54
|
+
} = props;
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
className: style.containerReviewSkill,
|
|
57
|
+
"aria-label": ariaLabel
|
|
58
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
59
|
+
className: style.title
|
|
60
|
+
}, title, /*#__PURE__*/React.createElement(InformationIcon, {
|
|
61
|
+
className: style.informationIcon,
|
|
62
|
+
width: 12,
|
|
63
|
+
height: 12
|
|
64
|
+
})), isLoading ? /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: style.loaderContainer
|
|
66
|
+
}, /*#__PURE__*/React.createElement(Loader, {
|
|
67
|
+
className: style.loader,
|
|
68
|
+
theme: "default",
|
|
69
|
+
"aria-label": isLoadingAriaLabel
|
|
70
|
+
})) : /*#__PURE__*/React.createElement("div", null, !isEmpty(listSkills) ? /*#__PURE__*/React.createElement(ReviewListSkills, {
|
|
71
|
+
listSkills: listSkills
|
|
72
|
+
}) : /*#__PURE__*/React.createElement(ReviewNoSkills, {
|
|
73
|
+
titleNoSkills: titleNoSkills,
|
|
74
|
+
textNoSkills: textNoSkills,
|
|
75
|
+
iconSkillAriaLabel: iconSkillAriaLabel
|
|
76
|
+
})));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
ReviewListSkills.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
80
|
+
listSkills: PropTypes.arrayOf(PropTypes.shape(SkillCard.propTypes))
|
|
81
|
+
} : {};
|
|
82
|
+
ReviewNoSkills.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
83
|
+
titleNoSkills: PropTypes.string,
|
|
84
|
+
textNoSkills: PropTypes.string,
|
|
85
|
+
iconSkillAriaLabel: PropTypes.string
|
|
86
|
+
} : {};
|
|
87
|
+
ReviewSkills.propTypes = process.env.NODE_ENV !== "production" ? _extends(_extends({
|
|
88
|
+
'aria-label': PropTypes.string,
|
|
89
|
+
title: PropTypes.string.isRequired,
|
|
90
|
+
isLoading: PropTypes.bool,
|
|
91
|
+
isLoadingAriaLabel: PropTypes.string
|
|
92
|
+
}, ReviewListSkills.propTypes), ReviewNoSkills.propTypes) : {};
|
|
93
|
+
export default ReviewSkills;
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-skills/index.js"],"names":["React","PropTypes","isEmpty","map","NovaCompositionCoorpacademyEmptyStateHomeRevision","EmptyStateHomeRevision","NovaCompositionCoorpacademyInformationIcon","InformationIcon","Loader","SkillCard","style","ReviewListSkills","listSkills","listSkillsContainer","convert","cap","skillCard","key","skillCardContainer","ReviewNoSkills","titleNoSkills","textNoSkills","iconSkillAriaLabel","noSkillsContainer","imgNoSkills","ReviewSkills","props","ariaLabel","title","isLoading","isLoadingAriaLabel","containerReviewSkill","informationIcon","loaderContainer","loader","propTypes","arrayOf","shape","string","isRequired","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport map from 'lodash/fp/map';\nimport {\n NovaCompositionCoorpacademyEmptyStateHomeRevision as EmptyStateHomeRevision,\n NovaCompositionCoorpacademyInformationIcon as InformationIcon\n} from '@coorpacademy/nova-icons';\nimport Loader from '../../atom/loader';\nimport SkillCard from '../../molecule/skill-card';\nimport style from './style.css';\n\nconst ReviewListSkills = ({listSkills}) => {\n return (\n <div className={style.listSkillsContainer}>\n {listSkills &&\n map.convert({cap: false})((skillCard, key) => {\n return (\n <div className={style.skillCardContainer} key={`step-${key}`}>\n <SkillCard {...skillCard} />\n </div>\n );\n }, listSkills)}\n </div>\n );\n};\n\nconst ReviewNoSkills = ({titleNoSkills, textNoSkills, iconSkillAriaLabel}) => {\n return (\n <div className={style.noSkillsContainer}>\n <div className={style.titleNoSkills}>{titleNoSkills}</div>\n <div className={style.textNoSkills}> {textNoSkills}</div>\n <EmptyStateHomeRevision className={style.imgNoSkills} aria-label={iconSkillAriaLabel} />\n </div>\n );\n};\n\nconst ReviewSkills = props => {\n const {\n 'aria-label': ariaLabel,\n title,\n listSkills,\n titleNoSkills,\n textNoSkills,\n iconSkillAriaLabel,\n isLoading = false,\n isLoadingAriaLabel\n } = props;\n\n return (\n <div className={style.containerReviewSkill} aria-label={ariaLabel}>\n <div className={style.title}>\n {title}\n <InformationIcon className={style.informationIcon} width={12} height={12} />\n </div>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"default\" aria-label={isLoadingAriaLabel} />\n </div>\n ) : (\n <div>\n {!isEmpty(listSkills) ? (\n <ReviewListSkills listSkills={listSkills} />\n ) : (\n <ReviewNoSkills\n titleNoSkills={titleNoSkills}\n textNoSkills={textNoSkills}\n iconSkillAriaLabel={iconSkillAriaLabel}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nReviewListSkills.propTypes = {\n listSkills: PropTypes.arrayOf(PropTypes.shape(SkillCard.propTypes))\n};\n\nReviewNoSkills.propTypes = {\n titleNoSkills: PropTypes.string,\n textNoSkills: PropTypes.string,\n iconSkillAriaLabel: PropTypes.string\n};\n\nReviewSkills.propTypes = {\n 'aria-label': PropTypes.string,\n title: PropTypes.string.isRequired,\n isLoading: PropTypes.bool,\n isLoadingAriaLabel: PropTypes.string,\n ...ReviewListSkills.propTypes,\n ...ReviewNoSkills.propTypes\n};\n\nexport default ReviewSkills;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
@value breakpoints: "../../variables/breakpoints.css";
|
|
2
|
+
@value tablet from breakpoints;
|
|
3
|
+
@value mobile from breakpoints;
|
|
4
|
+
@value colors: "../../variables/colors.css";
|
|
5
|
+
@value cm_blue_900 from colors;
|
|
6
|
+
@value cm_grey_400 from colors;
|
|
7
|
+
@value cm_grey_500 from colors;
|
|
8
|
+
|
|
9
|
+
.textBase {
|
|
10
|
+
color: cm_blue_900;
|
|
11
|
+
font-family: "Gilroy";
|
|
12
|
+
font-style: normal;
|
|
13
|
+
user-select: none;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.containerReviewSkill {
|
|
17
|
+
width: 100%;
|
|
18
|
+
position: relative;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.title {
|
|
22
|
+
composes: textBase;
|
|
23
|
+
font-size: 20px;
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
line-height: 28px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.informationIcon {
|
|
29
|
+
color: cm_grey_500;
|
|
30
|
+
padding-left: 8px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.listSkillsContainer {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-wrap: wrap;
|
|
36
|
+
margin-top: 24px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.skillCardContainer {
|
|
40
|
+
margin: 0px 16px 16px 0px;
|
|
41
|
+
width: 298px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.noSkillsContainer {
|
|
45
|
+
margin-top: 56px;
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
position: relative;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.titleNoSkills {
|
|
54
|
+
composes: textBase;
|
|
55
|
+
font-weight: 10;
|
|
56
|
+
font-size: 28px;
|
|
57
|
+
line-height: 36px;
|
|
58
|
+
text-align: center;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.textNoSkills {
|
|
62
|
+
color: cm_grey_400;
|
|
63
|
+
font-family: "Gilroy";
|
|
64
|
+
font-size: 20px;
|
|
65
|
+
line-height: 28px;
|
|
66
|
+
margin-top: 8px;
|
|
67
|
+
text-align: center;
|
|
68
|
+
user-select: none;
|
|
69
|
+
width: 493px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.imgNoSkills {
|
|
73
|
+
width: 361px;
|
|
74
|
+
height: 361px;
|
|
75
|
+
margin-top: 48px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.loaderContainer {
|
|
79
|
+
width: 100%;
|
|
80
|
+
height: 50vh;
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.loader {
|
|
87
|
+
height: 60px;
|
|
88
|
+
width: 60px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@media tablet {
|
|
92
|
+
.skillCardContainer {
|
|
93
|
+
width: 257px;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@media mobile {
|
|
98
|
+
.skillCardContainer {
|
|
99
|
+
width: 100%;
|
|
100
|
+
margin-right: 0px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.titleNoSkills,
|
|
104
|
+
.textNoSkills {
|
|
105
|
+
width: 85%;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.imgNoSkills {
|
|
109
|
+
margin-top: 33px;
|
|
110
|
+
width: 85%;
|
|
111
|
+
height: auto;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/organism/review-skills/test/fixtures/loading.js"],"names":["props","title","isLoading","isLoadingAriaLabel"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACL,kBAAc,yBADT;AAELC,IAAAA,KAAK,EAAE,uBAFF;AAGLC,IAAAA,SAAS,EAAE,IAHN;AAILC,IAAAA,kBAAkB,EAAE;AAJf;AADM,CAAf","sourcesContent":["export default {\n props: {\n 'aria-label': 'Review Skills Container',\n title: 'Skills you can revise',\n isLoading: true,\n isLoadingAriaLabel: 'Review skills container is loading'\n }\n};\n"],"file":"loading.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import cardDefault from '../../../../molecule/skill-card/test/fixtures/default';
|
|
4
|
+
const listSkills = [_extends(_extends({}, cardDefault.props), {}, {
|
|
5
|
+
skillTitle: 'Digital communication',
|
|
6
|
+
isCustom: false
|
|
7
|
+
}), _extends(_extends({}, cardDefault.props), {}, {
|
|
8
|
+
skillTitle: 'Creativity and innovation',
|
|
9
|
+
isCustom: false
|
|
10
|
+
}), _extends(_extends({}, cardDefault.props), {}, {
|
|
11
|
+
skillTitle: 'Agility',
|
|
12
|
+
isCustom: false
|
|
13
|
+
}), _extends(_extends({}, cardDefault.props), {}, {
|
|
14
|
+
skillTitle: 'Sustainable thinking',
|
|
15
|
+
isCustom: false
|
|
16
|
+
}), _extends(_extends({}, cardDefault.props), {}, {
|
|
17
|
+
skillTitle: 'Critical thinking and analysis',
|
|
18
|
+
isCustom: true
|
|
19
|
+
})];
|
|
20
|
+
export default {
|
|
21
|
+
props: {
|
|
22
|
+
'aria-label': 'Review Skills Container',
|
|
23
|
+
title: 'Skills you can revise',
|
|
24
|
+
listSkills,
|
|
25
|
+
titleNoSkills: undefined,
|
|
26
|
+
textNoSkills: undefined,
|
|
27
|
+
iconSkillAriaLabel: undefined
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=many-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/organism/review-skills/test/fixtures/many-skills.js"],"names":["cardDefault","listSkills","props","skillTitle","isCustom","title","titleNoSkills","undefined","textNoSkills","iconSkillAriaLabel"],"mappings":";;AAAA,OAAOA,WAAP,MAAwB,uDAAxB;AAEA,MAAMC,UAAU,GAAG,uBACbD,WAAW,CAACE,KADC;AACMC,EAAAA,UAAU,EAAE,uBADlB;AAC2CC,EAAAA,QAAQ,EAAE;AADrD,0BAEbJ,WAAW,CAACE,KAFC;AAEMC,EAAAA,UAAU,EAAE,2BAFlB;AAE+CC,EAAAA,QAAQ,EAAE;AAFzD,0BAGbJ,WAAW,CAACE,KAHC;AAGMC,EAAAA,UAAU,EAAE,SAHlB;AAG6BC,EAAAA,QAAQ,EAAE;AAHvC,0BAIbJ,WAAW,CAACE,KAJC;AAIMC,EAAAA,UAAU,EAAE,sBAJlB;AAI0CC,EAAAA,QAAQ,EAAE;AAJpD,0BAKbJ,WAAW,CAACE,KALC;AAKMC,EAAAA,UAAU,EAAE,gCALlB;AAKoDC,EAAAA,QAAQ,EAAE;AAL9D,GAAnB;AAQA,eAAe;AACbF,EAAAA,KAAK,EAAE;AACL,kBAAc,yBADT;AAELG,IAAAA,KAAK,EAAE,uBAFF;AAGLJ,IAAAA,UAHK;AAILK,IAAAA,aAAa,EAAEC,SAJV;AAKLC,IAAAA,YAAY,EAAED,SALT;AAMLE,IAAAA,kBAAkB,EAAEF;AANf;AADM,CAAf","sourcesContent":["import cardDefault from '../../../../molecule/skill-card/test/fixtures/default';\n\nconst listSkills = [\n {...cardDefault.props, skillTitle: 'Digital communication', isCustom: false},\n {...cardDefault.props, skillTitle: 'Creativity and innovation', isCustom: false},\n {...cardDefault.props, skillTitle: 'Agility', isCustom: false},\n {...cardDefault.props, skillTitle: 'Sustainable thinking', isCustom: false},\n {...cardDefault.props, skillTitle: 'Critical thinking and analysis', isCustom: true}\n];\n\nexport default {\n props: {\n 'aria-label': 'Review Skills Container',\n title: 'Skills you can revise',\n listSkills,\n titleNoSkills: undefined,\n textNoSkills: undefined,\n iconSkillAriaLabel: undefined\n }\n};\n"],"file":"many-skills.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
props: {
|
|
3
|
+
'aria-label': 'Review Skills Container',
|
|
4
|
+
title: 'Skills you can revise',
|
|
5
|
+
listSkills: [],
|
|
6
|
+
titleNoSkills: 'You have no skill to revise yet',
|
|
7
|
+
textNoSkills: 'Massa molestie ut sed malesuada. Cursus aliquet enim scelerisque sagittis at rutrum aliquam.',
|
|
8
|
+
iconSkillAriaLabel: 'Image without information'
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=no-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/organism/review-skills/test/fixtures/no-skills.js"],"names":["props","title","listSkills","titleNoSkills","textNoSkills","iconSkillAriaLabel"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACL,kBAAc,yBADT;AAELC,IAAAA,KAAK,EAAE,uBAFF;AAGLC,IAAAA,UAAU,EAAE,EAHP;AAILC,IAAAA,aAAa,EAAE,iCAJV;AAKLC,IAAAA,YAAY,EACV,8FANG;AAOLC,IAAAA,kBAAkB,EAAE;AAPf;AADM,CAAf","sourcesContent":["export default {\n props: {\n 'aria-label': 'Review Skills Container',\n title: 'Skills you can revise',\n listSkills: [],\n titleNoSkills: 'You have no skill to revise yet',\n textNoSkills:\n 'Massa molestie ut sed malesuada. Cursus aliquet enim scelerisque sagittis at rutrum aliquam.',\n iconSkillAriaLabel: 'Image without information'\n }\n};\n"],"file":"no-skills.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import forEach from 'lodash/forEach';
|
|
3
|
+
import renderComponentMacro from '../../../test/helpers/render-component';
|
|
4
|
+
import OrganismReviewSkills from '..';
|
|
5
|
+
import fixtureLoading from './fixtures/loading';
|
|
6
|
+
import fixtureManySkills from './fixtures/many-skills';
|
|
7
|
+
import fixtureNoSkills from './fixtures/no-skills';
|
|
8
|
+
test('Organism › OrganismReviewSkills > should have valid propTypes', t => {
|
|
9
|
+
t.pass();
|
|
10
|
+
forEach(OrganismReviewSkills.propTypes, (value, key) => {
|
|
11
|
+
t.not(value, undefined, `PropType for "Organism.OrganismReviewSkills.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
test('Organism › OrganismReviewSkills › Loading › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureLoading);
|
|
15
|
+
test('Organism › OrganismReviewSkills › ManySkills › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureManySkills);
|
|
16
|
+
test('Organism › OrganismReviewSkills › NoSkills › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureNoSkills);
|
|
17
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/organism/review-skills/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","OrganismReviewSkills","fixtureLoading","fixtureManySkills","fixtureNoSkills","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,oBAAP,MAAiC,IAAjC;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,eAAP,MAA4B,sBAA5B;AAEAN,IAAI,CAAC,+DAAD,EAAkEO,CAAC,IAAI;AACzEA,EAAAA,CAAC,CAACC,IAAF;AACAP,EAAAA,OAAO,CAACE,oBAAoB,CAACM,SAAtB,EAAiC,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACtDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,yDAAwDF,GAAI,mEAArF;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAX,IAAI,CAAC,gEAAD,EAAmEE,oBAAnE,EAAyFC,oBAAzF,EAA+GC,cAA/G,CAAJ;AACAJ,IAAI,CAAC,mEAAD,EAAsEE,oBAAtE,EAA4FC,oBAA5F,EAAkHE,iBAAlH,CAAJ;AACAL,IAAI,CAAC,iEAAD,EAAoEE,oBAApE,EAA0FC,oBAA1F,EAAgHG,eAAhH,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport OrganismReviewSkills from '..';\nimport fixtureLoading from './fixtures/loading';\nimport fixtureManySkills from './fixtures/many-skills';\nimport fixtureNoSkills from './fixtures/no-skills';\n\ntest('Organism › OrganismReviewSkills > should have valid propTypes', t => {\n t.pass();\n forEach(OrganismReviewSkills.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Organism.OrganismReviewSkills.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Organism › OrganismReviewSkills › Loading › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureLoading);\ntest('Organism › OrganismReviewSkills › ManySkills › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureManySkills);\ntest('Organism › OrganismReviewSkills › NoSkills › should be rendered', renderComponentMacro, OrganismReviewSkills, fixtureNoSkills);\n"],"file":"fixtures.js"}
|
|
@@ -21,7 +21,8 @@ import ExternalContentViewer from '../../molecule/external-content-viewer';
|
|
|
21
21
|
import style from './style.css';
|
|
22
22
|
const defaultWrapperStyle = {
|
|
23
23
|
default: style.default,
|
|
24
|
-
cockpit: style.defaultCockpit
|
|
24
|
+
cockpit: style.defaultCockpit,
|
|
25
|
+
mobile: style.default
|
|
25
26
|
};
|
|
26
27
|
|
|
27
28
|
class ExternalCourse extends React.Component {
|
|
@@ -63,6 +64,7 @@ class ExternalCourse extends React.Component {
|
|
|
63
64
|
className: style.loader
|
|
64
65
|
}, /*#__PURE__*/React.createElement(Loader, null)) : /*#__PURE__*/React.createElement(ExternalContentViewer, {
|
|
65
66
|
url: url,
|
|
67
|
+
mode: mode,
|
|
66
68
|
backgroundImageUrl: backgroundImageUrl,
|
|
67
69
|
contentType: contentType
|
|
68
70
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/template/external-course/index.js"],"names":["React","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","convert","classnames","PropTypes","EXTERNAL_CONTENT_ICONS","Provider","Loader","Button","innerHTML","ExternalContentViewer","style","defaultWrapperStyle","default","cockpit","defaultCockpit","ExternalCourse","Component","field","e","stopPropagation","preventDefault","onClick","render","name","type","url","warning","complete","quit","loading","backgroundImageUrl","contentType","mode","props","skin","context","primary","IconType","icon","IconColor","color","mainContentSlot","loader","completeButton","disabled","handleOnClick","label","backgroundColor","cursor","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","__html","header","rightSection","footer","childContextTypes","propTypes","string","oneOf","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {get, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport {innerHTML} from '../../atom/label/style.css';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit\n};\n\nclass ExternalCourse extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n handleOnClick = field => e => {\n e.stopPropagation();\n e.preventDefault();\n const onClick = get('onClick', field);\n return onClick && onClick(e);\n };\n\n render() {\n const {\n name,\n type,\n url,\n warning,\n complete,\n quit,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default'\n } = this.props;\n const {skin} = this.context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n\n const completeButton = !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : this.handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n />\n ) : null;\n\n const warningButton = !isNil(warning) ? (\n <div className={style.leftSection}>\n <div\n onClick={this.handleOnClick(warning)}\n className={classnames(style.iconLabel, style.link)}\n >\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n\n const quitButton = !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : this.handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n\n const titleSection = !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n\n const header =\n !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n\n const footer =\n !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n\n return (\n <div className={defaultWrapperStyle[mode]}>\n {header}\n {mainContentSlot}\n {footer}\n </div>\n );\n }\n}\n\nexport default ExternalCourse;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/template/external-course/index.js"],"names":["React","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","convert","classnames","PropTypes","EXTERNAL_CONTENT_ICONS","Provider","Loader","Button","innerHTML","ExternalContentViewer","style","defaultWrapperStyle","default","cockpit","defaultCockpit","mobile","ExternalCourse","Component","field","e","stopPropagation","preventDefault","onClick","render","name","type","url","warning","complete","quit","loading","backgroundImageUrl","contentType","mode","props","skin","context","primary","IconType","icon","IconColor","color","mainContentSlot","loader","completeButton","disabled","handleOnClick","label","backgroundColor","cursor","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","__html","header","rightSection","footer","childContextTypes","propTypes","string","oneOf","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {get, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport {innerHTML} from '../../atom/label/style.css';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit,\n mobile: style.default\n};\n\nclass ExternalCourse extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n handleOnClick = field => e => {\n e.stopPropagation();\n e.preventDefault();\n const onClick = get('onClick', field);\n return onClick && onClick(e);\n };\n\n render() {\n const {\n name,\n type,\n url,\n warning,\n complete,\n quit,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default'\n } = this.props;\n const {skin} = this.context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n mode={mode}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n\n const completeButton = !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : this.handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n />\n ) : null;\n\n const warningButton = !isNil(warning) ? (\n <div className={style.leftSection}>\n <div\n onClick={this.handleOnClick(warning)}\n className={classnames(style.iconLabel, style.link)}\n >\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n\n const quitButton = !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : this.handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n\n const titleSection = !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n\n const header =\n !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n\n const footer =\n !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n\n return (\n <div className={defaultWrapperStyle[mode]}>\n {header}\n {mainContentSlot}\n {footer}\n </div>\n );\n }\n}\n\nexport default ExternalCourse;\n"],"file":"index.js"}
|