@coorpacademy/components 11.13.7-alpha.8 → 11.14.0

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 (35) hide show
  1. package/es/molecule/discipline-header/index.d.ts +1 -0
  2. package/es/molecule/discipline-header/index.d.ts.map +1 -1
  3. package/es/molecule/discipline-header/index.js +24 -9
  4. package/es/molecule/discipline-header/index.js.map +1 -1
  5. package/es/molecule/discipline-header/style.css +33 -7
  6. package/es/template/common/discipline/index.d.ts.map +1 -1
  7. package/es/template/common/discipline/index.js +4 -2
  8. package/es/template/common/discipline/index.js.map +1 -1
  9. package/lib/molecule/discipline-header/index.d.ts +1 -0
  10. package/lib/molecule/discipline-header/index.d.ts.map +1 -1
  11. package/lib/molecule/discipline-header/index.js +25 -9
  12. package/lib/molecule/discipline-header/index.js.map +1 -1
  13. package/lib/molecule/discipline-header/style.css +33 -7
  14. package/lib/template/common/discipline/index.d.ts.map +1 -1
  15. package/lib/template/common/discipline/index.js +4 -2
  16. package/lib/template/common/discipline/index.js.map +1 -1
  17. package/package.json +3 -3
  18. package/es/atom/form-text-input/index.d.ts +0 -26
  19. package/es/atom/form-text-input/index.d.ts.map +0 -1
  20. package/es/atom/form-text-input/index.js +0 -103
  21. package/es/atom/form-text-input/index.js.map +0 -1
  22. package/es/atom/form-text-input/prop-types.d.ts +0 -54
  23. package/es/atom/form-text-input/prop-types.d.ts.map +0 -1
  24. package/es/atom/form-text-input/prop-types.js +0 -34
  25. package/es/atom/form-text-input/prop-types.js.map +0 -1
  26. package/es/atom/form-text-input/style.css +0 -53
  27. package/lib/atom/form-text-input/index.d.ts +0 -26
  28. package/lib/atom/form-text-input/index.d.ts.map +0 -1
  29. package/lib/atom/form-text-input/index.js +0 -121
  30. package/lib/atom/form-text-input/index.js.map +0 -1
  31. package/lib/atom/form-text-input/prop-types.d.ts +0 -54
  32. package/lib/atom/form-text-input/prop-types.d.ts.map +0 -1
  33. package/lib/atom/form-text-input/prop-types.js +0 -45
  34. package/lib/atom/form-text-input/prop-types.js.map +0 -1
  35. package/lib/atom/form-text-input/style.css +0 -53
@@ -39,6 +39,7 @@ declare class DisciplineHeader extends React.Component<any, any, any> {
39
39
  }>>;
40
40
  mimeType: PropTypes.Validator<string>;
41
41
  }>>;
42
+ lastUpdated: PropTypes.Requireable<string>;
42
43
  };
43
44
  static contextTypes: {
44
45
  translate: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-header/index.js"],"names":[],"mappings":";AA2BA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKE;IAEF;;MAEE;IAEF,wBAQC;IANC;;;MAGC;IAKH,4BAIC;IAED,yBAEC;IAED,sBAsCC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-header/index.js"],"names":[],"mappings":";AA4BA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAME;IAEF;;MAEE;IAEF,wBAQC;IANC;;;MAGC;IAKH,4BAIC;IAED,yBAEC;IAED,sBAqDC;CACF"}
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import get from 'lodash/fp/get';
4
4
  import getOr from 'lodash/fp/getOr';
5
5
  import classnames from 'classnames';
6
+ import { NovaSolidSynchronizeSynchronize3 as SyncIcon } from '@coorpacademy/nova-icons';
6
7
  import VideoPlayer from '../video-player';
7
8
  import Picture from '../../atom/picture';
8
9
  import style from './style.css';
@@ -65,7 +66,8 @@ class DisciplineHeader extends React.Component {
65
66
  image,
66
67
  title,
67
68
  description,
68
- video
69
+ video,
70
+ lastUpdated
69
71
  } = this.props;
70
72
  const {
71
73
  fullDisplay,
@@ -74,19 +76,23 @@ class DisciplineHeader extends React.Component {
74
76
  const {
75
77
  translate
76
78
  } = this.context;
77
- const maxHeightDescription = 219;
79
+ const maxHeightCourseInfos = 209;
80
+ const hasMediaContent = image || video;
78
81
  const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');
79
- const descritpionViewStyle = offsetHeightShowMore <= maxHeightDescription ? style.showMoreHidden : style.showMore;
82
+ const shortCourseText = offsetHeightShowMore <= maxHeightCourseInfos;
83
+ const courseSeeMoreButtonStyle = shortCourseText ? style.showMoreHidden : style.showMore;
80
84
  return /*#__PURE__*/React.createElement("div", {
81
85
  "data-name": "disciplineHeader",
82
86
  className: style.wrapper
83
- }, image || video ? /*#__PURE__*/React.createElement("div", {
87
+ }, hasMediaContent ? /*#__PURE__*/React.createElement("div", {
84
88
  className: style.imgWrapper
85
89
  }, /*#__PURE__*/React.createElement(Preview, {
86
90
  image: image,
87
91
  video: video
88
92
  })) : null, /*#__PURE__*/React.createElement("div", {
89
93
  className: style.courseWrapper
94
+ }, /*#__PURE__*/React.createElement("div", {
95
+ className: fullDisplay ? style.courseTextWrapperFull : style.courseTextWrapperShort
90
96
  }, /*#__PURE__*/React.createElement("div", {
91
97
  "data-name": "title",
92
98
  className: classnames(style.title, style.innerHTML) // eslint-disable-next-line react/no-danger
@@ -95,8 +101,6 @@ class DisciplineHeader extends React.Component {
95
101
  __html: title
96
102
  }
97
103
  }), /*#__PURE__*/React.createElement("div", {
98
- className: fullDisplay ? style.desc : style.shortDesc
99
- }, /*#__PURE__*/React.createElement("div", {
100
104
  className: style.innerHTML // eslint-disable-next-line react/no-danger
101
105
  ,
102
106
  dangerouslySetInnerHTML: {
@@ -104,9 +108,19 @@ class DisciplineHeader extends React.Component {
104
108
  },
105
109
  ref: this.setHandle
106
110
  })), /*#__PURE__*/React.createElement("div", {
107
- className: descritpionViewStyle,
111
+ className: courseSeeMoreButtonStyle,
108
112
  onClick: this.handleToggleDisplay
109
- }, toggleLabel)));
113
+ }, toggleLabel), lastUpdated ? /*#__PURE__*/React.createElement("div", {
114
+ className: classnames(style.lastUpdatedWrapper, shortCourseText ? style.lastUpdatedWrapperShort : null)
115
+ }, /*#__PURE__*/React.createElement(SyncIcon, {
116
+ className: style.syncIcon
117
+ }), /*#__PURE__*/React.createElement("div", {
118
+ className: classnames(style.lastUpdatedText, style.innerHTML) // eslint-disable-next-line react/no-danger
119
+ ,
120
+ dangerouslySetInnerHTML: {
121
+ __html: lastUpdated
122
+ }
123
+ })) : null));
110
124
  }
111
125
 
112
126
  }
@@ -118,7 +132,8 @@ DisciplineHeader.propTypes = process.env.NODE_ENV !== "production" ? {
118
132
  title: PropTypes.string,
119
133
  description: PropTypes.string,
120
134
  image: Preview.propTypes.image,
121
- video: Preview.propTypes.video
135
+ video: Preview.propTypes.video,
136
+ lastUpdated: PropTypes.string
122
137
  } : {};
123
138
  export default DisciplineHeader;
124
139
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","get","getOr","classnames","VideoPlayer","Picture","style","Preview","image","video","mimeType","id","jwpOptions","propTypes","src","shape","DisciplineHeader","Component","constructor","props","state","fullDisplay","offsetHeightShowMore","handleToggleDisplay","bind","setHandle","setState","prevState","el","render","title","description","translate","context","maxHeightDescription","toggleLabel","descritpionViewStyle","showMoreHidden","showMore","wrapper","imgWrapper","courseWrapper","innerHTML","__html","desc","shortDesc","contextTypes","func","string"],"sources":["../../../src/molecule/discipline-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport classnames from 'classnames';\nimport VideoPlayer from '../video-player';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst Preview = ({image, video}) => {\n const mimeType = get('mimeType', video);\n const id = get('id', video);\n const jwpOptions = get('jwpOptions', video);\n if (id) {\n return <VideoPlayer mimeType={mimeType} id={id} width=\"380px\" height=\"250px\" />;\n } else if (jwpOptions) {\n return <VideoPlayer {...video} />;\n } else {\n return <Picture className={style.image} src={image} />;\n }\n};\n\nPreview.propTypes = {\n image: Picture.propTypes.src,\n video: PropTypes.shape(VideoPlayer.propTypes)\n};\n\nclass DisciplineHeader extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n image: Preview.propTypes.image,\n video: Preview.propTypes.video\n };\n\n static contextTypes = {\n translate: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n fullDisplay: false,\n offsetHeightShowMore: 0\n };\n this.handleToggleDisplay = this.handleToggleDisplay.bind(this);\n this.setHandle = this.setHandle.bind(this);\n }\n\n handleToggleDisplay() {\n this.setState(prevState => ({\n fullDisplay: !prevState.fullDisplay\n }));\n }\n\n setHandle(el) {\n this.setState({offsetHeightShowMore: getOr(0, 'offsetHeight', el)});\n }\n\n render() {\n const {image, title, description, video} = this.props;\n const {fullDisplay, offsetHeightShowMore} = this.state;\n const {translate} = this.context;\n const maxHeightDescription = 219;\n\n const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');\n const descritpionViewStyle =\n offsetHeightShowMore <= maxHeightDescription ? style.showMoreHidden : style.showMore;\n\n return (\n <div data-name=\"disciplineHeader\" className={style.wrapper}>\n {image || video ? (\n <div className={style.imgWrapper}>\n <Preview image={image} video={video} />\n </div>\n ) : null}\n <div className={style.courseWrapper}>\n <div\n data-name=\"title\"\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <div className={fullDisplay ? style.desc : style.shortDesc}>\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n ref={this.setHandle}\n />\n </div>\n <div className={descritpionViewStyle} onClick={this.handleToggleDisplay}>\n {toggleLabel}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default DisciplineHeader;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","get","getOr","classnames","NovaSolidSynchronizeSynchronize3","SyncIcon","VideoPlayer","Picture","style","Preview","image","video","mimeType","id","jwpOptions","propTypes","src","shape","DisciplineHeader","Component","constructor","props","state","fullDisplay","offsetHeightShowMore","handleToggleDisplay","bind","setHandle","setState","prevState","el","render","title","description","lastUpdated","translate","context","maxHeightCourseInfos","hasMediaContent","toggleLabel","shortCourseText","courseSeeMoreButtonStyle","showMoreHidden","showMore","wrapper","imgWrapper","courseWrapper","courseTextWrapperFull","courseTextWrapperShort","innerHTML","__html","lastUpdatedWrapper","lastUpdatedWrapperShort","syncIcon","lastUpdatedText","contextTypes","func","string"],"sources":["../../../src/molecule/discipline-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport classnames from 'classnames';\nimport {NovaSolidSynchronizeSynchronize3 as SyncIcon} from '@coorpacademy/nova-icons';\nimport VideoPlayer from '../video-player';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst Preview = ({image, video}) => {\n const mimeType = get('mimeType', video);\n const id = get('id', video);\n const jwpOptions = get('jwpOptions', video);\n if (id) {\n return <VideoPlayer mimeType={mimeType} id={id} width=\"380px\" height=\"250px\" />;\n } else if (jwpOptions) {\n return <VideoPlayer {...video} />;\n } else {\n return <Picture className={style.image} src={image} />;\n }\n};\n\nPreview.propTypes = {\n image: Picture.propTypes.src,\n video: PropTypes.shape(VideoPlayer.propTypes)\n};\n\nclass DisciplineHeader extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n image: Preview.propTypes.image,\n video: Preview.propTypes.video,\n lastUpdated: PropTypes.string\n };\n\n static contextTypes = {\n translate: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n fullDisplay: false,\n offsetHeightShowMore: 0\n };\n this.handleToggleDisplay = this.handleToggleDisplay.bind(this);\n this.setHandle = this.setHandle.bind(this);\n }\n\n handleToggleDisplay() {\n this.setState(prevState => ({\n fullDisplay: !prevState.fullDisplay\n }));\n }\n\n setHandle(el) {\n this.setState({offsetHeightShowMore: getOr(0, 'offsetHeight', el)});\n }\n\n render() {\n const {image, title, description, video, lastUpdated} = this.props;\n const {fullDisplay, offsetHeightShowMore} = this.state;\n const {translate} = this.context;\n const maxHeightCourseInfos = 209;\n const hasMediaContent = image || video;\n const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');\n const shortCourseText = offsetHeightShowMore <= maxHeightCourseInfos;\n const courseSeeMoreButtonStyle = shortCourseText ? style.showMoreHidden : style.showMore;\n\n return (\n <div data-name=\"disciplineHeader\" className={style.wrapper}>\n {hasMediaContent ? (\n <div className={style.imgWrapper}>\n <Preview image={image} video={video} />\n </div>\n ) : null}\n <div className={style.courseWrapper}>\n <div className={fullDisplay ? style.courseTextWrapperFull : style.courseTextWrapperShort}>\n <div\n data-name=\"title\"\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n ref={this.setHandle}\n />\n </div>\n <div className={courseSeeMoreButtonStyle} onClick={this.handleToggleDisplay}>\n {toggleLabel}\n </div>\n {lastUpdated ? (\n <div\n className={classnames(\n style.lastUpdatedWrapper,\n shortCourseText ? style.lastUpdatedWrapperShort : null\n )}\n >\n <SyncIcon className={style.syncIcon} />\n <div\n className={classnames(style.lastUpdatedText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: lastUpdated}}\n />\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n}\n\nexport default DisciplineHeader;\n"],"mappings":"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"}
@@ -45,7 +45,7 @@
45
45
  color: dark;
46
46
  }
47
47
 
48
- .desc {
48
+ .courseTextWrapperFull {
49
49
  font-family: "Gilroy";
50
50
  font-size: 15px;
51
51
  color: black;
@@ -53,14 +53,14 @@
53
53
  line-height: 22px;
54
54
  }
55
55
 
56
- .desc a {
56
+ .courseTextWrapperFull a {
57
57
  font-family: Gilroy;
58
58
  font-weight: 600;
59
59
  color: brand;
60
60
  text-decoration: none;
61
61
  }
62
62
 
63
- .desc a:hover {
63
+ .courseTextWrapperFull a:hover {
64
64
  text-decoration: underline;
65
65
  }
66
66
 
@@ -68,10 +68,35 @@
68
68
  display: none;
69
69
  }
70
70
 
71
+ .lastUpdatedWrapperShort {
72
+ height: 28px;
73
+ align-items: flex-end;
74
+ }
75
+
76
+ .lastUpdatedWrapper {
77
+ display: flex;
78
+ margin-top: 8px;
79
+ }
80
+
81
+ .lastUpdatedText {
82
+ font-family: 'Gilroy';
83
+ font-style: normal;
84
+ font-weight: 600;
85
+ font-size: 12px;
86
+ line-height: 14px;
87
+ color: #536E7A;
88
+ }
89
+
90
+ .syncIcon {
91
+ height: 13px;
92
+ color: #536E7A;
93
+ margin-right: 3px;
94
+ align-items: center;
95
+ }
96
+
71
97
  .showMore {
72
98
  display: block;
73
99
  font-size: 14px;
74
- margin: 0 14px 0 0;
75
100
  transition: all time ease-in-out;
76
101
  cursor: pointer;
77
102
  order: 1;
@@ -85,9 +110,9 @@
85
110
  opacity: 0.8;
86
111
  }
87
112
 
88
- .shortDesc {
89
- composes: desc;
90
- height: 200px;
113
+ .courseTextWrapperShort {
114
+ composes: courseTextWrapperFull;
115
+ height: 213px;
91
116
  overflow: hidden;
92
117
  }
93
118
 
@@ -106,6 +131,7 @@
106
131
  margin-top: 20px;
107
132
  padding-left: 0;
108
133
  }
134
+
109
135
  }
110
136
 
111
137
  .innerHTML {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEAwJC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEA+JC"}
@@ -34,7 +34,8 @@ const Discipline = (props, context) => {
34
34
  addToMyListText,
35
35
  removeFromMyListText,
36
36
  disableShare = false,
37
- disableAddToMyList = false
37
+ disableAddToMyList = false,
38
+ lastUpdated
38
39
  } = props;
39
40
  const authorSection = isEmpty(authors) ? null : /*#__PURE__*/React.createElement("div", {
40
41
  className: style.partners
@@ -62,7 +63,8 @@ const Discipline = (props, context) => {
62
63
  image: image,
63
64
  video: video,
64
65
  title: title,
65
- description: description
66
+ description: description,
67
+ lastUpdated: lastUpdated
66
68
  }));
67
69
  const discipline = /*#__PURE__*/React.createElement("div", {
68
70
  "data-name": "discipline",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","isEmpty","PropTypes","DisciplineCTA","DisciplineHeader","DisciplinePartners","DisciplineScope","Share","ShareFeedback","ShareStatusProvider","AddToMyList","AddToMyListFeedback","AddToMyListStatusProvider","style","Discipline","props","context","selected","level","levels","changeLevel","image","title","video","authors","description","start","buy","startLabel","buyLabel","shareWording","shareText","shareSuccessWording","shareErrorWording","addToMyListButton","favorite","onFavoriteClick","addToMyListText","removeFromMyListText","disableShare","disableAddToMyList","authorSection","partners","disciplineCTA","disciplineContent","content","disciplineHeader","header","discipline","container","leftSection","mobileAuthorCtaSection","columnReverse","cta","addToMyListBtn","shareBtn","rightSection","stickySection","buttons","shareFeedBack","addToMyListFeedback","addToMyListProviderWrap","shareProviderWrap","propTypes","onClick","wording","text","successWording","errorWording","bool","contextTypes","translate","func"],"sources":["../../../../src/template/common/discipline/index.js"],"sourcesContent":["import React from 'react';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport PropTypes from 'prop-types';\nimport DisciplineCTA from '../../../molecule/discipline-cta';\nimport DisciplineHeader from '../../../molecule/discipline-header';\nimport DisciplinePartners from '../../../molecule/discipline-partners';\nimport DisciplineScope from '../../../molecule/discipline-scope';\nimport Share, {ShareFeedback, ShareStatusProvider} from '../../../molecule/share';\nimport AddToMyList, {\n AddToMyListFeedback,\n AddToMyListStatusProvider\n} from '../../../molecule/add-to-my-list';\nimport style from './style.css';\n\nconst Discipline = (props, context) => {\n const {\n selected = 0,\n level,\n levels,\n changeLevel,\n image,\n title = '',\n video,\n authors = [],\n description = '',\n start,\n buy,\n startLabel,\n buyLabel,\n shareWording,\n shareText,\n shareSuccessWording,\n shareErrorWording,\n addToMyListButton,\n favorite,\n onFavoriteClick,\n addToMyListText,\n removeFromMyListText,\n disableShare = false,\n disableAddToMyList = false\n } = props;\n\n const authorSection = isEmpty(authors) ? null : (\n <div className={style.partners}>\n <DisciplinePartners authors={authors} />\n </div>\n );\n\n const disciplineCTA = (\n <DisciplineCTA\n type={'discipline'}\n start={start}\n buy={buy}\n startLabel={startLabel}\n buyLabel={buyLabel}\n />\n );\n\n const disciplineContent = (\n <div className={style.content}>\n <DisciplineScope content={level} levels={levels} selected={selected} onClick={changeLevel} />\n </div>\n );\n\n const disciplineHeader = (\n <div className={style.header}>\n <DisciplineHeader image={image} video={video} title={title} description={description} />\n </div>\n );\n\n const discipline = (\n <div data-name=\"discipline\" className={style.container} key=\"discipline\">\n <div className={style.leftSection}>\n {disciplineHeader}\n <div className={style.mobileAuthorCtaSection}>\n <div className={style.columnReverse}>\n <div className={style.cta}>{disciplineCTA}</div>\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListTablet'}\n />\n )}\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareTablet'}\n />\n )}\n </div>\n {authorSection}\n </div>\n {disciplineContent}\n </div>\n <div className={style.rightSection}>\n <div className={style.stickySection}>\n <div className={style.cta}>\n {disciplineCTA}\n {disableShare && disableAddToMyList ? null : (\n <div className={style.buttons}>\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareDesktop'}\n />\n )}\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListDesktop'}\n />\n )}\n </div>\n )}\n </div>\n {authorSection}\n </div>\n </div>\n </div>\n );\n\n const shareFeedBack = disableShare ? null : (\n <ShareFeedback\n errorWording={shareErrorWording}\n successWording={shareSuccessWording}\n key=\"shareFeedBack\"\n />\n );\n\n const addToMyListFeedback = disableAddToMyList ? null : (\n <AddToMyListFeedback\n addToMyListText={addToMyListText}\n removeFromMyListText={removeFromMyListText}\n favorite={favorite}\n />\n );\n\n const addToMyListProviderWrap = disableAddToMyList ? (\n <>\n {shareFeedBack}\n {discipline}\n </>\n ) : (\n <AddToMyListStatusProvider>\n {shareFeedBack}\n {addToMyListFeedback}\n {discipline}\n </AddToMyListStatusProvider>\n );\n const shareProviderWrap = disableShare ? (\n addToMyListProviderWrap\n ) : (\n <ShareStatusProvider>{addToMyListProviderWrap}</ShareStatusProvider>\n );\n\n return shareProviderWrap;\n};\n\nDiscipline.propTypes = {\n image: DisciplineHeader.propTypes.image,\n video: DisciplineHeader.propTypes.video,\n title: DisciplineHeader.propTypes.title,\n description: DisciplineHeader.propTypes.description,\n start: DisciplineCTA.propTypes.start,\n buy: DisciplineCTA.propTypes.buy,\n startLabel: DisciplineCTA.propTypes.startLabel,\n buyLabel: DisciplineCTA.propTypes.buyLabel,\n authors: DisciplinePartners.propTypes.authors,\n level: DisciplineScope.propTypes.content,\n levels: DisciplineScope.propTypes.levels,\n selected: DisciplineScope.propTypes.selected,\n changeLevel: DisciplineScope.propTypes.onClick,\n shareWording: Share.propTypes.wording,\n shareText: Share.propTypes.text,\n shareSuccessWording: ShareFeedback.propTypes.successWording,\n shareErrorWording: ShareFeedback.propTypes.errorWording,\n addToMyListText: AddToMyListFeedback.propTypes.addToMyListText,\n removeFromMyListText: AddToMyListFeedback.propTypes.removeFromMyListText,\n addToMyListButton: AddToMyList.propTypes.addToMyListButton,\n onFavoriteClick: AddToMyList.propTypes.onFavoriteClick,\n favorite: AddToMyList.propTypes.favorite,\n disableShare: PropTypes.bool,\n disableAddToMyList: PropTypes.bool\n};\n\nDiscipline.contextTypes = {\n translate: PropTypes.func\n};\n\nexport default Discipline;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","isEmpty","PropTypes","DisciplineCTA","DisciplineHeader","DisciplinePartners","DisciplineScope","Share","ShareFeedback","ShareStatusProvider","AddToMyList","AddToMyListFeedback","AddToMyListStatusProvider","style","Discipline","props","context","selected","level","levels","changeLevel","image","title","video","authors","description","start","buy","startLabel","buyLabel","shareWording","shareText","shareSuccessWording","shareErrorWording","addToMyListButton","favorite","onFavoriteClick","addToMyListText","removeFromMyListText","disableShare","disableAddToMyList","lastUpdated","authorSection","partners","disciplineCTA","disciplineContent","content","disciplineHeader","header","discipline","container","leftSection","mobileAuthorCtaSection","columnReverse","cta","addToMyListBtn","shareBtn","rightSection","stickySection","buttons","shareFeedBack","addToMyListFeedback","addToMyListProviderWrap","shareProviderWrap","propTypes","onClick","wording","text","successWording","errorWording","bool","contextTypes","translate","func"],"sources":["../../../../src/template/common/discipline/index.js"],"sourcesContent":["import React from 'react';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport PropTypes from 'prop-types';\nimport DisciplineCTA from '../../../molecule/discipline-cta';\nimport DisciplineHeader from '../../../molecule/discipline-header';\nimport DisciplinePartners from '../../../molecule/discipline-partners';\nimport DisciplineScope from '../../../molecule/discipline-scope';\nimport Share, {ShareFeedback, ShareStatusProvider} from '../../../molecule/share';\nimport AddToMyList, {\n AddToMyListFeedback,\n AddToMyListStatusProvider\n} from '../../../molecule/add-to-my-list';\nimport style from './style.css';\n\nconst Discipline = (props, context) => {\n const {\n selected = 0,\n level,\n levels,\n changeLevel,\n image,\n title = '',\n video,\n authors = [],\n description = '',\n start,\n buy,\n startLabel,\n buyLabel,\n shareWording,\n shareText,\n shareSuccessWording,\n shareErrorWording,\n addToMyListButton,\n favorite,\n onFavoriteClick,\n addToMyListText,\n removeFromMyListText,\n disableShare = false,\n disableAddToMyList = false,\n lastUpdated\n } = props;\n\n const authorSection = isEmpty(authors) ? null : (\n <div className={style.partners}>\n <DisciplinePartners authors={authors} />\n </div>\n );\n\n const disciplineCTA = (\n <DisciplineCTA\n type={'discipline'}\n start={start}\n buy={buy}\n startLabel={startLabel}\n buyLabel={buyLabel}\n />\n );\n\n const disciplineContent = (\n <div className={style.content}>\n <DisciplineScope content={level} levels={levels} selected={selected} onClick={changeLevel} />\n </div>\n );\n\n const disciplineHeader = (\n <div className={style.header}>\n <DisciplineHeader\n image={image}\n video={video}\n title={title}\n description={description}\n lastUpdated={lastUpdated}\n />\n </div>\n );\n\n const discipline = (\n <div data-name=\"discipline\" className={style.container} key=\"discipline\">\n <div className={style.leftSection}>\n {disciplineHeader}\n <div className={style.mobileAuthorCtaSection}>\n <div className={style.columnReverse}>\n <div className={style.cta}>{disciplineCTA}</div>\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListTablet'}\n />\n )}\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareTablet'}\n />\n )}\n </div>\n {authorSection}\n </div>\n {disciplineContent}\n </div>\n <div className={style.rightSection}>\n <div className={style.stickySection}>\n <div className={style.cta}>\n {disciplineCTA}\n {disableShare && disableAddToMyList ? null : (\n <div className={style.buttons}>\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareDesktop'}\n />\n )}\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListDesktop'}\n />\n )}\n </div>\n )}\n </div>\n {authorSection}\n </div>\n </div>\n </div>\n );\n\n const shareFeedBack = disableShare ? null : (\n <ShareFeedback\n errorWording={shareErrorWording}\n successWording={shareSuccessWording}\n key=\"shareFeedBack\"\n />\n );\n\n const addToMyListFeedback = disableAddToMyList ? null : (\n <AddToMyListFeedback\n addToMyListText={addToMyListText}\n removeFromMyListText={removeFromMyListText}\n favorite={favorite}\n />\n );\n\n const addToMyListProviderWrap = disableAddToMyList ? (\n <>\n {shareFeedBack}\n {discipline}\n </>\n ) : (\n <AddToMyListStatusProvider>\n {shareFeedBack}\n {addToMyListFeedback}\n {discipline}\n </AddToMyListStatusProvider>\n );\n const shareProviderWrap = disableShare ? (\n addToMyListProviderWrap\n ) : (\n <ShareStatusProvider>{addToMyListProviderWrap}</ShareStatusProvider>\n );\n\n return shareProviderWrap;\n};\n\nDiscipline.propTypes = {\n image: DisciplineHeader.propTypes.image,\n video: DisciplineHeader.propTypes.video,\n title: DisciplineHeader.propTypes.title,\n description: DisciplineHeader.propTypes.description,\n start: DisciplineCTA.propTypes.start,\n buy: DisciplineCTA.propTypes.buy,\n startLabel: DisciplineCTA.propTypes.startLabel,\n buyLabel: DisciplineCTA.propTypes.buyLabel,\n authors: DisciplinePartners.propTypes.authors,\n level: DisciplineScope.propTypes.content,\n levels: DisciplineScope.propTypes.levels,\n selected: DisciplineScope.propTypes.selected,\n changeLevel: DisciplineScope.propTypes.onClick,\n shareWording: Share.propTypes.wording,\n shareText: Share.propTypes.text,\n shareSuccessWording: ShareFeedback.propTypes.successWording,\n shareErrorWording: ShareFeedback.propTypes.errorWording,\n addToMyListText: AddToMyListFeedback.propTypes.addToMyListText,\n removeFromMyListText: AddToMyListFeedback.propTypes.removeFromMyListText,\n addToMyListButton: AddToMyList.propTypes.addToMyListButton,\n onFavoriteClick: AddToMyList.propTypes.onFavoriteClick,\n favorite: AddToMyList.propTypes.favorite,\n disableShare: PropTypes.bool,\n disableAddToMyList: PropTypes.bool\n};\n\nDiscipline.contextTypes = {\n translate: PropTypes.func\n};\n\nexport default Discipline;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,aAAP,MAA0B,kCAA1B;AACA,OAAOC,gBAAP,MAA6B,qCAA7B;AACA,OAAOC,kBAAP,MAA+B,uCAA/B;AACA,OAAOC,eAAP,MAA4B,oCAA5B;AACA,OAAOC,KAAP,IAAeC,aAAf,EAA8BC,mBAA9B,QAAwD,yBAAxD;AACA,OAAOC,WAAP,IACEC,mBADF,EAEEC,yBAFF,QAGO,kCAHP;AAIA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,UAAU,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACrC,MAAM;IACJC,QAAQ,GAAG,CADP;IAEJC,KAFI;IAGJC,MAHI;IAIJC,WAJI;IAKJC,KALI;IAMJC,KAAK,GAAG,EANJ;IAOJC,KAPI;IAQJC,OAAO,GAAG,EARN;IASJC,WAAW,GAAG,EATV;IAUJC,KAVI;IAWJC,GAXI;IAYJC,UAZI;IAaJC,QAbI;IAcJC,YAdI;IAeJC,SAfI;IAgBJC,mBAhBI;IAiBJC,iBAjBI;IAkBJC,iBAlBI;IAmBJC,QAnBI;IAoBJC,eApBI;IAqBJC,eArBI;IAsBJC,oBAtBI;IAuBJC,YAAY,GAAG,KAvBX;IAwBJC,kBAAkB,GAAG,KAxBjB;IAyBJC;EAzBI,IA0BF1B,KA1BJ;EA4BA,MAAM2B,aAAa,GAAGzC,OAAO,CAACuB,OAAD,CAAP,GAAmB,IAAnB,gBACpB;IAAK,SAAS,EAAEX,KAAK,CAAC8B;EAAtB,gBACE,oBAAC,kBAAD;IAAoB,OAAO,EAAEnB;EAA7B,EADF,CADF;EAMA,MAAMoB,aAAa,gBACjB,oBAAC,aAAD;IACE,IAAI,EAAE,YADR;IAEE,KAAK,EAAElB,KAFT;IAGE,GAAG,EAAEC,GAHP;IAIE,UAAU,EAAEC,UAJd;IAKE,QAAQ,EAAEC;EALZ,EADF;EAUA,MAAMgB,iBAAiB,gBACrB;IAAK,SAAS,EAAEhC,KAAK,CAACiC;EAAtB,gBACE,oBAAC,eAAD;IAAiB,OAAO,EAAE5B,KAA1B;IAAiC,MAAM,EAAEC,MAAzC;IAAiD,QAAQ,EAAEF,QAA3D;IAAqE,OAAO,EAAEG;EAA9E,EADF,CADF;EAMA,MAAM2B,gBAAgB,gBACpB;IAAK,SAAS,EAAElC,KAAK,CAACmC;EAAtB,gBACE,oBAAC,gBAAD;IACE,KAAK,EAAE3B,KADT;IAEE,KAAK,EAAEE,KAFT;IAGE,KAAK,EAAED,KAHT;IAIE,WAAW,EAAEG,WAJf;IAKE,WAAW,EAAEgB;EALf,EADF,CADF;EAYA,MAAMQ,UAAU,gBACd;IAAK,aAAU,YAAf;IAA4B,SAAS,EAAEpC,KAAK,CAACqC,SAA7C;IAAwD,GAAG,EAAC;EAA5D,gBACE;IAAK,SAAS,EAAErC,KAAK,CAACsC;EAAtB,GACGJ,gBADH,eAEE;IAAK,SAAS,EAAElC,KAAK,CAACuC;EAAtB,gBACE;IAAK,SAAS,EAAEvC,KAAK,CAACwC;EAAtB,gBACE;IAAK,SAAS,EAAExC,KAAK,CAACyC;EAAtB,GAA4BV,aAA5B,CADF,EAEGJ,kBAAkB,GAAG,IAAH,gBACjB,oBAAC,WAAD;IACE,KAAK,EAAE3B,KAAK,CAAC0C,cADf;IAEE,iBAAiB,EAAErB,iBAFrB;IAGE,QAAQ,EAAEC,QAHZ;IAIE,eAAe,EAAEC,eAJnB;IAKE,GAAG,EAAE;EALP,EAHJ,EAWGG,YAAY,GAAG,IAAH,gBACX,oBAAC,KAAD;IACE,KAAK,EAAE1B,KAAK,CAAC2C,QADf;IAEE,OAAO,EAAE1B,YAFX;IAGE,IAAI,EAAEC,SAHR;IAIE,GAAG,EAAE;EAJP,EAZJ,CADF,EAqBGW,aArBH,CAFF,EAyBGG,iBAzBH,CADF,eA4BE;IAAK,SAAS,EAAEhC,KAAK,CAAC4C;EAAtB,gBACE;IAAK,SAAS,EAAE5C,KAAK,CAAC6C;EAAtB,gBACE;IAAK,SAAS,EAAE7C,KAAK,CAACyC;EAAtB,GACGV,aADH,EAEGL,YAAY,IAAIC,kBAAhB,GAAqC,IAArC,gBACC;IAAK,SAAS,EAAE3B,KAAK,CAAC8C;EAAtB,GACGpB,YAAY,GAAG,IAAH,gBACX,oBAAC,KAAD;IACE,KAAK,EAAE1B,KAAK,CAAC2C,QADf;IAEE,OAAO,EAAE1B,YAFX;IAGE,IAAI,EAAEC,SAHR;IAIE,GAAG,EAAE;EAJP,EAFJ,EASGS,kBAAkB,GAAG,IAAH,gBACjB,oBAAC,WAAD;IACE,KAAK,EAAE3B,KAAK,CAAC0C,cADf;IAEE,iBAAiB,EAAErB,iBAFrB;IAGE,QAAQ,EAAEC,QAHZ;IAIE,eAAe,EAAEC,eAJnB;IAKE,GAAG,EAAE;EALP,EAVJ,CAHJ,CADF,EAyBGM,aAzBH,CADF,CA5BF,CADF;EA6DA,MAAMkB,aAAa,GAAGrB,YAAY,GAAG,IAAH,gBAChC,oBAAC,aAAD;IACE,YAAY,EAAEN,iBADhB;IAEE,cAAc,EAAED,mBAFlB;IAGE,GAAG,EAAC;EAHN,EADF;EAQA,MAAM6B,mBAAmB,GAAGrB,kBAAkB,GAAG,IAAH,gBAC5C,oBAAC,mBAAD;IACE,eAAe,EAAEH,eADnB;IAEE,oBAAoB,EAAEC,oBAFxB;IAGE,QAAQ,EAAEH;EAHZ,EADF;EAQA,MAAM2B,uBAAuB,GAAGtB,kBAAkB,gBAChD,0CACGoB,aADH,EAEGX,UAFH,CADgD,gBAMhD,oBAAC,yBAAD,QACGW,aADH,EAEGC,mBAFH,EAGGZ,UAHH,CANF;EAYA,MAAMc,iBAAiB,GAAGxB,YAAY,GACpCuB,uBADoC,gBAGpC,oBAAC,mBAAD,QAAsBA,uBAAtB,CAHF;EAMA,OAAOC,iBAAP;AACD,CA/JD;;AAiKAjD,UAAU,CAACkD,SAAX,2CAAuB;EACrB3C,KAAK,EAAEjB,gBAAgB,CAAC4D,SAAjB,CAA2B3C,KADb;EAErBE,KAAK,EAAEnB,gBAAgB,CAAC4D,SAAjB,CAA2BzC,KAFb;EAGrBD,KAAK,EAAElB,gBAAgB,CAAC4D,SAAjB,CAA2B1C,KAHb;EAIrBG,WAAW,EAAErB,gBAAgB,CAAC4D,SAAjB,CAA2BvC,WAJnB;EAKrBC,KAAK,EAAEvB,aAAa,CAAC6D,SAAd,CAAwBtC,KALV;EAMrBC,GAAG,EAAExB,aAAa,CAAC6D,SAAd,CAAwBrC,GANR;EAOrBC,UAAU,EAAEzB,aAAa,CAAC6D,SAAd,CAAwBpC,UAPf;EAQrBC,QAAQ,EAAE1B,aAAa,CAAC6D,SAAd,CAAwBnC,QARb;EASrBL,OAAO,EAAEnB,kBAAkB,CAAC2D,SAAnB,CAA6BxC,OATjB;EAUrBN,KAAK,EAAEZ,eAAe,CAAC0D,SAAhB,CAA0BlB,OAVZ;EAWrB3B,MAAM,EAAEb,eAAe,CAAC0D,SAAhB,CAA0B7C,MAXb;EAYrBF,QAAQ,EAAEX,eAAe,CAAC0D,SAAhB,CAA0B/C,QAZf;EAarBG,WAAW,EAAEd,eAAe,CAAC0D,SAAhB,CAA0BC,OAblB;EAcrBnC,YAAY,EAAEvB,KAAK,CAACyD,SAAN,CAAgBE,OAdT;EAerBnC,SAAS,EAAExB,KAAK,CAACyD,SAAN,CAAgBG,IAfN;EAgBrBnC,mBAAmB,EAAExB,aAAa,CAACwD,SAAd,CAAwBI,cAhBxB;EAiBrBnC,iBAAiB,EAAEzB,aAAa,CAACwD,SAAd,CAAwBK,YAjBtB;EAkBrBhC,eAAe,EAAE1B,mBAAmB,CAACqD,SAApB,CAA8B3B,eAlB1B;EAmBrBC,oBAAoB,EAAE3B,mBAAmB,CAACqD,SAApB,CAA8B1B,oBAnB/B;EAoBrBJ,iBAAiB,EAAExB,WAAW,CAACsD,SAAZ,CAAsB9B,iBApBpB;EAqBrBE,eAAe,EAAE1B,WAAW,CAACsD,SAAZ,CAAsB5B,eArBlB;EAsBrBD,QAAQ,EAAEzB,WAAW,CAACsD,SAAZ,CAAsB7B,QAtBX;EAuBrBI,YAAY,EAAErC,SAAS,CAACoE,IAvBH;EAwBrB9B,kBAAkB,EAAEtC,SAAS,CAACoE;AAxBT,CAAvB;AA2BAxD,UAAU,CAACyD,YAAX,GAA0B;EACxBC,SAAS,EAAEtE,SAAS,CAACuE;AADG,CAA1B;AAIA,eAAe3D,UAAf"}
@@ -39,6 +39,7 @@ declare class DisciplineHeader extends React.Component<any, any, any> {
39
39
  }>>;
40
40
  mimeType: PropTypes.Validator<string>;
41
41
  }>>;
42
+ lastUpdated: PropTypes.Requireable<string>;
42
43
  };
43
44
  static contextTypes: {
44
45
  translate: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-header/index.js"],"names":[],"mappings":";AA2BA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKE;IAEF;;MAEE;IAEF,wBAQC;IANC;;;MAGC;IAKH,4BAIC;IAED,yBAEC;IAED,sBAsCC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-header/index.js"],"names":[],"mappings":";AA4BA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAME;IAEF;;MAEE;IAEF,wBAQC;IANC;;;MAGC;IAKH,4BAIC;IAED,yBAEC;IAED,sBAqDC;CACF"}
@@ -13,6 +13,8 @@ var _getOr = _interopRequireDefault(require("lodash/fp/getOr"));
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
+ var _novaIcons = require("@coorpacademy/nova-icons");
17
+
16
18
  var _videoPlayer = _interopRequireDefault(require("../video-player"));
17
19
 
18
20
  var _picture = _interopRequireDefault(require("../../atom/picture"));
@@ -79,7 +81,8 @@ class DisciplineHeader extends _react.default.Component {
79
81
  image,
80
82
  title,
81
83
  description,
82
- video
84
+ video,
85
+ lastUpdated
83
86
  } = this.props;
84
87
  const {
85
88
  fullDisplay,
@@ -88,19 +91,23 @@ class DisciplineHeader extends _react.default.Component {
88
91
  const {
89
92
  translate
90
93
  } = this.context;
91
- const maxHeightDescription = 219;
94
+ const maxHeightCourseInfos = 209;
95
+ const hasMediaContent = image || video;
92
96
  const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');
93
- const descritpionViewStyle = offsetHeightShowMore <= maxHeightDescription ? _style.default.showMoreHidden : _style.default.showMore;
97
+ const shortCourseText = offsetHeightShowMore <= maxHeightCourseInfos;
98
+ const courseSeeMoreButtonStyle = shortCourseText ? _style.default.showMoreHidden : _style.default.showMore;
94
99
  return /*#__PURE__*/_react.default.createElement("div", {
95
100
  "data-name": "disciplineHeader",
96
101
  className: _style.default.wrapper
97
- }, image || video ? /*#__PURE__*/_react.default.createElement("div", {
102
+ }, hasMediaContent ? /*#__PURE__*/_react.default.createElement("div", {
98
103
  className: _style.default.imgWrapper
99
104
  }, /*#__PURE__*/_react.default.createElement(Preview, {
100
105
  image: image,
101
106
  video: video
102
107
  })) : null, /*#__PURE__*/_react.default.createElement("div", {
103
108
  className: _style.default.courseWrapper
109
+ }, /*#__PURE__*/_react.default.createElement("div", {
110
+ className: fullDisplay ? _style.default.courseTextWrapperFull : _style.default.courseTextWrapperShort
104
111
  }, /*#__PURE__*/_react.default.createElement("div", {
105
112
  "data-name": "title",
106
113
  className: (0, _classnames.default)(_style.default.title, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
@@ -109,8 +116,6 @@ class DisciplineHeader extends _react.default.Component {
109
116
  __html: title
110
117
  }
111
118
  }), /*#__PURE__*/_react.default.createElement("div", {
112
- className: fullDisplay ? _style.default.desc : _style.default.shortDesc
113
- }, /*#__PURE__*/_react.default.createElement("div", {
114
119
  className: _style.default.innerHTML // eslint-disable-next-line react/no-danger
115
120
  ,
116
121
  dangerouslySetInnerHTML: {
@@ -118,9 +123,19 @@ class DisciplineHeader extends _react.default.Component {
118
123
  },
119
124
  ref: this.setHandle
120
125
  })), /*#__PURE__*/_react.default.createElement("div", {
121
- className: descritpionViewStyle,
126
+ className: courseSeeMoreButtonStyle,
122
127
  onClick: this.handleToggleDisplay
123
- }, toggleLabel)));
128
+ }, toggleLabel), lastUpdated ? /*#__PURE__*/_react.default.createElement("div", {
129
+ className: (0, _classnames.default)(_style.default.lastUpdatedWrapper, shortCourseText ? _style.default.lastUpdatedWrapperShort : null)
130
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidSynchronizeSynchronize3, {
131
+ className: _style.default.syncIcon
132
+ }), /*#__PURE__*/_react.default.createElement("div", {
133
+ className: (0, _classnames.default)(_style.default.lastUpdatedText, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
134
+ ,
135
+ dangerouslySetInnerHTML: {
136
+ __html: lastUpdated
137
+ }
138
+ })) : null));
124
139
  }
125
140
 
126
141
  }
@@ -132,7 +147,8 @@ DisciplineHeader.propTypes = process.env.NODE_ENV !== "production" ? {
132
147
  title: _propTypes.default.string,
133
148
  description: _propTypes.default.string,
134
149
  image: Preview.propTypes.image,
135
- video: Preview.propTypes.video
150
+ video: Preview.propTypes.video,
151
+ lastUpdated: _propTypes.default.string
136
152
  } : {};
137
153
  var _default = DisciplineHeader;
138
154
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Preview","image","video","mimeType","get","id","jwpOptions","style","propTypes","Picture","src","PropTypes","shape","VideoPlayer","DisciplineHeader","React","Component","constructor","props","state","fullDisplay","offsetHeightShowMore","handleToggleDisplay","bind","setHandle","setState","prevState","el","getOr","render","title","description","translate","context","maxHeightDescription","toggleLabel","descritpionViewStyle","showMoreHidden","showMore","wrapper","imgWrapper","courseWrapper","classnames","innerHTML","__html","desc","shortDesc","contextTypes","func","string"],"sources":["../../../src/molecule/discipline-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport classnames from 'classnames';\nimport VideoPlayer from '../video-player';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst Preview = ({image, video}) => {\n const mimeType = get('mimeType', video);\n const id = get('id', video);\n const jwpOptions = get('jwpOptions', video);\n if (id) {\n return <VideoPlayer mimeType={mimeType} id={id} width=\"380px\" height=\"250px\" />;\n } else if (jwpOptions) {\n return <VideoPlayer {...video} />;\n } else {\n return <Picture className={style.image} src={image} />;\n }\n};\n\nPreview.propTypes = {\n image: Picture.propTypes.src,\n video: PropTypes.shape(VideoPlayer.propTypes)\n};\n\nclass DisciplineHeader extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n image: Preview.propTypes.image,\n video: Preview.propTypes.video\n };\n\n static contextTypes = {\n translate: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n fullDisplay: false,\n offsetHeightShowMore: 0\n };\n this.handleToggleDisplay = this.handleToggleDisplay.bind(this);\n this.setHandle = this.setHandle.bind(this);\n }\n\n handleToggleDisplay() {\n this.setState(prevState => ({\n fullDisplay: !prevState.fullDisplay\n }));\n }\n\n setHandle(el) {\n this.setState({offsetHeightShowMore: getOr(0, 'offsetHeight', el)});\n }\n\n render() {\n const {image, title, description, video} = this.props;\n const {fullDisplay, offsetHeightShowMore} = this.state;\n const {translate} = this.context;\n const maxHeightDescription = 219;\n\n const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');\n const descritpionViewStyle =\n offsetHeightShowMore <= maxHeightDescription ? style.showMoreHidden : style.showMore;\n\n return (\n <div data-name=\"disciplineHeader\" className={style.wrapper}>\n {image || video ? (\n <div className={style.imgWrapper}>\n <Preview image={image} video={video} />\n </div>\n ) : null}\n <div className={style.courseWrapper}>\n <div\n data-name=\"title\"\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <div className={fullDisplay ? style.desc : style.shortDesc}>\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n ref={this.setHandle}\n />\n </div>\n <div className={descritpionViewStyle} onClick={this.handleToggleDisplay}>\n {toggleLabel}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default DisciplineHeader;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Preview","image","video","mimeType","get","id","jwpOptions","style","propTypes","Picture","src","PropTypes","shape","VideoPlayer","DisciplineHeader","React","Component","constructor","props","state","fullDisplay","offsetHeightShowMore","handleToggleDisplay","bind","setHandle","setState","prevState","el","getOr","render","title","description","lastUpdated","translate","context","maxHeightCourseInfos","hasMediaContent","toggleLabel","shortCourseText","courseSeeMoreButtonStyle","showMoreHidden","showMore","wrapper","imgWrapper","courseWrapper","courseTextWrapperFull","courseTextWrapperShort","classnames","innerHTML","__html","lastUpdatedWrapper","lastUpdatedWrapperShort","syncIcon","lastUpdatedText","contextTypes","func","string"],"sources":["../../../src/molecule/discipline-header/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport classnames from 'classnames';\nimport {NovaSolidSynchronizeSynchronize3 as SyncIcon} from '@coorpacademy/nova-icons';\nimport VideoPlayer from '../video-player';\nimport Picture from '../../atom/picture';\nimport style from './style.css';\n\nconst Preview = ({image, video}) => {\n const mimeType = get('mimeType', video);\n const id = get('id', video);\n const jwpOptions = get('jwpOptions', video);\n if (id) {\n return <VideoPlayer mimeType={mimeType} id={id} width=\"380px\" height=\"250px\" />;\n } else if (jwpOptions) {\n return <VideoPlayer {...video} />;\n } else {\n return <Picture className={style.image} src={image} />;\n }\n};\n\nPreview.propTypes = {\n image: Picture.propTypes.src,\n video: PropTypes.shape(VideoPlayer.propTypes)\n};\n\nclass DisciplineHeader extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n image: Preview.propTypes.image,\n video: Preview.propTypes.video,\n lastUpdated: PropTypes.string\n };\n\n static contextTypes = {\n translate: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n fullDisplay: false,\n offsetHeightShowMore: 0\n };\n this.handleToggleDisplay = this.handleToggleDisplay.bind(this);\n this.setHandle = this.setHandle.bind(this);\n }\n\n handleToggleDisplay() {\n this.setState(prevState => ({\n fullDisplay: !prevState.fullDisplay\n }));\n }\n\n setHandle(el) {\n this.setState({offsetHeightShowMore: getOr(0, 'offsetHeight', el)});\n }\n\n render() {\n const {image, title, description, video, lastUpdated} = this.props;\n const {fullDisplay, offsetHeightShowMore} = this.state;\n const {translate} = this.context;\n const maxHeightCourseInfos = 209;\n const hasMediaContent = image || video;\n const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');\n const shortCourseText = offsetHeightShowMore <= maxHeightCourseInfos;\n const courseSeeMoreButtonStyle = shortCourseText ? style.showMoreHidden : style.showMore;\n\n return (\n <div data-name=\"disciplineHeader\" className={style.wrapper}>\n {hasMediaContent ? (\n <div className={style.imgWrapper}>\n <Preview image={image} video={video} />\n </div>\n ) : null}\n <div className={style.courseWrapper}>\n <div className={fullDisplay ? style.courseTextWrapperFull : style.courseTextWrapperShort}>\n <div\n data-name=\"title\"\n className={classnames(style.title, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: description}}\n ref={this.setHandle}\n />\n </div>\n <div className={courseSeeMoreButtonStyle} onClick={this.handleToggleDisplay}>\n {toggleLabel}\n </div>\n {lastUpdated ? (\n <div\n className={classnames(\n style.lastUpdatedWrapper,\n shortCourseText ? style.lastUpdatedWrapperShort : null\n )}\n >\n <SyncIcon className={style.syncIcon} />\n <div\n className={classnames(style.lastUpdatedText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: lastUpdated}}\n />\n </div>\n ) : null}\n </div>\n </div>\n );\n }\n}\n\nexport default DisciplineHeader;\n"],"mappings":"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"}
@@ -45,7 +45,7 @@
45
45
  color: dark;
46
46
  }
47
47
 
48
- .desc {
48
+ .courseTextWrapperFull {
49
49
  font-family: "Gilroy";
50
50
  font-size: 15px;
51
51
  color: black;
@@ -53,14 +53,14 @@
53
53
  line-height: 22px;
54
54
  }
55
55
 
56
- .desc a {
56
+ .courseTextWrapperFull a {
57
57
  font-family: Gilroy;
58
58
  font-weight: 600;
59
59
  color: brand;
60
60
  text-decoration: none;
61
61
  }
62
62
 
63
- .desc a:hover {
63
+ .courseTextWrapperFull a:hover {
64
64
  text-decoration: underline;
65
65
  }
66
66
 
@@ -68,10 +68,35 @@
68
68
  display: none;
69
69
  }
70
70
 
71
+ .lastUpdatedWrapperShort {
72
+ height: 28px;
73
+ align-items: flex-end;
74
+ }
75
+
76
+ .lastUpdatedWrapper {
77
+ display: flex;
78
+ margin-top: 8px;
79
+ }
80
+
81
+ .lastUpdatedText {
82
+ font-family: 'Gilroy';
83
+ font-style: normal;
84
+ font-weight: 600;
85
+ font-size: 12px;
86
+ line-height: 14px;
87
+ color: #536E7A;
88
+ }
89
+
90
+ .syncIcon {
91
+ height: 13px;
92
+ color: #536E7A;
93
+ margin-right: 3px;
94
+ align-items: center;
95
+ }
96
+
71
97
  .showMore {
72
98
  display: block;
73
99
  font-size: 14px;
74
- margin: 0 14px 0 0;
75
100
  transition: all time ease-in-out;
76
101
  cursor: pointer;
77
102
  order: 1;
@@ -85,9 +110,9 @@
85
110
  opacity: 0.8;
86
111
  }
87
112
 
88
- .shortDesc {
89
- composes: desc;
90
- height: 200px;
113
+ .courseTextWrapperShort {
114
+ composes: courseTextWrapperFull;
115
+ height: 213px;
91
116
  overflow: hidden;
92
117
  }
93
118
 
@@ -106,6 +131,7 @@
106
131
  margin-top: 20px;
107
132
  padding-left: 0;
108
133
  }
134
+
109
135
  }
110
136
 
111
137
  .innerHTML {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEAwJC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEA+JC"}
@@ -54,7 +54,8 @@ const Discipline = (props, context) => {
54
54
  addToMyListText,
55
55
  removeFromMyListText,
56
56
  disableShare = false,
57
- disableAddToMyList = false
57
+ disableAddToMyList = false,
58
+ lastUpdated
58
59
  } = props;
59
60
  const authorSection = (0, _isEmpty.default)(authors) ? null : /*#__PURE__*/_react.default.createElement("div", {
60
61
  className: _style.default.partners
@@ -85,7 +86,8 @@ const Discipline = (props, context) => {
85
86
  image: image,
86
87
  video: video,
87
88
  title: title,
88
- description: description
89
+ description: description,
90
+ lastUpdated: lastUpdated
89
91
  }));
90
92
 
91
93
  const discipline = /*#__PURE__*/_react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Discipline","props","context","selected","level","levels","changeLevel","image","title","video","authors","description","start","buy","startLabel","buyLabel","shareWording","shareText","shareSuccessWording","shareErrorWording","addToMyListButton","favorite","onFavoriteClick","addToMyListText","removeFromMyListText","disableShare","disableAddToMyList","authorSection","isEmpty","style","partners","disciplineCTA","disciplineContent","content","disciplineHeader","header","discipline","container","leftSection","mobileAuthorCtaSection","columnReverse","cta","addToMyListBtn","shareBtn","rightSection","stickySection","buttons","shareFeedBack","addToMyListFeedback","addToMyListProviderWrap","shareProviderWrap","propTypes","DisciplineHeader","DisciplineCTA","DisciplinePartners","DisciplineScope","onClick","Share","wording","text","ShareFeedback","successWording","errorWording","AddToMyListFeedback","AddToMyList","PropTypes","bool","contextTypes","translate","func"],"sources":["../../../../src/template/common/discipline/index.js"],"sourcesContent":["import React from 'react';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport PropTypes from 'prop-types';\nimport DisciplineCTA from '../../../molecule/discipline-cta';\nimport DisciplineHeader from '../../../molecule/discipline-header';\nimport DisciplinePartners from '../../../molecule/discipline-partners';\nimport DisciplineScope from '../../../molecule/discipline-scope';\nimport Share, {ShareFeedback, ShareStatusProvider} from '../../../molecule/share';\nimport AddToMyList, {\n AddToMyListFeedback,\n AddToMyListStatusProvider\n} from '../../../molecule/add-to-my-list';\nimport style from './style.css';\n\nconst Discipline = (props, context) => {\n const {\n selected = 0,\n level,\n levels,\n changeLevel,\n image,\n title = '',\n video,\n authors = [],\n description = '',\n start,\n buy,\n startLabel,\n buyLabel,\n shareWording,\n shareText,\n shareSuccessWording,\n shareErrorWording,\n addToMyListButton,\n favorite,\n onFavoriteClick,\n addToMyListText,\n removeFromMyListText,\n disableShare = false,\n disableAddToMyList = false\n } = props;\n\n const authorSection = isEmpty(authors) ? null : (\n <div className={style.partners}>\n <DisciplinePartners authors={authors} />\n </div>\n );\n\n const disciplineCTA = (\n <DisciplineCTA\n type={'discipline'}\n start={start}\n buy={buy}\n startLabel={startLabel}\n buyLabel={buyLabel}\n />\n );\n\n const disciplineContent = (\n <div className={style.content}>\n <DisciplineScope content={level} levels={levels} selected={selected} onClick={changeLevel} />\n </div>\n );\n\n const disciplineHeader = (\n <div className={style.header}>\n <DisciplineHeader image={image} video={video} title={title} description={description} />\n </div>\n );\n\n const discipline = (\n <div data-name=\"discipline\" className={style.container} key=\"discipline\">\n <div className={style.leftSection}>\n {disciplineHeader}\n <div className={style.mobileAuthorCtaSection}>\n <div className={style.columnReverse}>\n <div className={style.cta}>{disciplineCTA}</div>\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListTablet'}\n />\n )}\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareTablet'}\n />\n )}\n </div>\n {authorSection}\n </div>\n {disciplineContent}\n </div>\n <div className={style.rightSection}>\n <div className={style.stickySection}>\n <div className={style.cta}>\n {disciplineCTA}\n {disableShare && disableAddToMyList ? null : (\n <div className={style.buttons}>\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareDesktop'}\n />\n )}\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListDesktop'}\n />\n )}\n </div>\n )}\n </div>\n {authorSection}\n </div>\n </div>\n </div>\n );\n\n const shareFeedBack = disableShare ? null : (\n <ShareFeedback\n errorWording={shareErrorWording}\n successWording={shareSuccessWording}\n key=\"shareFeedBack\"\n />\n );\n\n const addToMyListFeedback = disableAddToMyList ? null : (\n <AddToMyListFeedback\n addToMyListText={addToMyListText}\n removeFromMyListText={removeFromMyListText}\n favorite={favorite}\n />\n );\n\n const addToMyListProviderWrap = disableAddToMyList ? (\n <>\n {shareFeedBack}\n {discipline}\n </>\n ) : (\n <AddToMyListStatusProvider>\n {shareFeedBack}\n {addToMyListFeedback}\n {discipline}\n </AddToMyListStatusProvider>\n );\n const shareProviderWrap = disableShare ? (\n addToMyListProviderWrap\n ) : (\n <ShareStatusProvider>{addToMyListProviderWrap}</ShareStatusProvider>\n );\n\n return shareProviderWrap;\n};\n\nDiscipline.propTypes = {\n image: DisciplineHeader.propTypes.image,\n video: DisciplineHeader.propTypes.video,\n title: DisciplineHeader.propTypes.title,\n description: DisciplineHeader.propTypes.description,\n start: DisciplineCTA.propTypes.start,\n buy: DisciplineCTA.propTypes.buy,\n startLabel: DisciplineCTA.propTypes.startLabel,\n buyLabel: DisciplineCTA.propTypes.buyLabel,\n authors: DisciplinePartners.propTypes.authors,\n level: DisciplineScope.propTypes.content,\n levels: DisciplineScope.propTypes.levels,\n selected: DisciplineScope.propTypes.selected,\n changeLevel: DisciplineScope.propTypes.onClick,\n shareWording: Share.propTypes.wording,\n shareText: Share.propTypes.text,\n shareSuccessWording: ShareFeedback.propTypes.successWording,\n shareErrorWording: ShareFeedback.propTypes.errorWording,\n addToMyListText: AddToMyListFeedback.propTypes.addToMyListText,\n removeFromMyListText: AddToMyListFeedback.propTypes.removeFromMyListText,\n addToMyListButton: AddToMyList.propTypes.addToMyListButton,\n onFavoriteClick: AddToMyList.propTypes.onFavoriteClick,\n favorite: AddToMyList.propTypes.favorite,\n disableShare: PropTypes.bool,\n disableAddToMyList: PropTypes.bool\n};\n\nDiscipline.contextTypes = {\n translate: PropTypes.func\n};\n\nexport default Discipline;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;;;;;;;AAEA,MAAMA,UAAU,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACrC,MAAM;IACJC,QAAQ,GAAG,CADP;IAEJC,KAFI;IAGJC,MAHI;IAIJC,WAJI;IAKJC,KALI;IAMJC,KAAK,GAAG,EANJ;IAOJC,KAPI;IAQJC,OAAO,GAAG,EARN;IASJC,WAAW,GAAG,EATV;IAUJC,KAVI;IAWJC,GAXI;IAYJC,UAZI;IAaJC,QAbI;IAcJC,YAdI;IAeJC,SAfI;IAgBJC,mBAhBI;IAiBJC,iBAjBI;IAkBJC,iBAlBI;IAmBJC,QAnBI;IAoBJC,eApBI;IAqBJC,eArBI;IAsBJC,oBAtBI;IAuBJC,YAAY,GAAG,KAvBX;IAwBJC,kBAAkB,GAAG;EAxBjB,IAyBFzB,KAzBJ;EA2BA,MAAM0B,aAAa,GAAG,IAAAC,gBAAA,EAAQlB,OAAR,IAAmB,IAAnB,gBACpB;IAAK,SAAS,EAAEmB,cAAA,CAAMC;EAAtB,gBACE,6BAAC,2BAAD;IAAoB,OAAO,EAAEpB;EAA7B,EADF,CADF;;EAMA,MAAMqB,aAAa,gBACjB,6BAAC,sBAAD;IACE,IAAI,EAAE,YADR;IAEE,KAAK,EAAEnB,KAFT;IAGE,GAAG,EAAEC,GAHP;IAIE,UAAU,EAAEC,UAJd;IAKE,QAAQ,EAAEC;EALZ,EADF;;EAUA,MAAMiB,iBAAiB,gBACrB;IAAK,SAAS,EAAEH,cAAA,CAAMI;EAAtB,gBACE,6BAAC,wBAAD;IAAiB,OAAO,EAAE7B,KAA1B;IAAiC,MAAM,EAAEC,MAAzC;IAAiD,QAAQ,EAAEF,QAA3D;IAAqE,OAAO,EAAEG;EAA9E,EADF,CADF;;EAMA,MAAM4B,gBAAgB,gBACpB;IAAK,SAAS,EAAEL,cAAA,CAAMM;EAAtB,gBACE,6BAAC,yBAAD;IAAkB,KAAK,EAAE5B,KAAzB;IAAgC,KAAK,EAAEE,KAAvC;IAA8C,KAAK,EAAED,KAArD;IAA4D,WAAW,EAAEG;EAAzE,EADF,CADF;;EAMA,MAAMyB,UAAU,gBACd;IAAK,aAAU,YAAf;IAA4B,SAAS,EAAEP,cAAA,CAAMQ,SAA7C;IAAwD,GAAG,EAAC;EAA5D,gBACE;IAAK,SAAS,EAAER,cAAA,CAAMS;EAAtB,GACGJ,gBADH,eAEE;IAAK,SAAS,EAAEL,cAAA,CAAMU;EAAtB,gBACE;IAAK,SAAS,EAAEV,cAAA,CAAMW;EAAtB,gBACE;IAAK,SAAS,EAAEX,cAAA,CAAMY;EAAtB,GAA4BV,aAA5B,CADF,EAEGL,kBAAkB,GAAG,IAAH,gBACjB,6BAAC,oBAAD;IACE,KAAK,EAAEG,cAAA,CAAMa,cADf;IAEE,iBAAiB,EAAEtB,iBAFrB;IAGE,QAAQ,EAAEC,QAHZ;IAIE,eAAe,EAAEC,eAJnB;IAKE,GAAG,EAAE;EALP,EAHJ,EAWGG,YAAY,GAAG,IAAH,gBACX,6BAAC,cAAD;IACE,KAAK,EAAEI,cAAA,CAAMc,QADf;IAEE,OAAO,EAAE3B,YAFX;IAGE,IAAI,EAAEC,SAHR;IAIE,GAAG,EAAE;EAJP,EAZJ,CADF,EAqBGU,aArBH,CAFF,EAyBGK,iBAzBH,CADF,eA4BE;IAAK,SAAS,EAAEH,cAAA,CAAMe;EAAtB,gBACE;IAAK,SAAS,EAAEf,cAAA,CAAMgB;EAAtB,gBACE;IAAK,SAAS,EAAEhB,cAAA,CAAMY;EAAtB,GACGV,aADH,EAEGN,YAAY,IAAIC,kBAAhB,GAAqC,IAArC,gBACC;IAAK,SAAS,EAAEG,cAAA,CAAMiB;EAAtB,GACGrB,YAAY,GAAG,IAAH,gBACX,6BAAC,cAAD;IACE,KAAK,EAAEI,cAAA,CAAMc,QADf;IAEE,OAAO,EAAE3B,YAFX;IAGE,IAAI,EAAEC,SAHR;IAIE,GAAG,EAAE;EAJP,EAFJ,EASGS,kBAAkB,GAAG,IAAH,gBACjB,6BAAC,oBAAD;IACE,KAAK,EAAEG,cAAA,CAAMa,cADf;IAEE,iBAAiB,EAAEtB,iBAFrB;IAGE,QAAQ,EAAEC,QAHZ;IAIE,eAAe,EAAEC,eAJnB;IAKE,GAAG,EAAE;EALP,EAVJ,CAHJ,CADF,EAyBGK,aAzBH,CADF,CA5BF,CADF;;EA6DA,MAAMoB,aAAa,GAAGtB,YAAY,GAAG,IAAH,gBAChC,6BAAC,oBAAD;IACE,YAAY,EAAEN,iBADhB;IAEE,cAAc,EAAED,mBAFlB;IAGE,GAAG,EAAC;EAHN,EADF;EAQA,MAAM8B,mBAAmB,GAAGtB,kBAAkB,GAAG,IAAH,gBAC5C,6BAAC,gCAAD;IACE,eAAe,EAAEH,eADnB;IAEE,oBAAoB,EAAEC,oBAFxB;IAGE,QAAQ,EAAEH;EAHZ,EADF;EAQA,MAAM4B,uBAAuB,GAAGvB,kBAAkB,gBAChD,4DACGqB,aADH,EAEGX,UAFH,CADgD,gBAMhD,6BAAC,sCAAD,QACGW,aADH,EAEGC,mBAFH,EAGGZ,UAHH,CANF;EAYA,MAAMc,iBAAiB,GAAGzB,YAAY,GACpCwB,uBADoC,gBAGpC,6BAAC,0BAAD,QAAsBA,uBAAtB,CAHF;EAMA,OAAOC,iBAAP;AACD,CAxJD;;AA0JAlD,UAAU,CAACmD,SAAX,2CAAuB;EACrB5C,KAAK,EAAE6C,yBAAA,CAAiBD,SAAjB,CAA2B5C,KADb;EAErBE,KAAK,EAAE2C,yBAAA,CAAiBD,SAAjB,CAA2B1C,KAFb;EAGrBD,KAAK,EAAE4C,yBAAA,CAAiBD,SAAjB,CAA2B3C,KAHb;EAIrBG,WAAW,EAAEyC,yBAAA,CAAiBD,SAAjB,CAA2BxC,WAJnB;EAKrBC,KAAK,EAAEyC,sBAAA,CAAcF,SAAd,CAAwBvC,KALV;EAMrBC,GAAG,EAAEwC,sBAAA,CAAcF,SAAd,CAAwBtC,GANR;EAOrBC,UAAU,EAAEuC,sBAAA,CAAcF,SAAd,CAAwBrC,UAPf;EAQrBC,QAAQ,EAAEsC,sBAAA,CAAcF,SAAd,CAAwBpC,QARb;EASrBL,OAAO,EAAE4C,2BAAA,CAAmBH,SAAnB,CAA6BzC,OATjB;EAUrBN,KAAK,EAAEmD,wBAAA,CAAgBJ,SAAhB,CAA0BlB,OAVZ;EAWrB5B,MAAM,EAAEkD,wBAAA,CAAgBJ,SAAhB,CAA0B9C,MAXb;EAYrBF,QAAQ,EAAEoD,wBAAA,CAAgBJ,SAAhB,CAA0BhD,QAZf;EAarBG,WAAW,EAAEiD,wBAAA,CAAgBJ,SAAhB,CAA0BK,OAblB;EAcrBxC,YAAY,EAAEyC,cAAA,CAAMN,SAAN,CAAgBO,OAdT;EAerBzC,SAAS,EAAEwC,cAAA,CAAMN,SAAN,CAAgBQ,IAfN;EAgBrBzC,mBAAmB,EAAE0C,oBAAA,CAAcT,SAAd,CAAwBU,cAhBxB;EAiBrB1C,iBAAiB,EAAEyC,oBAAA,CAAcT,SAAd,CAAwBW,YAjBtB;EAkBrBvC,eAAe,EAAEwC,gCAAA,CAAoBZ,SAApB,CAA8B5B,eAlB1B;EAmBrBC,oBAAoB,EAAEuC,gCAAA,CAAoBZ,SAApB,CAA8B3B,oBAnB/B;EAoBrBJ,iBAAiB,EAAE4C,oBAAA,CAAYb,SAAZ,CAAsB/B,iBApBpB;EAqBrBE,eAAe,EAAE0C,oBAAA,CAAYb,SAAZ,CAAsB7B,eArBlB;EAsBrBD,QAAQ,EAAE2C,oBAAA,CAAYb,SAAZ,CAAsB9B,QAtBX;EAuBrBI,YAAY,EAAEwC,kBAAA,CAAUC,IAvBH;EAwBrBxC,kBAAkB,EAAEuC,kBAAA,CAAUC;AAxBT,CAAvB;AA2BAlE,UAAU,CAACmE,YAAX,GAA0B;EACxBC,SAAS,EAAEH,kBAAA,CAAUI;AADG,CAA1B;eAIerE,U"}
1
+ {"version":3,"file":"index.js","names":["Discipline","props","context","selected","level","levels","changeLevel","image","title","video","authors","description","start","buy","startLabel","buyLabel","shareWording","shareText","shareSuccessWording","shareErrorWording","addToMyListButton","favorite","onFavoriteClick","addToMyListText","removeFromMyListText","disableShare","disableAddToMyList","lastUpdated","authorSection","isEmpty","style","partners","disciplineCTA","disciplineContent","content","disciplineHeader","header","discipline","container","leftSection","mobileAuthorCtaSection","columnReverse","cta","addToMyListBtn","shareBtn","rightSection","stickySection","buttons","shareFeedBack","addToMyListFeedback","addToMyListProviderWrap","shareProviderWrap","propTypes","DisciplineHeader","DisciplineCTA","DisciplinePartners","DisciplineScope","onClick","Share","wording","text","ShareFeedback","successWording","errorWording","AddToMyListFeedback","AddToMyList","PropTypes","bool","contextTypes","translate","func"],"sources":["../../../../src/template/common/discipline/index.js"],"sourcesContent":["import React from 'react';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport PropTypes from 'prop-types';\nimport DisciplineCTA from '../../../molecule/discipline-cta';\nimport DisciplineHeader from '../../../molecule/discipline-header';\nimport DisciplinePartners from '../../../molecule/discipline-partners';\nimport DisciplineScope from '../../../molecule/discipline-scope';\nimport Share, {ShareFeedback, ShareStatusProvider} from '../../../molecule/share';\nimport AddToMyList, {\n AddToMyListFeedback,\n AddToMyListStatusProvider\n} from '../../../molecule/add-to-my-list';\nimport style from './style.css';\n\nconst Discipline = (props, context) => {\n const {\n selected = 0,\n level,\n levels,\n changeLevel,\n image,\n title = '',\n video,\n authors = [],\n description = '',\n start,\n buy,\n startLabel,\n buyLabel,\n shareWording,\n shareText,\n shareSuccessWording,\n shareErrorWording,\n addToMyListButton,\n favorite,\n onFavoriteClick,\n addToMyListText,\n removeFromMyListText,\n disableShare = false,\n disableAddToMyList = false,\n lastUpdated\n } = props;\n\n const authorSection = isEmpty(authors) ? null : (\n <div className={style.partners}>\n <DisciplinePartners authors={authors} />\n </div>\n );\n\n const disciplineCTA = (\n <DisciplineCTA\n type={'discipline'}\n start={start}\n buy={buy}\n startLabel={startLabel}\n buyLabel={buyLabel}\n />\n );\n\n const disciplineContent = (\n <div className={style.content}>\n <DisciplineScope content={level} levels={levels} selected={selected} onClick={changeLevel} />\n </div>\n );\n\n const disciplineHeader = (\n <div className={style.header}>\n <DisciplineHeader\n image={image}\n video={video}\n title={title}\n description={description}\n lastUpdated={lastUpdated}\n />\n </div>\n );\n\n const discipline = (\n <div data-name=\"discipline\" className={style.container} key=\"discipline\">\n <div className={style.leftSection}>\n {disciplineHeader}\n <div className={style.mobileAuthorCtaSection}>\n <div className={style.columnReverse}>\n <div className={style.cta}>{disciplineCTA}</div>\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListTablet'}\n />\n )}\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareTablet'}\n />\n )}\n </div>\n {authorSection}\n </div>\n {disciplineContent}\n </div>\n <div className={style.rightSection}>\n <div className={style.stickySection}>\n <div className={style.cta}>\n {disciplineCTA}\n {disableShare && disableAddToMyList ? null : (\n <div className={style.buttons}>\n {disableShare ? null : (\n <Share\n style={style.shareBtn}\n wording={shareWording}\n text={shareText}\n key={'shareDesktop'}\n />\n )}\n {disableAddToMyList ? null : (\n <AddToMyList\n style={style.addToMyListBtn}\n addToMyListButton={addToMyListButton}\n favorite={favorite}\n onFavoriteClick={onFavoriteClick}\n key={'addToMyListDesktop'}\n />\n )}\n </div>\n )}\n </div>\n {authorSection}\n </div>\n </div>\n </div>\n );\n\n const shareFeedBack = disableShare ? null : (\n <ShareFeedback\n errorWording={shareErrorWording}\n successWording={shareSuccessWording}\n key=\"shareFeedBack\"\n />\n );\n\n const addToMyListFeedback = disableAddToMyList ? null : (\n <AddToMyListFeedback\n addToMyListText={addToMyListText}\n removeFromMyListText={removeFromMyListText}\n favorite={favorite}\n />\n );\n\n const addToMyListProviderWrap = disableAddToMyList ? (\n <>\n {shareFeedBack}\n {discipline}\n </>\n ) : (\n <AddToMyListStatusProvider>\n {shareFeedBack}\n {addToMyListFeedback}\n {discipline}\n </AddToMyListStatusProvider>\n );\n const shareProviderWrap = disableShare ? (\n addToMyListProviderWrap\n ) : (\n <ShareStatusProvider>{addToMyListProviderWrap}</ShareStatusProvider>\n );\n\n return shareProviderWrap;\n};\n\nDiscipline.propTypes = {\n image: DisciplineHeader.propTypes.image,\n video: DisciplineHeader.propTypes.video,\n title: DisciplineHeader.propTypes.title,\n description: DisciplineHeader.propTypes.description,\n start: DisciplineCTA.propTypes.start,\n buy: DisciplineCTA.propTypes.buy,\n startLabel: DisciplineCTA.propTypes.startLabel,\n buyLabel: DisciplineCTA.propTypes.buyLabel,\n authors: DisciplinePartners.propTypes.authors,\n level: DisciplineScope.propTypes.content,\n levels: DisciplineScope.propTypes.levels,\n selected: DisciplineScope.propTypes.selected,\n changeLevel: DisciplineScope.propTypes.onClick,\n shareWording: Share.propTypes.wording,\n shareText: Share.propTypes.text,\n shareSuccessWording: ShareFeedback.propTypes.successWording,\n shareErrorWording: ShareFeedback.propTypes.errorWording,\n addToMyListText: AddToMyListFeedback.propTypes.addToMyListText,\n removeFromMyListText: AddToMyListFeedback.propTypes.removeFromMyListText,\n addToMyListButton: AddToMyList.propTypes.addToMyListButton,\n onFavoriteClick: AddToMyList.propTypes.onFavoriteClick,\n favorite: AddToMyList.propTypes.favorite,\n disableShare: PropTypes.bool,\n disableAddToMyList: PropTypes.bool\n};\n\nDiscipline.contextTypes = {\n translate: PropTypes.func\n};\n\nexport default Discipline;\n"],"mappings":"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"}