@coorpacademy/components 11.40.1 → 11.40.2-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAyFA;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,sBA6GC;CACF"}
@@ -18,6 +18,8 @@ import { NovaSolidContentContentBook1 as LearnerIcon, NovaCompositionCoorpacadem
18
18
  import Provider from '../../../atom/provider';
19
19
  import Card, { cardPropTypes } from '../../card';
20
20
  import LearningPriorityCard from '../../learning-priority-card';
21
+ import CertificationCard from '../../certification-card';
22
+ import LearnerSkillCard from '../../learner-skill-card';
21
23
  import Icon from '../../../atom/icon';
22
24
  import style from './style.css';
23
25
  const ShowMoreLink = props => {
@@ -283,12 +285,18 @@ class CardsList extends React.PureComponent {
283
285
  const dark = _getOr('#90A4AE', 'common.dark', skin);
284
286
  const titleStyle = onShowMore ? style.titleLink : style.title;
285
287
  const cardsView = _pipe(_toPairs, _map(([key, card]) => {
288
+ let CardComponent = Card;
289
+ if (card && type === 'learningPrioritiesCards') {
290
+ CardComponent = LearningPriorityCard;
291
+ } else if (card && type === 'skills') {
292
+ CardComponent = LearnerSkillCard;
293
+ } else if (card && type === 'certifications') {
294
+ CardComponent = CertificationCard;
295
+ }
286
296
  return /*#__PURE__*/React.createElement("div", {
287
297
  className: style.card,
288
298
  key: key
289
- }, card && type === 'learningPrioritiesCards' ? /*#__PURE__*/React.createElement(LearningPriorityCard, _extends({}, card, {
290
- dataName: `${dataName}-${key}`
291
- })) : /*#__PURE__*/React.createElement(Card, _extends({}, card, {
299
+ }, /*#__PURE__*/React.createElement(CardComponent, _extends({}, card, {
292
300
  dataName: `${dataName}-${key}`
293
301
  })));
294
302
  }))(cards);
@@ -365,7 +373,7 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
365
373
  showMoreOnLeftAriaLabel: PropTypes.string,
366
374
  showMoreOnRightAriaLabel: PropTypes.string
367
375
  }),
368
- type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),
376
+ type: PropTypes.oneOf(['cards', 'learningPrioritiesCards', 'skills', 'certifications']),
369
377
  // eslint-disable-next-line react/forbid-prop-types
370
378
  testingSizes: PropTypes.any
371
379
  } : {};
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","cardPropTypes","LearningPriorityCard","CertificationCard","LearnerSkillCard","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","CardComponent","_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 CertificationCard from '../../certification-card';\nimport LearnerSkillCard from '../../learner-skill-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', 'skills', 'certifications']),\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 let CardComponent = Card;\n\n if (card && type === 'learningPrioritiesCards') {\n CardComponent = LearningPriorityCard;\n } else if (card && type === 'skills') {\n CardComponent = LearnerSkillCard;\n } else if (card && type === 'certifications') {\n CardComponent = CertificationCard;\n }\n\n return (\n <div className={style.card} key={key}>\n <CardComponent {...card} dataName={`${dataName}-${key}`} />\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":[]}
@@ -997,6 +997,105 @@ declare namespace SearchPage {
997
997
  disabled: PropTypes.Requireable<boolean>;
998
998
  }>>;
999
999
  }>>;
1000
+ const sections: PropTypes.Requireable<(PropTypes.InferProps<{
1001
+ title: PropTypes.Requireable<string>;
1002
+ cards: PropTypes.Requireable<(NonNullable<PropTypes.InferProps<{
1003
+ badge: PropTypes.Requireable<string>;
1004
+ image: PropTypes.Requireable<string>;
1005
+ disabled: PropTypes.Requireable<boolean>;
1006
+ adaptiv: PropTypes.Requireable<boolean>;
1007
+ type: PropTypes.Requireable<string>;
1008
+ title: PropTypes.Requireable<string>;
1009
+ author: PropTypes.Requireable<string>;
1010
+ certifiedAuthor: PropTypes.Requireable<boolean>;
1011
+ customer: PropTypes.Requireable<PropTypes.InferProps<{
1012
+ theme: PropTypes.Requireable<string>;
1013
+ type: PropTypes.Requireable<string>;
1014
+ name: PropTypes.Requireable<string>;
1015
+ coorpOriginal: PropTypes.Validator<boolean>;
1016
+ disabled: PropTypes.Requireable<boolean>;
1017
+ 'aria-label': PropTypes.Requireable<string>;
1018
+ }>>;
1019
+ progress: PropTypes.Requireable<number>;
1020
+ favorite: PropTypes.Requireable<boolean>;
1021
+ addFavoriteToolTip: PropTypes.Requireable<string>;
1022
+ removeFavoriteToolTip: PropTypes.Requireable<string>;
1023
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1024
+ onFavoriteClick: PropTypes.Requireable<(...args: any[]) => any>;
1025
+ isSelected: PropTypes.Requireable<boolean>;
1026
+ notification: PropTypes.Requireable<PropTypes.InferProps<{
1027
+ message: PropTypes.Validator<string>;
1028
+ icon: PropTypes.Validator<string>;
1029
+ }>>;
1030
+ badgeCategory: PropTypes.Requireable<string>;
1031
+ badgeLabel: PropTypes.Requireable<string>;
1032
+ theme: PropTypes.Requireable<string>;
1033
+ disabledContent: PropTypes.Requireable<string>;
1034
+ 'aria-label': PropTypes.Requireable<string>;
1035
+ 'background-aria-label': PropTypes.Requireable<string>;
1036
+ 'favorite-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1037
+ favorite: PropTypes.Requireable<string>;
1038
+ addToFavorite: PropTypes.Requireable<string>;
1039
+ removeFromFavorite: PropTypes.Requireable<string>;
1040
+ }>>;
1041
+ 'selectable-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1042
+ select: PropTypes.Requireable<string>;
1043
+ unSelect: PropTypes.Requireable<string>;
1044
+ }>>;
1045
+ 'customer-aria-label': PropTypes.Requireable<string>;
1046
+ 'badge-aria-label': PropTypes.Requireable<string>;
1047
+ 'disabled-aria-label': PropTypes.Requireable<string>;
1048
+ 'card-content-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1049
+ author: PropTypes.Requireable<string>;
1050
+ progression: PropTypes.Requireable<string>;
1051
+ adaptive: PropTypes.Requireable<string>;
1052
+ }>>;
1053
+ }> | PropTypes.InferProps<{
1054
+ title: PropTypes.Requireable<string>;
1055
+ tagLabel: PropTypes.Requireable<string>;
1056
+ progression: PropTypes.Requireable<number>;
1057
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1058
+ }> | PropTypes.InferProps<{
1059
+ label: PropTypes.Requireable<string>;
1060
+ goal: PropTypes.Requireable<PropTypes.InferProps<{
1061
+ title: PropTypes.Requireable<string>;
1062
+ condition: PropTypes.Requireable<PropTypes.InferProps<{
1063
+ nbDone: PropTypes.Requireable<number>;
1064
+ }>>;
1065
+ }>>;
1066
+ progress: PropTypes.Requireable<number>;
1067
+ imgUrl: PropTypes.Requireable<string>;
1068
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1069
+ locales: PropTypes.Requireable<PropTypes.InferProps<{
1070
+ conditionDescriptionProgress: PropTypes.Requireable<string>;
1071
+ tag: PropTypes.Requireable<string>;
1072
+ }>>;
1073
+ }> | PropTypes.InferProps<{
1074
+ 'aria-label': PropTypes.Requireable<string>;
1075
+ cardIndex: PropTypes.Requireable<number>;
1076
+ skillTitle: PropTypes.Requireable<string>;
1077
+ skillAriaLabel: PropTypes.Requireable<string>;
1078
+ focus: PropTypes.Requireable<boolean>;
1079
+ metrics: PropTypes.Requireable<PropTypes.InferProps<{
1080
+ content: PropTypes.Requireable<number>;
1081
+ score: PropTypes.Requireable<number>;
1082
+ questionsToReview: PropTypes.Requireable<number>;
1083
+ }>>;
1084
+ icon: PropTypes.Requireable<PropTypes.InferProps<{
1085
+ color: PropTypes.Requireable<string>;
1086
+ name: PropTypes.Requireable<string>;
1087
+ }>>;
1088
+ onExploreClick: PropTypes.Requireable<(...args: any[]) => any>;
1089
+ }> | null | undefined> | null | undefined)[]>;
1090
+ showMore: PropTypes.Requireable<string>;
1091
+ onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
1092
+ order: PropTypes.Requireable<number>;
1093
+ type: PropTypes.Requireable<string>;
1094
+ 'arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1095
+ showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
1096
+ showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
1097
+ }>>;
1098
+ }> | null | undefined)[]>;
1000
1099
  }
1001
1100
  }
1002
1101
  import PropTypes from "prop-types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAWA,mEA2DC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAiBA,mEAuIC"}
@@ -8,7 +8,13 @@ import Button from '../../../atom/button';
8
8
  import Filters from '../../../molecule/filters';
9
9
  import CardsGrid from '../../../organism/cards-grid';
10
10
  import CardsList from '../../../molecule/dashboard/cards-list';
11
+ import CertificationCard from '../../../molecule/certification-card';
12
+ import LearnerSkillCard from '../../../molecule/learner-skill-card';
11
13
  import CMPopin from '../../../molecule/cm-popin';
14
+ import Tag from '../../../atom/tag';
15
+ import { cardPropTypes } from '../../../molecule/card';
16
+ import LearningPriorityCard from '../../../molecule/learning-priority-card';
17
+ import { COLORS } from '../../../variables/colors';
12
18
  import style from './style.css';
13
19
  const SearchPage = (props, context) => {
14
20
  const {
@@ -22,7 +28,8 @@ const SearchPage = (props, context) => {
22
28
  moreFilterAriaLabel,
23
29
  filterGroupAriaLabel,
24
30
  sortAriaLabel,
25
- popinWithCards
31
+ popinWithCards,
32
+ sections = []
26
33
  } = props;
27
34
  const {
28
35
  skin
@@ -30,7 +37,45 @@ const SearchPage = (props, context) => {
30
37
  const defaultColor = _getOr('#00B0FF', 'common.primary', skin);
31
38
  const nodeRef = useRef(null);
32
39
  const recommendationsView = _isEmpty(recommendations) ? null : /*#__PURE__*/React.createElement(CardsList, recommendations);
33
- const cardsView = _isEmpty(cards.list) ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
40
+
41
+ // Helper function to render content sections
42
+ const renderSection = section => {
43
+ if (!section || _isEmpty(section.cards)) return null;
44
+
45
+ // Create title with count tag
46
+ const titleWithCount = /*#__PURE__*/React.createElement("div", {
47
+ className: style.sectionTitle
48
+ }, /*#__PURE__*/React.createElement("span", null, section.title), /*#__PURE__*/React.createElement(Tag, {
49
+ label: section.cards.length.toString(),
50
+ type: "default",
51
+ size: "S",
52
+ customStyle: {
53
+ backgroundColor: COLORS.cm_grey_100,
54
+ color: COLORS.neutral_500
55
+ }
56
+ }));
57
+ const sectionProps = {
58
+ ...section,
59
+ title: titleWithCount,
60
+ dataName: `${section.type}-section`
61
+ };
62
+
63
+ // Use CardsList with appropriate type for all sections
64
+ if (section.type === 'certifications') {
65
+ return /*#__PURE__*/React.createElement(CardsList, _extends({}, sectionProps, {
66
+ type: "certifications"
67
+ }));
68
+ }
69
+ if (section.type === 'skills') {
70
+ return /*#__PURE__*/React.createElement(CardsList, _extends({}, sectionProps, {
71
+ type: "skills"
72
+ }));
73
+ }
74
+
75
+ // For new content and playlists, use standard cards
76
+ return /*#__PURE__*/React.createElement(CardsList, sectionProps);
77
+ };
78
+ const cardsView = _isEmpty(cards?.list) ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
34
79
  className: style.noresults
35
80
  }, /*#__PURE__*/React.createElement("div", {
36
81
  className: style.noresultstxt
@@ -42,12 +87,38 @@ const SearchPage = (props, context) => {
42
87
  },
43
88
  type: "link"
44
89
  }))), recommendationsView) : /*#__PURE__*/React.createElement(CardsGrid, cards);
45
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Filters, _extends({}, searchFilters, {
90
+
91
+ // Sort sections by order
92
+ const sortedSections = sections.sort((a, b) => a.order - b.order);
93
+ const hasSections = sortedSections.length > 0;
94
+ const contentGridSection = cards && !_isEmpty(cards.list) ? /*#__PURE__*/React.createElement("div", {
95
+ className: style.contentSection
96
+ }, /*#__PURE__*/React.createElement("div", {
97
+ className: style.sectionHeader
98
+ }, /*#__PURE__*/React.createElement("div", {
99
+ className: style.sectionTitle
100
+ }, /*#__PURE__*/React.createElement("span", null, "Content"), /*#__PURE__*/React.createElement(Tag, {
101
+ label: cards.list.length.toString(),
102
+ type: "default",
103
+ size: "S",
104
+ customStyle: {
105
+ backgroundColor: COLORS.cm_grey_100,
106
+ color: COLORS.neutral_500
107
+ }
108
+ })), /*#__PURE__*/React.createElement("div", {
109
+ className: style.contentGrid
110
+ }, ' ', /*#__PURE__*/React.createElement(CardsGrid, cards)))) : null;
111
+ return /*#__PURE__*/React.createElement("div", null, searchFilters ? /*#__PURE__*/React.createElement(Filters, _extends({}, searchFilters, {
46
112
  moreSortAriaLabel: moreSortAriaLabel,
47
113
  moreFilterAriaLabel: moreFilterAriaLabel,
48
114
  filterGroupAriaLabel: filterGroupAriaLabel,
49
115
  sortAriaLabel: sortAriaLabel
50
- })), /*#__PURE__*/React.createElement("div", {
116
+ })) : null, hasSections ? /*#__PURE__*/React.createElement("div", {
117
+ "data-name": "explorerSections",
118
+ className: style.sectionsWrapper
119
+ }, sortedSections.map((section, index) => /*#__PURE__*/React.createElement("div", {
120
+ key: `${section.type}-${index}`
121
+ }, renderSection(section))), contentGridSection) : /*#__PURE__*/React.createElement("div", {
51
122
  "data-name": "searchResult",
52
123
  className: style.cardsWrapper
53
124
  }, /*#__PURE__*/React.createElement("div", {
@@ -72,7 +143,19 @@ SearchPage.propTypes = process.env.NODE_ENV !== "production" ? {
72
143
  moreFilterAriaLabel: PropTypes.string,
73
144
  filterGroupAriaLabel: PropTypes.string,
74
145
  sortAriaLabel: PropTypes.string,
75
- popinWithCards: PropTypes.shape(CMPopin.propTypes)
146
+ popinWithCards: PropTypes.shape(CMPopin.propTypes),
147
+ sections: PropTypes.arrayOf(PropTypes.shape({
148
+ title: PropTypes.string,
149
+ cards: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape(cardPropTypes), PropTypes.shape(LearnerSkillCard.propTypes), PropTypes.shape(CertificationCard.propTypes), PropTypes.shape(LearningPriorityCard.propTypes)])),
150
+ showMore: PropTypes.string,
151
+ onShowMore: PropTypes.func,
152
+ order: PropTypes.number,
153
+ type: PropTypes.string,
154
+ 'arrows-aria-label': PropTypes.shape({
155
+ showMoreOnLeftAriaLabel: PropTypes.string,
156
+ showMoreOnRightAriaLabel: PropTypes.string
157
+ })
158
+ }))
76
159
  } : {};
77
160
  export default SearchPage;
78
161
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useRef","PropTypes","Provider","Button","Filters","CardsGrid","CardsList","CMPopin","style","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","moreSortAriaLabel","moreFilterAriaLabel","filterGroupAriaLabel","sortAriaLabel","popinWithCards","skin","defaultColor","_getOr","nodeRef","recommendationsView","_isEmpty","createElement","cardsView","list","className","noresults","noresultstxt","_extends","clear","background","type","cardsWrapper","role","ref","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport CMPopin from '../../../molecule/cm-popin';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {\n title,\n searchFilters,\n cards,\n noresultsfound,\n clearFilters,\n recommendations,\n moreSortAriaLabel,\n moreFilterAriaLabel,\n filterGroupAriaLabel,\n sortAriaLabel,\n popinWithCards\n } = props;\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n const nodeRef = useRef(null);\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n const cardsView = isEmpty(cards.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n return (\n <div>\n <Filters\n {...searchFilters}\n moreSortAriaLabel={moreSortAriaLabel}\n moreFilterAriaLabel={moreFilterAriaLabel}\n filterGroupAriaLabel={filterGroupAriaLabel}\n sortAriaLabel={sortAriaLabel}\n />\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title} role=\"status\">\n {title}\n </div>\n {cardsView}\n </div>\n {popinWithCards ? (\n <div className={style.popinWithCards} ref={nodeRef}>\n <CMPopin {...popinWithCards} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes),\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string,\n filterGroupAriaLabel: PropTypes.string,\n sortAriaLabel: PropTypes.string,\n popinWithCards: PropTypes.shape(CMPopin.propTypes)\n};\n\nexport default SearchPage;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useRef","PropTypes","Provider","Button","Filters","CardsGrid","CardsList","CertificationCard","LearnerSkillCard","CMPopin","Tag","cardPropTypes","LearningPriorityCard","COLORS","style","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","moreSortAriaLabel","moreFilterAriaLabel","filterGroupAriaLabel","sortAriaLabel","popinWithCards","sections","skin","defaultColor","_getOr","nodeRef","recommendationsView","_isEmpty","createElement","renderSection","section","titleWithCount","className","sectionTitle","label","length","toString","type","size","customStyle","backgroundColor","cm_grey_100","color","neutral_500","sectionProps","dataName","_extends","cardsView","list","noresults","noresultstxt","clear","background","sortedSections","sort","a","b","order","hasSections","contentGridSection","contentSection","sectionHeader","contentGrid","sectionsWrapper","map","index","key","cardsWrapper","role","ref","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","arrayOf","oneOfType","showMore","onShowMore","func","number","showMoreOnLeftAriaLabel","showMoreOnRightAriaLabel"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport CertificationCard from '../../../molecule/certification-card';\nimport LearnerSkillCard from '../../../molecule/learner-skill-card';\nimport CMPopin from '../../../molecule/cm-popin';\nimport Tag from '../../../atom/tag';\nimport {cardPropTypes} from '../../../molecule/card';\nimport LearningPriorityCard from '../../../molecule/learning-priority-card';\nimport {COLORS} from '../../../variables/colors';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {\n title,\n searchFilters,\n cards,\n noresultsfound,\n clearFilters,\n recommendations,\n moreSortAriaLabel,\n moreFilterAriaLabel,\n filterGroupAriaLabel,\n sortAriaLabel,\n popinWithCards,\n sections = []\n } = props;\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n const nodeRef = useRef(null);\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n // Helper function to render content sections\n const renderSection = section => {\n if (!section || isEmpty(section.cards)) return null;\n\n // Create title with count tag\n const titleWithCount = (\n <div className={style.sectionTitle}>\n <span>{section.title}</span>\n <Tag\n label={section.cards.length.toString()}\n type=\"default\"\n size=\"S\"\n customStyle={{backgroundColor: COLORS.cm_grey_100, color: COLORS.neutral_500}}\n />\n </div>\n );\n\n const sectionProps = {\n ...section,\n title: titleWithCount,\n dataName: `${section.type}-section`\n };\n\n // Use CardsList with appropriate type for all sections\n if (section.type === 'certifications') {\n return <CardsList {...sectionProps} type=\"certifications\" />;\n }\n\n if (section.type === 'skills') {\n return <CardsList {...sectionProps} type=\"skills\" />;\n }\n\n // For new content and playlists, use standard cards\n return <CardsList {...sectionProps} />;\n };\n\n const cardsView = isEmpty(cards?.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n // Sort sections by order\n const sortedSections = sections.sort((a, b) => a.order - b.order);\n\n const hasSections = sortedSections.length > 0;\n\n const contentGridSection =\n cards && !isEmpty(cards.list) ? (\n <div className={style.contentSection}>\n <div className={style.sectionHeader}>\n <div className={style.sectionTitle}>\n <span>Content</span>\n <Tag\n label={cards.list.length.toString()}\n type=\"default\"\n size=\"S\"\n customStyle={{backgroundColor: COLORS.cm_grey_100, color: COLORS.neutral_500}}\n />\n </div>\n <div className={style.contentGrid}>\n {' '}\n <CardsGrid {...cards} />\n </div>\n </div>\n </div>\n ) : null;\n\n return (\n <div>\n {searchFilters ? (\n <Filters\n {...searchFilters}\n moreSortAriaLabel={moreSortAriaLabel}\n moreFilterAriaLabel={moreFilterAriaLabel}\n filterGroupAriaLabel={filterGroupAriaLabel}\n sortAriaLabel={sortAriaLabel}\n />\n ) : null}\n\n {hasSections ? (\n <div data-name=\"explorerSections\" className={style.sectionsWrapper}>\n {sortedSections.map((section, index) => (\n <div key={`${section.type}-${index}`}>{renderSection(section)}</div>\n ))}\n {contentGridSection}\n </div>\n ) : (\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title} role=\"status\">\n {title}\n </div>\n {cardsView}\n </div>\n )}\n\n {popinWithCards ? (\n <div className={style.popinWithCards} ref={nodeRef}>\n <CMPopin {...popinWithCards} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes),\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string,\n filterGroupAriaLabel: PropTypes.string,\n sortAriaLabel: PropTypes.string,\n popinWithCards: PropTypes.shape(CMPopin.propTypes),\n sections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearnerSkillCard.propTypes),\n PropTypes.shape(CertificationCard.propTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n showMore: PropTypes.string,\n onShowMore: PropTypes.func,\n order: PropTypes.number,\n type: PropTypes.string,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n })\n })\n )\n};\n\nexport default SearchPage;\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@
7
7
  @value dark from colors;
8
8
  @value black from colors;
9
9
  @value white from colors;
10
+ @value cm_grey_500 from colors;
10
11
 
11
12
  .cardsWrapper {
12
13
  display: block;
@@ -55,6 +56,79 @@
55
56
  z-index: 7;
56
57
  }
57
58
 
59
+ .sectionsWrapper {
60
+ display: block;
61
+ width: 100%;
62
+ height: auto;
63
+ box-sizing: border-box;
64
+ padding: 0;
65
+ background: white;
66
+ }
67
+
68
+ .sectionsWrapper > * {
69
+ margin-bottom: 40px;
70
+ }
71
+
72
+ .sectionsWrapper > *:last-child {
73
+ margin-bottom: 20px;
74
+ }
75
+
76
+ .sectionTitle {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 8px;
80
+ font-family: "Gilroy";
81
+ font-size: 16px;
82
+ font-weight: 600;
83
+ color: dark;
84
+ }
85
+
86
+ .contentSection .sectionTitle {
87
+ margin-bottom: 16px;
88
+ }
89
+
90
+ .sectionHeader {
91
+ max-width: 1080px;
92
+ margin: auto;
93
+ padding: 16px 30px 8px;
94
+ box-sizing: border-box;
95
+ display: flex;
96
+ flex-direction: column;
97
+ align-items: start;
98
+ align-content: start;
99
+ }
100
+
101
+ .contentSection {
102
+ display: block;
103
+ width: 100%;
104
+ height: auto;
105
+ box-sizing: border-box;
106
+ background: white;
107
+ padding: 16px 30px 8px;
108
+ position: relative;
109
+ overflow: hidden;
110
+ margin: auto;
111
+ }
112
+
113
+ .contentSection .sectionHeader {
114
+ padding: 0;
115
+ margin: 16px 0 8px 0;
116
+ max-width: 1080px;
117
+ margin-left: auto;
118
+ margin-right: auto;
119
+ display: flex;
120
+ line-height: 20px;
121
+ align-items: start;
122
+ }
123
+
124
+ .contentGrid {
125
+ max-width: 1090px;
126
+ margin: auto;
127
+ margin-left: -8px;
128
+ margin-right: 0;
129
+ box-sizing: border-box;
130
+ }
131
+
58
132
  @media mobile {
59
133
  .cardsWrapper {
60
134
  padding: 5px 0;
@@ -63,4 +137,8 @@
63
137
  .title {
64
138
  display: none;
65
139
  }
140
+
141
+ .contentSection {
142
+ padding: 16px 8px 0px;
143
+ }
66
144
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAyFA;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,sBA6GC;CACF"}
@@ -21,6 +21,8 @@ var _novaIcons = require("@coorpacademy/nova-icons");
21
21
  var _provider = _interopRequireDefault(require("../../../atom/provider"));
22
22
  var _card = _interopRequireWildcard(require("../../card"));
23
23
  var _learningPriorityCard = _interopRequireDefault(require("../../learning-priority-card"));
24
+ var _certificationCard = _interopRequireDefault(require("../../certification-card"));
25
+ var _learnerSkillCard = _interopRequireDefault(require("../../learner-skill-card"));
24
26
  var _icon = _interopRequireDefault(require("../../../atom/icon"));
25
27
  var _style = _interopRequireDefault(require("./style.css"));
26
28
  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); }
@@ -290,12 +292,18 @@ class CardsList extends _react.default.PureComponent {
290
292
  const dark = (0, _getOr2.default)('#90A4AE', 'common.dark', skin);
291
293
  const titleStyle = onShowMore ? _style.default.titleLink : _style.default.title;
292
294
  const cardsView = (0, _pipe2.default)(_toPairs2.default, (0, _map2.default)(([key, card]) => {
295
+ let CardComponent = _card.default;
296
+ if (card && type === 'learningPrioritiesCards') {
297
+ CardComponent = _learningPriorityCard.default;
298
+ } else if (card && type === 'skills') {
299
+ CardComponent = _learnerSkillCard.default;
300
+ } else if (card && type === 'certifications') {
301
+ CardComponent = _certificationCard.default;
302
+ }
293
303
  return /*#__PURE__*/_react.default.createElement("div", {
294
304
  className: _style.default.card,
295
305
  key: key
296
- }, card && type === 'learningPrioritiesCards' ? /*#__PURE__*/_react.default.createElement(_learningPriorityCard.default, _extends({}, card, {
297
- dataName: `${dataName}-${key}`
298
- })) : /*#__PURE__*/_react.default.createElement(_card.default, _extends({}, card, {
306
+ }, /*#__PURE__*/_react.default.createElement(CardComponent, _extends({}, card, {
299
307
  dataName: `${dataName}-${key}`
300
308
  })));
301
309
  }))(cards);
@@ -372,7 +380,7 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
372
380
  showMoreOnLeftAriaLabel: _propTypes.default.string,
373
381
  showMoreOnRightAriaLabel: _propTypes.default.string
374
382
  }),
375
- type: _propTypes.default.oneOf(['cards', 'learningPrioritiesCards']),
383
+ type: _propTypes.default.oneOf(['cards', 'learningPrioritiesCards', 'skills', 'certifications']),
376
384
  // eslint-disable-next-line react/forbid-prop-types
377
385
  testingSizes: _propTypes.default.any
378
386
  } : {};
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_novaIcons","_provider","_card","_interopRequireWildcard","_learningPriorityCard","_certificationCard","_learnerSkillCard","_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","CardComponent","Card","LearningPriorityCard","LearnerSkillCard","CertificationCard","arrowIconProps","preset","borderRadius","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","iconName","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","ref","oneOfType","node","arrayOf","shape","cardPropTypes","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 CertificationCard from '../../certification-card';\nimport LearnerSkillCard from '../../learner-skill-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', 'skills', 'certifications']),\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 let CardComponent = Card;\n\n if (card && type === 'learningPrioritiesCards') {\n CardComponent = LearningPriorityCard;\n } else if (card && type === 'skills') {\n CardComponent = LearnerSkillCard;\n } else if (card && type === 'certifications') {\n CardComponent = CertificationCard;\n }\n\n return (\n <div className={style.card} key={key}>\n <CardComponent {...card} dataName={`${dataName}-${key}`} />\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":[]}
@@ -997,6 +997,105 @@ declare namespace SearchPage {
997
997
  disabled: PropTypes.Requireable<boolean>;
998
998
  }>>;
999
999
  }>>;
1000
+ const sections: PropTypes.Requireable<(PropTypes.InferProps<{
1001
+ title: PropTypes.Requireable<string>;
1002
+ cards: PropTypes.Requireable<(NonNullable<PropTypes.InferProps<{
1003
+ badge: PropTypes.Requireable<string>;
1004
+ image: PropTypes.Requireable<string>;
1005
+ disabled: PropTypes.Requireable<boolean>;
1006
+ adaptiv: PropTypes.Requireable<boolean>;
1007
+ type: PropTypes.Requireable<string>;
1008
+ title: PropTypes.Requireable<string>;
1009
+ author: PropTypes.Requireable<string>;
1010
+ certifiedAuthor: PropTypes.Requireable<boolean>;
1011
+ customer: PropTypes.Requireable<PropTypes.InferProps<{
1012
+ theme: PropTypes.Requireable<string>;
1013
+ type: PropTypes.Requireable<string>;
1014
+ name: PropTypes.Requireable<string>;
1015
+ coorpOriginal: PropTypes.Validator<boolean>;
1016
+ disabled: PropTypes.Requireable<boolean>;
1017
+ 'aria-label': PropTypes.Requireable<string>;
1018
+ }>>;
1019
+ progress: PropTypes.Requireable<number>;
1020
+ favorite: PropTypes.Requireable<boolean>;
1021
+ addFavoriteToolTip: PropTypes.Requireable<string>;
1022
+ removeFavoriteToolTip: PropTypes.Requireable<string>;
1023
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1024
+ onFavoriteClick: PropTypes.Requireable<(...args: any[]) => any>;
1025
+ isSelected: PropTypes.Requireable<boolean>;
1026
+ notification: PropTypes.Requireable<PropTypes.InferProps<{
1027
+ message: PropTypes.Validator<string>;
1028
+ icon: PropTypes.Validator<string>;
1029
+ }>>;
1030
+ badgeCategory: PropTypes.Requireable<string>;
1031
+ badgeLabel: PropTypes.Requireable<string>;
1032
+ theme: PropTypes.Requireable<string>;
1033
+ disabledContent: PropTypes.Requireable<string>;
1034
+ 'aria-label': PropTypes.Requireable<string>;
1035
+ 'background-aria-label': PropTypes.Requireable<string>;
1036
+ 'favorite-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1037
+ favorite: PropTypes.Requireable<string>;
1038
+ addToFavorite: PropTypes.Requireable<string>;
1039
+ removeFromFavorite: PropTypes.Requireable<string>;
1040
+ }>>;
1041
+ 'selectable-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1042
+ select: PropTypes.Requireable<string>;
1043
+ unSelect: PropTypes.Requireable<string>;
1044
+ }>>;
1045
+ 'customer-aria-label': PropTypes.Requireable<string>;
1046
+ 'badge-aria-label': PropTypes.Requireable<string>;
1047
+ 'disabled-aria-label': PropTypes.Requireable<string>;
1048
+ 'card-content-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1049
+ author: PropTypes.Requireable<string>;
1050
+ progression: PropTypes.Requireable<string>;
1051
+ adaptive: PropTypes.Requireable<string>;
1052
+ }>>;
1053
+ }> | PropTypes.InferProps<{
1054
+ title: PropTypes.Requireable<string>;
1055
+ tagLabel: PropTypes.Requireable<string>;
1056
+ progression: PropTypes.Requireable<number>;
1057
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1058
+ }> | PropTypes.InferProps<{
1059
+ label: PropTypes.Requireable<string>;
1060
+ goal: PropTypes.Requireable<PropTypes.InferProps<{
1061
+ title: PropTypes.Requireable<string>;
1062
+ condition: PropTypes.Requireable<PropTypes.InferProps<{
1063
+ nbDone: PropTypes.Requireable<number>;
1064
+ }>>;
1065
+ }>>;
1066
+ progress: PropTypes.Requireable<number>;
1067
+ imgUrl: PropTypes.Requireable<string>;
1068
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
1069
+ locales: PropTypes.Requireable<PropTypes.InferProps<{
1070
+ conditionDescriptionProgress: PropTypes.Requireable<string>;
1071
+ tag: PropTypes.Requireable<string>;
1072
+ }>>;
1073
+ }> | PropTypes.InferProps<{
1074
+ 'aria-label': PropTypes.Requireable<string>;
1075
+ cardIndex: PropTypes.Requireable<number>;
1076
+ skillTitle: PropTypes.Requireable<string>;
1077
+ skillAriaLabel: PropTypes.Requireable<string>;
1078
+ focus: PropTypes.Requireable<boolean>;
1079
+ metrics: PropTypes.Requireable<PropTypes.InferProps<{
1080
+ content: PropTypes.Requireable<number>;
1081
+ score: PropTypes.Requireable<number>;
1082
+ questionsToReview: PropTypes.Requireable<number>;
1083
+ }>>;
1084
+ icon: PropTypes.Requireable<PropTypes.InferProps<{
1085
+ color: PropTypes.Requireable<string>;
1086
+ name: PropTypes.Requireable<string>;
1087
+ }>>;
1088
+ onExploreClick: PropTypes.Requireable<(...args: any[]) => any>;
1089
+ }> | null | undefined> | null | undefined)[]>;
1090
+ showMore: PropTypes.Requireable<string>;
1091
+ onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
1092
+ order: PropTypes.Requireable<number>;
1093
+ type: PropTypes.Requireable<string>;
1094
+ 'arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
1095
+ showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
1096
+ showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
1097
+ }>>;
1098
+ }> | null | undefined)[]>;
1000
1099
  }
1001
1100
  }
1002
1101
  import PropTypes from "prop-types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAWA,mEA2DC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/template/common/search-page/index.js"],"names":[],"mappings":";AAiBA,mEAuIC"}
@@ -11,7 +11,13 @@ var _button = _interopRequireDefault(require("../../../atom/button"));
11
11
  var _filters = _interopRequireDefault(require("../../../molecule/filters"));
12
12
  var _cardsGrid = _interopRequireDefault(require("../../../organism/cards-grid"));
13
13
  var _cardsList = _interopRequireDefault(require("../../../molecule/dashboard/cards-list"));
14
+ var _certificationCard = _interopRequireDefault(require("../../../molecule/certification-card"));
15
+ var _learnerSkillCard = _interopRequireDefault(require("../../../molecule/learner-skill-card"));
14
16
  var _cmPopin = _interopRequireDefault(require("../../../molecule/cm-popin"));
17
+ var _tag = _interopRequireDefault(require("../../../atom/tag"));
18
+ var _card = require("../../../molecule/card");
19
+ var _learningPriorityCard = _interopRequireDefault(require("../../../molecule/learning-priority-card"));
20
+ var _colors = require("../../../variables/colors");
15
21
  var _style = _interopRequireDefault(require("./style.css"));
16
22
  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); }
17
23
  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; }
@@ -29,7 +35,8 @@ const SearchPage = (props, context) => {
29
35
  moreFilterAriaLabel,
30
36
  filterGroupAriaLabel,
31
37
  sortAriaLabel,
32
- popinWithCards
38
+ popinWithCards,
39
+ sections = []
33
40
  } = props;
34
41
  const {
35
42
  skin
@@ -37,7 +44,45 @@ const SearchPage = (props, context) => {
37
44
  const defaultColor = (0, _getOr2.default)('#00B0FF', 'common.primary', skin);
38
45
  const nodeRef = (0, _react.useRef)(null);
39
46
  const recommendationsView = (0, _isEmpty2.default)(recommendations) ? null : /*#__PURE__*/_react.default.createElement(_cardsList.default, recommendations);
40
- const cardsView = (0, _isEmpty2.default)(cards.list) ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
47
+
48
+ // Helper function to render content sections
49
+ const renderSection = section => {
50
+ if (!section || (0, _isEmpty2.default)(section.cards)) return null;
51
+
52
+ // Create title with count tag
53
+ const titleWithCount = /*#__PURE__*/_react.default.createElement("div", {
54
+ className: _style.default.sectionTitle
55
+ }, /*#__PURE__*/_react.default.createElement("span", null, section.title), /*#__PURE__*/_react.default.createElement(_tag.default, {
56
+ label: section.cards.length.toString(),
57
+ type: "default",
58
+ size: "S",
59
+ customStyle: {
60
+ backgroundColor: _colors.COLORS.cm_grey_100,
61
+ color: _colors.COLORS.neutral_500
62
+ }
63
+ }));
64
+ const sectionProps = {
65
+ ...section,
66
+ title: titleWithCount,
67
+ dataName: `${section.type}-section`
68
+ };
69
+
70
+ // Use CardsList with appropriate type for all sections
71
+ if (section.type === 'certifications') {
72
+ return /*#__PURE__*/_react.default.createElement(_cardsList.default, _extends({}, sectionProps, {
73
+ type: "certifications"
74
+ }));
75
+ }
76
+ if (section.type === 'skills') {
77
+ return /*#__PURE__*/_react.default.createElement(_cardsList.default, _extends({}, sectionProps, {
78
+ type: "skills"
79
+ }));
80
+ }
81
+
82
+ // For new content and playlists, use standard cards
83
+ return /*#__PURE__*/_react.default.createElement(_cardsList.default, sectionProps);
84
+ };
85
+ const cardsView = (0, _isEmpty2.default)(cards?.list) ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
41
86
  className: _style.default.noresults
42
87
  }, /*#__PURE__*/_react.default.createElement("div", {
43
88
  className: _style.default.noresultstxt
@@ -49,12 +94,38 @@ const SearchPage = (props, context) => {
49
94
  },
50
95
  type: "link"
51
96
  }))), recommendationsView) : /*#__PURE__*/_react.default.createElement(_cardsGrid.default, cards);
52
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_filters.default, _extends({}, searchFilters, {
97
+
98
+ // Sort sections by order
99
+ const sortedSections = sections.sort((a, b) => a.order - b.order);
100
+ const hasSections = sortedSections.length > 0;
101
+ const contentGridSection = cards && !(0, _isEmpty2.default)(cards.list) ? /*#__PURE__*/_react.default.createElement("div", {
102
+ className: _style.default.contentSection
103
+ }, /*#__PURE__*/_react.default.createElement("div", {
104
+ className: _style.default.sectionHeader
105
+ }, /*#__PURE__*/_react.default.createElement("div", {
106
+ className: _style.default.sectionTitle
107
+ }, /*#__PURE__*/_react.default.createElement("span", null, "Content"), /*#__PURE__*/_react.default.createElement(_tag.default, {
108
+ label: cards.list.length.toString(),
109
+ type: "default",
110
+ size: "S",
111
+ customStyle: {
112
+ backgroundColor: _colors.COLORS.cm_grey_100,
113
+ color: _colors.COLORS.neutral_500
114
+ }
115
+ })), /*#__PURE__*/_react.default.createElement("div", {
116
+ className: _style.default.contentGrid
117
+ }, ' ', /*#__PURE__*/_react.default.createElement(_cardsGrid.default, cards)))) : null;
118
+ return /*#__PURE__*/_react.default.createElement("div", null, searchFilters ? /*#__PURE__*/_react.default.createElement(_filters.default, _extends({}, searchFilters, {
53
119
  moreSortAriaLabel: moreSortAriaLabel,
54
120
  moreFilterAriaLabel: moreFilterAriaLabel,
55
121
  filterGroupAriaLabel: filterGroupAriaLabel,
56
122
  sortAriaLabel: sortAriaLabel
57
- })), /*#__PURE__*/_react.default.createElement("div", {
123
+ })) : null, hasSections ? /*#__PURE__*/_react.default.createElement("div", {
124
+ "data-name": "explorerSections",
125
+ className: _style.default.sectionsWrapper
126
+ }, sortedSections.map((section, index) => /*#__PURE__*/_react.default.createElement("div", {
127
+ key: `${section.type}-${index}`
128
+ }, renderSection(section))), contentGridSection) : /*#__PURE__*/_react.default.createElement("div", {
58
129
  "data-name": "searchResult",
59
130
  className: _style.default.cardsWrapper
60
131
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -79,7 +150,19 @@ SearchPage.propTypes = process.env.NODE_ENV !== "production" ? {
79
150
  moreFilterAriaLabel: _propTypes.default.string,
80
151
  filterGroupAriaLabel: _propTypes.default.string,
81
152
  sortAriaLabel: _propTypes.default.string,
82
- popinWithCards: _propTypes.default.shape(_cmPopin.default.propTypes)
153
+ popinWithCards: _propTypes.default.shape(_cmPopin.default.propTypes),
154
+ sections: _propTypes.default.arrayOf(_propTypes.default.shape({
155
+ title: _propTypes.default.string,
156
+ cards: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape(_card.cardPropTypes), _propTypes.default.shape(_learnerSkillCard.default.propTypes), _propTypes.default.shape(_certificationCard.default.propTypes), _propTypes.default.shape(_learningPriorityCard.default.propTypes)])),
157
+ showMore: _propTypes.default.string,
158
+ onShowMore: _propTypes.default.func,
159
+ order: _propTypes.default.number,
160
+ type: _propTypes.default.string,
161
+ 'arrows-aria-label': _propTypes.default.shape({
162
+ showMoreOnLeftAriaLabel: _propTypes.default.string,
163
+ showMoreOnRightAriaLabel: _propTypes.default.string
164
+ })
165
+ }))
83
166
  } : {};
84
167
  var _default = exports.default = SearchPage;
85
168
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_provider","_button","_filters","_cardsGrid","_cardsList","_cmPopin","_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","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","moreSortAriaLabel","moreFilterAriaLabel","filterGroupAriaLabel","sortAriaLabel","popinWithCards","skin","defaultColor","_getOr2","nodeRef","useRef","recommendationsView","_isEmpty2","createElement","cardsView","list","className","style","noresults","noresultstxt","clear","background","type","cardsWrapper","role","ref","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","Filters","CardsGrid","Button","CardsList","CMPopin","_default","exports"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport CMPopin from '../../../molecule/cm-popin';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {\n title,\n searchFilters,\n cards,\n noresultsfound,\n clearFilters,\n recommendations,\n moreSortAriaLabel,\n moreFilterAriaLabel,\n filterGroupAriaLabel,\n sortAriaLabel,\n popinWithCards\n } = props;\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n const nodeRef = useRef(null);\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n const cardsView = isEmpty(cards.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n return (\n <div>\n <Filters\n {...searchFilters}\n moreSortAriaLabel={moreSortAriaLabel}\n moreFilterAriaLabel={moreFilterAriaLabel}\n filterGroupAriaLabel={filterGroupAriaLabel}\n sortAriaLabel={sortAriaLabel}\n />\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title} role=\"status\">\n {title}\n </div>\n {cardsView}\n </div>\n {popinWithCards ? (\n <div className={style.popinWithCards} ref={nodeRef}>\n <CMPopin {...popinWithCards} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes),\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string,\n filterGroupAriaLabel: PropTypes.string,\n sortAriaLabel: PropTypes.string,\n popinWithCards: PropTypes.shape(CMPopin.propTypes)\n};\n\nexport default SearchPage;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_provider","_button","_filters","_cardsGrid","_cardsList","_certificationCard","_learnerSkillCard","_cmPopin","_tag","_card","_learningPriorityCard","_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","SearchPage","props","context","title","searchFilters","cards","noresultsfound","clearFilters","recommendations","moreSortAriaLabel","moreFilterAriaLabel","filterGroupAriaLabel","sortAriaLabel","popinWithCards","sections","skin","defaultColor","_getOr2","nodeRef","useRef","recommendationsView","_isEmpty2","createElement","renderSection","section","titleWithCount","className","style","sectionTitle","label","toString","type","size","customStyle","backgroundColor","COLORS","cm_grey_100","color","neutral_500","sectionProps","dataName","cardsView","list","noresults","noresultstxt","clear","background","sortedSections","sort","b","order","hasSections","contentGridSection","contentSection","sectionHeader","contentGrid","sectionsWrapper","map","index","key","cardsWrapper","role","ref","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","Filters","CardsGrid","Button","CardsList","CMPopin","arrayOf","oneOfType","cardPropTypes","LearnerSkillCard","CertificationCard","LearningPriorityCard","showMore","onShowMore","func","number","showMoreOnLeftAriaLabel","showMoreOnRightAriaLabel","_default","exports"],"sources":["../../../../src/template/common/search-page/index.js"],"sourcesContent":["import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, isEmpty} from 'lodash/fp';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport Filters from '../../../molecule/filters';\nimport CardsGrid from '../../../organism/cards-grid';\nimport CardsList from '../../../molecule/dashboard/cards-list';\nimport CertificationCard from '../../../molecule/certification-card';\nimport LearnerSkillCard from '../../../molecule/learner-skill-card';\nimport CMPopin from '../../../molecule/cm-popin';\nimport Tag from '../../../atom/tag';\nimport {cardPropTypes} from '../../../molecule/card';\nimport LearningPriorityCard from '../../../molecule/learning-priority-card';\nimport {COLORS} from '../../../variables/colors';\nimport style from './style.css';\n\nconst SearchPage = (props, context) => {\n const {\n title,\n searchFilters,\n cards,\n noresultsfound,\n clearFilters,\n recommendations,\n moreSortAriaLabel,\n moreFilterAriaLabel,\n filterGroupAriaLabel,\n sortAriaLabel,\n popinWithCards,\n sections = []\n } = props;\n const {skin} = context;\n const defaultColor = getOr('#00B0FF', 'common.primary', skin);\n const nodeRef = useRef(null);\n const recommendationsView = isEmpty(recommendations) ? null : <CardsList {...recommendations} />;\n\n // Helper function to render content sections\n const renderSection = section => {\n if (!section || isEmpty(section.cards)) return null;\n\n // Create title with count tag\n const titleWithCount = (\n <div className={style.sectionTitle}>\n <span>{section.title}</span>\n <Tag\n label={section.cards.length.toString()}\n type=\"default\"\n size=\"S\"\n customStyle={{backgroundColor: COLORS.cm_grey_100, color: COLORS.neutral_500}}\n />\n </div>\n );\n\n const sectionProps = {\n ...section,\n title: titleWithCount,\n dataName: `${section.type}-section`\n };\n\n // Use CardsList with appropriate type for all sections\n if (section.type === 'certifications') {\n return <CardsList {...sectionProps} type=\"certifications\" />;\n }\n\n if (section.type === 'skills') {\n return <CardsList {...sectionProps} type=\"skills\" />;\n }\n\n // For new content and playlists, use standard cards\n return <CardsList {...sectionProps} />;\n };\n\n const cardsView = isEmpty(cards?.list) ? (\n <div>\n <div className={style.noresults}>\n <div className={style.noresultstxt}>{noresultsfound}</div>\n <Button\n {...clearFilters}\n data-name=\"searchPageClear\"\n className={style.clear}\n style={{background: defaultColor}}\n type=\"link\"\n />\n </div>\n {recommendationsView}\n </div>\n ) : (\n <CardsGrid {...cards} />\n );\n\n // Sort sections by order\n const sortedSections = sections.sort((a, b) => a.order - b.order);\n\n const hasSections = sortedSections.length > 0;\n\n const contentGridSection =\n cards && !isEmpty(cards.list) ? (\n <div className={style.contentSection}>\n <div className={style.sectionHeader}>\n <div className={style.sectionTitle}>\n <span>Content</span>\n <Tag\n label={cards.list.length.toString()}\n type=\"default\"\n size=\"S\"\n customStyle={{backgroundColor: COLORS.cm_grey_100, color: COLORS.neutral_500}}\n />\n </div>\n <div className={style.contentGrid}>\n {' '}\n <CardsGrid {...cards} />\n </div>\n </div>\n </div>\n ) : null;\n\n return (\n <div>\n {searchFilters ? (\n <Filters\n {...searchFilters}\n moreSortAriaLabel={moreSortAriaLabel}\n moreFilterAriaLabel={moreFilterAriaLabel}\n filterGroupAriaLabel={filterGroupAriaLabel}\n sortAriaLabel={sortAriaLabel}\n />\n ) : null}\n\n {hasSections ? (\n <div data-name=\"explorerSections\" className={style.sectionsWrapper}>\n {sortedSections.map((section, index) => (\n <div key={`${section.type}-${index}`}>{renderSection(section)}</div>\n ))}\n {contentGridSection}\n </div>\n ) : (\n <div data-name=\"searchResult\" className={style.cardsWrapper}>\n <div className={style.title} role=\"status\">\n {title}\n </div>\n {cardsView}\n </div>\n )}\n\n {popinWithCards ? (\n <div className={style.popinWithCards} ref={nodeRef}>\n <CMPopin {...popinWithCards} />\n </div>\n ) : null}\n </div>\n );\n};\n\nSearchPage.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nSearchPage.propTypes = {\n noresultsfound: PropTypes.string,\n title: PropTypes.string,\n searchFilters: PropTypes.shape(Filters.propTypes),\n cards: PropTypes.shape(CardsGrid.propTypes),\n clearFilters: PropTypes.shape(Button.propTypes),\n recommendations: PropTypes.shape(CardsList.propTypes),\n moreSortAriaLabel: PropTypes.string,\n moreFilterAriaLabel: PropTypes.string,\n filterGroupAriaLabel: PropTypes.string,\n sortAriaLabel: PropTypes.string,\n popinWithCards: PropTypes.shape(CMPopin.propTypes),\n sections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n cards: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape(cardPropTypes),\n PropTypes.shape(LearnerSkillCard.propTypes),\n PropTypes.shape(CertificationCard.propTypes),\n PropTypes.shape(LearningPriorityCard.propTypes)\n ])\n ),\n showMore: PropTypes.string,\n onShowMore: PropTypes.func,\n order: PropTypes.number,\n type: PropTypes.string,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n })\n })\n )\n};\n\nexport default SearchPage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,QAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,UAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,UAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,kBAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,iBAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,QAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,IAAA,GAAAT,sBAAA,CAAAF,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,qBAAA,GAAAX,sBAAA,CAAAF,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA;AACA,IAAAe,MAAA,GAAAb,sBAAA,CAAAF,OAAA;AAAgC,SAAAgB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAlB,wBAAAkB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAvB,uBAAAe,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAAA,SAAAmB,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAEhC,MAAMG,UAAU,GAAGA,CAACC,KAAK,EAAEC,OAAO,KAAK;EACrC,MAAM;IACJC,KAAK;IACLC,aAAa;IACbC,KAAK;IACLC,cAAc;IACdC,YAAY;IACZC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC,oBAAoB;IACpBC,aAAa;IACbC,cAAc;IACdC,QAAQ,GAAG;EACb,CAAC,GAAGb,KAAK;EACT,MAAM;IAACc;EAAI,CAAC,GAAGb,OAAO;EACtB,MAAMc,YAAY,GAAG,IAAAC,OAAA,CAAArC,OAAA,EAAM,SAAS,EAAE,gBAAgB,EAAEmC,IAAI,CAAC;EAC7D,MAAMG,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B,MAAMC,mBAAmB,GAAG,IAAAC,SAAA,CAAAzC,OAAA,EAAQ4B,eAAe,CAAC,GAAG,IAAI,gBAAGpD,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACzD,UAAA,CAAAe,OAAS,EAAK4B,eAAkB,CAAC;;EAEhG;EACA,MAAMe,aAAa,GAAGC,OAAO,IAAI;IAC/B,IAAI,CAACA,OAAO,IAAI,IAAAH,SAAA,CAAAzC,OAAA,EAAQ4C,OAAO,CAACnB,KAAK,CAAC,EAAE,OAAO,IAAI;;IAEnD;IACA,MAAMoB,cAAc,gBAClBrE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;MAAKI,SAAS,EAAEC,cAAK,CAACC;IAAa,gBACjCxE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,eAAOE,OAAO,CAACrB,KAAY,CAAC,eAC5B/C,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACrD,IAAA,CAAAW,OAAG;MACFiD,KAAK,EAAEL,OAAO,CAACnB,KAAK,CAACP,MAAM,CAACgC,QAAQ,CAAC,CAAE;MACvCC,IAAI,EAAC,SAAS;MACdC,IAAI,EAAC,GAAG;MACRC,WAAW,EAAE;QAACC,eAAe,EAAEC,cAAM,CAACC,WAAW;QAAEC,KAAK,EAAEF,cAAM,CAACG;MAAW;IAAE,CAC/E,CACE,CACN;IAED,MAAMC,YAAY,GAAG;MACnB,GAAGf,OAAO;MACVrB,KAAK,EAAEsB,cAAc;MACrBe,QAAQ,EAAE,GAAGhB,OAAO,CAACO,IAAI;IAC3B,CAAC;;IAED;IACA,IAAIP,OAAO,CAACO,IAAI,KAAK,gBAAgB,EAAE;MACrC,oBAAO3E,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACzD,UAAA,CAAAe,OAAS,EAAAc,QAAA,KAAK6C,YAAY;QAAER,IAAI,EAAC;MAAgB,EAAE,CAAC;IAC9D;IAEA,IAAIP,OAAO,CAACO,IAAI,KAAK,QAAQ,EAAE;MAC7B,oBAAO3E,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACzD,UAAA,CAAAe,OAAS,EAAAc,QAAA,KAAK6C,YAAY;QAAER,IAAI,EAAC;MAAQ,EAAE,CAAC;IACtD;;IAEA;IACA,oBAAO3E,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACzD,UAAA,CAAAe,OAAS,EAAK2D,YAAe,CAAC;EACxC,CAAC;EAED,MAAME,SAAS,GAAG,IAAApB,SAAA,CAAAzC,OAAA,EAAQyB,KAAK,EAAEqC,IAAI,CAAC,gBACpCtF,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,2BACElE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAACgB;EAAU,gBAC9BvF,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAACiB;EAAa,GAAEtC,cAAoB,CAAC,eAC1DlD,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAAC5D,OAAA,CAAAkB,OAAM,EAAAc,QAAA,KACDa,YAAY;IAChB,aAAU,iBAAiB;IAC3BmB,SAAS,EAAEC,cAAK,CAACkB,KAAM;IACvBlB,KAAK,EAAE;MAACmB,UAAU,EAAE9B;IAAY,CAAE;IAClCe,IAAI,EAAC;EAAM,EACZ,CACE,CAAC,EACLX,mBACE,CAAC,gBAENhE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAAC1D,UAAA,CAAAgB,OAAS,EAAKyB,KAAQ,CACxB;;EAED;EACA,MAAM0C,cAAc,GAAGjC,QAAQ,CAACkC,IAAI,CAAC,CAAC/D,CAAC,EAAEgE,CAAC,KAAKhE,CAAC,CAACiE,KAAK,GAAGD,CAAC,CAACC,KAAK,CAAC;EAEjE,MAAMC,WAAW,GAAGJ,cAAc,CAACjD,MAAM,GAAG,CAAC;EAE7C,MAAMsD,kBAAkB,GACtB/C,KAAK,IAAI,CAAC,IAAAgB,SAAA,CAAAzC,OAAA,EAAQyB,KAAK,CAACqC,IAAI,CAAC,gBAC3BtF,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAAC0B;EAAe,gBACnCjG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAAC2B;EAAc,gBAClClG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAACC;EAAa,gBACjCxE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,eAAM,SAAa,CAAC,eACpBlE,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACrD,IAAA,CAAAW,OAAG;IACFiD,KAAK,EAAExB,KAAK,CAACqC,IAAI,CAAC5C,MAAM,CAACgC,QAAQ,CAAC,CAAE;IACpCC,IAAI,EAAC,SAAS;IACdC,IAAI,EAAC,GAAG;IACRC,WAAW,EAAE;MAACC,eAAe,EAAEC,cAAM,CAACC,WAAW;MAAEC,KAAK,EAAEF,cAAM,CAACG;IAAW;EAAE,CAC/E,CACE,CAAC,eACNlF,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAAC4B;EAAY,GAC/B,GAAG,eACJnG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAAC1D,UAAA,CAAAgB,OAAS,EAAKyB,KAAQ,CACpB,CACF,CACF,CAAC,GACJ,IAAI;EAEV,oBACEjD,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,cACGlB,aAAa,gBACZhD,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAAC3D,QAAA,CAAAiB,OAAO,EAAAc,QAAA,KACFU,aAAa;IACjBK,iBAAiB,EAAEA,iBAAkB;IACrCC,mBAAmB,EAAEA,mBAAoB;IACzCC,oBAAoB,EAAEA,oBAAqB;IAC3CC,aAAa,EAAEA;EAAc,EAC9B,CAAC,GACA,IAAI,EAEPuC,WAAW,gBACV/F,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAK,aAAU,kBAAkB;IAACI,SAAS,EAAEC,cAAK,CAAC6B;EAAgB,GAChET,cAAc,CAACU,GAAG,CAAC,CAACjC,OAAO,EAAEkC,KAAK,kBACjCtG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKqC,GAAG,EAAE,GAAGnC,OAAO,CAACO,IAAI,IAAI2B,KAAK;EAAG,GAAEnC,aAAa,CAACC,OAAO,CAAO,CACpE,CAAC,EACD4B,kBACE,CAAC,gBAENhG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAK,aAAU,cAAc;IAACI,SAAS,EAAEC,cAAK,CAACiC;EAAa,gBAC1DxG,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAACxB,KAAM;IAAC0D,IAAI,EAAC;EAAQ,GACvC1D,KACE,CAAC,EACLsC,SACE,CACN,EAEA5B,cAAc,gBACbzD,MAAA,CAAAwB,OAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAEC,cAAK,CAACd,cAAe;IAACiD,GAAG,EAAE5C;EAAQ,gBACjD9D,MAAA,CAAAwB,OAAA,CAAA0C,aAAA,CAACtD,QAAA,CAAAY,OAAO,EAAKiC,cAAiB,CAC3B,CAAC,GACJ,IACD,CAAC;AAEV,CAAC;AAEDb,UAAU,CAAC+D,YAAY,GAAG;EACxBhD,IAAI,EAAEiD,iBAAQ,CAACC,iBAAiB,CAAClD;AACnC,CAAC;AAEDf,UAAU,CAACkE,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EACrB/D,cAAc,EAAEgE,kBAAS,CAACC,MAAM;EAChCpE,KAAK,EAAEmE,kBAAS,CAACC,MAAM;EACvBnE,aAAa,EAAEkE,kBAAS,CAACE,KAAK,CAACC,gBAAO,CAACP,SAAS,CAAC;EACjD7D,KAAK,EAAEiE,kBAAS,CAACE,KAAK,CAACE,kBAAS,CAACR,SAAS,CAAC;EAC3C3D,YAAY,EAAE+D,kBAAS,CAACE,KAAK,CAACG,eAAM,CAACT,SAAS,CAAC;EAC/C1D,eAAe,EAAE8D,kBAAS,CAACE,KAAK,CAACI,kBAAS,CAACV,SAAS,CAAC;EACrDzD,iBAAiB,EAAE6D,kBAAS,CAACC,MAAM;EACnC7D,mBAAmB,EAAE4D,kBAAS,CAACC,MAAM;EACrC5D,oBAAoB,EAAE2D,kBAAS,CAACC,MAAM;EACtC3D,aAAa,EAAE0D,kBAAS,CAACC,MAAM;EAC/B1D,cAAc,EAAEyD,kBAAS,CAACE,KAAK,CAACK,gBAAO,CAACX,SAAS,CAAC;EAClDpD,QAAQ,EAAEwD,kBAAS,CAACQ,OAAO,CACzBR,kBAAS,CAACE,KAAK,CAAC;IACdrE,KAAK,EAAEmE,kBAAS,CAACC,MAAM;IACvBlE,KAAK,EAAEiE,kBAAS,CAACQ,OAAO,CACtBR,kBAAS,CAACS,SAAS,CAAC,CAClBT,kBAAS,CAACE,KAAK,CAACQ,mBAAa,CAAC,EAC9BV,kBAAS,CAACE,KAAK,CAACS,yBAAgB,CAACf,SAAS,CAAC,EAC3CI,kBAAS,CAACE,KAAK,CAACU,0BAAiB,CAAChB,SAAS,CAAC,EAC5CI,kBAAS,CAACE,KAAK,CAACW,6BAAoB,CAACjB,SAAS,CAAC,CAChD,CACH,CAAC;IACDkB,QAAQ,EAAEd,kBAAS,CAACC,MAAM;IAC1Bc,UAAU,EAAEf,kBAAS,CAACgB,IAAI;IAC1BpC,KAAK,EAAEoB,kBAAS,CAACiB,MAAM;IACvBxD,IAAI,EAAEuC,kBAAS,CAACC,MAAM;IACtB,mBAAmB,EAAED,kBAAS,CAACE,KAAK,CAAC;MACnCgB,uBAAuB,EAAElB,kBAAS,CAACC,MAAM;MACzCkB,wBAAwB,EAAEnB,kBAAS,CAACC;IACtC,CAAC;EACH,CAAC,CACH;AACF,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAA/G,OAAA,GAEaoB,UAAU","ignoreList":[]}
@@ -7,6 +7,7 @@
7
7
  @value dark from colors;
8
8
  @value black from colors;
9
9
  @value white from colors;
10
+ @value cm_grey_500 from colors;
10
11
 
11
12
  .cardsWrapper {
12
13
  display: block;
@@ -55,6 +56,79 @@
55
56
  z-index: 7;
56
57
  }
57
58
 
59
+ .sectionsWrapper {
60
+ display: block;
61
+ width: 100%;
62
+ height: auto;
63
+ box-sizing: border-box;
64
+ padding: 0;
65
+ background: white;
66
+ }
67
+
68
+ .sectionsWrapper > * {
69
+ margin-bottom: 40px;
70
+ }
71
+
72
+ .sectionsWrapper > *:last-child {
73
+ margin-bottom: 20px;
74
+ }
75
+
76
+ .sectionTitle {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: 8px;
80
+ font-family: "Gilroy";
81
+ font-size: 16px;
82
+ font-weight: 600;
83
+ color: dark;
84
+ }
85
+
86
+ .contentSection .sectionTitle {
87
+ margin-bottom: 16px;
88
+ }
89
+
90
+ .sectionHeader {
91
+ max-width: 1080px;
92
+ margin: auto;
93
+ padding: 16px 30px 8px;
94
+ box-sizing: border-box;
95
+ display: flex;
96
+ flex-direction: column;
97
+ align-items: start;
98
+ align-content: start;
99
+ }
100
+
101
+ .contentSection {
102
+ display: block;
103
+ width: 100%;
104
+ height: auto;
105
+ box-sizing: border-box;
106
+ background: white;
107
+ padding: 16px 30px 8px;
108
+ position: relative;
109
+ overflow: hidden;
110
+ margin: auto;
111
+ }
112
+
113
+ .contentSection .sectionHeader {
114
+ padding: 0;
115
+ margin: 16px 0 8px 0;
116
+ max-width: 1080px;
117
+ margin-left: auto;
118
+ margin-right: auto;
119
+ display: flex;
120
+ line-height: 20px;
121
+ align-items: start;
122
+ }
123
+
124
+ .contentGrid {
125
+ max-width: 1090px;
126
+ margin: auto;
127
+ margin-left: -8px;
128
+ margin-right: 0;
129
+ box-sizing: border-box;
130
+ }
131
+
58
132
  @media mobile {
59
133
  .cardsWrapper {
60
134
  padding: 5px 0;
@@ -63,4 +137,8 @@
63
137
  .title {
64
138
  display: none;
65
139
  }
140
+
141
+ .contentSection {
142
+ padding: 16px 8px 0px;
143
+ }
66
144
  }
@@ -164,7 +164,7 @@
164
164
  "mandatory_fields": "*Privalomi laukai",
165
165
  "something_went_wrong": "Oi! Kažkas nutiko ne taip.",
166
166
  "review_mode_tooltip_header": "Kas yra Kartojimosi režimas?",
167
- "review_mode_tooltip_content": "Informacija pranyksta iš atminties vos tik į išmokstate? Tai visiškai normalu: be kartojimo nėra ir įsiminimo! Kad žinios išliktų ilgam, naudokite Kartojimo režimą ir atgaivinkite atmintį!",
167
+ "review_mode_tooltip_content": "Informacija pranyksta iš atminties vos tik ją įsimenate? Tai visiškai normalu: be kartojimo nėra ir įsiminimo! Kad žinios išliktų ilgam, naudokite Kartojimo režimą ir atgaivinkite atmintį!",
168
168
  "review_mode_tooltip_content_part1": "Pasirinkite 1 įgūdį",
169
169
  "review_mode_tooltip_content_part2": "Atsakykite į 5 klausimus",
170
170
  "review_mode_tooltip_content_part3": "Jūs turite neribotą skaičių gyvybių.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.40.1",
3
+ "version": "11.40.2-alpha.5+4eecd2888",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -166,5 +166,5 @@
166
166
  "last 2 versions",
167
167
  "IE 11"
168
168
  ],
169
- "gitHead": "c4f90c762070e34f9056c6cf6a6db55f942be245"
169
+ "gitHead": "4eecd28887e3f9cf191deda21a415f0efc223958"
170
170
  }