@coorpacademy/components 11.35.3-forcedeploy12.9 → 11.35.3-forcedeploy14.12
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/dashboard/cards-list/index.d.ts.map +1 -1
- package/es/molecule/dashboard/cards-list/index.js +0 -2
- package/es/molecule/dashboard/cards-list/index.js.map +1 -1
- package/es/molecule/dashboard/cards-list/style.css +1 -0
- package/es/template/skill-detail/all-courses.d.ts +0 -4
- package/es/template/skill-detail/all-courses.d.ts.map +1 -1
- package/es/template/skill-detail/all-courses.js.map +1 -1
- package/es/template/skill-detail/index.js.map +1 -1
- package/es/template/skill-detail/style.css +10 -6
- package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
- package/lib/molecule/dashboard/cards-list/index.js +0 -2
- package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
- package/lib/molecule/dashboard/cards-list/style.css +1 -0
- package/lib/template/skill-detail/all-courses.d.ts +0 -4
- package/lib/template/skill-detail/all-courses.d.ts.map +1 -1
- package/lib/template/skill-detail/all-courses.js.map +1 -1
- package/lib/template/skill-detail/index.js.map +1 -1
- package/lib/template/skill-detail/style.css +10 -6
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;OAGG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqBE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAkCC;IA/BC;;;;;;;;MAQC;IAED,0DAAgE;IAsHlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAvJC,uEAA6D;IAyJ/D,mCAIC;IA5DD,oCAMC;IAGD,sCAIC;IA5DD,qBAGC;IAnCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IASD,wCAuCC;IAGC,kBAA2B;IA6D7B,sBAuGC;CACF"}
|
|
@@ -19,7 +19,6 @@ import Provider from '../../../atom/provider';
|
|
|
19
19
|
import Card, { cardPropTypes } from '../../card';
|
|
20
20
|
import LearningPriorityCard from '../../learning-priority-card';
|
|
21
21
|
import Icon from '../../../atom/icon';
|
|
22
|
-
import { COLORS } from '../../../variables/colors';
|
|
23
22
|
import style from './style.css';
|
|
24
23
|
const ShowMoreLink = props => {
|
|
25
24
|
const {
|
|
@@ -297,7 +296,6 @@ class CardsList extends React.PureComponent {
|
|
|
297
296
|
color: dark,
|
|
298
297
|
preset: 's',
|
|
299
298
|
borderRadius: '8px',
|
|
300
|
-
backgroundColor: COLORS.neutral_75,
|
|
301
299
|
ariaLabel: ariaLabel.showMoreOnLeftAriaLabel
|
|
302
300
|
};
|
|
303
301
|
const arrows = /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","cardPropTypes","LearningPriorityCard","Icon","COLORS","style","ShowMoreLink","props","onShowMore","showMore","className","createElement","onClick","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","func","string","IconView","context","contentType","ICONS","chapter","course","dark","_get","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","translate","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","_throttle","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","_debounce","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","_pipe","_map","_sum","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","_reduce","cardPositions","accWidth","cardWidth","_head","acc","pageIndex","accPageWidth","pageWidth","skip","_findIndex","position","_last","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","_findLastIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","_getOr","titleStyle","titleLink","cardsView","_toPairs","key","_extends","arrowIconProps","preset","borderRadius","backgroundColor","neutral_75","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","iconName","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","ref","oneOfType","node","arrayOf","shape","objectOf","showMoreOnRightAriaLabel","oneOf","any"],"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 NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport LearningPriorityCard from '../../learning-priority-card';\nimport Icon from '../../../atom/icon';\nimport {COLORS} from '../../../variables/colors';\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 style={{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 /**\n * IMPORTANT: update prop-types.ts too, 1st a migration of tests\n * is intended, then, a TS + functional refactor is planned.\n */\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n customStyle: PropTypes.objectOf(PropTypes.string),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n }),\n type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),\n // eslint-disable-next-line react/forbid-prop-types\n testingSizes: PropTypes.any\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 // for testing purposes only - no other way to test this polluted component\n if (props.testingSizes) {\n const {offsetWidth, scrollLeft, maxPages, possiblePages, possiblePositions} =\n props.testingSizes;\n this.state.offsetWidth = offsetWidth;\n this.state.scrollLeft = scrollLeft;\n this.state.maxPages = maxPages;\n this.state.possiblePages = possiblePages;\n this.state.possiblePositions = possiblePositions;\n }\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 /* istanbul ignore next */\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n /* istanbul ignore next */\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 /* istanbul ignore next */\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n /* istanbul ignore next */\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 customStyle = {},\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {},\n type\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 && type === 'learningPrioritiesCards' ? (\n <LearningPriorityCard {...card} dataName={`${dataName}-${key}`} />\n ) : (\n <Card {...card} dataName={`${dataName}-${key}`} />\n )}\n </div>\n );\n })\n )(cards);\n\n const arrowIconProps = {\n color: dark,\n preset: 's',\n borderRadius: '8px',\n backgroundColor: COLORS.neutral_75,\n ariaLabel: ariaLabel.showMoreOnLeftAriaLabel\n };\n\n const arrows = (\n <div className={style.arrowsWrapper}>\n <div className={style.arrow} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-left\" />\n </div>\n <div className={style.arrow} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-right\" />\n </div>\n </div>\n );\n\n const titleView =\n typeof title === 'string' ? (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n ) : (\n <span className={style.titleNode}>{title}</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 {arrows}\n </div>\n ) : null;\n\n return (\n <div\n className={style.wrapper}\n style={customStyle}\n data-name=\"cardsList\"\n data-max-pages={`${maxPages}`}\n // eslint-disable-next-line react/destructuring-assignment\n data-actual-page={`${this.state.actualPage}`}\n data-scroll-left={this.cardsWrapper?.scrollLeft}\n >\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div\n className={style.cards}\n data-testid=\"cards-view-wrapper\"\n ref={this.setCardsWrapper}\n >\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","cardPropTypes","LearningPriorityCard","Icon","style","ShowMoreLink","props","onShowMore","showMore","className","createElement","onClick","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","func","string","IconView","context","contentType","ICONS","chapter","course","dark","_get","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","translate","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","_throttle","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","_debounce","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","_pipe","_map","_sum","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","_reduce","cardPositions","accWidth","cardWidth","_head","acc","pageIndex","accPageWidth","pageWidth","skip","_findIndex","position","_last","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","_findLastIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","_getOr","titleStyle","titleLink","cardsView","_toPairs","key","_extends","arrowIconProps","preset","borderRadius","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","iconName","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","ref","oneOfType","node","arrayOf","shape","objectOf","showMoreOnRightAriaLabel","oneOf","any"],"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 NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport LearningPriorityCard from '../../learning-priority-card';\nimport Icon from '../../../atom/icon';\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 style={{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 /**\n * IMPORTANT: update prop-types.ts too, 1st a migration of tests\n * is intended, then, a TS + functional refactor is planned.\n */\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n customStyle: PropTypes.objectOf(PropTypes.string),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n }),\n type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),\n // eslint-disable-next-line react/forbid-prop-types\n testingSizes: PropTypes.any\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 // for testing purposes only - no other way to test this polluted component\n if (props.testingSizes) {\n const {offsetWidth, scrollLeft, maxPages, possiblePages, possiblePositions} =\n props.testingSizes;\n this.state.offsetWidth = offsetWidth;\n this.state.scrollLeft = scrollLeft;\n this.state.maxPages = maxPages;\n this.state.possiblePages = possiblePages;\n this.state.possiblePositions = possiblePositions;\n }\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 /* istanbul ignore next */\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n /* istanbul ignore next */\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 /* istanbul ignore next */\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n /* istanbul ignore next */\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 customStyle = {},\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {},\n type\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 && type === 'learningPrioritiesCards' ? (\n <LearningPriorityCard {...card} dataName={`${dataName}-${key}`} />\n ) : (\n <Card {...card} dataName={`${dataName}-${key}`} />\n )}\n </div>\n );\n })\n )(cards);\n\n const arrowIconProps = {\n color: dark,\n preset: 's',\n borderRadius: '8px',\n ariaLabel: ariaLabel.showMoreOnLeftAriaLabel\n };\n\n const arrows = (\n <div className={style.arrowsWrapper}>\n <div className={style.arrow} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-left\" />\n </div>\n <div className={style.arrow} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-right\" />\n </div>\n </div>\n );\n\n const titleView =\n typeof title === 'string' ? (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n ) : (\n <span className={style.titleNode}>{title}</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 {arrows}\n </div>\n ) : null;\n\n return (\n <div\n className={style.wrapper}\n style={customStyle}\n data-name=\"cardsList\"\n data-max-pages={`${maxPages}`}\n // eslint-disable-next-line react/destructuring-assignment\n data-actual-page={`${this.state.actualPage}`}\n data-scroll-left={this.cardsWrapper?.scrollLeft}\n >\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div\n className={style.cards}\n data-testid=\"cards-view-wrapper\"\n ref={this.setCardsWrapper}\n >\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,10 +12,6 @@ interface ProviderContext {
|
|
|
12
12
|
}
|
|
13
13
|
declare const AllCourses: {
|
|
14
14
|
(props: {
|
|
15
|
-
dataName?: string | undefined;
|
|
16
|
-
ariaLabel?: string | undefined;
|
|
17
|
-
selected?: boolean | undefined;
|
|
18
|
-
label?: string | undefined;
|
|
19
15
|
content: {
|
|
20
16
|
list: CardsGridProps['list'];
|
|
21
17
|
loading?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAkB,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAQpE,UAAU,eAAe;IACvB,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CACnD;AAgDD,QAAA,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAkB,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAQpE,UAAU,eAAe;IACvB,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CACnD;AAgDD,QAAA,MAAM,UAAU;;iBAEH;YACP,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB;;;sBAGW,MAAM;8BACE,MAAM,KAAK,IAAI;;;kBAG3B,OAAO,GAAG,UAAU;oBAClB,MAAM,IAAI;4BACF,OAAO;;;gCAGJ,MAAM,KAAK,IAAI;;;gBAI7B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJzB,CAAC;AAyBF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-courses.js","names":["React","useState","useCallback","useMemo","PropTypes","Provider","SelectOptionPropTypes","ButtonLink","SearchForm","CardsGrid","InputSwitch","Banner","COLORS","style","uncappedMap","_map","convert","cap","FilterButton","props","context","dataName","ariaLabel","selected","label","onClick","skin","primarySkinColor","_get","buttonProps","customStyle","backgroundColor","cm_grey_150","color","white","cm_grey_500","transition","width","createElement","contextTypes","childContextTypes","translate","propTypes","process","env","NODE_ENV","string","bool","func","AllCourses","content","filters","totalContents","bannerMicrolearning","undefined","search","oldValue","oldSearchValue","onChange","handleSearch","options","list","loading","bannerMessageType","type","bannerAction","action","oldSwitchValue","showCompleted","setShowCompleted","searchValue","setSearchValue","filteredContent","_filter","course","progress","debounceHandleSearch","_debounce","value","onSearchChange","handleSearchReset","handleShowCompletedToggle","prevShowCompleted","Fragment","className","continueLearningWrapper","continueLearningTitle","continueLearningNumber","_isNil","_size","searchAndSortSection","searchWrapper","placeholder","onReset","dataTestId","sortSection","id","name","title","theme","_isEmpty","bannerWrapper","message","cta","filterWrapper","filterProps","index","handleFilterChange","key","filterButtonWrapper","divider","justifyContent","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","shape","number","arrayOf","oneOf"],"sources":["../../../src/template/skill-detail/all-courses.tsx"],"sourcesContent":["import React, {useState, useCallback, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, filter, map, size, isNil, isEmpty, debounce} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport SearchForm from '../../molecule/search-form';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport InputSwitch from '../../atom/input-switch';\nimport Banner from '../../molecule/banner';\nimport {COLORS} from '../../variables/colors';\nimport style from './all-courses.css';\n\n// @ts-expect-error convert untypped\nconst uncappedMap = map.convert({cap: false});\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string, options?: any) => string;\n}\n\ninterface FilterOption {\n name: string;\n value: string;\n selected: boolean;\n}\n\ninterface FilterButtonProps {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n onClick?: () => void;\n}\nconst FilterButton = (props: FilterButtonProps, context: ProviderContext) => {\n const {dataName, ariaLabel, selected, label, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: selected ? primarySkinColor : COLORS.cm_grey_150,\n color: selected ? COLORS.white : COLORS.cm_grey_500,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n label,\n onClick,\n 'data-name': dataName,\n 'aria-label': ariaLabel\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\nFilterButton.propTypes = {\n dataName: PropTypes.string,\n ariaLabel: PropTypes.string,\n selected: PropTypes.bool,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst AllCourses = (\n props: {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n content: {\n list: CardsGridProps['list'];\n loading?: boolean;\n };\n totalContents?: number;\n search: {\n oldValue: string;\n onChange: (value: string) => void;\n };\n bannerMicrolearning?: {\n type: 'skill' | 'playlist';\n action: () => void;\n oldSwitchValue: boolean;\n };\n filters: {\n onChange?: (value: string) => void;\n options?: unknown[];\n };\n },\n context: ProviderContext\n) => {\n const {translate} = context;\n const {\n content,\n filters,\n totalContents,\n bannerMicrolearning = undefined,\n search: {oldValue: oldSearchValue, onChange: handleSearch}\n } = props;\n const {options, onChange} = filters;\n const {list, loading} = content;\n const bannerMessageType = bannerMicrolearning?.type;\n const bannerAction = bannerMicrolearning?.action;\n const oldSwitchValue = bannerMicrolearning?.oldSwitchValue;\n\n const [showCompleted, setShowCompleted] = useState(true);\n const [searchValue, setSearchValue] = useState(oldSearchValue || '');\n\n const filteredContent = useMemo(() => {\n return showCompleted ? list : filter(course => course.progress < 1, list);\n }, [list, showCompleted]);\n\n const debounceHandleSearch = useMemo(() => {\n return debounce(800, value => {\n handleSearch(value);\n });\n }, [handleSearch]);\n\n const onSearchChange = useCallback(\n value => {\n setSearchValue(value);\n debounceHandleSearch(value);\n },\n [debounceHandleSearch]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n debounceHandleSearch('');\n }, [debounceHandleSearch]);\n\n const handleShowCompletedToggle = useCallback(() => {\n setShowCompleted(prevShowCompleted => !prevShowCompleted);\n }, []);\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('all_content')}</span>\n <span className={style.continueLearningNumber}>\n {isNil(totalContents) ? size(filteredContent) : totalContents}\n </span>\n </div>\n <div className={style.searchAndSortSection}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: onSearchChange\n }}\n onReset={handleSearchReset}\n dataTestId=\"all-courses-search-input\"\n />\n </div>\n <div className={style.sortSection}>\n <InputSwitch\n id={'show-completed-courses-switch'}\n name={translate('show_completed')}\n title={translate('show_completed')}\n theme=\"default\"\n aria-label={'Show completed courses aria label'}\n value={showCompleted}\n onChange={handleShowCompletedToggle}\n />\n </div>\n </div>\n {!isEmpty(bannerMicrolearning) ? (\n <div className={style.bannerWrapper}>\n <Banner\n type=\"info\"\n message={\n bannerMessageType === 'skill'\n ? translate('banner_microlearning_rule_message_skill')\n : translate('banner_microlearning_rule_message')\n }\n cta={[\n {\n type: 'switch',\n label: translate('banner_microlearning_rule_label'),\n action: bannerAction,\n oldSwitchValue\n }\n ]}\n />\n </div>\n ) : null}\n\n <div className={style.filterWrapper}>\n {size(options) > 2\n ? uncappedMap((filterProps: FilterOption, index: number) => {\n const {name, value, selected} = filterProps;\n\n function handleFilterChange() {\n onChange && onChange(value);\n }\n\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton\n dataName={`filter-button-${value}`}\n ariaLabel={`Filter by ${name}`}\n selected={selected}\n label={name}\n onClick={handleFilterChange}\n />\n {value === 'ALL' ? <div className={style.divider} /> : null}\n </div>\n );\n }, options)\n : null}\n </div>\n <div>\n {size(filteredContent) ? (\n <CardsGrid\n list={filteredContent}\n loading={loading}\n customStyle={{justifyContent: 'left'}}\n />\n ) : (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nAllCourses.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nAllCourses.propTypes = {\n content: PropTypes.shape(CardsGrid.propTypes),\n totalContents: PropTypes.number,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n bannerMicrolearning: PropTypes.shape({\n type: PropTypes.oneOf(['skill', 'playlist']),\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n }),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default AllCourses;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"all-courses.js","names":["React","useState","useCallback","useMemo","PropTypes","Provider","SelectOptionPropTypes","ButtonLink","SearchForm","CardsGrid","InputSwitch","Banner","COLORS","style","uncappedMap","_map","convert","cap","FilterButton","props","context","dataName","ariaLabel","selected","label","onClick","skin","primarySkinColor","_get","buttonProps","customStyle","backgroundColor","cm_grey_150","color","white","cm_grey_500","transition","width","createElement","contextTypes","childContextTypes","translate","propTypes","process","env","NODE_ENV","string","bool","func","AllCourses","content","filters","totalContents","bannerMicrolearning","undefined","search","oldValue","oldSearchValue","onChange","handleSearch","options","list","loading","bannerMessageType","type","bannerAction","action","oldSwitchValue","showCompleted","setShowCompleted","searchValue","setSearchValue","filteredContent","_filter","course","progress","debounceHandleSearch","_debounce","value","onSearchChange","handleSearchReset","handleShowCompletedToggle","prevShowCompleted","Fragment","className","continueLearningWrapper","continueLearningTitle","continueLearningNumber","_isNil","_size","searchAndSortSection","searchWrapper","placeholder","onReset","dataTestId","sortSection","id","name","title","theme","_isEmpty","bannerWrapper","message","cta","filterWrapper","filterProps","index","handleFilterChange","key","filterButtonWrapper","divider","justifyContent","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","shape","number","arrayOf","oneOf"],"sources":["../../../src/template/skill-detail/all-courses.tsx"],"sourcesContent":["import React, {useState, useCallback, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, filter, map, size, isNil, isEmpty, debounce} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport SearchForm from '../../molecule/search-form';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport InputSwitch from '../../atom/input-switch';\nimport Banner from '../../molecule/banner';\nimport {COLORS} from '../../variables/colors';\nimport style from './all-courses.css';\n\n// @ts-expect-error convert untypped\nconst uncappedMap = map.convert({cap: false});\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string, options?: any) => string;\n}\n\ninterface FilterOption {\n name: string;\n value: string;\n selected: boolean;\n}\n\ninterface FilterButtonProps {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n onClick?: () => void;\n}\nconst FilterButton = (props: FilterButtonProps, context: ProviderContext) => {\n const {dataName, ariaLabel, selected, label, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: selected ? primarySkinColor : COLORS.cm_grey_150,\n color: selected ? COLORS.white : COLORS.cm_grey_500,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n label,\n onClick,\n 'data-name': dataName,\n 'aria-label': ariaLabel\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\nFilterButton.propTypes = {\n dataName: PropTypes.string,\n ariaLabel: PropTypes.string,\n selected: PropTypes.bool,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst AllCourses = (\n props: {\n content: {\n list: CardsGridProps['list'];\n loading?: boolean;\n };\n totalContents?: number;\n search: {\n oldValue: string;\n onChange: (value: string) => void;\n };\n bannerMicrolearning?: {\n type: 'skill' | 'playlist';\n action: () => void;\n oldSwitchValue: boolean;\n };\n filters: {\n onChange?: (value: string) => void;\n options?: unknown[];\n };\n },\n context: ProviderContext\n) => {\n const {translate} = context;\n const {\n content,\n filters,\n totalContents,\n bannerMicrolearning = undefined,\n search: {oldValue: oldSearchValue, onChange: handleSearch}\n } = props;\n const {options, onChange} = filters;\n const {list, loading} = content;\n const bannerMessageType = bannerMicrolearning?.type;\n const bannerAction = bannerMicrolearning?.action;\n const oldSwitchValue = bannerMicrolearning?.oldSwitchValue;\n\n const [showCompleted, setShowCompleted] = useState(true);\n const [searchValue, setSearchValue] = useState(oldSearchValue || '');\n\n const filteredContent = useMemo(() => {\n return showCompleted ? list : filter(course => course.progress < 1, list);\n }, [list, showCompleted]);\n\n const debounceHandleSearch = useMemo(() => {\n return debounce(800, value => {\n handleSearch(value);\n });\n }, [handleSearch]);\n\n const onSearchChange = useCallback(\n value => {\n setSearchValue(value);\n debounceHandleSearch(value);\n },\n [debounceHandleSearch]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n debounceHandleSearch('');\n }, [debounceHandleSearch]);\n\n const handleShowCompletedToggle = useCallback(() => {\n setShowCompleted(prevShowCompleted => !prevShowCompleted);\n }, []);\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('all_content')}</span>\n <span className={style.continueLearningNumber}>\n {isNil(totalContents) ? size(filteredContent) : totalContents}\n </span>\n </div>\n <div className={style.searchAndSortSection}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: onSearchChange\n }}\n onReset={handleSearchReset}\n dataTestId=\"all-courses-search-input\"\n />\n </div>\n <div className={style.sortSection}>\n <InputSwitch\n id={'show-completed-courses-switch'}\n name={translate('show_completed')}\n title={translate('show_completed')}\n theme=\"default\"\n aria-label={'Show completed courses aria label'}\n value={showCompleted}\n onChange={handleShowCompletedToggle}\n />\n </div>\n </div>\n {!isEmpty(bannerMicrolearning) ? (\n <div className={style.bannerWrapper}>\n <Banner\n type=\"info\"\n message={\n bannerMessageType === 'skill'\n ? translate('banner_microlearning_rule_message_skill')\n : translate('banner_microlearning_rule_message')\n }\n cta={[\n {\n type: 'switch',\n label: translate('banner_microlearning_rule_label'),\n action: bannerAction,\n oldSwitchValue\n }\n ]}\n />\n </div>\n ) : null}\n\n <div className={style.filterWrapper}>\n {size(options) > 2\n ? uncappedMap((filterProps: FilterOption, index: number) => {\n const {name, value, selected} = filterProps;\n\n function handleFilterChange() {\n onChange && onChange(value);\n }\n\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton\n dataName={`filter-button-${value}`}\n ariaLabel={`Filter by ${name}`}\n selected={selected}\n label={name}\n onClick={handleFilterChange}\n />\n {value === 'ALL' ? <div className={style.divider} /> : null}\n </div>\n );\n }, options)\n : null}\n </div>\n <div>\n {size(filteredContent) ? (\n <CardsGrid\n list={filteredContent}\n loading={loading}\n customStyle={{justifyContent: 'left'}}\n />\n ) : (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nAllCourses.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nAllCourses.propTypes = {\n content: PropTypes.shape(CardsGrid.propTypes),\n totalContents: PropTypes.number,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n bannerMicrolearning: PropTypes.shape({\n type: PropTypes.oneOf(['skill', 'playlist']),\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n }),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default AllCourses;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useState","useRef","useEffect","PropTypes","classnames","Markdown","convert","Provider","ButtonLinkIcon","Icon","IconPreview","ButtonLink","CardsGrid","COLORS","SelectOptionPropTypes","AllCourses","style","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","color","size","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","SkillDetail","title","iconColor","iconName","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","score","questionsToReview","totalContents","bannerMicrolearningAction","action","descriptionRef","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","ref","className","truncate","ProgressBar","progressBarColor","cm_positive_500","inlineProgressStyle","progressBarRow","progressBarWrapper","progress","role","progressInformationNumber","toFixed","hasDescription","Boolean","trim","length","backgroundContainer","container","topSection","_isNil","backButton","tooltipPlacement","mainSection","leftSide","gap","padding","rightSide","skillFocusBadge","purple_100","faSize","wrapperSize","skillBadge","cm_grey_100","Fragment","showMoreWrapper","skillInformation","progressContainer","noDescriptionSpacing","ctaWrapper","disabled","cm_grey_700","content","oldSwitchValue","undefined","string","isRequired","shape","number","onChange","options","arrayOf","oldValue"],"sources":["../../../src/template/skill-detail/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport IconPreview from '../../molecule/icon-preview';\nimport ButtonLink from '../../atom/button-link';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport {COLORS} from '../../variables/colors';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport AllCourses from './all-courses';\nimport style from './style.css';\n\ninterface ContinueLearningButtonProps {\n ongoingCoursesAvailable?: boolean;\n onClick?: () => void;\n}\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string) => string;\n}\n\nexport const ContinueLearningButton = (\n props: ContinueLearningButtonProps,\n context: ProviderContext\n) => {\n const {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <ButtonLink\n label={ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')}\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)}\n hoverColor={COLORS.white}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: COLORS.white,\n size: 14\n }\n }}\n onClick={onClick}\n />\n );\n};\n\nContinueLearningButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearningButton.propTypes = {\n ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\ninterface Metrics {\n score?: number;\n questionsToReview?: number;\n totalContents?: number;\n}\n\ntype BannerMicrolearning =\n | Record<string, never>\n | {\n action: () => void;\n oldSwitchValue: boolean;\n };\ninterface SkillDetailProps {\n title: string;\n icon: {name: string; color: string};\n skillRef: string;\n description?: string;\n metrics?: Metrics;\n focused?: boolean;\n availableForReview?: boolean;\n ongoingCoursesAvailable?: boolean;\n skillIncludedCourses: CardsGridProps;\n filters: {\n onChange?: () => void;\n options?: unknown[];\n };\n onBackClick?: () => void;\n onReviewClick?: () => void;\n onContinueLearningClick?: () => void;\n search: {\n oldValue: string;\n onChange: () => void;\n };\n bannerMicrolearning?: BannerMicrolearning;\n}\nconst SkillDetail = (props: SkillDetailProps, context: ProviderContext) => {\n const {\n title,\n icon: {color: iconColor, name: iconName},\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning\n } = props;\n\n const {score = 0, questionsToReview = 0, totalContents = 0} = metrics;\n const {translate} = context;\n const bannerMicrolearningAction = bannerMicrolearning?.action;\n const descriptionRef = useRef(null);\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => {\n setShowMore(!showMore);\n }, [showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n {description ? <Markdown>{description}</Markdown> : null}\n </div>\n );\n }, [showMore, description]);\n\n const ProgressBar = useCallback(() => {\n if (typeof score !== 'number') return null;\n\n const progressBarColor = COLORS.cm_positive_500;\n const inlineProgressStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarRow}>\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressStyle}\n role=\"progressbar\"\n aria-valuenow={score}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n );\n }, [score]);\n const hasDescription = Boolean(description && description.trim().length > 0);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={skillRef}>\n {/* Top section for the back arrow (optional) */}\n <div className={style.topSection}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n </div>\n\n {/* Main section: icon on the left, skill info on the right */}\n <div className={style.mainSection}>\n <div className={style.leftSide}>\n <IconPreview\n icon={{\n name: iconName,\n color: iconColor\n }}\n title={title}\n customStyle={{gap: 24, padding: '50px 49px 50px 50px'}}\n />\n </div>\n <div className={style.rightSide}>\n {focused ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor={COLORS.purple_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill_focus')}\n </div>\n ) : (\n <div className={style.skillBadge}>\n <Icon\n iconName=\"shapes\"\n backgroundColor={COLORS.cm_grey_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill')}\n </div>\n )}\n\n <h2 className={style.title}>{title}</h2>\n\n {description && (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {showMore ? translate('Show less') : translate('Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 14}}\n customStyle={{padding: '8px'}}\n />\n </div>\n ) : null}\n </>\n )}\n\n {questionsToReview > 0 ? (\n <div className={style.skillInformation}>\n <span>{questionsToReview}</span>\n {translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n\n <div\n className={classnames(\n style.progressContainer,\n !hasDescription && style.noDescriptionSpacing\n )}\n >\n <ProgressBar />\n </div>\n\n <div className={style.ctaWrapper}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n <ButtonLink\n type=\"secondary\"\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n onClick={onReviewClick}\n icon={{\n position: 'left',\n faIcon: {\n name: 'rotate-right',\n color: COLORS.cm_grey_700,\n size: 14\n }\n }}\n customStyle={{borderRadius: '12px', width: 'fit-content'}}\n />\n </div>\n </div>\n </div>\n\n {/* Courses section below */}\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearning && bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue: bannerMicrolearning.oldSwitchValue\n }\n : undefined\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string\n }).isRequired,\n skillRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useState","useRef","useEffect","PropTypes","classnames","Markdown","convert","Provider","ButtonLinkIcon","Icon","IconPreview","ButtonLink","CardsGrid","COLORS","SelectOptionPropTypes","AllCourses","style","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","color","size","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","SkillDetail","title","iconColor","iconName","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","score","questionsToReview","totalContents","bannerMicrolearningAction","action","descriptionRef","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","ref","className","truncate","ProgressBar","progressBarColor","cm_positive_500","inlineProgressStyle","progressBarRow","progressBarWrapper","progress","role","progressInformationNumber","toFixed","hasDescription","Boolean","trim","length","backgroundContainer","container","topSection","_isNil","backButton","tooltipPlacement","mainSection","leftSide","gap","padding","rightSide","skillFocusBadge","purple_100","faSize","wrapperSize","skillBadge","cm_grey_100","Fragment","showMoreWrapper","skillInformation","progressContainer","noDescriptionSpacing","ctaWrapper","disabled","cm_grey_700","content","oldSwitchValue","undefined","string","isRequired","shape","number","onChange","options","arrayOf","oldValue"],"sources":["../../../src/template/skill-detail/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport IconPreview from '../../molecule/icon-preview';\nimport ButtonLink from '../../atom/button-link';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport {COLORS} from '../../variables/colors';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport AllCourses from './all-courses';\nimport style from './style.css';\n\ninterface ContinueLearningButtonProps {\n ongoingCoursesAvailable?: boolean;\n onClick?: () => void;\n}\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string) => string;\n}\n\nexport const ContinueLearningButton = (\n props: ContinueLearningButtonProps,\n context: ProviderContext\n) => {\n const {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <ButtonLink\n label={ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')}\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)}\n hoverColor={COLORS.white}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: COLORS.white,\n size: 14\n }\n }}\n onClick={onClick}\n />\n );\n};\n\nContinueLearningButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearningButton.propTypes = {\n ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\ninterface Metrics {\n score?: number;\n questionsToReview?: number;\n totalContents?: number;\n}\n\ntype BannerMicrolearning =\n | Record<string, never>\n | {\n action: () => void;\n oldSwitchValue: boolean;\n };\ninterface SkillDetailProps {\n title: string;\n icon: {name: string; color: string};\n skillRef: string;\n description?: string;\n metrics?: Metrics;\n focused?: boolean;\n availableForReview?: boolean;\n ongoingCoursesAvailable?: boolean;\n skillIncludedCourses: CardsGridProps;\n filters: {\n onChange?: () => void;\n options?: unknown[];\n };\n onBackClick?: () => void;\n onReviewClick?: () => void;\n onContinueLearningClick?: () => void;\n search: {\n oldValue: string;\n onChange: () => void;\n };\n bannerMicrolearning?: BannerMicrolearning;\n}\nconst SkillDetail = (props: SkillDetailProps, context: ProviderContext) => {\n const {\n title,\n icon: {color: iconColor, name: iconName},\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning\n } = props;\n\n const {score = 0, questionsToReview = 0, totalContents = 0} = metrics;\n const {translate} = context;\n const bannerMicrolearningAction = bannerMicrolearning?.action;\n const descriptionRef = useRef(null);\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => {\n setShowMore(!showMore);\n }, [showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n {description ? <Markdown>{description}</Markdown> : null}\n </div>\n );\n }, [showMore, description]);\n\n const ProgressBar = useCallback(() => {\n if (typeof score !== 'number') return null;\n\n const progressBarColor = COLORS.cm_positive_500;\n const inlineProgressStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarRow}>\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressStyle}\n role=\"progressbar\"\n aria-valuenow={score}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n );\n }, [score]);\n const hasDescription = Boolean(description && description.trim().length > 0);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={skillRef}>\n {/* Top section for the back arrow (optional) */}\n <div className={style.topSection}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n </div>\n\n {/* Main section: icon on the left, skill info on the right */}\n <div className={style.mainSection}>\n <div className={style.leftSide}>\n <IconPreview\n icon={{\n name: iconName,\n color: iconColor\n }}\n title={title}\n customStyle={{gap: 24, padding: '50px 49px 50px 50px'}}\n />\n </div>\n <div className={style.rightSide}>\n {focused ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor={COLORS.purple_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill_focus')}\n </div>\n ) : (\n <div className={style.skillBadge}>\n <Icon\n iconName=\"shapes\"\n backgroundColor={COLORS.cm_grey_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill')}\n </div>\n )}\n\n <h2 className={style.title}>{title}</h2>\n\n {description && (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {showMore ? translate('Show less') : translate('Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 14}}\n customStyle={{padding: '8px'}}\n />\n </div>\n ) : null}\n </>\n )}\n\n {questionsToReview > 0 ? (\n <div className={style.skillInformation}>\n <span>{questionsToReview}</span>\n {translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n\n <div\n className={classnames(\n style.progressContainer,\n !hasDescription && style.noDescriptionSpacing\n )}\n >\n <ProgressBar />\n </div>\n\n <div className={style.ctaWrapper}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n <ButtonLink\n type=\"secondary\"\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n onClick={onReviewClick}\n icon={{\n position: 'left',\n faIcon: {\n name: 'rotate-right',\n color: COLORS.cm_grey_700,\n size: 14\n }\n }}\n customStyle={{borderRadius: '12px', width: 'fit-content'}}\n />\n </div>\n </div>\n </div>\n\n {/* Courses section below */}\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearning && bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue: bannerMicrolearning.oldSwitchValue\n }\n : undefined\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string\n }).isRequired,\n skillRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,8 +44,10 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.leftSide {
|
|
47
|
-
width: 420px;
|
|
48
|
-
height: 280px;
|
|
47
|
+
max-width: 420px;
|
|
48
|
+
max-height: 280px;
|
|
49
|
+
height: 100%;
|
|
50
|
+
width: 100%;
|
|
49
51
|
display: flex;
|
|
50
52
|
flex-direction: column;
|
|
51
53
|
gap: 16px;
|
|
@@ -217,8 +219,10 @@
|
|
|
217
219
|
}
|
|
218
220
|
|
|
219
221
|
.leftSide {
|
|
220
|
-
width: 343px;
|
|
221
|
-
height: 228px;
|
|
222
|
+
max-width: 343px;
|
|
223
|
+
max-height: 228px;
|
|
224
|
+
height: 100%;
|
|
225
|
+
width: 100%;
|
|
222
226
|
display: flex;
|
|
223
227
|
flex-direction: column;
|
|
224
228
|
align-items: flex-start;
|
|
@@ -229,7 +233,6 @@
|
|
|
229
233
|
}
|
|
230
234
|
|
|
231
235
|
.rightSide {
|
|
232
|
-
max-width: 100%;
|
|
233
236
|
width: 100%;
|
|
234
237
|
height: auto;
|
|
235
238
|
display: flex;
|
|
@@ -300,7 +303,8 @@
|
|
|
300
303
|
.leftSide {
|
|
301
304
|
border-radius: 16px;
|
|
302
305
|
padding: 16px 32px 32px 0px;
|
|
303
|
-
height:
|
|
306
|
+
height: 100%;
|
|
307
|
+
width: 100%;
|
|
304
308
|
}
|
|
305
309
|
|
|
306
310
|
.backButton {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;OAGG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqBE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAkCC;IA/BC;;;;;;;;MAQC;IAED,0DAAgE;IAsHlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAvJC,uEAA6D;IAyJ/D,mCAIC;IA5DD,oCAMC;IAGD,sCAIC;IA5DD,qBAGC;IAnCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IASD,wCAuCC;IAGC,kBAA2B;IA6D7B,sBAuGC;CACF"}
|
|
@@ -22,7 +22,6 @@ var _provider = _interopRequireDefault(require("../../../atom/provider"));
|
|
|
22
22
|
var _card = _interopRequireWildcard(require("../../card"));
|
|
23
23
|
var _learningPriorityCard = _interopRequireDefault(require("../../learning-priority-card"));
|
|
24
24
|
var _icon = _interopRequireDefault(require("../../../atom/icon"));
|
|
25
|
-
var _colors = require("../../../variables/colors");
|
|
26
25
|
var _style = _interopRequireDefault(require("./style.css"));
|
|
27
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
28
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -304,7 +303,6 @@ class CardsList extends _react.default.PureComponent {
|
|
|
304
303
|
color: dark,
|
|
305
304
|
preset: 's',
|
|
306
305
|
borderRadius: '8px',
|
|
307
|
-
backgroundColor: _colors.COLORS.neutral_75,
|
|
308
306
|
ariaLabel: ariaLabel.showMoreOnLeftAriaLabel
|
|
309
307
|
};
|
|
310
308
|
const arrows = /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_novaIcons","_provider","_card","_interopRequireWildcard","_learningPriorityCard","_icon","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ShowMoreLink","props","onShowMore","showMore","className","createElement","onClick","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","_get2","IconType","style","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","PureComponent","translate","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","_throttle2","handleScroll","handleOnLeft","handleOnRight","scrollTo","updateState","_debounce2","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","_pipe2","_map2","_sum2","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","_reduce2","cardPositions","accWidth","cardWidth","_head2","acc","pageIndex","accPageWidth","pageWidth","skip","_findIndex2","position","_last2","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","_findLastIndex2","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","_getOr2","titleStyle","titleLink","cardsView","_toPairs2","key","arrowIconProps","preset","borderRadius","backgroundColor","COLORS","neutral_75","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","iconName","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","ref","oneOfType","node","arrayOf","shape","cardPropTypes","LearningPriorityCard","objectOf","showMoreOnRightAriaLabel","oneOf","any","_default","exports"],"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 NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport LearningPriorityCard from '../../learning-priority-card';\nimport Icon from '../../../atom/icon';\nimport {COLORS} from '../../../variables/colors';\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 style={{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 /**\n * IMPORTANT: update prop-types.ts too, 1st a migration of tests\n * is intended, then, a TS + functional refactor is planned.\n */\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n customStyle: PropTypes.objectOf(PropTypes.string),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n }),\n type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),\n // eslint-disable-next-line react/forbid-prop-types\n testingSizes: PropTypes.any\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 // for testing purposes only - no other way to test this polluted component\n if (props.testingSizes) {\n const {offsetWidth, scrollLeft, maxPages, possiblePages, possiblePositions} =\n props.testingSizes;\n this.state.offsetWidth = offsetWidth;\n this.state.scrollLeft = scrollLeft;\n this.state.maxPages = maxPages;\n this.state.possiblePages = possiblePages;\n this.state.possiblePositions = possiblePositions;\n }\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 /* istanbul ignore next */\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n /* istanbul ignore next */\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 /* istanbul ignore next */\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n /* istanbul ignore next */\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 customStyle = {},\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {},\n type\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 && type === 'learningPrioritiesCards' ? (\n <LearningPriorityCard {...card} dataName={`${dataName}-${key}`} />\n ) : (\n <Card {...card} dataName={`${dataName}-${key}`} />\n )}\n </div>\n );\n })\n )(cards);\n\n const arrowIconProps = {\n color: dark,\n preset: 's',\n borderRadius: '8px',\n backgroundColor: COLORS.neutral_75,\n ariaLabel: ariaLabel.showMoreOnLeftAriaLabel\n };\n\n const arrows = (\n <div className={style.arrowsWrapper}>\n <div className={style.arrow} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-left\" />\n </div>\n <div className={style.arrow} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-right\" />\n </div>\n </div>\n );\n\n const titleView =\n typeof title === 'string' ? (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n ) : (\n <span className={style.titleNode}>{title}</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 {arrows}\n </div>\n ) : null;\n\n return (\n <div\n className={style.wrapper}\n style={customStyle}\n data-name=\"cardsList\"\n data-max-pages={`${maxPages}`}\n // eslint-disable-next-line react/destructuring-assignment\n data-actual-page={`${this.state.actualPage}`}\n data-scroll-left={this.cardsWrapper?.scrollLeft}\n >\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div\n className={style.cards}\n data-testid=\"cards-view-wrapper\"\n ref={this.setCardsWrapper}\n >\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_novaIcons","_provider","_card","_interopRequireWildcard","_learningPriorityCard","_icon","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ShowMoreLink","props","onShowMore","showMore","className","createElement","onClick","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","_get2","IconType","style","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","PureComponent","translate","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","_throttle2","handleScroll","handleOnLeft","handleOnRight","scrollTo","updateState","_debounce2","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","_pipe2","_map2","_sum2","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","_reduce2","cardPositions","accWidth","cardWidth","_head2","acc","pageIndex","accPageWidth","pageWidth","skip","_findIndex2","position","_last2","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","_findLastIndex2","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","_getOr2","titleStyle","titleLink","cardsView","_toPairs2","key","arrowIconProps","preset","borderRadius","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","iconName","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","ref","oneOfType","node","arrayOf","shape","cardPropTypes","LearningPriorityCard","objectOf","showMoreOnRightAriaLabel","oneOf","any","_default","exports"],"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 NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport LearningPriorityCard from '../../learning-priority-card';\nimport Icon from '../../../atom/icon';\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 style={{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 /**\n * IMPORTANT: update prop-types.ts too, 1st a migration of tests\n * is intended, then, a TS + functional refactor is planned.\n */\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n customStyle: PropTypes.objectOf(PropTypes.string),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n }),\n type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),\n // eslint-disable-next-line react/forbid-prop-types\n testingSizes: PropTypes.any\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 // for testing purposes only - no other way to test this polluted component\n if (props.testingSizes) {\n const {offsetWidth, scrollLeft, maxPages, possiblePages, possiblePositions} =\n props.testingSizes;\n this.state.offsetWidth = offsetWidth;\n this.state.scrollLeft = scrollLeft;\n this.state.maxPages = maxPages;\n this.state.possiblePages = possiblePages;\n this.state.possiblePositions = possiblePositions;\n }\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 /* istanbul ignore next */\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n /* istanbul ignore next */\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 /* istanbul ignore next */\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n /* istanbul ignore next */\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 customStyle = {},\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {},\n type\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 && type === 'learningPrioritiesCards' ? (\n <LearningPriorityCard {...card} dataName={`${dataName}-${key}`} />\n ) : (\n <Card {...card} dataName={`${dataName}-${key}`} />\n )}\n </div>\n );\n })\n )(cards);\n\n const arrowIconProps = {\n color: dark,\n preset: 's',\n borderRadius: '8px',\n ariaLabel: ariaLabel.showMoreOnLeftAriaLabel\n };\n\n const arrows = (\n <div className={style.arrowsWrapper}>\n <div className={style.arrow} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-left\" />\n </div>\n <div className={style.arrow} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <Icon {...arrowIconProps} iconName=\"arrow-right\" />\n </div>\n </div>\n );\n\n const titleView =\n typeof title === 'string' ? (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n ) : (\n <span className={style.titleNode}>{title}</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 {arrows}\n </div>\n ) : null;\n\n return (\n <div\n className={style.wrapper}\n style={customStyle}\n data-name=\"cardsList\"\n data-max-pages={`${maxPages}`}\n // eslint-disable-next-line react/destructuring-assignment\n data-actual-page={`${this.state.actualPage}`}\n data-scroll-left={this.cardsWrapper?.scrollLeft}\n >\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div\n className={style.cards}\n data-testid=\"cards-view-wrapper\"\n ref={this.setCardsWrapper}\n >\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,10 +12,6 @@ interface ProviderContext {
|
|
|
12
12
|
}
|
|
13
13
|
declare const AllCourses: {
|
|
14
14
|
(props: {
|
|
15
|
-
dataName?: string | undefined;
|
|
16
|
-
ariaLabel?: string | undefined;
|
|
17
|
-
selected?: boolean | undefined;
|
|
18
|
-
label?: string | undefined;
|
|
19
15
|
content: {
|
|
20
16
|
list: CardsGridProps['list'];
|
|
21
17
|
loading?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAkB,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAQpE,UAAU,eAAe;IACvB,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CACnD;AAgDD,QAAA,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAkB,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAQpE,UAAU,eAAe;IACvB,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CACnD;AAgDD,QAAA,MAAM,UAAU;;iBAEH;YACP,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB;;;sBAGW,MAAM;8BACE,MAAM,KAAK,IAAI;;;kBAG3B,OAAO,GAAG,UAAU;oBAClB,MAAM,IAAI;4BACF,OAAO;;;gCAGJ,MAAM,KAAK,IAAI;;;gBAI7B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJzB,CAAC;AAyBF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-courses.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_provider","_select","_buttonLink","_searchForm","_cardsGrid","_inputSwitch","_banner","_colors","_allCourses","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","uncappedMap","_map2","convert","cap","FilterButton","props","context","dataName","ariaLabel","selected","label","onClick","skin","primarySkinColor","_get2","buttonProps","customStyle","backgroundColor","COLORS","cm_grey_150","color","white","cm_grey_500","transition","width","createElement","contextTypes","Provider","childContextTypes","translate","propTypes","process","env","NODE_ENV","PropTypes","string","bool","func","AllCourses","content","filters","totalContents","bannerMicrolearning","undefined","search","oldValue","oldSearchValue","onChange","handleSearch","options","list","loading","bannerMessageType","type","bannerAction","action","oldSwitchValue","showCompleted","setShowCompleted","useState","searchValue","setSearchValue","filteredContent","useMemo","_filter2","course","progress","debounceHandleSearch","_debounce2","value","onSearchChange","useCallback","handleSearchReset","handleShowCompletedToggle","prevShowCompleted","Fragment","className","style","continueLearningWrapper","continueLearningTitle","continueLearningNumber","_isNil2","_size2","searchAndSortSection","searchWrapper","placeholder","onReset","dataTestId","sortSection","id","name","title","theme","_isEmpty2","bannerWrapper","message","cta","filterWrapper","filterProps","index","handleFilterChange","key","filterButtonWrapper","divider","justifyContent","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","shape","CardsGrid","number","arrayOf","SelectOptionPropTypes","oneOf","_default","exports"],"sources":["../../../src/template/skill-detail/all-courses.tsx"],"sourcesContent":["import React, {useState, useCallback, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, filter, map, size, isNil, isEmpty, debounce} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport SearchForm from '../../molecule/search-form';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport InputSwitch from '../../atom/input-switch';\nimport Banner from '../../molecule/banner';\nimport {COLORS} from '../../variables/colors';\nimport style from './all-courses.css';\n\n// @ts-expect-error convert untypped\nconst uncappedMap = map.convert({cap: false});\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string, options?: any) => string;\n}\n\ninterface FilterOption {\n name: string;\n value: string;\n selected: boolean;\n}\n\ninterface FilterButtonProps {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n onClick?: () => void;\n}\nconst FilterButton = (props: FilterButtonProps, context: ProviderContext) => {\n const {dataName, ariaLabel, selected, label, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: selected ? primarySkinColor : COLORS.cm_grey_150,\n color: selected ? COLORS.white : COLORS.cm_grey_500,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n label,\n onClick,\n 'data-name': dataName,\n 'aria-label': ariaLabel\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\nFilterButton.propTypes = {\n dataName: PropTypes.string,\n ariaLabel: PropTypes.string,\n selected: PropTypes.bool,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst AllCourses = (\n props: {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n content: {\n list: CardsGridProps['list'];\n loading?: boolean;\n };\n totalContents?: number;\n search: {\n oldValue: string;\n onChange: (value: string) => void;\n };\n bannerMicrolearning?: {\n type: 'skill' | 'playlist';\n action: () => void;\n oldSwitchValue: boolean;\n };\n filters: {\n onChange?: (value: string) => void;\n options?: unknown[];\n };\n },\n context: ProviderContext\n) => {\n const {translate} = context;\n const {\n content,\n filters,\n totalContents,\n bannerMicrolearning = undefined,\n search: {oldValue: oldSearchValue, onChange: handleSearch}\n } = props;\n const {options, onChange} = filters;\n const {list, loading} = content;\n const bannerMessageType = bannerMicrolearning?.type;\n const bannerAction = bannerMicrolearning?.action;\n const oldSwitchValue = bannerMicrolearning?.oldSwitchValue;\n\n const [showCompleted, setShowCompleted] = useState(true);\n const [searchValue, setSearchValue] = useState(oldSearchValue || '');\n\n const filteredContent = useMemo(() => {\n return showCompleted ? list : filter(course => course.progress < 1, list);\n }, [list, showCompleted]);\n\n const debounceHandleSearch = useMemo(() => {\n return debounce(800, value => {\n handleSearch(value);\n });\n }, [handleSearch]);\n\n const onSearchChange = useCallback(\n value => {\n setSearchValue(value);\n debounceHandleSearch(value);\n },\n [debounceHandleSearch]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n debounceHandleSearch('');\n }, [debounceHandleSearch]);\n\n const handleShowCompletedToggle = useCallback(() => {\n setShowCompleted(prevShowCompleted => !prevShowCompleted);\n }, []);\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('all_content')}</span>\n <span className={style.continueLearningNumber}>\n {isNil(totalContents) ? size(filteredContent) : totalContents}\n </span>\n </div>\n <div className={style.searchAndSortSection}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: onSearchChange\n }}\n onReset={handleSearchReset}\n dataTestId=\"all-courses-search-input\"\n />\n </div>\n <div className={style.sortSection}>\n <InputSwitch\n id={'show-completed-courses-switch'}\n name={translate('show_completed')}\n title={translate('show_completed')}\n theme=\"default\"\n aria-label={'Show completed courses aria label'}\n value={showCompleted}\n onChange={handleShowCompletedToggle}\n />\n </div>\n </div>\n {!isEmpty(bannerMicrolearning) ? (\n <div className={style.bannerWrapper}>\n <Banner\n type=\"info\"\n message={\n bannerMessageType === 'skill'\n ? translate('banner_microlearning_rule_message_skill')\n : translate('banner_microlearning_rule_message')\n }\n cta={[\n {\n type: 'switch',\n label: translate('banner_microlearning_rule_label'),\n action: bannerAction,\n oldSwitchValue\n }\n ]}\n />\n </div>\n ) : null}\n\n <div className={style.filterWrapper}>\n {size(options) > 2\n ? uncappedMap((filterProps: FilterOption, index: number) => {\n const {name, value, selected} = filterProps;\n\n function handleFilterChange() {\n onChange && onChange(value);\n }\n\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton\n dataName={`filter-button-${value}`}\n ariaLabel={`Filter by ${name}`}\n selected={selected}\n label={name}\n onClick={handleFilterChange}\n />\n {value === 'ALL' ? <div className={style.divider} /> : null}\n </div>\n );\n }, options)\n : null}\n </div>\n <div>\n {size(filteredContent) ? (\n <CardsGrid\n list={filteredContent}\n loading={loading}\n customStyle={{justifyContent: 'left'}}\n />\n ) : (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nAllCourses.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nAllCourses.propTypes = {\n content: PropTypes.shape(CardsGrid.propTypes),\n totalContents: PropTypes.number,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n bannerMicrolearning: PropTypes.shape({\n type: PropTypes.oneOf(['skill', 'playlist']),\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n }),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default AllCourses;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"all-courses.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_provider","_select","_buttonLink","_searchForm","_cardsGrid","_inputSwitch","_banner","_colors","_allCourses","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","uncappedMap","_map2","convert","cap","FilterButton","props","context","dataName","ariaLabel","selected","label","onClick","skin","primarySkinColor","_get2","buttonProps","customStyle","backgroundColor","COLORS","cm_grey_150","color","white","cm_grey_500","transition","width","createElement","contextTypes","Provider","childContextTypes","translate","propTypes","process","env","NODE_ENV","PropTypes","string","bool","func","AllCourses","content","filters","totalContents","bannerMicrolearning","undefined","search","oldValue","oldSearchValue","onChange","handleSearch","options","list","loading","bannerMessageType","type","bannerAction","action","oldSwitchValue","showCompleted","setShowCompleted","useState","searchValue","setSearchValue","filteredContent","useMemo","_filter2","course","progress","debounceHandleSearch","_debounce2","value","onSearchChange","useCallback","handleSearchReset","handleShowCompletedToggle","prevShowCompleted","Fragment","className","style","continueLearningWrapper","continueLearningTitle","continueLearningNumber","_isNil2","_size2","searchAndSortSection","searchWrapper","placeholder","onReset","dataTestId","sortSection","id","name","title","theme","_isEmpty2","bannerWrapper","message","cta","filterWrapper","filterProps","index","handleFilterChange","key","filterButtonWrapper","divider","justifyContent","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","shape","CardsGrid","number","arrayOf","SelectOptionPropTypes","oneOf","_default","exports"],"sources":["../../../src/template/skill-detail/all-courses.tsx"],"sourcesContent":["import React, {useState, useCallback, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, filter, map, size, isNil, isEmpty, debounce} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport SearchForm from '../../molecule/search-form';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport InputSwitch from '../../atom/input-switch';\nimport Banner from '../../molecule/banner';\nimport {COLORS} from '../../variables/colors';\nimport style from './all-courses.css';\n\n// @ts-expect-error convert untypped\nconst uncappedMap = map.convert({cap: false});\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string, options?: any) => string;\n}\n\ninterface FilterOption {\n name: string;\n value: string;\n selected: boolean;\n}\n\ninterface FilterButtonProps {\n dataName?: string;\n ariaLabel?: string;\n selected?: boolean;\n label?: string;\n onClick?: () => void;\n}\nconst FilterButton = (props: FilterButtonProps, context: ProviderContext) => {\n const {dataName, ariaLabel, selected, label, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: selected ? primarySkinColor : COLORS.cm_grey_150,\n color: selected ? COLORS.white : COLORS.cm_grey_500,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n label,\n onClick,\n 'data-name': dataName,\n 'aria-label': ariaLabel\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\nFilterButton.propTypes = {\n dataName: PropTypes.string,\n ariaLabel: PropTypes.string,\n selected: PropTypes.bool,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst AllCourses = (\n props: {\n content: {\n list: CardsGridProps['list'];\n loading?: boolean;\n };\n totalContents?: number;\n search: {\n oldValue: string;\n onChange: (value: string) => void;\n };\n bannerMicrolearning?: {\n type: 'skill' | 'playlist';\n action: () => void;\n oldSwitchValue: boolean;\n };\n filters: {\n onChange?: (value: string) => void;\n options?: unknown[];\n };\n },\n context: ProviderContext\n) => {\n const {translate} = context;\n const {\n content,\n filters,\n totalContents,\n bannerMicrolearning = undefined,\n search: {oldValue: oldSearchValue, onChange: handleSearch}\n } = props;\n const {options, onChange} = filters;\n const {list, loading} = content;\n const bannerMessageType = bannerMicrolearning?.type;\n const bannerAction = bannerMicrolearning?.action;\n const oldSwitchValue = bannerMicrolearning?.oldSwitchValue;\n\n const [showCompleted, setShowCompleted] = useState(true);\n const [searchValue, setSearchValue] = useState(oldSearchValue || '');\n\n const filteredContent = useMemo(() => {\n return showCompleted ? list : filter(course => course.progress < 1, list);\n }, [list, showCompleted]);\n\n const debounceHandleSearch = useMemo(() => {\n return debounce(800, value => {\n handleSearch(value);\n });\n }, [handleSearch]);\n\n const onSearchChange = useCallback(\n value => {\n setSearchValue(value);\n debounceHandleSearch(value);\n },\n [debounceHandleSearch]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n debounceHandleSearch('');\n }, [debounceHandleSearch]);\n\n const handleShowCompletedToggle = useCallback(() => {\n setShowCompleted(prevShowCompleted => !prevShowCompleted);\n }, []);\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('all_content')}</span>\n <span className={style.continueLearningNumber}>\n {isNil(totalContents) ? size(filteredContent) : totalContents}\n </span>\n </div>\n <div className={style.searchAndSortSection}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: onSearchChange\n }}\n onReset={handleSearchReset}\n dataTestId=\"all-courses-search-input\"\n />\n </div>\n <div className={style.sortSection}>\n <InputSwitch\n id={'show-completed-courses-switch'}\n name={translate('show_completed')}\n title={translate('show_completed')}\n theme=\"default\"\n aria-label={'Show completed courses aria label'}\n value={showCompleted}\n onChange={handleShowCompletedToggle}\n />\n </div>\n </div>\n {!isEmpty(bannerMicrolearning) ? (\n <div className={style.bannerWrapper}>\n <Banner\n type=\"info\"\n message={\n bannerMessageType === 'skill'\n ? translate('banner_microlearning_rule_message_skill')\n : translate('banner_microlearning_rule_message')\n }\n cta={[\n {\n type: 'switch',\n label: translate('banner_microlearning_rule_label'),\n action: bannerAction,\n oldSwitchValue\n }\n ]}\n />\n </div>\n ) : null}\n\n <div className={style.filterWrapper}>\n {size(options) > 2\n ? uncappedMap((filterProps: FilterOption, index: number) => {\n const {name, value, selected} = filterProps;\n\n function handleFilterChange() {\n onChange && onChange(value);\n }\n\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton\n dataName={`filter-button-${value}`}\n ariaLabel={`Filter by ${name}`}\n selected={selected}\n label={name}\n onClick={handleFilterChange}\n />\n {value === 'ALL' ? <div className={style.divider} /> : null}\n </div>\n );\n }, options)\n : null}\n </div>\n <div>\n {size(filteredContent) ? (\n <CardsGrid\n list={filteredContent}\n loading={loading}\n customStyle={{justifyContent: 'left'}}\n />\n ) : (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nAllCourses.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nAllCourses.propTypes = {\n content: PropTypes.shape(CardsGrid.propTypes),\n totalContents: PropTypes.number,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n bannerMicrolearning: PropTypes.shape({\n type: PropTypes.oneOf(['skill', 'playlist']),\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n }),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default AllCourses;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_cssColorFunction","_provider","_buttonLinkIcon","_icon","_iconPreview","_buttonLink","_cardsGrid","_colors","_select","_allCourses","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get2","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","color","size","exports","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","SkillDetail","title","iconColor","iconName","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","score","questionsToReview","totalContents","bannerMicrolearningAction","action","descriptionRef","useRef","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","ref","className","classnames","style","truncate","ProgressBar","progressBarColor","cm_positive_500","inlineProgressStyle","progressBarRow","progressBarWrapper","progress","role","progressInformationNumber","toFixed","hasDescription","Boolean","trim","length","backgroundContainer","container","topSection","_isNil2","backButton","tooltipPlacement","mainSection","leftSide","gap","padding","rightSide","skillFocusBadge","purple_100","faSize","wrapperSize","skillBadge","cm_grey_100","Fragment","showMoreWrapper","skillInformation","progressContainer","noDescriptionSpacing","ctaWrapper","disabled","cm_grey_700","content","oldSwitchValue","undefined","string","isRequired","shape","number","CardsGrid","onChange","options","arrayOf","SelectOptionPropTypes","oldValue","_default"],"sources":["../../../src/template/skill-detail/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport IconPreview from '../../molecule/icon-preview';\nimport ButtonLink from '../../atom/button-link';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport {COLORS} from '../../variables/colors';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport AllCourses from './all-courses';\nimport style from './style.css';\n\ninterface ContinueLearningButtonProps {\n ongoingCoursesAvailable?: boolean;\n onClick?: () => void;\n}\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string) => string;\n}\n\nexport const ContinueLearningButton = (\n props: ContinueLearningButtonProps,\n context: ProviderContext\n) => {\n const {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <ButtonLink\n label={ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')}\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)}\n hoverColor={COLORS.white}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: COLORS.white,\n size: 14\n }\n }}\n onClick={onClick}\n />\n );\n};\n\nContinueLearningButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearningButton.propTypes = {\n ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\ninterface Metrics {\n score?: number;\n questionsToReview?: number;\n totalContents?: number;\n}\n\ntype BannerMicrolearning =\n | Record<string, never>\n | {\n action: () => void;\n oldSwitchValue: boolean;\n };\ninterface SkillDetailProps {\n title: string;\n icon: {name: string; color: string};\n skillRef: string;\n description?: string;\n metrics?: Metrics;\n focused?: boolean;\n availableForReview?: boolean;\n ongoingCoursesAvailable?: boolean;\n skillIncludedCourses: CardsGridProps;\n filters: {\n onChange?: () => void;\n options?: unknown[];\n };\n onBackClick?: () => void;\n onReviewClick?: () => void;\n onContinueLearningClick?: () => void;\n search: {\n oldValue: string;\n onChange: () => void;\n };\n bannerMicrolearning?: BannerMicrolearning;\n}\nconst SkillDetail = (props: SkillDetailProps, context: ProviderContext) => {\n const {\n title,\n icon: {color: iconColor, name: iconName},\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning\n } = props;\n\n const {score = 0, questionsToReview = 0, totalContents = 0} = metrics;\n const {translate} = context;\n const bannerMicrolearningAction = bannerMicrolearning?.action;\n const descriptionRef = useRef(null);\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => {\n setShowMore(!showMore);\n }, [showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n {description ? <Markdown>{description}</Markdown> : null}\n </div>\n );\n }, [showMore, description]);\n\n const ProgressBar = useCallback(() => {\n if (typeof score !== 'number') return null;\n\n const progressBarColor = COLORS.cm_positive_500;\n const inlineProgressStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarRow}>\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressStyle}\n role=\"progressbar\"\n aria-valuenow={score}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n );\n }, [score]);\n const hasDescription = Boolean(description && description.trim().length > 0);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={skillRef}>\n {/* Top section for the back arrow (optional) */}\n <div className={style.topSection}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n </div>\n\n {/* Main section: icon on the left, skill info on the right */}\n <div className={style.mainSection}>\n <div className={style.leftSide}>\n <IconPreview\n icon={{\n name: iconName,\n color: iconColor\n }}\n title={title}\n customStyle={{gap: 24, padding: '50px 49px 50px 50px'}}\n />\n </div>\n <div className={style.rightSide}>\n {focused ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor={COLORS.purple_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill_focus')}\n </div>\n ) : (\n <div className={style.skillBadge}>\n <Icon\n iconName=\"shapes\"\n backgroundColor={COLORS.cm_grey_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill')}\n </div>\n )}\n\n <h2 className={style.title}>{title}</h2>\n\n {description && (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {showMore ? translate('Show less') : translate('Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 14}}\n customStyle={{padding: '8px'}}\n />\n </div>\n ) : null}\n </>\n )}\n\n {questionsToReview > 0 ? (\n <div className={style.skillInformation}>\n <span>{questionsToReview}</span>\n {translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n\n <div\n className={classnames(\n style.progressContainer,\n !hasDescription && style.noDescriptionSpacing\n )}\n >\n <ProgressBar />\n </div>\n\n <div className={style.ctaWrapper}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n <ButtonLink\n type=\"secondary\"\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n onClick={onReviewClick}\n icon={{\n position: 'left',\n faIcon: {\n name: 'rotate-right',\n color: COLORS.cm_grey_700,\n size: 14\n }\n }}\n customStyle={{borderRadius: '12px', width: 'fit-content'}}\n />\n </div>\n </div>\n </div>\n\n {/* Courses section below */}\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearning && bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue: bannerMicrolearning.oldSwitchValue\n }\n : undefined\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string\n }).isRequired,\n skillRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_cssColorFunction","_provider","_buttonLinkIcon","_icon","_iconPreview","_buttonLink","_cardsGrid","_colors","_select","_allCourses","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get2","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","color","size","exports","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","SkillDetail","title","iconColor","iconName","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","score","questionsToReview","totalContents","bannerMicrolearningAction","action","descriptionRef","useRef","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","ref","className","classnames","style","truncate","ProgressBar","progressBarColor","cm_positive_500","inlineProgressStyle","progressBarRow","progressBarWrapper","progress","role","progressInformationNumber","toFixed","hasDescription","Boolean","trim","length","backgroundContainer","container","topSection","_isNil2","backButton","tooltipPlacement","mainSection","leftSide","gap","padding","rightSide","skillFocusBadge","purple_100","faSize","wrapperSize","skillBadge","cm_grey_100","Fragment","showMoreWrapper","skillInformation","progressContainer","noDescriptionSpacing","ctaWrapper","disabled","cm_grey_700","content","oldSwitchValue","undefined","string","isRequired","shape","number","CardsGrid","onChange","options","arrayOf","SelectOptionPropTypes","oldValue","_default"],"sources":["../../../src/template/skill-detail/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport IconPreview from '../../molecule/icon-preview';\nimport ButtonLink from '../../atom/button-link';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport {COLORS} from '../../variables/colors';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport AllCourses from './all-courses';\nimport style from './style.css';\n\ninterface ContinueLearningButtonProps {\n ongoingCoursesAvailable?: boolean;\n onClick?: () => void;\n}\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string) => string;\n}\n\nexport const ContinueLearningButton = (\n props: ContinueLearningButtonProps,\n context: ProviderContext\n) => {\n const {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <ButtonLink\n label={ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')}\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)}\n hoverColor={COLORS.white}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: COLORS.white,\n size: 14\n }\n }}\n onClick={onClick}\n />\n );\n};\n\nContinueLearningButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearningButton.propTypes = {\n ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\ninterface Metrics {\n score?: number;\n questionsToReview?: number;\n totalContents?: number;\n}\n\ntype BannerMicrolearning =\n | Record<string, never>\n | {\n action: () => void;\n oldSwitchValue: boolean;\n };\ninterface SkillDetailProps {\n title: string;\n icon: {name: string; color: string};\n skillRef: string;\n description?: string;\n metrics?: Metrics;\n focused?: boolean;\n availableForReview?: boolean;\n ongoingCoursesAvailable?: boolean;\n skillIncludedCourses: CardsGridProps;\n filters: {\n onChange?: () => void;\n options?: unknown[];\n };\n onBackClick?: () => void;\n onReviewClick?: () => void;\n onContinueLearningClick?: () => void;\n search: {\n oldValue: string;\n onChange: () => void;\n };\n bannerMicrolearning?: BannerMicrolearning;\n}\nconst SkillDetail = (props: SkillDetailProps, context: ProviderContext) => {\n const {\n title,\n icon: {color: iconColor, name: iconName},\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning\n } = props;\n\n const {score = 0, questionsToReview = 0, totalContents = 0} = metrics;\n const {translate} = context;\n const bannerMicrolearningAction = bannerMicrolearning?.action;\n const descriptionRef = useRef(null);\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => {\n setShowMore(!showMore);\n }, [showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n {description ? <Markdown>{description}</Markdown> : null}\n </div>\n );\n }, [showMore, description]);\n\n const ProgressBar = useCallback(() => {\n if (typeof score !== 'number') return null;\n\n const progressBarColor = COLORS.cm_positive_500;\n const inlineProgressStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarRow}>\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressStyle}\n role=\"progressbar\"\n aria-valuenow={score}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n );\n }, [score]);\n const hasDescription = Boolean(description && description.trim().length > 0);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={skillRef}>\n {/* Top section for the back arrow (optional) */}\n <div className={style.topSection}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n </div>\n\n {/* Main section: icon on the left, skill info on the right */}\n <div className={style.mainSection}>\n <div className={style.leftSide}>\n <IconPreview\n icon={{\n name: iconName,\n color: iconColor\n }}\n title={title}\n customStyle={{gap: 24, padding: '50px 49px 50px 50px'}}\n />\n </div>\n <div className={style.rightSide}>\n {focused ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor={COLORS.purple_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill_focus')}\n </div>\n ) : (\n <div className={style.skillBadge}>\n <Icon\n iconName=\"shapes\"\n backgroundColor={COLORS.cm_grey_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill')}\n </div>\n )}\n\n <h2 className={style.title}>{title}</h2>\n\n {description && (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {showMore ? translate('Show less') : translate('Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 14}}\n customStyle={{padding: '8px'}}\n />\n </div>\n ) : null}\n </>\n )}\n\n {questionsToReview > 0 ? (\n <div className={style.skillInformation}>\n <span>{questionsToReview}</span>\n {translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n\n <div\n className={classnames(\n style.progressContainer,\n !hasDescription && style.noDescriptionSpacing\n )}\n >\n <ProgressBar />\n </div>\n\n <div className={style.ctaWrapper}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n <ButtonLink\n type=\"secondary\"\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n onClick={onReviewClick}\n icon={{\n position: 'left',\n faIcon: {\n name: 'rotate-right',\n color: COLORS.cm_grey_700,\n size: 14\n }\n }}\n customStyle={{borderRadius: '12px', width: 'fit-content'}}\n />\n </div>\n </div>\n </div>\n\n {/* Courses section below */}\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearning && bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue: bannerMicrolearning.oldSwitchValue\n }\n : undefined\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string\n }).isRequired,\n skillRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,8 +44,10 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.leftSide {
|
|
47
|
-
width: 420px;
|
|
48
|
-
height: 280px;
|
|
47
|
+
max-width: 420px;
|
|
48
|
+
max-height: 280px;
|
|
49
|
+
height: 100%;
|
|
50
|
+
width: 100%;
|
|
49
51
|
display: flex;
|
|
50
52
|
flex-direction: column;
|
|
51
53
|
gap: 16px;
|
|
@@ -217,8 +219,10 @@
|
|
|
217
219
|
}
|
|
218
220
|
|
|
219
221
|
.leftSide {
|
|
220
|
-
width: 343px;
|
|
221
|
-
height: 228px;
|
|
222
|
+
max-width: 343px;
|
|
223
|
+
max-height: 228px;
|
|
224
|
+
height: 100%;
|
|
225
|
+
width: 100%;
|
|
222
226
|
display: flex;
|
|
223
227
|
flex-direction: column;
|
|
224
228
|
align-items: flex-start;
|
|
@@ -229,7 +233,6 @@
|
|
|
229
233
|
}
|
|
230
234
|
|
|
231
235
|
.rightSide {
|
|
232
|
-
max-width: 100%;
|
|
233
236
|
width: 100%;
|
|
234
237
|
height: auto;
|
|
235
238
|
display: flex;
|
|
@@ -300,7 +303,8 @@
|
|
|
300
303
|
.leftSide {
|
|
301
304
|
border-radius: 16px;
|
|
302
305
|
padding: 16px 32px 32px 0px;
|
|
303
|
-
height:
|
|
306
|
+
height: 100%;
|
|
307
|
+
width: 100%;
|
|
304
308
|
}
|
|
305
309
|
|
|
306
310
|
.backButton {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.35.3-
|
|
3
|
+
"version": "11.35.3-forcedeploy14.12+3ec373ca8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -165,5 +165,5 @@
|
|
|
165
165
|
"last 2 versions",
|
|
166
166
|
"IE 11"
|
|
167
167
|
],
|
|
168
|
-
"gitHead": "
|
|
168
|
+
"gitHead": "3ec373ca85320c3e55aa30bc0b4e80ca7d11be3f"
|
|
169
169
|
}
|