@coorpacademy/components 11.13.7-alpha.3 → 11.13.7-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/molecule/discipline-header/index.d.ts +0 -2
- package/es/molecule/discipline-header/index.d.ts.map +1 -1
- package/es/molecule/discipline-header/index.js +9 -28
- package/es/molecule/discipline-header/index.js.map +1 -1
- package/es/molecule/discipline-header/style.css +7 -40
- package/es/molecule/select-multiple/index.d.ts.map +1 -1
- package/es/molecule/select-multiple/index.js +5 -7
- package/es/molecule/select-multiple/index.js.map +1 -1
- package/es/organism/list-items/index.d.ts.map +1 -1
- package/es/organism/list-items/index.js +5 -5
- package/es/organism/list-items/index.js.map +1 -1
- package/es/organism/list-items/style.css +7 -0
- package/es/template/common/discipline/index.d.ts.map +1 -1
- package/es/template/common/discipline/index.js +2 -6
- package/es/template/common/discipline/index.js.map +1 -1
- package/lib/molecule/discipline-header/index.d.ts +0 -2
- package/lib/molecule/discipline-header/index.d.ts.map +1 -1
- package/lib/molecule/discipline-header/index.js +9 -29
- package/lib/molecule/discipline-header/index.js.map +1 -1
- package/lib/molecule/discipline-header/style.css +7 -40
- package/lib/molecule/select-multiple/index.d.ts.map +1 -1
- package/lib/molecule/select-multiple/index.js +5 -7
- package/lib/molecule/select-multiple/index.js.map +1 -1
- package/lib/organism/list-items/index.d.ts.map +1 -1
- package/lib/organism/list-items/index.js +5 -5
- package/lib/organism/list-items/index.js.map +1 -1
- package/lib/organism/list-items/style.css +7 -0
- package/lib/template/common/discipline/index.d.ts.map +1 -1
- package/lib/template/common/discipline/index.js +2 -6
- package/lib/template/common/discipline/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -39,8 +39,6 @@ declare class DisciplineHeader extends React.Component<any, any, any> {
|
|
|
39
39
|
}>>;
|
|
40
40
|
mimeType: PropTypes.Validator<string>;
|
|
41
41
|
}>>;
|
|
42
|
-
lastUpdated: PropTypes.Requireable<string>;
|
|
43
|
-
invertedLanguage: PropTypes.Requireable<boolean>;
|
|
44
42
|
};
|
|
45
43
|
static contextTypes: {
|
|
46
44
|
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":";
|
|
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"}
|
|
@@ -3,7 +3,6 @@ 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';
|
|
7
6
|
import VideoPlayer from '../video-player';
|
|
8
7
|
import Picture from '../../atom/picture';
|
|
9
8
|
import style from './style.css';
|
|
@@ -66,9 +65,7 @@ class DisciplineHeader extends React.Component {
|
|
|
66
65
|
image,
|
|
67
66
|
title,
|
|
68
67
|
description,
|
|
69
|
-
video
|
|
70
|
-
lastUpdated,
|
|
71
|
-
invertedLanguage
|
|
68
|
+
video
|
|
72
69
|
} = this.props;
|
|
73
70
|
const {
|
|
74
71
|
fullDisplay,
|
|
@@ -77,23 +74,19 @@ class DisciplineHeader extends React.Component {
|
|
|
77
74
|
const {
|
|
78
75
|
translate
|
|
79
76
|
} = this.context;
|
|
80
|
-
const
|
|
81
|
-
const hasMediaContent = image || video;
|
|
77
|
+
const maxHeightDescription = 219;
|
|
82
78
|
const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');
|
|
83
|
-
const
|
|
84
|
-
const courseSeeMoreButtonStyle = shortCourseText ? style.showMoreHidden : style.showMore;
|
|
79
|
+
const descritpionViewStyle = offsetHeightShowMore <= maxHeightDescription ? style.showMoreHidden : style.showMore;
|
|
85
80
|
return /*#__PURE__*/React.createElement("div", {
|
|
86
81
|
"data-name": "disciplineHeader",
|
|
87
82
|
className: style.wrapper
|
|
88
|
-
},
|
|
83
|
+
}, image || video ? /*#__PURE__*/React.createElement("div", {
|
|
89
84
|
className: style.imgWrapper
|
|
90
85
|
}, /*#__PURE__*/React.createElement(Preview, {
|
|
91
86
|
image: image,
|
|
92
87
|
video: video
|
|
93
88
|
})) : null, /*#__PURE__*/React.createElement("div", {
|
|
94
89
|
className: style.courseWrapper
|
|
95
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
96
|
-
className: fullDisplay ? style.courseTextWrapperFull : style.courseTextWrapperShort
|
|
97
90
|
}, /*#__PURE__*/React.createElement("div", {
|
|
98
91
|
"data-name": "title",
|
|
99
92
|
className: classnames(style.title, style.innerHTML) // eslint-disable-next-line react/no-danger
|
|
@@ -102,6 +95,8 @@ class DisciplineHeader extends React.Component {
|
|
|
102
95
|
__html: title
|
|
103
96
|
}
|
|
104
97
|
}), /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
className: fullDisplay ? style.desc : style.shortDesc
|
|
99
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
105
100
|
className: style.innerHTML // eslint-disable-next-line react/no-danger
|
|
106
101
|
,
|
|
107
102
|
dangerouslySetInnerHTML: {
|
|
@@ -109,21 +104,9 @@ class DisciplineHeader extends React.Component {
|
|
|
109
104
|
},
|
|
110
105
|
ref: this.setHandle
|
|
111
106
|
})), /*#__PURE__*/React.createElement("div", {
|
|
112
|
-
className:
|
|
113
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
114
|
-
className: courseSeeMoreButtonStyle,
|
|
107
|
+
className: descritpionViewStyle,
|
|
115
108
|
onClick: this.handleToggleDisplay
|
|
116
|
-
}, toggleLabel)
|
|
117
|
-
className: classnames(style.lastUpdatedWrapper, shortCourseText ? style.lastUpdatedWrapperShort : null)
|
|
118
|
-
}, /*#__PURE__*/React.createElement(SyncIcon, {
|
|
119
|
-
className: style.syncIcon
|
|
120
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
121
|
-
className: classnames(style.lastUpdatedText, style.innerHTML) // eslint-disable-next-line react/no-danger
|
|
122
|
-
,
|
|
123
|
-
dangerouslySetInnerHTML: {
|
|
124
|
-
__html: lastUpdated
|
|
125
|
-
}
|
|
126
|
-
})) : null)));
|
|
109
|
+
}, toggleLabel)));
|
|
127
110
|
}
|
|
128
111
|
|
|
129
112
|
}
|
|
@@ -135,9 +118,7 @@ DisciplineHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
135
118
|
title: PropTypes.string,
|
|
136
119
|
description: PropTypes.string,
|
|
137
120
|
image: Preview.propTypes.image,
|
|
138
|
-
video: Preview.propTypes.video
|
|
139
|
-
lastUpdated: PropTypes.string,
|
|
140
|
-
invertedLanguage: PropTypes.bool
|
|
121
|
+
video: Preview.propTypes.video
|
|
141
122
|
} : {};
|
|
142
123
|
export default DisciplineHeader;
|
|
143
124
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","get","getOr","classnames","
|
|
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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"}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
color: dark;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
.
|
|
48
|
+
.desc {
|
|
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
|
-
.
|
|
56
|
+
.desc 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
|
-
.
|
|
63
|
+
.desc a:hover {
|
|
64
64
|
text-decoration: underline;
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -68,42 +68,10 @@
|
|
|
68
68
|
display: none;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
.lastUpdatedWrapperShort {
|
|
72
|
-
/* This is required in case that the text is short to make sure that it
|
|
73
|
-
is stuck to the bottom at the same level to the media */
|
|
74
|
-
height: 28px;
|
|
75
|
-
align-items: flex-end;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.lastUpdatedWrapper {
|
|
79
|
-
display: flex;
|
|
80
|
-
margin-top: 8px;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.lastUpdatedText {
|
|
84
|
-
font-family: 'Gilroy';
|
|
85
|
-
font-style: normal;
|
|
86
|
-
font-weight: 600;
|
|
87
|
-
font-size: 12px;
|
|
88
|
-
line-height: 14px;
|
|
89
|
-
color: #536E7A;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.invertedLanguage {
|
|
93
|
-
float: right;
|
|
94
|
-
text-align: right;
|
|
95
|
-
align-items: right;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.syncIcon {
|
|
99
|
-
height: 13px;
|
|
100
|
-
color: #536E7A;
|
|
101
|
-
margin-right: 3px;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
71
|
.showMore {
|
|
105
72
|
display: block;
|
|
106
73
|
font-size: 14px;
|
|
74
|
+
margin: 0 14px 0 0;
|
|
107
75
|
transition: all time ease-in-out;
|
|
108
76
|
cursor: pointer;
|
|
109
77
|
order: 1;
|
|
@@ -117,9 +85,9 @@
|
|
|
117
85
|
opacity: 0.8;
|
|
118
86
|
}
|
|
119
87
|
|
|
120
|
-
.
|
|
121
|
-
composes:
|
|
122
|
-
height:
|
|
88
|
+
.shortDesc {
|
|
89
|
+
composes: desc;
|
|
90
|
+
height: 200px;
|
|
123
91
|
overflow: hidden;
|
|
124
92
|
}
|
|
125
93
|
|
|
@@ -138,7 +106,6 @@
|
|
|
138
106
|
margin-top: 20px;
|
|
139
107
|
padding-left: 0;
|
|
140
108
|
}
|
|
141
|
-
|
|
142
109
|
}
|
|
143
110
|
|
|
144
111
|
.innerHTML {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/select-multiple/index.js"],"names":[],"mappings":"AAsBO,oEAcN;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/select-multiple/index.js"],"names":[],"mappings":"AAsBO,oEAcN;;AA2BD;;;;;;;;;;;;;;;gBAkLC"}
|
|
@@ -48,14 +48,10 @@ const CMMultipleView = ({
|
|
|
48
48
|
onChange
|
|
49
49
|
}) => {
|
|
50
50
|
const handleChange = useCallback(checked => {
|
|
51
|
-
if (!multiple) {
|
|
52
|
-
return onChange(choice);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
51
|
return onChange(_extends({}, choice, {
|
|
56
52
|
selected: checked
|
|
57
53
|
}));
|
|
58
|
-
}, [onChange, choice
|
|
54
|
+
}, [onChange, choice]);
|
|
59
55
|
return multiple ? /*#__PURE__*/React.createElement("div", {
|
|
60
56
|
className: style.item
|
|
61
57
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
@@ -66,7 +62,6 @@ const CMMultipleView = ({
|
|
|
66
62
|
title: choice.name
|
|
67
63
|
})) : /*#__PURE__*/React.createElement("span", {
|
|
68
64
|
className: style.item,
|
|
69
|
-
onClick: handleChange,
|
|
70
65
|
title: choice.name,
|
|
71
66
|
"data-name": `${choice.name}-language`
|
|
72
67
|
}, choice.name);
|
|
@@ -133,7 +128,10 @@ const SelectMultiple = ({
|
|
|
133
128
|
})((choice, i) => {
|
|
134
129
|
return /*#__PURE__*/React.createElement("li", {
|
|
135
130
|
key: i,
|
|
136
|
-
className: style.choice
|
|
131
|
+
className: style.choice,
|
|
132
|
+
onClick: isCMTheme && !multiple && (() => handleChange(_extends({}, choice, {
|
|
133
|
+
i
|
|
134
|
+
})))
|
|
137
135
|
}, isCMTheme ? /*#__PURE__*/React.createElement(CMMultipleView, {
|
|
138
136
|
multiple: multiple,
|
|
139
137
|
choice: _extends({}, choice, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useState","useEffect","useRef","useCallback","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaSolidStatusClose","ErrorIcon","NovaCompositionCoorpacademyInformationIcon","InfoIcon","TitledCheckbox","Provider","Checkbox","getClassState","style","themeStyle","setup","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","current","getChoices","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","error","disabled","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","isActive","titleView","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","hideHint","__html","mainClass","default","showPlaceholder","behaviourClassName","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","color","arrow","down","activeChoices","list","contextTypes","childContextTypes","propTypes","bool","func","string","arrayOf","oneOf"],"sources":["../../../src/molecule/select-multiple/index.js"],"sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = {current: options};\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n if (!multiple) {\n return onChange(choice);\n }\n return onChange({...choice, selected: checked});\n },\n [onChange, choice, multiple]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span\n className={style.item}\n onClick={handleChange}\n title={choice.name}\n data-name={`${choice.name}-language`}\n >\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n updateIsOpened(false);\n return onChange(choice);\n },\n [multiple, onChange, setChoices, getChoices]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView = isCMTheme ? (\n <div\n className={classnames(style.hint, isActive && style.hideHint)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div\n className={style.select}\n title={selection || placeholder}\n data-name={`select-languages`}\n onClick={handleOnClick}\n >\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","useEffect","useRef","useCallback","PropTypes","classnames","NovaCompositionNavigationArrowDown","ArrowDown","NovaSolidStatusClose","ErrorIcon","NovaCompositionCoorpacademyInformationIcon","InfoIcon","TitledCheckbox","Provider","Checkbox","getClassState","style","themeStyle","setup","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","current","getChoices","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","error","disabled","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","isActive","titleView","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","hideHint","__html","mainClass","default","showPlaceholder","behaviourClassName","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","color","arrow","down","activeChoices","list","contextTypes","childContextTypes","propTypes","bool","func","string","arrayOf","oneOf"],"sources":["../../../src/molecule/select-multiple/index.js"],"sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = {current: options};\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n return onChange({...choice, selected: checked});\n },\n [onChange, choice]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span className={style.item} title={choice.name} data-name={`${choice.name}-language`}>\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n return onChange(getChoices());\n }\n updateIsOpened(false);\n return onChange(choice);\n },\n [multiple, onChange, setChoices, getChoices]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li\n key={i}\n className={style.choice}\n onClick={isCMTheme && !multiple && (() => handleChange({...choice, i}))}\n >\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView = isCMTheme ? (\n <div\n className={classnames(style.hint, isActive && style.hideHint)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div\n className={style.select}\n title={selection || placeholder}\n data-name={`select-languages`}\n onClick={handleOnClick}\n >\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/list-items/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/list-items/index.js"],"names":[],"mappings":";AAoCA;;;;;;gBAwBC"}
|
|
@@ -9,7 +9,7 @@ import SelectMultiple from '../../molecule/select-multiple';
|
|
|
9
9
|
import ExpandibleActionableTable from '../../molecule/expandible-actionable-table';
|
|
10
10
|
import style from './style.css';
|
|
11
11
|
|
|
12
|
-
const buildListItemsView = (content, ariaLabel) => {
|
|
12
|
+
const buildListItemsView = (content, ariaLabel, selectMultiple) => {
|
|
13
13
|
const {
|
|
14
14
|
items,
|
|
15
15
|
itemType
|
|
@@ -23,20 +23,20 @@ const buildListItemsView = (content, ariaLabel) => {
|
|
|
23
23
|
contentType: itemType
|
|
24
24
|
}))));
|
|
25
25
|
return /*#__PURE__*/React.createElement("ul", {
|
|
26
|
-
className: style.list,
|
|
26
|
+
className: !selectMultiple ? style.list : style.listWithSelectMultiple,
|
|
27
27
|
"aria-label": ariaLabel,
|
|
28
28
|
"data-name": 'content-list'
|
|
29
29
|
}, itemsView);
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
const buildContentView = (content, ariaLabel) => {
|
|
32
|
+
const buildContentView = (content, ariaLabel, selectMultiple) => {
|
|
33
33
|
const {
|
|
34
34
|
type
|
|
35
35
|
} = content;
|
|
36
36
|
|
|
37
37
|
switch (type) {
|
|
38
38
|
case 'list':
|
|
39
|
-
return buildListItemsView(content, ariaLabel);
|
|
39
|
+
return buildListItemsView(content, ariaLabel, selectMultiple);
|
|
40
40
|
|
|
41
41
|
case 'expandible-actionable-table':
|
|
42
42
|
return /*#__PURE__*/React.createElement(ExpandibleActionableTable, content);
|
|
@@ -50,7 +50,7 @@ const ListItems = ({
|
|
|
50
50
|
content,
|
|
51
51
|
'aria-label': ariaLabel
|
|
52
52
|
}) => {
|
|
53
|
-
const contentView = buildContentView(content, ariaLabel);
|
|
53
|
+
const contentView = buildContentView(content, ariaLabel, selectMultiple);
|
|
54
54
|
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
55
55
|
className: style.header
|
|
56
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","ListItem","Title","ButtonLink","SelectMultiple","ExpandibleActionableTable","style","buildListItemsView","content","ariaLabel","items","itemType","itemsView","map","item","index","id","list","buildContentView","type","ListItems","title","buttonLink","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","ListItem","Title","ButtonLink","SelectMultiple","ExpandibleActionableTable","style","buildListItemsView","content","ariaLabel","selectMultiple","items","itemType","itemsView","map","item","index","id","list","listWithSelectMultiple","buildContentView","type","ListItems","title","buttonLink","contentView","header","actionsWrapper","buttonCreate","propTypes","string","shape","arrayOf","oneOfType","oneOf"],"sources":["../../../src/organism/list-items/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from '../list-item';\nimport Title from '../../atom/title';\nimport ButtonLink from '../../atom/button-link';\nimport SelectMultiple from '../../molecule/select-multiple';\nimport ExpandibleActionableTable from '../../molecule/expandible-actionable-table';\nimport style from './style.css';\n\nconst buildListItemsView = (content, ariaLabel, selectMultiple) => {\n const {items, itemType} = content;\n const itemsView = items.map((item, index) => (\n <li key={item.id} className={style.item} data-name={`content-${index}`}>\n <ListItem {...item} order={index} contentType={itemType} />\n </li>\n ));\n return (\n <ul\n className={!selectMultiple ? style.list : style.listWithSelectMultiple}\n aria-label={ariaLabel}\n data-name={'content-list'}\n >\n {itemsView}\n </ul>\n );\n};\nconst buildContentView = (content, ariaLabel, selectMultiple) => {\n const {type} = content;\n switch (type) {\n case 'list':\n return buildListItemsView(content, ariaLabel, selectMultiple);\n case 'expandible-actionable-table':\n return <ExpandibleActionableTable {...content} />;\n }\n};\n\nconst ListItems = ({title, buttonLink, selectMultiple, content, 'aria-label': ariaLabel}) => {\n const contentView = buildContentView(content, ariaLabel, selectMultiple);\n\n return (\n <div>\n <div className={style.header}>\n <div className={style.title}>\n <Title title={title} type={'form-group'} data-name={'list-title'} />\n </div>\n <div className={style.actionsWrapper}>\n {selectMultiple ? (\n <div className={style.selectMultiple}>\n <SelectMultiple {...selectMultiple} />\n </div>\n ) : null}\n\n <div className={style.buttonCreate}>\n <ButtonLink {...buttonLink} />\n </div>\n </div>\n </div>\n {contentView}\n </div>\n );\n};\n\nListItems.propTypes = {\n 'aria-label': PropTypes.string,\n buttonLink: PropTypes.shape(ButtonLink.propTypes),\n selectMultiple: PropTypes.shape(SelectMultiple.propTypes),\n items: PropTypes.arrayOf(PropTypes.shape(ListItem.propTypes)),\n content: PropTypes.oneOfType([\n PropTypes.shape({\n items: PropTypes.arrayOf(PropTypes.shape(ListItem.propTypes)),\n type: PropTypes.oneOf(['list']),\n itemType: PropTypes.string\n }),\n PropTypes.shape({\n ...ExpandibleActionableTable.propTypes,\n type: PropTypes.oneOf(['expandible-actionable-table'])\n })\n ]),\n title: PropTypes.string\n};\n\nexport default ListItems;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEAwJC"}
|
|
@@ -34,9 +34,7 @@ const Discipline = (props, context) => {
|
|
|
34
34
|
addToMyListText,
|
|
35
35
|
removeFromMyListText,
|
|
36
36
|
disableShare = false,
|
|
37
|
-
disableAddToMyList = false
|
|
38
|
-
lastUpdated,
|
|
39
|
-
invertedLanguage = false
|
|
37
|
+
disableAddToMyList = false
|
|
40
38
|
} = props;
|
|
41
39
|
const authorSection = isEmpty(authors) ? null : /*#__PURE__*/React.createElement("div", {
|
|
42
40
|
className: style.partners
|
|
@@ -64,9 +62,7 @@ const Discipline = (props, context) => {
|
|
|
64
62
|
image: image,
|
|
65
63
|
video: video,
|
|
66
64
|
title: title,
|
|
67
|
-
description: description
|
|
68
|
-
lastUpdated: lastUpdated,
|
|
69
|
-
invertedLanguage: invertedLanguage
|
|
65
|
+
description: description
|
|
70
66
|
}));
|
|
71
67
|
const discipline = /*#__PURE__*/React.createElement("div", {
|
|
72
68
|
"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","lastUpdated","invertedLanguage","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 invertedLanguage = 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\n image={image}\n video={video}\n title={title}\n description={description}\n lastUpdated={lastUpdated}\n invertedLanguage={invertedLanguage}\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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"}
|
|
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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"}
|
|
@@ -39,8 +39,6 @@ declare class DisciplineHeader extends React.Component<any, any, any> {
|
|
|
39
39
|
}>>;
|
|
40
40
|
mimeType: PropTypes.Validator<string>;
|
|
41
41
|
}>>;
|
|
42
|
-
lastUpdated: PropTypes.Requireable<string>;
|
|
43
|
-
invertedLanguage: PropTypes.Requireable<boolean>;
|
|
44
42
|
};
|
|
45
43
|
static contextTypes: {
|
|
46
44
|
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":";
|
|
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"}
|
|
@@ -13,8 +13,6 @@ 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
|
-
|
|
18
16
|
var _videoPlayer = _interopRequireDefault(require("../video-player"));
|
|
19
17
|
|
|
20
18
|
var _picture = _interopRequireDefault(require("../../atom/picture"));
|
|
@@ -81,9 +79,7 @@ class DisciplineHeader extends _react.default.Component {
|
|
|
81
79
|
image,
|
|
82
80
|
title,
|
|
83
81
|
description,
|
|
84
|
-
video
|
|
85
|
-
lastUpdated,
|
|
86
|
-
invertedLanguage
|
|
82
|
+
video
|
|
87
83
|
} = this.props;
|
|
88
84
|
const {
|
|
89
85
|
fullDisplay,
|
|
@@ -92,23 +88,19 @@ class DisciplineHeader extends _react.default.Component {
|
|
|
92
88
|
const {
|
|
93
89
|
translate
|
|
94
90
|
} = this.context;
|
|
95
|
-
const
|
|
96
|
-
const hasMediaContent = image || video;
|
|
91
|
+
const maxHeightDescription = 219;
|
|
97
92
|
const toggleLabel = fullDisplay ? translate('See less') : translate('Show more');
|
|
98
|
-
const
|
|
99
|
-
const courseSeeMoreButtonStyle = shortCourseText ? _style.default.showMoreHidden : _style.default.showMore;
|
|
93
|
+
const descritpionViewStyle = offsetHeightShowMore <= maxHeightDescription ? _style.default.showMoreHidden : _style.default.showMore;
|
|
100
94
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
101
95
|
"data-name": "disciplineHeader",
|
|
102
96
|
className: _style.default.wrapper
|
|
103
|
-
},
|
|
97
|
+
}, image || video ? /*#__PURE__*/_react.default.createElement("div", {
|
|
104
98
|
className: _style.default.imgWrapper
|
|
105
99
|
}, /*#__PURE__*/_react.default.createElement(Preview, {
|
|
106
100
|
image: image,
|
|
107
101
|
video: video
|
|
108
102
|
})) : null, /*#__PURE__*/_react.default.createElement("div", {
|
|
109
103
|
className: _style.default.courseWrapper
|
|
110
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
111
|
-
className: fullDisplay ? _style.default.courseTextWrapperFull : _style.default.courseTextWrapperShort
|
|
112
104
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
113
105
|
"data-name": "title",
|
|
114
106
|
className: (0, _classnames.default)(_style.default.title, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
|
|
@@ -117,6 +109,8 @@ class DisciplineHeader extends _react.default.Component {
|
|
|
117
109
|
__html: title
|
|
118
110
|
}
|
|
119
111
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
112
|
+
className: fullDisplay ? _style.default.desc : _style.default.shortDesc
|
|
113
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
120
114
|
className: _style.default.innerHTML // eslint-disable-next-line react/no-danger
|
|
121
115
|
,
|
|
122
116
|
dangerouslySetInnerHTML: {
|
|
@@ -124,21 +118,9 @@ class DisciplineHeader extends _react.default.Component {
|
|
|
124
118
|
},
|
|
125
119
|
ref: this.setHandle
|
|
126
120
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
127
|
-
className:
|
|
128
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
129
|
-
className: courseSeeMoreButtonStyle,
|
|
121
|
+
className: descritpionViewStyle,
|
|
130
122
|
onClick: this.handleToggleDisplay
|
|
131
|
-
}, toggleLabel)
|
|
132
|
-
className: (0, _classnames.default)(_style.default.lastUpdatedWrapper, shortCourseText ? _style.default.lastUpdatedWrapperShort : null)
|
|
133
|
-
}, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidSynchronizeSynchronize3, {
|
|
134
|
-
className: _style.default.syncIcon
|
|
135
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
136
|
-
className: (0, _classnames.default)(_style.default.lastUpdatedText, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
|
|
137
|
-
,
|
|
138
|
-
dangerouslySetInnerHTML: {
|
|
139
|
-
__html: lastUpdated
|
|
140
|
-
}
|
|
141
|
-
})) : null)));
|
|
123
|
+
}, toggleLabel)));
|
|
142
124
|
}
|
|
143
125
|
|
|
144
126
|
}
|
|
@@ -150,9 +132,7 @@ DisciplineHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
150
132
|
title: _propTypes.default.string,
|
|
151
133
|
description: _propTypes.default.string,
|
|
152
134
|
image: Preview.propTypes.image,
|
|
153
|
-
video: Preview.propTypes.video
|
|
154
|
-
lastUpdated: _propTypes.default.string,
|
|
155
|
-
invertedLanguage: _propTypes.default.bool
|
|
135
|
+
video: Preview.propTypes.video
|
|
156
136
|
} : {};
|
|
157
137
|
var _default = DisciplineHeader;
|
|
158
138
|
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","
|
|
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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"}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
color: dark;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
.
|
|
48
|
+
.desc {
|
|
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
|
-
.
|
|
56
|
+
.desc 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
|
-
.
|
|
63
|
+
.desc a:hover {
|
|
64
64
|
text-decoration: underline;
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -68,42 +68,10 @@
|
|
|
68
68
|
display: none;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
.lastUpdatedWrapperShort {
|
|
72
|
-
/* This is required in case that the text is short to make sure that it
|
|
73
|
-
is stuck to the bottom at the same level to the media */
|
|
74
|
-
height: 28px;
|
|
75
|
-
align-items: flex-end;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.lastUpdatedWrapper {
|
|
79
|
-
display: flex;
|
|
80
|
-
margin-top: 8px;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.lastUpdatedText {
|
|
84
|
-
font-family: 'Gilroy';
|
|
85
|
-
font-style: normal;
|
|
86
|
-
font-weight: 600;
|
|
87
|
-
font-size: 12px;
|
|
88
|
-
line-height: 14px;
|
|
89
|
-
color: #536E7A;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.invertedLanguage {
|
|
93
|
-
float: right;
|
|
94
|
-
text-align: right;
|
|
95
|
-
align-items: right;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.syncIcon {
|
|
99
|
-
height: 13px;
|
|
100
|
-
color: #536E7A;
|
|
101
|
-
margin-right: 3px;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
71
|
.showMore {
|
|
105
72
|
display: block;
|
|
106
73
|
font-size: 14px;
|
|
74
|
+
margin: 0 14px 0 0;
|
|
107
75
|
transition: all time ease-in-out;
|
|
108
76
|
cursor: pointer;
|
|
109
77
|
order: 1;
|
|
@@ -117,9 +85,9 @@
|
|
|
117
85
|
opacity: 0.8;
|
|
118
86
|
}
|
|
119
87
|
|
|
120
|
-
.
|
|
121
|
-
composes:
|
|
122
|
-
height:
|
|
88
|
+
.shortDesc {
|
|
89
|
+
composes: desc;
|
|
90
|
+
height: 200px;
|
|
123
91
|
overflow: hidden;
|
|
124
92
|
}
|
|
125
93
|
|
|
@@ -138,7 +106,6 @@
|
|
|
138
106
|
margin-top: 20px;
|
|
139
107
|
padding-left: 0;
|
|
140
108
|
}
|
|
141
|
-
|
|
142
109
|
}
|
|
143
110
|
|
|
144
111
|
.innerHTML {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/select-multiple/index.js"],"names":[],"mappings":"AAsBO,oEAcN;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/select-multiple/index.js"],"names":[],"mappings":"AAsBO,oEAcN;;AA2BD;;;;;;;;;;;;;;;gBAkLC"}
|
|
@@ -77,14 +77,10 @@ const CMMultipleView = ({
|
|
|
77
77
|
onChange
|
|
78
78
|
}) => {
|
|
79
79
|
const handleChange = (0, _react.useCallback)(checked => {
|
|
80
|
-
if (!multiple) {
|
|
81
|
-
return onChange(choice);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
80
|
return onChange(_extends({}, choice, {
|
|
85
81
|
selected: checked
|
|
86
82
|
}));
|
|
87
|
-
}, [onChange, choice
|
|
83
|
+
}, [onChange, choice]);
|
|
88
84
|
return multiple ? /*#__PURE__*/_react.default.createElement("div", {
|
|
89
85
|
className: _style.default.item
|
|
90
86
|
}, /*#__PURE__*/_react.default.createElement(_inputCheckbox.default, {
|
|
@@ -95,7 +91,6 @@ const CMMultipleView = ({
|
|
|
95
91
|
title: choice.name
|
|
96
92
|
})) : /*#__PURE__*/_react.default.createElement("span", {
|
|
97
93
|
className: _style.default.item,
|
|
98
|
-
onClick: handleChange,
|
|
99
94
|
title: choice.name,
|
|
100
95
|
"data-name": `${choice.name}-language`
|
|
101
96
|
}, choice.name);
|
|
@@ -159,7 +154,10 @@ const SelectMultiple = ({
|
|
|
159
154
|
})((choice, i) => {
|
|
160
155
|
return /*#__PURE__*/_react.default.createElement("li", {
|
|
161
156
|
key: i,
|
|
162
|
-
className: _style.default.choice
|
|
157
|
+
className: _style.default.choice,
|
|
158
|
+
onClick: isCMTheme && !multiple && (() => handleChange(_extends({}, choice, {
|
|
159
|
+
i
|
|
160
|
+
})))
|
|
163
161
|
}, isCMTheme ? /*#__PURE__*/_react.default.createElement(CMMultipleView, {
|
|
164
162
|
multiple: multiple,
|
|
165
163
|
choice: _extends({}, choice, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["themeStyle","setup","style","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","current","getChoices","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","useCallback","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","error","disabled","skin","isOpened","updateIsOpened","useState","nodeRef","useRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","useEffect","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","isActive","titleView","classnames","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","hideHint","__html","mainClass","default","showPlaceholder","behaviourClassName","getClassState","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","color","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","TitledCheckbox","func","string","arrayOf","oneOf"],"sources":["../../../src/molecule/select-multiple/index.js"],"sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = {current: options};\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n if (!multiple) {\n return onChange(choice);\n }\n return onChange({...choice, selected: checked});\n },\n [onChange, choice, multiple]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span\n className={style.item}\n onClick={handleChange}\n title={choice.name}\n data-name={`${choice.name}-language`}\n >\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n updateIsOpened(false);\n return onChange(choice);\n },\n [multiple, onChange, setChoices, getChoices]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView = isCMTheme ? (\n <div\n className={classnames(style.hint, isActive && style.hideHint)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div\n className={style.select}\n title={selection || placeholder}\n data-name={`select-languages`}\n onClick={handleOnClick}\n >\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["themeStyle","setup","style","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","current","getChoices","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","useCallback","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","error","disabled","skin","isOpened","updateIsOpened","useState","nodeRef","useRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","useEffect","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","isActive","titleView","classnames","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","hideHint","__html","mainClass","default","showPlaceholder","behaviourClassName","getClassState","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","color","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","TitledCheckbox","func","string","arrayOf","oneOf"],"sources":["../../../src/molecule/select-multiple/index.js"],"sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = {current: options};\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n return onChange({...choice, selected: checked});\n },\n [onChange, choice]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span className={style.item} title={choice.name} data-name={`${choice.name}-language`}>\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n return onChange(getChoices());\n }\n updateIsOpened(false);\n return onChange(choice);\n },\n [multiple, onChange, setChoices, getChoices]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li\n key={i}\n className={style.choice}\n onClick={isCMTheme && !multiple && (() => handleChange({...choice, i}))}\n >\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView = isCMTheme ? (\n <div\n className={classnames(style.hint, isActive && style.hideHint)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div\n className={style.select}\n title={selection || placeholder}\n data-name={`select-languages`}\n onClick={handleOnClick}\n >\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n style={{color: black}}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/list-items/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/list-items/index.js"],"names":[],"mappings":";AAoCA;;;;;;gBAwBC"}
|
|
@@ -23,7 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
23
23
|
|
|
24
24
|
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); }
|
|
25
25
|
|
|
26
|
-
const buildListItemsView = (content, ariaLabel) => {
|
|
26
|
+
const buildListItemsView = (content, ariaLabel, selectMultiple) => {
|
|
27
27
|
const {
|
|
28
28
|
items,
|
|
29
29
|
itemType
|
|
@@ -37,20 +37,20 @@ const buildListItemsView = (content, ariaLabel) => {
|
|
|
37
37
|
contentType: itemType
|
|
38
38
|
}))));
|
|
39
39
|
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
40
|
-
className: _style.default.list,
|
|
40
|
+
className: !selectMultiple ? _style.default.list : _style.default.listWithSelectMultiple,
|
|
41
41
|
"aria-label": ariaLabel,
|
|
42
42
|
"data-name": 'content-list'
|
|
43
43
|
}, itemsView);
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
const buildContentView = (content, ariaLabel) => {
|
|
46
|
+
const buildContentView = (content, ariaLabel, selectMultiple) => {
|
|
47
47
|
const {
|
|
48
48
|
type
|
|
49
49
|
} = content;
|
|
50
50
|
|
|
51
51
|
switch (type) {
|
|
52
52
|
case 'list':
|
|
53
|
-
return buildListItemsView(content, ariaLabel);
|
|
53
|
+
return buildListItemsView(content, ariaLabel, selectMultiple);
|
|
54
54
|
|
|
55
55
|
case 'expandible-actionable-table':
|
|
56
56
|
return /*#__PURE__*/_react.default.createElement(_expandibleActionableTable.default, content);
|
|
@@ -64,7 +64,7 @@ const ListItems = ({
|
|
|
64
64
|
content,
|
|
65
65
|
'aria-label': ariaLabel
|
|
66
66
|
}) => {
|
|
67
|
-
const contentView = buildContentView(content, ariaLabel);
|
|
67
|
+
const contentView = buildContentView(content, ariaLabel, selectMultiple);
|
|
68
68
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
69
69
|
className: _style.default.header
|
|
70
70
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["buildListItemsView","content","ariaLabel","items","itemType","itemsView","map","item","index","id","style","list","buildContentView","type","ListItems","title","buttonLink","
|
|
1
|
+
{"version":3,"file":"index.js","names":["buildListItemsView","content","ariaLabel","selectMultiple","items","itemType","itemsView","map","item","index","id","style","list","listWithSelectMultiple","buildContentView","type","ListItems","title","buttonLink","contentView","header","actionsWrapper","buttonCreate","propTypes","PropTypes","string","shape","ButtonLink","SelectMultiple","arrayOf","ListItem","oneOfType","oneOf","ExpandibleActionableTable"],"sources":["../../../src/organism/list-items/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ListItem from '../list-item';\nimport Title from '../../atom/title';\nimport ButtonLink from '../../atom/button-link';\nimport SelectMultiple from '../../molecule/select-multiple';\nimport ExpandibleActionableTable from '../../molecule/expandible-actionable-table';\nimport style from './style.css';\n\nconst buildListItemsView = (content, ariaLabel, selectMultiple) => {\n const {items, itemType} = content;\n const itemsView = items.map((item, index) => (\n <li key={item.id} className={style.item} data-name={`content-${index}`}>\n <ListItem {...item} order={index} contentType={itemType} />\n </li>\n ));\n return (\n <ul\n className={!selectMultiple ? style.list : style.listWithSelectMultiple}\n aria-label={ariaLabel}\n data-name={'content-list'}\n >\n {itemsView}\n </ul>\n );\n};\nconst buildContentView = (content, ariaLabel, selectMultiple) => {\n const {type} = content;\n switch (type) {\n case 'list':\n return buildListItemsView(content, ariaLabel, selectMultiple);\n case 'expandible-actionable-table':\n return <ExpandibleActionableTable {...content} />;\n }\n};\n\nconst ListItems = ({title, buttonLink, selectMultiple, content, 'aria-label': ariaLabel}) => {\n const contentView = buildContentView(content, ariaLabel, selectMultiple);\n\n return (\n <div>\n <div className={style.header}>\n <div className={style.title}>\n <Title title={title} type={'form-group'} data-name={'list-title'} />\n </div>\n <div className={style.actionsWrapper}>\n {selectMultiple ? (\n <div className={style.selectMultiple}>\n <SelectMultiple {...selectMultiple} />\n </div>\n ) : null}\n\n <div className={style.buttonCreate}>\n <ButtonLink {...buttonLink} />\n </div>\n </div>\n </div>\n {contentView}\n </div>\n );\n};\n\nListItems.propTypes = {\n 'aria-label': PropTypes.string,\n buttonLink: PropTypes.shape(ButtonLink.propTypes),\n selectMultiple: PropTypes.shape(SelectMultiple.propTypes),\n items: PropTypes.arrayOf(PropTypes.shape(ListItem.propTypes)),\n content: PropTypes.oneOfType([\n PropTypes.shape({\n items: PropTypes.arrayOf(PropTypes.shape(ListItem.propTypes)),\n type: PropTypes.oneOf(['list']),\n itemType: PropTypes.string\n }),\n PropTypes.shape({\n ...ExpandibleActionableTable.propTypes,\n type: PropTypes.oneOf(['expandible-actionable-table'])\n })\n ]),\n title: PropTypes.string\n};\n\nexport default ListItems;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/discipline/index.js"],"names":[],"mappings":";AAcA,mEAwJC"}
|
|
@@ -54,9 +54,7 @@ const Discipline = (props, context) => {
|
|
|
54
54
|
addToMyListText,
|
|
55
55
|
removeFromMyListText,
|
|
56
56
|
disableShare = false,
|
|
57
|
-
disableAddToMyList = false
|
|
58
|
-
lastUpdated,
|
|
59
|
-
invertedLanguage = false
|
|
57
|
+
disableAddToMyList = false
|
|
60
58
|
} = props;
|
|
61
59
|
const authorSection = (0, _isEmpty.default)(authors) ? null : /*#__PURE__*/_react.default.createElement("div", {
|
|
62
60
|
className: _style.default.partners
|
|
@@ -87,9 +85,7 @@ const Discipline = (props, context) => {
|
|
|
87
85
|
image: image,
|
|
88
86
|
video: video,
|
|
89
87
|
title: title,
|
|
90
|
-
description: description
|
|
91
|
-
lastUpdated: lastUpdated,
|
|
92
|
-
invertedLanguage: invertedLanguage
|
|
88
|
+
description: description
|
|
93
89
|
}));
|
|
94
90
|
|
|
95
91
|
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","lastUpdated","invertedLanguage","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 invertedLanguage = 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\n image={image}\n video={video}\n title={title}\n description={description}\n lastUpdated={lastUpdated}\n invertedLanguage={invertedLanguage}\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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"}
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.13.7-alpha.
|
|
3
|
+
"version": "11.13.7-alpha.5+d3b37c38a",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"Soualmi Djamel <djamel.soualmi@coorpacademy.com>"
|
|
57
57
|
],
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@coorpacademy/nova-icons": "4.1.
|
|
59
|
+
"@coorpacademy/nova-icons": "4.1.6",
|
|
60
60
|
"@coorpacademy/react-native-animation": "1.0.3",
|
|
61
61
|
"@jwplayer/jwplayer-react": "^1.1.0",
|
|
62
62
|
"@types/react": "^17.0.50",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "d3b37c38a2ea1b08696e5574a976b2d054edd5bf"
|
|
170
170
|
}
|