@coorpacademy/components 11.32.34 → 11.32.35-alpha.6

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 (28) hide show
  1. package/es/molecule/progress-wrapper/index.d.ts +4 -5
  2. package/es/molecule/progress-wrapper/index.d.ts.map +1 -1
  3. package/es/molecule/progress-wrapper/index.js +14 -28
  4. package/es/molecule/progress-wrapper/index.js.map +1 -1
  5. package/es/molecule/progress-wrapper/style.css +3 -25
  6. package/es/template/certification-detail/index.d.ts +6 -46
  7. package/es/template/certification-detail/index.d.ts.map +1 -1
  8. package/es/template/certification-detail/index.js +22 -40
  9. package/es/template/certification-detail/index.js.map +1 -1
  10. package/es/template/certification-detail/style.css +1 -12
  11. package/es/template/skill-detail/all-courses.d.ts.map +1 -1
  12. package/es/template/skill-detail/all-courses.js +2 -2
  13. package/es/template/skill-detail/all-courses.js.map +1 -1
  14. package/lib/molecule/progress-wrapper/index.d.ts +4 -5
  15. package/lib/molecule/progress-wrapper/index.d.ts.map +1 -1
  16. package/lib/molecule/progress-wrapper/index.js +14 -29
  17. package/lib/molecule/progress-wrapper/index.js.map +1 -1
  18. package/lib/molecule/progress-wrapper/style.css +3 -25
  19. package/lib/template/certification-detail/index.d.ts +6 -46
  20. package/lib/template/certification-detail/index.d.ts.map +1 -1
  21. package/lib/template/certification-detail/index.js +22 -41
  22. package/lib/template/certification-detail/index.js.map +1 -1
  23. package/lib/template/certification-detail/style.css +1 -12
  24. package/lib/template/skill-detail/all-courses.d.ts.map +1 -1
  25. package/lib/template/skill-detail/all-courses.js +2 -2
  26. package/lib/template/skill-detail/all-courses.js.map +1 -1
  27. package/locales/en/global.json +1 -0
  28. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  export default ProgressWrapper;
2
- declare function ProgressWrapper({ completedCourses, completedModules, title, subtitle, progression, sections }: {
3
- completedCourses: any;
2
+ declare function ProgressWrapper({ completedModules, mandatoryModules, title, subtitle, progression, sections }: {
4
3
  completedModules: any;
4
+ mandatoryModules: any;
5
5
  title: any;
6
6
  subtitle: any;
7
7
  progression: any;
@@ -14,13 +14,12 @@ declare namespace ProgressWrapper {
14
14
  namespace propTypes {
15
15
  const title: PropTypes.Requireable<string>;
16
16
  const subtitle: PropTypes.Requireable<string>;
17
- const completedCourses: PropTypes.Requireable<number>;
18
17
  const completedModules: PropTypes.Requireable<number>;
18
+ const mandatoryModules: PropTypes.Requireable<number>;
19
19
  const progression: PropTypes.Requireable<number>;
20
20
  const sections: PropTypes.Requireable<(PropTypes.InferProps<{
21
21
  type: PropTypes.Requireable<string>;
22
- badgeUrl: PropTypes.Requireable<string>;
23
- onDownload: PropTypes.Requireable<(...args: any[]) => any>;
22
+ downloadUrl: PropTypes.Requireable<string>;
24
23
  stars: PropTypes.Requireable<number>;
25
24
  }> | null | undefined)[]>;
26
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/progress-wrapper/index.js"],"names":[],"mappings":";AAyFA;;;;;;;8BA8DC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/progress-wrapper/index.js"],"names":[],"mappings":";AA6FA;;;;;;;8BAuDC"}
@@ -1,5 +1,4 @@
1
1
  import _map from "lodash/fp/map";
2
- import _lowerCase from "lodash/fp/lowerCase";
3
2
  import _isEmpty from "lodash/fp/isEmpty";
4
3
 
5
4
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
@@ -24,8 +23,7 @@ const DetailSection = ({
24
23
  index,
25
24
  type,
26
25
  isLocked,
27
- badgeUrl,
28
- onDownload,
26
+ downloadUrl,
29
27
  stars
30
28
  }, context) => {
31
29
  const {
@@ -34,7 +32,10 @@ const DetailSection = ({
34
32
  const isTypeStars = type === 'stars';
35
33
  const DownloadButton = /*#__PURE__*/React.createElement(ButtonLink, {
36
34
  label: translate('download'),
37
- onClick: onDownload,
35
+ link: {
36
+ target: '_blank',
37
+ href: downloadUrl
38
+ },
38
39
  "data-name": "download-button",
39
40
  "aria-label": "download button",
40
41
  customStyle: {
@@ -86,7 +87,7 @@ const DetailSection = ({
86
87
  className: style[`detailsSection${index}`]
87
88
  }, /*#__PURE__*/React.createElement("img", {
88
89
  className: style.img,
89
- src: badgeUrl || 'https://s3.eu-west-1.amazonaws.com/static.coorpacademy.com/assets/images/diploma.svg'
90
+ src: type === 'badge' ? downloadUrl : 'https://s3.eu-west-1.amazonaws.com/static.coorpacademy.com/assets/images/diploma.svg'
90
91
  }), /*#__PURE__*/React.createElement("div", {
91
92
  className: style.detailsInfo
92
93
  }, /*#__PURE__*/React.createElement("div", {
@@ -99,8 +100,8 @@ const DetailSection = ({
99
100
  };
100
101
 
101
102
  const ProgressWrapper = ({
102
- completedCourses,
103
103
  completedModules,
104
+ mandatoryModules,
104
105
  title,
105
106
  subtitle,
106
107
  progression,
@@ -109,7 +110,7 @@ const ProgressWrapper = ({
109
110
  const {
110
111
  translate
111
112
  } = context;
112
- const modulesCompletedLocal = translate('modules_completed');
113
+ const mandatoryCompletedModulesLocal = translate('modules_completed_mandatory');
113
114
  const isLocked = progression !== 100;
114
115
  return /*#__PURE__*/React.createElement("div", {
115
116
  className: style.container
@@ -126,13 +127,7 @@ const ProgressWrapper = ({
126
127
  className: style.stats
127
128
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
128
129
  className: style.statsNumber
129
- }, completedCourses), _lowerCase(translate('courses_completed'))), /*#__PURE__*/React.createElement("div", {
130
- className: style.divider
131
- }), /*#__PURE__*/React.createElement("div", {
132
- className: style.statsModule
133
- }, /*#__PURE__*/React.createElement("span", {
134
- className: style.statsNumber
135
- }, completedModules), modulesCompletedLocal)), /*#__PURE__*/React.createElement("div", {
130
+ }, `${completedModules > mandatoryModules ? mandatoryModules : completedModules} / ${mandatoryModules}`), mandatoryCompletedModulesLocal)), /*#__PURE__*/React.createElement("div", {
136
131
  className: style.progression
137
132
  }, /*#__PURE__*/React.createElement("span", {
138
133
  className: style.statsNumber
@@ -145,27 +140,19 @@ const ProgressWrapper = ({
145
140
  value: progression,
146
141
  max: 100
147
142
  }), /*#__PURE__*/React.createElement("div", {
148
- className: style.statsMobile
149
- }, /*#__PURE__*/React.createElement("div", {
150
- className: style.statsModuleMobile
151
- }, /*#__PURE__*/React.createElement("span", {
152
- className: style.statsNumber
153
- }, completedModules), modulesCompletedLocal), /*#__PURE__*/React.createElement("div", {
154
143
  className: style.statsProgressionMobile
155
144
  }, /*#__PURE__*/React.createElement("span", {
156
145
  className: style.statsNumber
157
- }, progression, "%"))), _isEmpty(sections) ? null : /*#__PURE__*/React.createElement("div", {
146
+ }, progression, "%")), _isEmpty(sections) ? null : /*#__PURE__*/React.createElement("div", {
158
147
  className: style.details
159
148
  }, uncappedMap(({
160
149
  type,
161
150
  stars,
162
- badgeUrl,
163
- onDownload
151
+ downloadUrl
164
152
  }, index) => /*#__PURE__*/React.createElement(DetailSection, {
165
153
  type,
166
154
  isLocked,
167
- badgeUrl,
168
- onDownload,
155
+ downloadUrl,
169
156
  stars,
170
157
  key: `${type}-${index}`,
171
158
  index: index
@@ -174,8 +161,7 @@ const ProgressWrapper = ({
174
161
 
175
162
  const commonDetailSectionPropTypes = process.env.NODE_ENV !== "production" ? {
176
163
  type: PropTypes.oneOf(['diploma', 'badge', 'stars']),
177
- badgeUrl: PropTypes.string,
178
- onDownload: PropTypes.func,
164
+ downloadUrl: PropTypes.string,
179
165
  stars: PropTypes.number
180
166
  } : {};
181
167
  DetailSection.contextTypes = {
@@ -191,8 +177,8 @@ ProgressWrapper.contextTypes = {
191
177
  ProgressWrapper.propTypes = process.env.NODE_ENV !== "production" ? {
192
178
  title: PropTypes.string,
193
179
  subtitle: PropTypes.string,
194
- completedCourses: PropTypes.number,
195
180
  completedModules: PropTypes.number,
181
+ mandatoryModules: PropTypes.number,
196
182
  progression: PropTypes.number,
197
183
  sections: PropTypes.arrayOf(PropTypes.shape(commonDetailSectionPropTypes))
198
184
  } : {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","Title","ProgressBar","COLORS","Tag","ButtonLink","Icon","Provider","style","uncappedMap","convert","cap","DetailSection","index","type","isLocked","badgeUrl","onDownload","stars","context","translate","isTypeStars","DownloadButton","backgroundColor","color","position","faIcon","name","size","customStyle","padding","LockedTag","iconName","iconColor","preset","detailsInfo","detailsInfoText","detailsTitle","img","buttonContainer","ProgressWrapper","completedCourses","completedModules","title","subtitle","progression","sections","modulesCompletedLocal","container","titleContainer","statscontainer","stats","statsNumber","divider","statsModule","customProgressBar","positive","statsMobile","statsModuleMobile","statsProgressionMobile","details","commonDetailSectionPropTypes","oneOf","string","func","number","contextTypes","childContextTypes","propTypes","bool","arrayOf","shape"],"sources":["../../../src/molecule/progress-wrapper/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, lowerCase, map} from 'lodash/fp';\nimport Title from '../../atom/title';\nimport ProgressBar from '../progress-bar';\nimport {COLORS} from '../../variables/colors';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport Icon from '../../atom/icon';\nimport Provider from '../../atom/provider';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst uncappedMap = map.convert({cap: false});\n\nconst DetailSection = ({index, type, isLocked, badgeUrl, onDownload, stars}, context) => {\n const {translate} = context;\n const isTypeStars = type === 'stars';\n\n const DownloadButton = (\n <ButtonLink\n label={translate('download')}\n onClick={onDownload}\n data-name=\"download-button\"\n aria-label=\"download button\"\n customStyle={{backgroundColor: '#F1F6FE', color: '#0061FF'}}\n icon={{\n position: 'left',\n faIcon: {\n name: 'download',\n color: '#0061FF',\n size: 14,\n customStyle: {padding: 0}\n }\n }}\n disabled={isLocked}\n />\n );\n\n const LockedTag = (\n <Tag\n label=\"Locked\"\n size=\"S\"\n icon={{\n position: 'left',\n iconName: 'lock',\n iconColor: '#515161',\n preset: 's',\n customStyle: {padding: 0}\n }}\n />\n );\n\n return isTypeStars ? (\n <div className={style[`detailsSection${index}`]}>\n <div className={style.detailsInfo}>\n <div className={style.detailsInfoText}>\n <span className={style.detailsTitle}>{translate('bonus_stars')}</span>\n {isLocked ? LockedTag : null}\n </div>\n <div className={style.stars}>\n <Icon iconName=\"star\" iconColor=\"#FFCE0A\" backgroundColor=\"#FFF9D1\" preset=\"xl\" />\n <span>{stars}</span>\n </div>\n </div>\n </div>\n ) : (\n <div className={style[`detailsSection${index}`]}>\n <img\n className={style.img}\n src={\n badgeUrl ||\n 'https://s3.eu-west-1.amazonaws.com/static.coorpacademy.com/assets/images/diploma.svg'\n }\n />\n <div className={style.detailsInfo}>\n <div className={style.detailsInfoText}>\n <span className={style.detailsTitle}>\n {type === 'diploma' ? translate('diploma') : translate('badge')}\n </span>\n {isLocked ? LockedTag : null}\n </div>\n\n <div className={style.buttonContainer}>{DownloadButton}</div>\n </div>\n </div>\n );\n};\n\nconst ProgressWrapper = (\n {completedCourses, completedModules, title, subtitle, progression, sections},\n context\n) => {\n const {translate} = context;\n const modulesCompletedLocal = translate('modules_completed');\n const isLocked = progression !== 100;\n\n return (\n <div className={style.container}>\n <div className={style.titleContainer}>\n <Title type=\"form-group\" titleSize=\"medium\" title={title} subtitle={subtitle} />\n </div>\n <div className={style.statscontainer}>\n <div className={style.stats}>\n <div>\n <span className={style.statsNumber}>{completedCourses}</span>\n {lowerCase(translate('courses_completed'))}\n </div>\n <div className={style.divider} />\n <div className={style.statsModule}>\n <span className={style.statsNumber}>{completedModules}</span>\n {modulesCompletedLocal}\n </div>\n </div>\n <div className={style.progression}>\n <span className={style.statsNumber}>{progression}%</span>\n </div>\n </div>\n <ProgressBar\n className={style.customProgressBar}\n style={{backgroundColor: COLORS.positive}}\n displayInfo={false}\n value={progression}\n max={100}\n />\n <div className={style.statsMobile}>\n <div className={style.statsModuleMobile}>\n <span className={style.statsNumber}>{completedModules}</span>\n {modulesCompletedLocal}\n </div>\n <div className={style.statsProgressionMobile}>\n <span className={style.statsNumber}>{progression}%</span>\n </div>\n </div>\n\n {isEmpty(sections) ? null : (\n <div className={style.details}>\n {uncappedMap(\n ({type, stars, badgeUrl, onDownload}, index) => (\n <DetailSection\n {...{type, isLocked, badgeUrl, onDownload, stars}}\n key={`${type}-${index}`}\n index={index}\n />\n ),\n sections\n )}\n </div>\n )}\n </div>\n );\n};\n\nconst commonDetailSectionPropTypes = {\n type: PropTypes.oneOf(['diploma', 'badge', 'stars']),\n badgeUrl: PropTypes.string,\n onDownload: PropTypes.func,\n stars: PropTypes.number\n};\n\nDetailSection.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nDetailSection.propTypes = {\n index: PropTypes.number,\n isLocked: PropTypes.bool,\n ...commonDetailSectionPropTypes\n};\n\nProgressWrapper.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nProgressWrapper.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n completedCourses: PropTypes.number,\n completedModules: PropTypes.number,\n progression: PropTypes.number,\n sections: PropTypes.arrayOf(PropTypes.shape(commonDetailSectionPropTypes))\n};\n\nexport default ProgressWrapper;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","Title","ProgressBar","COLORS","Tag","ButtonLink","Icon","Provider","style","uncappedMap","convert","cap","DetailSection","index","type","isLocked","downloadUrl","stars","context","translate","isTypeStars","DownloadButton","target","href","backgroundColor","color","position","faIcon","name","size","customStyle","padding","LockedTag","iconName","iconColor","preset","detailsInfo","detailsInfoText","detailsTitle","img","buttonContainer","ProgressWrapper","completedModules","mandatoryModules","title","subtitle","progression","sections","mandatoryCompletedModulesLocal","container","titleContainer","statscontainer","stats","statsNumber","customProgressBar","positive","statsProgressionMobile","details","commonDetailSectionPropTypes","oneOf","string","number","contextTypes","childContextTypes","propTypes","bool","arrayOf","shape"],"sources":["../../../src/molecule/progress-wrapper/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, map} from 'lodash/fp';\nimport Title from '../../atom/title';\nimport ProgressBar from '../progress-bar';\nimport {COLORS} from '../../variables/colors';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport Icon from '../../atom/icon';\nimport Provider from '../../atom/provider';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst uncappedMap = map.convert({cap: false});\n\nconst DetailSection = ({index, type, isLocked, downloadUrl, stars}, context) => {\n const {translate} = context;\n const isTypeStars = type === 'stars';\n\n const DownloadButton = (\n <ButtonLink\n label={translate('download')}\n link={{\n target: '_blank',\n href: downloadUrl\n }}\n data-name=\"download-button\"\n aria-label=\"download button\"\n customStyle={{backgroundColor: '#F1F6FE', color: '#0061FF'}}\n icon={{\n position: 'left',\n faIcon: {\n name: 'download',\n color: '#0061FF',\n size: 14,\n customStyle: {padding: 0}\n }\n }}\n disabled={isLocked}\n />\n );\n\n const LockedTag = (\n <Tag\n label=\"Locked\"\n size=\"S\"\n icon={{\n position: 'left',\n iconName: 'lock',\n iconColor: '#515161',\n preset: 's',\n customStyle: {padding: 0}\n }}\n />\n );\n\n return isTypeStars ? (\n <div className={style[`detailsSection${index}`]}>\n <div className={style.detailsInfo}>\n <div className={style.detailsInfoText}>\n <span className={style.detailsTitle}>{translate('bonus_stars')}</span>\n {isLocked ? LockedTag : null}\n </div>\n <div className={style.stars}>\n <Icon iconName=\"star\" iconColor=\"#FFCE0A\" backgroundColor=\"#FFF9D1\" preset=\"xl\" />\n <span>{stars}</span>\n </div>\n </div>\n </div>\n ) : (\n <div className={style[`detailsSection${index}`]}>\n <img\n className={style.img}\n src={\n type === 'badge'\n ? downloadUrl\n : 'https://s3.eu-west-1.amazonaws.com/static.coorpacademy.com/assets/images/diploma.svg'\n }\n />\n <div className={style.detailsInfo}>\n <div className={style.detailsInfoText}>\n <span className={style.detailsTitle}>\n {type === 'diploma' ? translate('diploma') : translate('badge')}\n </span>\n {isLocked ? LockedTag : null}\n </div>\n\n <div className={style.buttonContainer}>{DownloadButton}</div>\n </div>\n </div>\n );\n};\n\nconst ProgressWrapper = (\n {completedModules, mandatoryModules, title, subtitle, progression, sections},\n context\n) => {\n const {translate} = context;\n const mandatoryCompletedModulesLocal = translate('modules_completed_mandatory');\n const isLocked = progression !== 100;\n\n return (\n <div className={style.container}>\n <div className={style.titleContainer}>\n <Title type=\"form-group\" titleSize=\"medium\" title={title} subtitle={subtitle} />\n </div>\n <div className={style.statscontainer}>\n <div className={style.stats}>\n <div>\n <span className={style.statsNumber}>\n {`${\n completedModules > mandatoryModules ? mandatoryModules : completedModules\n } / ${mandatoryModules}`}\n </span>\n {mandatoryCompletedModulesLocal}\n </div>\n </div>\n <div className={style.progression}>\n <span className={style.statsNumber}>{progression}%</span>\n </div>\n </div>\n <ProgressBar\n className={style.customProgressBar}\n style={{backgroundColor: COLORS.positive}}\n displayInfo={false}\n value={progression}\n max={100}\n />\n <div className={style.statsProgressionMobile}>\n <span className={style.statsNumber}>{progression}%</span>\n </div>\n\n {isEmpty(sections) ? null : (\n <div className={style.details}>\n {uncappedMap(\n ({type, stars, downloadUrl}, index) => (\n <DetailSection\n {...{type, isLocked, downloadUrl, stars}}\n key={`${type}-${index}`}\n index={index}\n />\n ),\n sections\n )}\n </div>\n )}\n </div>\n );\n};\n\nconst commonDetailSectionPropTypes = {\n type: PropTypes.oneOf(['diploma', 'badge', 'stars']),\n downloadUrl: PropTypes.string,\n stars: PropTypes.number\n};\n\nDetailSection.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nDetailSection.propTypes = {\n index: PropTypes.number,\n isLocked: PropTypes.bool,\n ...commonDetailSectionPropTypes\n};\n\nProgressWrapper.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nProgressWrapper.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n completedModules: PropTypes.number,\n mandatoryModules: PropTypes.number,\n progression: PropTypes.number,\n sections: PropTypes.arrayOf(PropTypes.shape(commonDetailSectionPropTypes))\n};\n\nexport default ProgressWrapper;\n"],"mappings":"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"}
@@ -41,14 +41,6 @@
41
41
  gap: 16px;
42
42
  }
43
43
 
44
- .divider {
45
- width: 4px;
46
- height: 4px;
47
- background-color: #d7d7da;
48
- border: solid #d7d7da 1px;
49
- border-radius: 4px;
50
- }
51
-
52
44
  .progression {
53
45
  display: flex;
54
46
  justify-content: end;
@@ -129,10 +121,6 @@
129
121
  font-weight: 700;
130
122
  }
131
123
 
132
- .statsMobile {
133
- display: none;
134
- }
135
-
136
124
  .statsModuleMobile {
137
125
  display: none;
138
126
  }
@@ -140,6 +128,9 @@
140
128
  .statsProgressionMobile {
141
129
  composes: progression;
142
130
  display: none;
131
+ color: cm_grey_400;
132
+ font-weight: 600;
133
+ padding-top: 16px;
143
134
  }
144
135
 
145
136
  @media mobile, tablet {
@@ -160,12 +151,6 @@
160
151
  justify-content: space-around;
161
152
  gap: 0;
162
153
  }
163
- .divider {
164
- display: none;
165
- }
166
- .statsModule {
167
- display: none;
168
- }
169
154
  .progression {
170
155
  display: none;
171
156
  }
@@ -175,11 +160,4 @@
175
160
  .statsModuleMobile {
176
161
  display: block;
177
162
  }
178
- .statsMobile {
179
- display: flex;
180
- justify-content: space-between;
181
- padding-top: 16px;
182
- color: cm_grey_400;
183
- font-weight: 600;
184
- }
185
163
  }
@@ -33,21 +33,14 @@ declare namespace CertificationDetail {
33
33
  const metrics: PropTypes.Requireable<PropTypes.InferProps<{
34
34
  progression: PropTypes.Requireable<number>;
35
35
  stars: PropTypes.Requireable<number>;
36
- completedCourses: PropTypes.Requireable<number>;
37
36
  completedModules: PropTypes.Requireable<number>;
37
+ mandatoryModules: PropTypes.Requireable<number>;
38
+ totalModules: PropTypes.Requireable<number>;
39
+ totalCourses: PropTypes.Requireable<number>;
38
40
  }>>;
39
- const onDownloadDiploma: PropTypes.Requireable<(...args: any[]) => any>;
40
- const badge: PropTypes.Requireable<PropTypes.InferProps<{
41
- badgeUrl: PropTypes.Requireable<string>;
42
- onDownloadBadge: PropTypes.Requireable<(...args: any[]) => any>;
43
- }>>;
44
- const ongoingCourses: PropTypes.Requireable<PropTypes.InferProps<{
45
- list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
46
- customStyle: PropTypes.Requireable<{
47
- [x: string]: string | null | undefined;
48
- }>;
49
- loading: PropTypes.Requireable<boolean>;
50
- }>>;
41
+ const diplomaUrl: PropTypes.Requireable<string>;
42
+ const badgeUrl: PropTypes.Requireable<string>;
43
+ const ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
51
44
  const certificationCourses: PropTypes.Requireable<PropTypes.InferProps<{
52
45
  list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
53
46
  customStyle: PropTypes.Requireable<{
@@ -55,8 +48,6 @@ declare namespace CertificationDetail {
55
48
  }>;
56
49
  loading: PropTypes.Requireable<boolean>;
57
50
  }>>;
58
- const totalCourses: PropTypes.Requireable<number>;
59
- const totalModules: PropTypes.Requireable<number>;
60
51
  const filters: PropTypes.Requireable<PropTypes.InferProps<{
61
52
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
62
53
  options: PropTypes.Requireable<(PropTypes.InferProps<{
@@ -66,37 +57,6 @@ declare namespace CertificationDetail {
66
57
  validOption: PropTypes.Requireable<boolean>;
67
58
  }> | null | undefined)[]>;
68
59
  }>>;
69
- const sorting: PropTypes.Requireable<PropTypes.InferProps<{
70
- title: PropTypes.Requireable<string>;
71
- name: PropTypes.Requireable<string>;
72
- className: PropTypes.Requireable<string>;
73
- borderClassName: PropTypes.Requireable<string>;
74
- disabled: PropTypes.Requireable<boolean>;
75
- multiple: PropTypes.Requireable<boolean>;
76
- description: PropTypes.Requireable<string>;
77
- required: PropTypes.Requireable<boolean>;
78
- onChange: PropTypes.Requireable<(...args: any[]) => any>;
79
- theme: PropTypes.Requireable<string>;
80
- options: PropTypes.Requireable<(PropTypes.InferProps<{
81
- name: PropTypes.Validator<string>;
82
- value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
83
- selected: PropTypes.Requireable<boolean>;
84
- validOption: PropTypes.Requireable<boolean>;
85
- }> | null | undefined)[]>;
86
- optgroups: PropTypes.Requireable<(PropTypes.InferProps<{
87
- label: PropTypes.Validator<string>;
88
- options: PropTypes.Requireable<(PropTypes.InferProps<{
89
- name: PropTypes.Validator<string>;
90
- value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
91
- selected: PropTypes.Requireable<boolean>;
92
- validOption: PropTypes.Requireable<boolean>;
93
- }> | null | undefined)[]>;
94
- }> | null | undefined)[]>;
95
- modified: PropTypes.Requireable<boolean>;
96
- error: PropTypes.Requireable<boolean>;
97
- 'aria-label': PropTypes.Requireable<string>;
98
- 'aria-labelledby': PropTypes.Requireable<string>;
99
- }>>;
100
60
  const onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
101
61
  const onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
102
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAkBA,4EA8GC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAiBA,4EAgGC"}
@@ -5,12 +5,11 @@ import PropTypes from 'prop-types';
5
5
  import classnames from 'classnames';
6
6
  import Provider from '../../atom/provider';
7
7
  import Tag from '../../atom/tag';
8
- import Select, { SelectOptionPropTypes } from '../../atom/select';
8
+ import { SelectOptionPropTypes } from '../../atom/select';
9
9
  import ButtonLinkIcon from '../../atom/button-link-icon';
10
10
  import Icon from '../../atom/icon';
11
11
  import CardsGrid from '../../organism/cards-grid';
12
12
  import AllCourses from '../skill-detail/all-courses';
13
- import ContinueLearning from '../skill-detail/continue-learning';
14
13
  import { ContinueLearningButton } from '../skill-detail';
15
14
  import ProgressWrapper from '../../molecule/progress-wrapper';
16
15
  import style from './style.css';
@@ -22,31 +21,26 @@ const CertificationDetail = (props, context) => {
22
21
  title,
23
22
  description,
24
23
  certificationCourses,
25
- ongoingCourses,
26
- totalCourses,
27
- totalModules,
24
+ ongoingCoursesAvailable,
28
25
  filters,
29
- sorting,
30
26
  onBackClick,
31
27
  onContinueLearningClick,
32
28
  metrics,
33
29
  logoUrl,
34
- onDownloadDiploma,
35
- badge = {}
30
+ diplomaUrl,
31
+ badgeUrl
36
32
  } = props;
37
33
  const {
38
34
  translate
39
35
  } = context;
40
36
  const {
41
37
  progression,
42
- completedCourses,
43
38
  completedModules,
44
- stars
39
+ mandatoryModules,
40
+ stars,
41
+ totalModules,
42
+ totalCourses
45
43
  } = metrics;
46
- const {
47
- badgeUrl = false,
48
- onDownloadBadge
49
- } = badge;
50
44
  const [showMore, setShowMore] = useState(false);
51
45
  const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);
52
46
  const Description = useCallback(() => {
@@ -88,28 +82,21 @@ const CertificationDetail = (props, context) => {
88
82
  }
89
83
  })) : null) : null, /*#__PURE__*/React.createElement("div", {
90
84
  className: style.contentStats
91
- }, /*#__PURE__*/React.createElement("span", null, `${totalCourses} ${_lowerCase(translate('courses'))}`), /*#__PURE__*/React.createElement("div", {
92
- className: style.divider
93
- }), /*#__PURE__*/React.createElement("span", null, `${totalModules} ${_lowerCase(translate('modules'))}`)), /*#__PURE__*/React.createElement(ContinueLearningButton, {
94
- ongoingCoursesAvailable: !!ongoingCourses.list.length,
85
+ }, /*#__PURE__*/React.createElement("span", null, `${totalModules} ${_lowerCase(translate('modules'))}`)), /*#__PURE__*/React.createElement(ContinueLearningButton, {
86
+ ongoingCoursesAvailable: ongoingCoursesAvailable,
95
87
  onClick: onContinueLearningClick
96
- }))), /*#__PURE__*/React.createElement("div", {
97
- className: style.continueLearningSection
98
- }, /*#__PURE__*/React.createElement(ContinueLearning, {
99
- ongoingCourses: ongoingCourses
100
- })), /*#__PURE__*/React.createElement(ProgressWrapper, {
88
+ }))), /*#__PURE__*/React.createElement(ProgressWrapper, {
101
89
  title: translate('your_progress'),
102
90
  subtitle: translate('certification_progress_wrapper_subtitle'),
103
91
  progression: progression,
104
- completedCourses: completedCourses,
105
92
  completedModules: completedModules,
93
+ mandatoryModules: mandatoryModules,
106
94
  sections: _compact([{
107
95
  type: 'diploma',
108
- onDownload: () => onDownloadDiploma
96
+ downloadUrl: diplomaUrl
109
97
  }, badgeUrl && {
110
98
  type: 'badge',
111
- badgeUrl,
112
- onDownload: () => onDownloadBadge
99
+ downloadUrl: badgeUrl
113
100
  }, {
114
101
  type: 'stars',
115
102
  stars
@@ -117,8 +104,7 @@ const CertificationDetail = (props, context) => {
117
104
  }), /*#__PURE__*/React.createElement(AllCourses, {
118
105
  courses: certificationCourses,
119
106
  totalCourses: totalCourses,
120
- filters: filters,
121
- sorting: sorting
107
+ filters: filters
122
108
  })));
123
109
  };
124
110
 
@@ -134,23 +120,19 @@ CertificationDetail.propTypes = process.env.NODE_ENV !== "production" ? {
134
120
  metrics: PropTypes.shape({
135
121
  progression: PropTypes.number,
136
122
  stars: PropTypes.number,
137
- completedCourses: PropTypes.number,
138
- completedModules: PropTypes.number
139
- }),
140
- onDownloadDiploma: PropTypes.func,
141
- badge: PropTypes.shape({
142
- badgeUrl: PropTypes.string,
143
- onDownloadBadge: PropTypes.func
123
+ completedModules: PropTypes.number,
124
+ mandatoryModules: PropTypes.number,
125
+ totalModules: PropTypes.number,
126
+ totalCourses: PropTypes.number
144
127
  }),
145
- ongoingCourses: PropTypes.shape(CardsGrid.propTypes),
128
+ diplomaUrl: PropTypes.string,
129
+ badgeUrl: PropTypes.string,
130
+ ongoingCoursesAvailable: PropTypes.bool,
146
131
  certificationCourses: PropTypes.shape(CardsGrid.propTypes),
147
- totalCourses: PropTypes.number,
148
- totalModules: PropTypes.number,
149
132
  filters: PropTypes.shape({
150
133
  onChange: PropTypes.func,
151
134
  options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))
152
135
  }),
153
- sorting: PropTypes.shape(Select.propTypes),
154
136
  onBackClick: PropTypes.func,
155
137
  onContinueLearningClick: PropTypes.func
156
138
  } : {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","PropTypes","classnames","Provider","Tag","Select","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","ContinueLearning","ContinueLearningButton","ProgressWrapper","style","DESCRIPTION_BREAKPOINT","CertificationDetail","props","context","certificationRef","title","description","certificationCourses","ongoingCourses","totalCourses","totalModules","filters","sorting","onBackClick","onContinueLearningClick","metrics","logoUrl","onDownloadDiploma","badge","translate","progression","completedCourses","completedModules","stars","badgeUrl","onDownloadBadge","showMore","setShowMore","handleShowMore","Description","truncate","backgroundContainer","container","backButton","ctaContainer","logoContainer","logo","length","showMoreWrapper","faSize","wrapperSize","contentStats","divider","list","continueLearningSection","type","onDownload","contextTypes","skin","childContextTypes","propTypes","string","isRequired","shape","number","func","onChange","options","arrayOf"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, lowerCase} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport ContinueLearning from '../skill-detail/continue-learning';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst DESCRIPTION_BREAKPOINT = 382;\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n description,\n certificationCourses,\n ongoingCourses,\n totalCourses,\n totalModules,\n filters,\n sorting,\n onBackClick,\n onContinueLearningClick,\n metrics,\n logoUrl,\n onDownloadDiploma,\n badge = {}\n } = props;\n const {translate} = context;\n const {progression, completedCourses, completedModules, stars} = metrics;\n const {badgeUrl = false, onDownloadBadge} = badge;\n\n const [showMore, setShowMore] = useState(false);\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n const Description = useCallback(() => {\n return (\n <div className={classnames(style.description, !showMore && style.truncate)}>\n {description}\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label=\"Back\"\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={translate('certification')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {description.length >= DESCRIPTION_BREAKPOINT ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${totalCourses} ${lowerCase(translate('courses'))}`}</span>\n <div className={style.divider} />\n <span>{`${totalModules} ${lowerCase(translate('modules'))}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={!!ongoingCourses.list.length}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <div className={style.continueLearningSection}>\n <ContinueLearning ongoingCourses={ongoingCourses} />\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedCourses={completedCourses}\n completedModules={completedModules}\n sections={compact([\n {\n type: 'diploma',\n onDownload: () => onDownloadDiploma\n },\n badgeUrl && {\n type: 'badge',\n badgeUrl,\n onDownload: () => onDownloadBadge\n },\n {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses\n courses={certificationCourses}\n totalCourses={totalCourses}\n filters={filters}\n sorting={sorting}\n />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n completedCourses: PropTypes.number,\n completedModules: PropTypes.number\n }),\n onDownloadDiploma: PropTypes.func,\n badge: PropTypes.shape({\n badgeUrl: PropTypes.string,\n onDownloadBadge: PropTypes.func\n }),\n ongoingCourses: PropTypes.shape(CardsGrid.propTypes),\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n totalCourses: PropTypes.number,\n totalModules: PropTypes.number,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n sorting: PropTypes.shape(Select.propTypes),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func\n};\n\nexport default CertificationDetail;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","PropTypes","classnames","Provider","Tag","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","ContinueLearningButton","ProgressWrapper","style","DESCRIPTION_BREAKPOINT","CertificationDetail","props","context","certificationRef","title","description","certificationCourses","ongoingCoursesAvailable","filters","onBackClick","onContinueLearningClick","metrics","logoUrl","diplomaUrl","badgeUrl","translate","progression","completedModules","mandatoryModules","stars","totalModules","totalCourses","showMore","setShowMore","handleShowMore","Description","truncate","backgroundContainer","container","backButton","ctaContainer","logoContainer","logo","length","showMoreWrapper","faSize","wrapperSize","contentStats","type","downloadUrl","contextTypes","skin","childContextTypes","propTypes","string","isRequired","shape","number","bool","onChange","func","options","arrayOf"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, lowerCase} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst DESCRIPTION_BREAKPOINT = 382;\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n description,\n certificationCourses,\n ongoingCoursesAvailable,\n filters,\n onBackClick,\n onContinueLearningClick,\n metrics,\n logoUrl,\n diplomaUrl,\n badgeUrl\n } = props;\n const {translate} = context;\n const {progression, completedModules, mandatoryModules, stars, totalModules, totalCourses} =\n metrics;\n\n const [showMore, setShowMore] = useState(false);\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n const Description = useCallback(() => {\n return (\n <div className={classnames(style.description, !showMore && style.truncate)}>\n {description}\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label=\"Back\"\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={translate('certification')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {description.length >= DESCRIPTION_BREAKPOINT ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${totalModules} ${lowerCase(translate('modules'))}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedModules={completedModules}\n mandatoryModules={mandatoryModules}\n sections={compact([\n {\n type: 'diploma',\n downloadUrl: diplomaUrl\n },\n badgeUrl && {\n type: 'badge',\n downloadUrl: badgeUrl\n },\n {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses courses={certificationCourses} totalCourses={totalCourses} filters={filters} />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n completedModules: PropTypes.number,\n mandatoryModules: PropTypes.number,\n totalModules: PropTypes.number,\n totalCourses: PropTypes.number\n }),\n diplomaUrl: PropTypes.string,\n badgeUrl: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func\n};\n\nexport default CertificationDetail;\n"],"mappings":"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"}
@@ -8,14 +8,6 @@
8
8
  @value cm_grey_200 from colors;
9
9
  @value cm_grey_400 from colors;
10
10
 
11
- .divider {
12
- width: 4px;
13
- height: 4px;
14
- background-color: cm_grey_400;
15
- border: solid cm_grey_400 1px;
16
- border-radius: 4px;
17
- }
18
-
19
11
  .textBase {
20
12
  font-family: "Gilroy";
21
13
  font-style: normal;
@@ -53,6 +45,7 @@
53
45
  align-items: center;
54
46
  width: 100%;
55
47
  gap: 40px;
48
+ margin-bottom: 40px;
56
49
  }
57
50
 
58
51
  .logoContainer {
@@ -112,10 +105,6 @@
112
105
  color: cm_grey_400;
113
106
  }
114
107
 
115
- .continueLearningSection {
116
- padding: 24px 0 32px 0;
117
- }
118
-
119
108
  @media tablet {
120
109
  .ctaContainer {
121
110
  flex-direction: column;
@@ -1 +1 @@
1
- {"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.js"],"names":[],"mappings":";AA2CA,mEAwHC"}
1
+ {"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.js"],"names":[],"mappings":";AA2CA,mEA0HC"}
@@ -126,9 +126,9 @@ const AllCourses = (props, context) => {
126
126
  "aria-label": 'Show completed courses aria label',
127
127
  value: showCompleted,
128
128
  onChange: handleShowCompletedToggle
129
- }), /*#__PURE__*/React.createElement("div", {
129
+ }), sortView ? /*#__PURE__*/React.createElement("div", {
130
130
  className: style.sortWrapper
131
- }, translate('sort_by'), sortView))), /*#__PURE__*/React.createElement("div", {
131
+ }, translate('sort_by'), sortView) : null)), /*#__PURE__*/React.createElement("div", {
132
132
  className: style.filterWrapper
133
133
  }, options.length > 2 && searchResults.length > 0 ? options.map((filter, index) => {
134
134
  const {