@coorpacademy/components 11.2.2-alpha.6 → 11.2.3
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/card-content/index.d.ts.map +1 -1
- package/es/molecule/card-content/index.js +3 -3
- package/es/molecule/card-content/index.js.map +1 -1
- package/es/molecule/dashboard/cards-list/index.d.ts +0 -4
- package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
- package/es/molecule/dashboard/cards-list/index.js +4 -11
- package/es/molecule/dashboard/cards-list/index.js.map +1 -1
- package/es/organism/mooc-header/index.d.ts +1 -0
- package/es/organism/mooc-header/index.d.ts.map +1 -1
- package/es/organism/mooc-header/index.js +7 -3
- package/es/organism/mooc-header/index.js.map +1 -1
- package/es/template/app-player/popin-end/index.d.ts +0 -4
- package/es/template/app-player/popin-end/summary.d.ts +0 -4
- package/es/template/common/dashboard/index.d.ts +6 -10
- package/es/template/common/dashboard/index.d.ts.map +1 -1
- package/es/template/common/dashboard/index.js +3 -9
- package/es/template/common/dashboard/index.js.map +1 -1
- package/es/template/common/search-page/index.d.ts +0 -4
- package/es/template/teams-dashboard/index.d.ts +0 -4
- package/lib/molecule/card-content/index.d.ts.map +1 -1
- package/lib/molecule/card-content/index.js +3 -3
- package/lib/molecule/card-content/index.js.map +1 -1
- package/lib/molecule/dashboard/cards-list/index.d.ts +0 -4
- package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
- package/lib/molecule/dashboard/cards-list/index.js +4 -11
- package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
- package/lib/organism/mooc-header/index.d.ts +1 -0
- package/lib/organism/mooc-header/index.d.ts.map +1 -1
- package/lib/organism/mooc-header/index.js +7 -3
- package/lib/organism/mooc-header/index.js.map +1 -1
- package/lib/template/app-player/popin-end/index.d.ts +0 -4
- package/lib/template/app-player/popin-end/summary.d.ts +0 -4
- package/lib/template/common/dashboard/index.d.ts +6 -10
- package/lib/template/common/dashboard/index.d.ts.map +1 -1
- package/lib/template/common/dashboard/index.js +3 -9
- package/lib/template/common/dashboard/index.js.map +1 -1
- package/lib/template/common/search-page/index.d.ts +0 -4
- package/lib/template/teams-dashboard/index.d.ts +0 -4
- package/package.json +3 -3
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
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); }
|
|
2
|
-
|
|
3
1
|
import React from 'react';
|
|
4
2
|
import PropTypes from 'prop-types';
|
|
5
3
|
import Slide from '../../../atom/slide';
|
|
@@ -29,8 +27,7 @@ const Dashboard = props => {
|
|
|
29
27
|
sections = [],
|
|
30
28
|
hero,
|
|
31
29
|
welcome,
|
|
32
|
-
cookie
|
|
33
|
-
'left-right-arrows-aria-label': showMoreOnLeftOrRightAriaLabel
|
|
30
|
+
cookie
|
|
34
31
|
} = props;
|
|
35
32
|
|
|
36
33
|
const buildSectionComponent = section => {
|
|
@@ -49,9 +46,7 @@ const Dashboard = props => {
|
|
|
49
46
|
return /*#__PURE__*/React.createElement(BattleRequestList, section);
|
|
50
47
|
|
|
51
48
|
case 'cards':
|
|
52
|
-
return /*#__PURE__*/React.createElement(CardsList,
|
|
53
|
-
"left-right-arrows-aria-label": showMoreOnLeftOrRightAriaLabel
|
|
54
|
-
}));
|
|
49
|
+
return /*#__PURE__*/React.createElement(CardsList, section);
|
|
55
50
|
|
|
56
51
|
case 'news':
|
|
57
52
|
return /*#__PURE__*/React.createElement(NewsList, section);
|
|
@@ -90,8 +85,7 @@ Dashboard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
90
85
|
hero: Hero.propTypes.hero,
|
|
91
86
|
welcome: Hero.propTypes.welcome,
|
|
92
87
|
sections: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape(BattleRequestList.propTypes), PropTypes.shape(CardsList.propTypes), PropTypes.shape(NewsList.propTypes), PropTypes.shape(StartBattle.propTypes), PropTypes.shape(ReviewBanner.propTypes)])),
|
|
93
|
-
cookie: PropTypes.shape(CMPopin.propTypes)
|
|
94
|
-
'left-right-arrows-aria-label': CardsList.propTypes['left-right-arrows-aria-label']
|
|
88
|
+
cookie: PropTypes.shape(CMPopin.propTypes)
|
|
95
89
|
} : {};
|
|
96
90
|
export default Dashboard;
|
|
97
91
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","Slide","HeroCard","BattleRequestList","CardsList","NewsList","StartBattle","CMPopin","ReviewBanner","style","Hero","memo","hero","welcome","propTypes","shape","Dashboard","props","sections","cookie","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","Slide","HeroCard","BattleRequestList","CardsList","NewsList","StartBattle","CMPopin","ReviewBanner","style","Hero","memo","hero","welcome","propTypes","shape","Dashboard","props","sections","cookie","buildSectionComponent","section","type","buildSection","index","sectionView","sectionsList","key","map","wrapper","arrayOf","oneOfType"],"sources":["../../../../src/template/common/dashboard/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Slide from '../../../atom/slide';\nimport HeroCard from '../../../molecule/hero';\nimport BattleRequestList from '../../../molecule/dashboard/battle-request-list';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport NewsList from '../../../molecule/dashboard/news-list';\nimport StartBattle from '../../../molecule/dashboard/start-battle';\nimport CMPopin from '../../../molecule/cm-popin';\nimport ReviewBanner from '../../../molecule/dashboard/review-banner';\nimport style from './style.css';\n\nconst Hero = React.memo(function Hero({hero, welcome}) {\n return <div className={style.hero}>{hero ? <HeroCard {...hero} /> : <Slide {...welcome} />}</div>;\n});\n\nHero.propTypes = {\n hero: PropTypes.shape(HeroCard.propTypes),\n welcome: PropTypes.shape(Slide.propTypes)\n};\n\nconst Dashboard = props => {\n const {sections = [], hero, welcome, cookie} = props;\n\n const buildSectionComponent = section => {\n const {type} = section;\n switch (type) {\n case 'hero':\n return <Hero hero={hero} welcome={welcome} />;\n case 'battleRequests':\n return <BattleRequestList {...section} />;\n case 'cards':\n return <CardsList {...section} />;\n case 'news':\n return <NewsList {...section} />;\n case 'battle':\n return <StartBattle {...section} />;\n case 'review':\n return <ReviewBanner {...section} />;\n default:\n return null;\n }\n };\n\n const buildSection = (section, index) => {\n const sectionView = buildSectionComponent(section);\n\n return <div key={index}>{sectionView}</div>;\n };\n\n const sectionsList = [{type: 'hero', key: 'hero'}, ...sections].map(section => (\n <div key={section.key}>{buildSection(section)}</div>\n ));\n return (\n <div className={style.wrapper} data-name=\"dashboard\">\n {sectionsList}\n {cookie ? <CMPopin {...cookie} /> : null}\n </div>\n );\n};\n\nDashboard.propTypes = {\n hero: Hero.propTypes.hero,\n welcome: Hero.propTypes.welcome,\n sections: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(BattleRequestList.propTypes),\n PropTypes.shape(CardsList.propTypes),\n PropTypes.shape(NewsList.propTypes),\n PropTypes.shape(StartBattle.propTypes),\n PropTypes.shape(ReviewBanner.propTypes)\n ])\n ),\n cookie: PropTypes.shape(CMPopin.propTypes)\n};\nexport default Dashboard;\n"],"mappings":"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"}
|
|
@@ -90,10 +90,6 @@ declare namespace SearchPage {
|
|
|
90
90
|
cards: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
|
|
91
91
|
onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
92
92
|
onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
|
|
93
|
-
'left-right-arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
|
|
94
|
-
showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
|
|
95
|
-
showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
|
|
96
|
-
}>>;
|
|
97
93
|
}>>;
|
|
98
94
|
}
|
|
99
95
|
}
|
|
@@ -38,10 +38,6 @@ declare namespace TeamsDashboard {
|
|
|
38
38
|
cards: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
|
|
39
39
|
onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
40
40
|
onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
|
|
41
|
-
'left-right-arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
|
|
42
|
-
showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
|
|
43
|
-
showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
|
|
44
|
-
}>>;
|
|
45
41
|
}> | null | undefined)[]>;
|
|
46
42
|
const isLoading: PropTypes.Requireable<boolean>;
|
|
47
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;AAyHA;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/card-content/index.js"],"names":[],"mappings":";;;;;;;;;;AAyHA;;;;;;;;;;;;;;gBAgFC"}
|
|
@@ -165,10 +165,10 @@ const ContentInfo = ({
|
|
|
165
165
|
"aria-label": (0, _get2.default)('progression', ariaLabel)
|
|
166
166
|
}) : null) : null;
|
|
167
167
|
const adaptiveIcon = adaptiv ? /*#__PURE__*/_react.default.createElement("div", {
|
|
168
|
-
className: (0, _classnames.default)(_style.default.adaptiveIcon, courseContent ? _style.default.iconShadow : null)
|
|
169
|
-
}, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyAdaptive, {
|
|
170
|
-
height: 25,
|
|
168
|
+
className: (0, _classnames.default)(_style.default.adaptiveIcon, courseContent ? _style.default.iconShadow : null),
|
|
171
169
|
"aria-label": (0, _get2.default)('adaptive', ariaLabel)
|
|
170
|
+
}, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyAdaptive, {
|
|
171
|
+
height: 25
|
|
172
172
|
})) : null;
|
|
173
173
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
174
174
|
"data-name": "info",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["MODES","HERO","CARD","THEMES","default","coorpmanager","style","ContentTypeInfo","mode","type","externalContent","context","translate","microLearningIcon","timerIcon","microLearninglabel","EXTERNAL_CONTENT_ICONS","textColor","color","contentTypeInfo","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","bool","string","CardTitle","title","empty","courseContent","classnames","innerHTML","lightTitle","darkTitle","__html","AuthorName","author","certifiedAuthor","ariaLabel","checkIcon","authorIcon","iconShadow","darkAuthorTitle","ContentInfo","adaptiv","disabled","progress","badgeCategory","badgeLabel","theme","progressBarColor","inlineProgressValueStyle","backgroundColor","width","isExternalContent","chapterContent","progressBar","progressWrapper","hideProgressBar","adaptiveIcon","infoWrapper","hero","card","progressBarDisabled","cardInfo","microLearningCardInfo","iconWrapper","number","ContentBadge","category","label","oneOf","shape","progression","adaptive"],"sources":["../../../src/molecule/card-content/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyAdaptive as AdaptivIcon,\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport ContentBadge from '../../atom/content-badge';\nimport style from './style.css';\n\nexport const MODES = {\n HERO: 'hero',\n CARD: 'card'\n};\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ContentTypeInfo = ({mode, type, externalContent}, context) => {\n const {translate} = context;\n if (mode !== MODES.CARD) {\n return null;\n }\n\n if (type === 'chapter') {\n return (\n <div className={style.microLearningIcon}>\n <TimerIcon className={style.timerIcon} />\n <span className={style.microLearninglabel}>{\"5' learning\"}</span>\n </div>\n );\n }\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const textColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n return (\n <div className={style.contentTypeInfo} style={{color: textColor}}>\n {type === 'scorm' ? translate('external_content_scorm') : ''}\n {type === 'video' ? translate('external_content_video') : ''}\n {type === 'article' ? translate('external_content_article') : ''}\n {type === 'podcast' ? translate('external_content_podcast') : ''}\n </div>\n );\n }\n\n return null;\n};\n\nContentTypeInfo.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContentTypeInfo.propTypes = {\n externalContent: PropTypes.bool,\n type: PropTypes.string,\n mode: PropTypes.string\n};\n\nconst CardTitle = ({title, empty, courseContent}) => {\n return (\n <div\n className={classnames(\n style.title,\n style.innerHTML,\n courseContent ? style.lightTitle : style.darkTitle,\n empty ? style.empty : null\n )}\n data-name=\"title\"\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n};\n\nCardTitle.propTypes = {\n title: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool\n};\n\nconst AuthorName = ({author, empty, courseContent, certifiedAuthor, 'aria-label': ariaLabel}) => {\n const checkIcon = certifiedAuthor ? (\n <CheckIcon\n className={classnames(style.authorIcon, courseContent ? style.iconShadow : null)}\n color=\"inherit\"\n />\n ) : null;\n\n return (\n <div\n data-name=\"author\"\n title={author}\n aria-label={ariaLabel}\n className={classnames(\n style.author,\n courseContent ? style.lightTitle : style.darkAuthorTitle,\n empty ? style.empty : null\n )}\n >\n <span>{author}</span>\n {checkIcon}\n </div>\n );\n};\n\nAuthorName.propTypes = {\n author: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool,\n certifiedAuthor: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst ContentInfo = ({\n adaptiv,\n author,\n certifiedAuthor = false,\n disabled = false,\n empty = false,\n mode = MODES.CARD,\n progress,\n title,\n type,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': ariaLabel\n}) => {\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${progress * 100}%`\n };\n const externalContent = isExternalContent(type);\n const courseContent = type === 'course';\n const chapterContent = type === 'chapter';\n\n const progressBar =\n mode === MODES.HERO || (!empty && !disabled) ? (\n <div className={!isNil(progress) ? style.progressWrapper : style.hideProgressBar}>\n {!disabled ? (\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n aria-label={get('progression', ariaLabel)}\n />\n ) : null}\n </div>\n ) : null;\n\n const adaptiveIcon = adaptiv ? (\n <div className={classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null)}>\n <AdaptivIcon height={25} aria-label={get('adaptive', ariaLabel)} />\n </div>\n ) : null;\n\n return (\n <div\n data-name=\"info\"\n className={classnames(\n THEMES[theme],\n style.infoWrapper,\n mode === MODES.HERO ? style.hero : style.card,\n disabled ? style.progressBarDisabled : null,\n externalContent ? style.externalContent : null\n )}\n >\n <ContentTypeInfo mode={mode} type={type} externalContent={externalContent} />\n <div\n className={classnames(style.cardInfo, chapterContent ? style.microLearningCardInfo : null)}\n >\n <div className={style.iconWrapper}>\n {adaptiveIcon}\n {!empty && badgeLabel && badgeCategory && courseContent ? (\n <ContentBadge category={badgeCategory} label={badgeLabel} />\n ) : null}\n </div>\n <CardTitle title={title} empty={empty} courseContent={courseContent} />\n <AuthorName\n author={author}\n empty={empty}\n courseContent={courseContent}\n certifiedAuthor={certifiedAuthor}\n aria-label={get('author', ariaLabel)}\n />\n </div>\n {progressBar}\n </div>\n );\n};\n\nContentInfo.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nContentInfo.propTypes = {\n adaptiv: PropTypes.bool,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n progress: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.string,\n mode: PropTypes.string,\n badgeCategory: ContentBadge.propTypes.category,\n badgeLabel: ContentBadge.propTypes.label,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.shape({\n author: PropTypes.string,\n progression: PropTypes.string,\n adaptive: PropTypes.string\n })\n};\n\nexport default ContentInfo;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["MODES","HERO","CARD","THEMES","default","coorpmanager","style","ContentTypeInfo","mode","type","externalContent","context","translate","microLearningIcon","timerIcon","microLearninglabel","EXTERNAL_CONTENT_ICONS","textColor","color","contentTypeInfo","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","bool","string","CardTitle","title","empty","courseContent","classnames","innerHTML","lightTitle","darkTitle","__html","AuthorName","author","certifiedAuthor","ariaLabel","checkIcon","authorIcon","iconShadow","darkAuthorTitle","ContentInfo","adaptiv","disabled","progress","badgeCategory","badgeLabel","theme","progressBarColor","inlineProgressValueStyle","backgroundColor","width","isExternalContent","chapterContent","progressBar","progressWrapper","hideProgressBar","adaptiveIcon","infoWrapper","hero","card","progressBarDisabled","cardInfo","microLearningCardInfo","iconWrapper","number","ContentBadge","category","label","oneOf","shape","progression","adaptive"],"sources":["../../../src/molecule/card-content/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil, keys} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyAdaptive as AdaptivIcon,\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport ContentBadge from '../../atom/content-badge';\nimport style from './style.css';\n\nexport const MODES = {\n HERO: 'hero',\n CARD: 'card'\n};\n\nexport const THEMES = {\n default: null,\n coorpmanager: style.coorpmanager\n};\n\nconst ContentTypeInfo = ({mode, type, externalContent}, context) => {\n const {translate} = context;\n if (mode !== MODES.CARD) {\n return null;\n }\n\n if (type === 'chapter') {\n return (\n <div className={style.microLearningIcon}>\n <TimerIcon className={style.timerIcon} />\n <span className={style.microLearninglabel}>{\"5' learning\"}</span>\n </div>\n );\n }\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const textColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n return (\n <div className={style.contentTypeInfo} style={{color: textColor}}>\n {type === 'scorm' ? translate('external_content_scorm') : ''}\n {type === 'video' ? translate('external_content_video') : ''}\n {type === 'article' ? translate('external_content_article') : ''}\n {type === 'podcast' ? translate('external_content_podcast') : ''}\n </div>\n );\n }\n\n return null;\n};\n\nContentTypeInfo.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContentTypeInfo.propTypes = {\n externalContent: PropTypes.bool,\n type: PropTypes.string,\n mode: PropTypes.string\n};\n\nconst CardTitle = ({title, empty, courseContent}) => {\n return (\n <div\n className={classnames(\n style.title,\n style.innerHTML,\n courseContent ? style.lightTitle : style.darkTitle,\n empty ? style.empty : null\n )}\n data-name=\"title\"\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n );\n};\n\nCardTitle.propTypes = {\n title: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool\n};\n\nconst AuthorName = ({author, empty, courseContent, certifiedAuthor, 'aria-label': ariaLabel}) => {\n const checkIcon = certifiedAuthor ? (\n <CheckIcon\n className={classnames(style.authorIcon, courseContent ? style.iconShadow : null)}\n color=\"inherit\"\n />\n ) : null;\n\n return (\n <div\n data-name=\"author\"\n title={author}\n aria-label={ariaLabel}\n className={classnames(\n style.author,\n courseContent ? style.lightTitle : style.darkAuthorTitle,\n empty ? style.empty : null\n )}\n >\n <span>{author}</span>\n {checkIcon}\n </div>\n );\n};\n\nAuthorName.propTypes = {\n author: PropTypes.string,\n empty: PropTypes.bool,\n courseContent: PropTypes.bool,\n certifiedAuthor: PropTypes.bool,\n 'aria-label': PropTypes.string\n};\n\nconst ContentInfo = ({\n adaptiv,\n author,\n certifiedAuthor = false,\n disabled = false,\n empty = false,\n mode = MODES.CARD,\n progress,\n title,\n type,\n badgeCategory,\n badgeLabel,\n theme = 'default',\n 'aria-label': ariaLabel\n}) => {\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${progress * 100}%`\n };\n const externalContent = isExternalContent(type);\n const courseContent = type === 'course';\n const chapterContent = type === 'chapter';\n\n const progressBar =\n mode === MODES.HERO || (!empty && !disabled) ? (\n <div className={!isNil(progress) ? style.progressWrapper : style.hideProgressBar}>\n {!disabled ? (\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n aria-label={get('progression', ariaLabel)}\n />\n ) : null}\n </div>\n ) : null;\n\n const adaptiveIcon = adaptiv ? (\n <div\n className={classnames(style.adaptiveIcon, courseContent ? style.iconShadow : null)}\n aria-label={get('adaptive', ariaLabel)}\n >\n <AdaptivIcon height={25} />\n </div>\n ) : null;\n\n return (\n <div\n data-name=\"info\"\n className={classnames(\n THEMES[theme],\n style.infoWrapper,\n mode === MODES.HERO ? style.hero : style.card,\n disabled ? style.progressBarDisabled : null,\n externalContent ? style.externalContent : null\n )}\n >\n <ContentTypeInfo mode={mode} type={type} externalContent={externalContent} />\n <div\n className={classnames(style.cardInfo, chapterContent ? style.microLearningCardInfo : null)}\n >\n <div className={style.iconWrapper}>\n {adaptiveIcon}\n {!empty && badgeLabel && badgeCategory && courseContent ? (\n <ContentBadge category={badgeCategory} label={badgeLabel} />\n ) : null}\n </div>\n <CardTitle title={title} empty={empty} courseContent={courseContent} />\n <AuthorName\n author={author}\n empty={empty}\n courseContent={courseContent}\n certifiedAuthor={certifiedAuthor}\n aria-label={get('author', ariaLabel)}\n />\n </div>\n {progressBar}\n </div>\n );\n};\n\nContentInfo.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nContentInfo.propTypes = {\n adaptiv: PropTypes.bool,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n progress: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.string,\n mode: PropTypes.string,\n badgeCategory: ContentBadge.propTypes.category,\n badgeLabel: ContentBadge.propTypes.label,\n theme: PropTypes.oneOf(keys(THEMES)),\n 'aria-label': PropTypes.shape({\n author: PropTypes.string,\n progression: PropTypes.string,\n adaptive: PropTypes.string\n })\n};\n\nexport default ContentInfo;\n"],"mappings":"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"}
|
|
@@ -8,10 +8,6 @@ declare class CardsList extends React.PureComponent<any, any, any> {
|
|
|
8
8
|
cards: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
|
|
9
9
|
onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
10
10
|
onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
|
|
11
|
-
'left-right-arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
|
|
12
|
-
showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
|
|
13
|
-
showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
|
|
14
|
-
}>>;
|
|
15
11
|
};
|
|
16
12
|
static contextTypes: {
|
|
17
13
|
skin: PropTypes.Requireable<PropTypes.InferProps<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;;;;;;MAQE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IApBC;;;;;;;;MAQC;IAED,0DAAgE;IAuGlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAxIC,uEAA6D;IA0I/D,mCAIC;IA1DD,oCAMC;IAED,sCAIC;IA1DD,qBAGC;IAlCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IAOD,wCAuCC;IAGC,kBAA2B;IA2D7B,sBAkEC;CACF"}
|
|
@@ -288,8 +288,7 @@ class CardsList extends _react.default.PureComponent {
|
|
|
288
288
|
cards,
|
|
289
289
|
onShowMore,
|
|
290
290
|
dataName,
|
|
291
|
-
contentType
|
|
292
|
-
'left-right-arrows-aria-label': ariaLabel = {}
|
|
291
|
+
contentType
|
|
293
292
|
} = this.props;
|
|
294
293
|
const {
|
|
295
294
|
skin
|
|
@@ -316,8 +315,7 @@ class CardsList extends _react.default.PureComponent {
|
|
|
316
315
|
color: dark,
|
|
317
316
|
className: _style.default.left,
|
|
318
317
|
width: 10,
|
|
319
|
-
height: 10
|
|
320
|
-
"aria-label": ariaLabel.showMoreOnLeftAriaLabel
|
|
318
|
+
height: 10
|
|
321
319
|
}));
|
|
322
320
|
|
|
323
321
|
const rightArrowView = /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -328,8 +326,7 @@ class CardsList extends _react.default.PureComponent {
|
|
|
328
326
|
color: dark,
|
|
329
327
|
className: _style.default.right,
|
|
330
328
|
width: 10,
|
|
331
|
-
height: 10
|
|
332
|
-
"aria-label": ariaLabel.showMoreOnRightAriaLabel
|
|
329
|
+
height: 10
|
|
333
330
|
}));
|
|
334
331
|
|
|
335
332
|
const titleView = /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -376,11 +373,7 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
376
373
|
showMore: _propTypes.default.string,
|
|
377
374
|
cards: _propTypes.default.arrayOf(_propTypes.default.shape(_card.default.protoTypes)),
|
|
378
375
|
onScroll: _propTypes.default.func,
|
|
379
|
-
onShowMore: _propTypes.default.func
|
|
380
|
-
'left-right-arrows-aria-label': _propTypes.default.shape({
|
|
381
|
-
showMoreOnLeftAriaLabel: _propTypes.default.string,
|
|
382
|
-
showMoreOnRightAriaLabel: _propTypes.default.string
|
|
383
|
-
})
|
|
376
|
+
onShowMore: _propTypes.default.func
|
|
384
377
|
} : {};
|
|
385
378
|
var _default = CardsList;
|
|
386
379
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","IconType","style","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","showMoreOnLeftAriaLabel","rightArrowView","right","showMoreOnRightAriaLabel","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","Card","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'left-right-arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n })\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {\n title,\n showMore,\n cards,\n onShowMore,\n dataName,\n contentType,\n 'left-right-arrows-aria-label': ariaLabel = {}\n } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft\n color={dark}\n className={style.left}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnLeftAriaLabel}\n />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight\n color={dark}\n className={style.right}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnRightAriaLabel}\n />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","IconType","style","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","rightArrowView","right","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","Card","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType color={dark} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {title, showMore, cards, onShowMore, dataName, contentType} = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft color={dark} className={style.left} width={10} height={10} />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight color={dark} className={style.right} width={10} height={10} />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
|
|
@@ -85,6 +85,7 @@ declare class MoocHeader extends React.Component<any, any, any> {
|
|
|
85
85
|
}>>;
|
|
86
86
|
'settings-aria-label': PropTypes.Requireable<string>;
|
|
87
87
|
'close-settings-aria-label': PropTypes.Requireable<string>;
|
|
88
|
+
'active-page-aria-label': PropTypes.Requireable<string>;
|
|
88
89
|
settings: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
89
90
|
title: PropTypes.Requireable<string>;
|
|
90
91
|
name: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/mooc-header/index.js"],"names":[],"mappings":";AAwBA;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2FE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAmBC;IAjBC;;;;MAIC;IA6CH,6BAIC;IAED,yBAGC;IAxBD,qCAQC;IAED,wBAGC;IAjBD,+BAEC;IA4BD,2BAKC;IAED,0BAKC;IAED,sBAIC;IAED,qBAIC;IAED,yBAQC;IAED,0BAQC;IArFD,2EASC;IAGC,kBAAsB;IA2ExB,6BA+YC;CACF"}
|
|
@@ -183,7 +183,8 @@ class MoocHeader extends _react.default.Component {
|
|
|
183
183
|
search,
|
|
184
184
|
'search-reset-aria-label': searchResetAriaLabel,
|
|
185
185
|
'settings-aria-label': settingsAriaLabel,
|
|
186
|
-
'close-settings-aria-label': closeSettingsAriaLabel
|
|
186
|
+
'close-settings-aria-label': closeSettingsAriaLabel,
|
|
187
|
+
'active-page-aria-label': activePageAriaLabel
|
|
187
188
|
} = this.props;
|
|
188
189
|
const {
|
|
189
190
|
isFocus,
|
|
@@ -224,6 +225,7 @@ class MoocHeader extends _react.default.Component {
|
|
|
224
225
|
const {
|
|
225
226
|
'page-count-aria-label': pageCountAriaLabel
|
|
226
227
|
} = item;
|
|
228
|
+
const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;
|
|
227
229
|
const pageBadge = item.counter > 0 ? /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
228
230
|
href: item.href,
|
|
229
231
|
"data-name": "item-badge",
|
|
@@ -241,7 +243,7 @@ class MoocHeader extends _react.default.Component {
|
|
|
241
243
|
skinHover: true,
|
|
242
244
|
onClick: this.handleLinkClick,
|
|
243
245
|
target: item.target || null,
|
|
244
|
-
"aria-label":
|
|
246
|
+
"aria-label": itemLabel,
|
|
245
247
|
style: _extends({}, activeColor)
|
|
246
248
|
}, item.title, pageBadge, /*#__PURE__*/_react.default.createElement("span", {
|
|
247
249
|
className: _style.default.bar,
|
|
@@ -254,6 +256,7 @@ class MoocHeader extends _react.default.Component {
|
|
|
254
256
|
const activeColor = item.selected ? {
|
|
255
257
|
color: primaryColor
|
|
256
258
|
} : null;
|
|
259
|
+
const itemLabel = item.selected ? `${item.title}. ${activePageAriaLabel}` : item.title;
|
|
257
260
|
const {
|
|
258
261
|
name: itemName = index
|
|
259
262
|
} = item;
|
|
@@ -263,7 +266,7 @@ class MoocHeader extends _react.default.Component {
|
|
|
263
266
|
className: _style.default.option,
|
|
264
267
|
"data-name": `item-more-${itemName}`,
|
|
265
268
|
target: item.target || null,
|
|
266
|
-
"aria-label":
|
|
269
|
+
"aria-label": itemLabel,
|
|
267
270
|
onClick: this.handleLinkClick,
|
|
268
271
|
skinHover: true,
|
|
269
272
|
style: _extends({}, activeColor)
|
|
@@ -600,6 +603,7 @@ MoocHeader.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
600
603
|
}),
|
|
601
604
|
'settings-aria-label': _propTypes.default.string,
|
|
602
605
|
'close-settings-aria-label': _propTypes.default.string,
|
|
606
|
+
'active-page-aria-label': _propTypes.default.string,
|
|
603
607
|
settings: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
604
608
|
title: _propTypes.default.string,
|
|
605
609
|
name: _propTypes.default.string,
|