@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.
Files changed (61) hide show
  1. package/es/molecule/external-content-viewer/index.js +3 -2
  2. package/es/molecule/external-content-viewer/index.js.map +1 -1
  3. package/es/molecule/filters/index.js +6 -12
  4. package/es/molecule/filters/index.js.map +1 -1
  5. package/es/molecule/filters/style.css +1 -62
  6. package/es/organism/review-skills/index.js +94 -0
  7. package/es/organism/review-skills/index.js.map +1 -0
  8. package/es/organism/review-skills/style.css +113 -0
  9. package/es/organism/review-skills/test/fixtures/loading.js +9 -0
  10. package/es/organism/review-skills/test/fixtures/loading.js.map +1 -0
  11. package/es/organism/review-skills/test/fixtures/many-skills.js +30 -0
  12. package/es/organism/review-skills/test/fixtures/many-skills.js.map +1 -0
  13. package/es/organism/review-skills/test/fixtures/no-skills.js +11 -0
  14. package/es/organism/review-skills/test/fixtures/no-skills.js.map +1 -0
  15. package/es/organism/review-skills/test/fixtures.js +17 -0
  16. package/es/organism/review-skills/test/fixtures.js.map +1 -0
  17. package/es/template/external-course/index.js +3 -1
  18. package/es/template/external-course/index.js.map +1 -1
  19. package/es/template/external-course/test/fixtures/pdf-mobile.js +10 -0
  20. package/es/template/external-course/test/fixtures/pdf-mobile.js.map +1 -0
  21. package/es/template/external-course/test/fixtures/pdf-no-mobile.js +18 -0
  22. package/es/template/external-course/test/fixtures/pdf-no-mobile.js.map +1 -0
  23. package/es/template/external-course/test/fixtures.js +4 -0
  24. package/es/template/external-course/test/fixtures.js.map +1 -1
  25. package/lib/molecule/external-content-viewer/index.js +3 -2
  26. package/lib/molecule/external-content-viewer/index.js.map +1 -1
  27. package/lib/molecule/filters/index.js +6 -12
  28. package/lib/molecule/filters/index.js.map +1 -1
  29. package/lib/molecule/filters/style.css +1 -62
  30. package/lib/organism/review-skills/index.js +109 -0
  31. package/lib/organism/review-skills/index.js.map +1 -0
  32. package/lib/organism/review-skills/style.css +113 -0
  33. package/lib/organism/review-skills/test/fixtures/loading.js +14 -0
  34. package/lib/organism/review-skills/test/fixtures/loading.js.map +1 -0
  35. package/lib/organism/review-skills/test/fixtures/many-skills.js +39 -0
  36. package/lib/organism/review-skills/test/fixtures/many-skills.js.map +1 -0
  37. package/lib/organism/review-skills/test/fixtures/no-skills.js +16 -0
  38. package/lib/organism/review-skills/test/fixtures/no-skills.js.map +1 -0
  39. package/lib/organism/review-skills/test/fixtures.js +28 -0
  40. package/lib/organism/review-skills/test/fixtures.js.map +1 -0
  41. package/lib/template/external-course/index.js +3 -1
  42. package/lib/template/external-course/index.js.map +1 -1
  43. package/lib/template/external-course/test/fixtures/pdf-mobile.js +15 -0
  44. package/lib/template/external-course/test/fixtures/pdf-mobile.js.map +1 -0
  45. package/lib/template/external-course/test/fixtures/pdf-no-mobile.js +23 -0
  46. package/lib/template/external-course/test/fixtures/pdf-no-mobile.js.map +1 -0
  47. package/lib/template/external-course/test/fixtures.js +6 -0
  48. package/lib/template/external-course/test/fixtures.js.map +1 -1
  49. package/package.json +3 -3
  50. package/es/molecule/input-text-with-titeled-checkbox/test/fixtures.js +0 -15
  51. package/es/molecule/input-text-with-titeled-checkbox/test/fixtures.js.map +0 -1
  52. package/es/molecule/search/test/fixtures.js +0 -15
  53. package/es/molecule/search/test/fixtures.js.map +0 -1
  54. package/es/organism/playlist-translation/test/fixtures.js +0 -15
  55. package/es/organism/playlist-translation/test/fixtures.js.map +0 -1
  56. package/lib/molecule/input-text-with-titeled-checkbox/test/fixtures.js +0 -25
  57. package/lib/molecule/input-text-with-titeled-checkbox/test/fixtures.js.map +0 -1
  58. package/lib/molecule/search/test/fixtures.js +0 -25
  59. package/lib/molecule/search/test/fixtures.js.map +0 -1
  60. package/lib/organism/playlist-translation/test/fixtures.js +0 -25
  61. 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;AAFG,CAApB;;AAKA,SAASC,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,GAAGjB,QAAQ,CAAC,MAAD,EAASa,GAAT,CAAtB;AACA,QAAMK,YAAY,GAAI,6DAA4DL,GAAI,EAAtF;AAEA,SAAOd,UAAU,CAAC,OAAD,EAAUgB,WAAV,CAAV,gBACL;AAAK,IAAA,SAAS,EAAEZ,mBAAmB,CAACa,IAAD;AAAnC,kBACE;AACE,IAAA,SAAS,EAAEd,KAAK,CAACiB,SADnB;AAEE,IAAA,KAAK,EAAE;AAACC,MAAAA,eAAe,EAAEN,kBAAkB,IAAK,OAAMA,kBAAmB;AAAlE;AAFT,IADF,eAKE;AACE,IAAA,SAAS,EAAEZ,KAAK,CAACmB,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,GAAGC,YAAH,GAAkBL,GAD9B;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,SAAS,EAAEL,WAAW,CAACQ,IAAD,CAHxB;AAIE,IAAA,eAAe,MAJjB;AAKE,iBAAU;AALZ,IAnBF;AA2BD;;AAEDL,qBAAqB,CAACW,SAAtB,2CAAkC;AAChCT,EAAAA,GAAG,EAAEZ,SAAS,CAACsB,MAAV,CAAiBC,UADU;AAEhCV,EAAAA,kBAAkB,EAAEb,SAAS,CAACsB,MAFE;AAGhCR,EAAAA,WAAW,EAAEd,SAAS,CAACsB,MAHS;AAIhCP,EAAAA,IAAI,EAAEf,SAAS,CAACsB;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};\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 ? 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"}
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","animated","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 animated: false\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 animated: true\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 animated: true\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 animated: true\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, animated = true} = 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} data-animated={animated}>\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"}
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,9 @@
1
+ export default {
2
+ props: {
3
+ 'aria-label': 'Review Skills Container',
4
+ title: 'Skills you can revise',
5
+ isLoading: true,
6
+ isLoadingAriaLabel: 'Review skills container is loading'
7
+ }
8
+ };
9
+ //# sourceMappingURL=loading.js.map
@@ -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"}