@coorpacademy/components 11.32.20-alpha.39 → 11.32.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/es/atom/button-link/index.d.ts +2 -0
  2. package/es/atom/button-link/index.d.ts.map +1 -1
  3. package/es/atom/button-link/index.js +22 -8
  4. package/es/atom/button-link/index.js.map +1 -1
  5. package/es/atom/button-link/types.d.ts +4 -0
  6. package/es/atom/button-link/types.d.ts.map +1 -1
  7. package/es/atom/button-link/types.js +2 -0
  8. package/es/atom/button-link/types.js.map +1 -1
  9. package/es/atom/radio-with-title/index.d.ts +0 -6
  10. package/es/atom/radio-with-title/index.d.ts.map +1 -1
  11. package/es/atom/radio-with-title/types.d.ts +0 -6
  12. package/es/atom/radio-with-title/types.d.ts.map +1 -1
  13. package/es/atom/tag/style.css +1 -2
  14. package/es/atom/title/index.d.ts +0 -6
  15. package/es/atom/title/index.d.ts.map +1 -1
  16. package/es/atom/title/index.js +4 -16
  17. package/es/atom/title/index.js.map +1 -1
  18. package/es/atom/title/style.css +0 -13
  19. package/es/molecule/base-modal/index.d.ts.map +1 -1
  20. package/es/molecule/base-modal/index.js +6 -10
  21. package/es/molecule/base-modal/index.js.map +1 -1
  22. package/es/molecule/cm-popin/types.d.ts +4 -6
  23. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  24. package/es/molecule/dashboard/cards-list/index.d.ts +2 -9
  25. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  26. package/es/molecule/dashboard/cards-list/index.js +26 -26
  27. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  28. package/es/molecule/dashboard/cards-list/prop-types.d.ts +0 -1
  29. package/es/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -1
  30. package/es/molecule/dashboard/cards-list/prop-types.js.map +1 -1
  31. package/es/molecule/dashboard/cards-list/style.css +29 -12
  32. package/es/molecule/expandible-actionable-table/index.d.ts +2 -0
  33. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  34. package/es/molecule/expandible-actionable-table/types.d.ts +2 -0
  35. package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  36. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  37. package/es/molecule/learner-skill-card/index.js +7 -10
  38. package/es/molecule/learner-skill-card/index.js.map +1 -1
  39. package/es/molecule/learning-priority-card/index.d.ts +3 -2
  40. package/es/molecule/learning-priority-card/index.d.ts.map +1 -1
  41. package/es/molecule/learning-priority-card/index.js +10 -11
  42. package/es/molecule/learning-priority-card/index.js.map +1 -1
  43. package/es/molecule/learning-priority-card/style.css +0 -2
  44. package/es/molecule/learning-priority-card/types.d.ts +6 -4
  45. package/es/molecule/learning-priority-card/types.d.ts.map +1 -1
  46. package/es/molecule/learning-priority-card/types.js +4 -3
  47. package/es/molecule/learning-priority-card/types.js.map +1 -1
  48. package/es/molecule/skill-card/index.d.ts.map +1 -1
  49. package/es/molecule/skill-card/index.js +5 -8
  50. package/es/molecule/skill-card/index.js.map +1 -1
  51. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +0 -6
  52. package/es/molecule/title-radio-wrapper/index.d.ts +0 -6
  53. package/es/molecule/title-radio-wrapper/index.d.ts.map +1 -1
  54. package/es/molecule/title-radio-wrapper/types.d.ts +0 -6
  55. package/es/molecule/title-radio-wrapper/types.d.ts.map +1 -1
  56. package/es/organism/list-items/index.d.ts +4 -0
  57. package/es/organism/rewards-form/index.d.ts +0 -6
  58. package/es/organism/select-opponents/index.d.ts +0 -6
  59. package/es/organism/select-opponents/index.d.ts.map +1 -1
  60. package/es/organism/select-opponents/types.d.ts +0 -6
  61. package/es/organism/select-opponents/types.d.ts.map +1 -1
  62. package/es/organism/setup-header/index.d.ts +8 -0
  63. package/es/organism/title-and-input/index.d.ts +0 -12
  64. package/es/organism/title-and-input/index.d.ts.map +1 -1
  65. package/es/organism/title-and-input/types.d.ts +0 -12
  66. package/es/organism/title-and-input/types.d.ts.map +1 -1
  67. package/es/organism/wizard-contents/index.d.ts +6 -6
  68. package/es/template/app-player/loading/index.d.ts +4 -6
  69. package/es/template/app-player/player/index.d.ts +8 -12
  70. package/es/template/app-player/player/slides/index.d.ts +4 -6
  71. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  72. package/es/template/app-player/popin-correction/index.d.ts +4 -6
  73. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  74. package/es/template/app-player/popin-end/index.d.ts +6 -15
  75. package/es/template/app-player/popin-end/summary.d.ts +2 -9
  76. package/es/template/app-review/index.d.ts +4 -6
  77. package/es/template/app-review/index.d.ts.map +1 -1
  78. package/es/template/app-review/player/prop-types.d.ts +4 -6
  79. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  80. package/es/template/app-review/prop-types.d.ts +4 -6
  81. package/es/template/app-review/prop-types.d.ts.map +1 -1
  82. package/es/template/back-office/brand-create/index.d.ts +8 -0
  83. package/es/template/back-office/brand-create/index.d.ts.map +1 -1
  84. package/es/template/back-office/brand-list/index.d.ts +8 -0
  85. package/es/template/back-office/brand-list/index.d.ts.map +1 -1
  86. package/es/template/back-office/brand-update/index.d.ts +22 -6
  87. package/es/template/back-office/dashboard-preview/index.d.ts +8 -0
  88. package/es/template/back-office/layout/index.d.ts +8 -0
  89. package/es/template/back-office/layout/index.d.ts.map +1 -1
  90. package/es/template/common/dashboard/index.d.ts +8 -12
  91. package/es/template/common/dashboard/index.d.ts.map +1 -1
  92. package/es/template/common/dashboard/index.js +1 -28
  93. package/es/template/common/dashboard/index.js.map +1 -1
  94. package/es/template/common/search-page/index.d.ts +6 -15
  95. package/es/template/external-course/index.d.ts +4 -6
  96. package/es/template/my-learning/index.d.ts +1 -153
  97. package/es/template/my-learning/index.d.ts.map +1 -1
  98. package/es/template/my-learning/index.js +12 -51
  99. package/es/template/my-learning/index.js.map +1 -1
  100. package/es/template/my-learning/style.css +3 -18
  101. package/es/template/skill-detail/index.d.ts.map +1 -1
  102. package/es/template/skill-detail/index.js +4 -8
  103. package/es/template/skill-detail/index.js.map +1 -1
  104. package/es/template/teams-dashboard/index.d.ts +2 -9
  105. package/lib/atom/button-link/index.d.ts +2 -0
  106. package/lib/atom/button-link/index.d.ts.map +1 -1
  107. package/lib/atom/button-link/index.js +21 -7
  108. package/lib/atom/button-link/index.js.map +1 -1
  109. package/lib/atom/button-link/types.d.ts +4 -0
  110. package/lib/atom/button-link/types.d.ts.map +1 -1
  111. package/lib/atom/button-link/types.js +2 -0
  112. package/lib/atom/button-link/types.js.map +1 -1
  113. package/lib/atom/radio-with-title/index.d.ts +0 -6
  114. package/lib/atom/radio-with-title/index.d.ts.map +1 -1
  115. package/lib/atom/radio-with-title/types.d.ts +0 -6
  116. package/lib/atom/radio-with-title/types.d.ts.map +1 -1
  117. package/lib/atom/tag/style.css +1 -2
  118. package/lib/atom/title/index.d.ts +0 -6
  119. package/lib/atom/title/index.d.ts.map +1 -1
  120. package/lib/atom/title/index.js +4 -18
  121. package/lib/atom/title/index.js.map +1 -1
  122. package/lib/atom/title/style.css +0 -13
  123. package/lib/molecule/base-modal/index.d.ts.map +1 -1
  124. package/lib/molecule/base-modal/index.js +5 -9
  125. package/lib/molecule/base-modal/index.js.map +1 -1
  126. package/lib/molecule/cm-popin/types.d.ts +4 -6
  127. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  128. package/lib/molecule/dashboard/cards-list/index.d.ts +2 -9
  129. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  130. package/lib/molecule/dashboard/cards-list/index.js +26 -27
  131. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  132. package/lib/molecule/dashboard/cards-list/prop-types.d.ts +0 -1
  133. package/lib/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -1
  134. package/lib/molecule/dashboard/cards-list/prop-types.js.map +1 -1
  135. package/lib/molecule/dashboard/cards-list/style.css +29 -12
  136. package/lib/molecule/expandible-actionable-table/index.d.ts +2 -0
  137. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  138. package/lib/molecule/expandible-actionable-table/types.d.ts +2 -0
  139. package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  140. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  141. package/lib/molecule/learner-skill-card/index.js +6 -9
  142. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  143. package/lib/molecule/learning-priority-card/index.d.ts +3 -2
  144. package/lib/molecule/learning-priority-card/index.d.ts.map +1 -1
  145. package/lib/molecule/learning-priority-card/index.js +10 -11
  146. package/lib/molecule/learning-priority-card/index.js.map +1 -1
  147. package/lib/molecule/learning-priority-card/style.css +0 -2
  148. package/lib/molecule/learning-priority-card/types.d.ts +6 -4
  149. package/lib/molecule/learning-priority-card/types.d.ts.map +1 -1
  150. package/lib/molecule/learning-priority-card/types.js +4 -3
  151. package/lib/molecule/learning-priority-card/types.js.map +1 -1
  152. package/lib/molecule/skill-card/index.d.ts.map +1 -1
  153. package/lib/molecule/skill-card/index.js +4 -7
  154. package/lib/molecule/skill-card/index.js.map +1 -1
  155. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +0 -6
  156. package/lib/molecule/title-radio-wrapper/index.d.ts +0 -6
  157. package/lib/molecule/title-radio-wrapper/index.d.ts.map +1 -1
  158. package/lib/molecule/title-radio-wrapper/types.d.ts +0 -6
  159. package/lib/molecule/title-radio-wrapper/types.d.ts.map +1 -1
  160. package/lib/organism/list-items/index.d.ts +4 -0
  161. package/lib/organism/rewards-form/index.d.ts +0 -6
  162. package/lib/organism/select-opponents/index.d.ts +0 -6
  163. package/lib/organism/select-opponents/index.d.ts.map +1 -1
  164. package/lib/organism/select-opponents/types.d.ts +0 -6
  165. package/lib/organism/select-opponents/types.d.ts.map +1 -1
  166. package/lib/organism/setup-header/index.d.ts +8 -0
  167. package/lib/organism/title-and-input/index.d.ts +0 -12
  168. package/lib/organism/title-and-input/index.d.ts.map +1 -1
  169. package/lib/organism/title-and-input/types.d.ts +0 -12
  170. package/lib/organism/title-and-input/types.d.ts.map +1 -1
  171. package/lib/organism/wizard-contents/index.d.ts +6 -6
  172. package/lib/template/app-player/loading/index.d.ts +4 -6
  173. package/lib/template/app-player/player/index.d.ts +8 -12
  174. package/lib/template/app-player/player/slides/index.d.ts +4 -6
  175. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  176. package/lib/template/app-player/popin-correction/index.d.ts +4 -6
  177. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  178. package/lib/template/app-player/popin-end/index.d.ts +6 -15
  179. package/lib/template/app-player/popin-end/summary.d.ts +2 -9
  180. package/lib/template/app-review/index.d.ts +4 -6
  181. package/lib/template/app-review/index.d.ts.map +1 -1
  182. package/lib/template/app-review/player/prop-types.d.ts +4 -6
  183. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  184. package/lib/template/app-review/prop-types.d.ts +4 -6
  185. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  186. package/lib/template/back-office/brand-create/index.d.ts +8 -0
  187. package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
  188. package/lib/template/back-office/brand-list/index.d.ts +8 -0
  189. package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
  190. package/lib/template/back-office/brand-update/index.d.ts +22 -6
  191. package/lib/template/back-office/dashboard-preview/index.d.ts +8 -0
  192. package/lib/template/back-office/layout/index.d.ts +8 -0
  193. package/lib/template/back-office/layout/index.d.ts.map +1 -1
  194. package/lib/template/common/dashboard/index.d.ts +8 -12
  195. package/lib/template/common/dashboard/index.d.ts.map +1 -1
  196. package/lib/template/common/dashboard/index.js +1 -30
  197. package/lib/template/common/dashboard/index.js.map +1 -1
  198. package/lib/template/common/search-page/index.d.ts +6 -15
  199. package/lib/template/external-course/index.d.ts +4 -6
  200. package/lib/template/my-learning/index.d.ts +1 -153
  201. package/lib/template/my-learning/index.d.ts.map +1 -1
  202. package/lib/template/my-learning/index.js +13 -57
  203. package/lib/template/my-learning/index.js.map +1 -1
  204. package/lib/template/my-learning/style.css +3 -18
  205. package/lib/template/skill-detail/index.d.ts.map +1 -1
  206. package/lib/template/skill-detail/index.js +4 -8
  207. package/lib/template/skill-detail/index.js.map +1 -1
  208. package/lib/template/teams-dashboard/index.d.ts +2 -9
  209. package/package.json +2 -2
@@ -16,11 +16,9 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
16
16
 
17
17
  import React from 'react';
18
18
  import PropTypes from 'prop-types';
19
- import { NovaSolidContentContentBook1 as LearnerIcon, NovaCompositionCoorpacademyTimer as TimerIcon } from '@coorpacademy/nova-icons';
19
+ import { NovaCompositionNavigationArrowLeft as ArrowLeft, NovaCompositionNavigationArrowRight as ArrowRight, NovaSolidContentContentBook1 as LearnerIcon, NovaCompositionCoorpacademyTimer as TimerIcon } from '@coorpacademy/nova-icons';
20
20
  import Provider from '../../../atom/provider';
21
21
  import Card, { cardPropTypes } from '../../card';
22
- import LearningPriorityCard from '../../learning-priority-card';
23
- import Icon from '../../../atom/icon';
24
22
  import style from './style.css';
25
23
 
26
24
  const ShowMoreLink = props => {
@@ -323,34 +321,37 @@ class CardsList extends React.PureComponent {
323
321
  return /*#__PURE__*/React.createElement("div", {
324
322
  className: style.card,
325
323
  key: key
326
- }, card && card.type === 'learningPriority' ? /*#__PURE__*/React.createElement(LearningPriorityCard, _extends({}, card, {
327
- dataName: `${dataName}-${key}`
328
- })) : /*#__PURE__*/React.createElement(Card, _extends({}, card, {
324
+ }, /*#__PURE__*/React.createElement(Card, _extends({}, card, {
329
325
  dataName: `${dataName}-${key}`
330
326
  })));
331
327
  }))(cards);
332
328
 
333
- const arrowIconProps = {
334
- color: dark,
335
- preset: 's',
336
- borderRadius: '8px',
337
- ariaLabel: ariaLabel.showMoreOnLeftAriaLabel
338
- };
339
- const arrows = /*#__PURE__*/React.createElement("div", {
340
- className: style.arrowsWrapper
341
- }, /*#__PURE__*/React.createElement("div", {
342
- className: style.arrow,
329
+ const leftArrowView = /*#__PURE__*/React.createElement("div", {
330
+ className: style.circle,
343
331
  onClick: this.handleOnLeft,
344
332
  "data-name": "card-list-left-arrow"
345
- }, /*#__PURE__*/React.createElement(Icon, _extends({}, arrowIconProps, {
346
- iconName: "arrow-left"
347
- }))), /*#__PURE__*/React.createElement("div", {
348
- className: style.arrow,
333
+ }, /*#__PURE__*/React.createElement(ArrowLeft, {
334
+ style: {
335
+ color: dark
336
+ },
337
+ className: style.left,
338
+ width: 10,
339
+ height: 10,
340
+ "aria-label": ariaLabel.showMoreOnLeftAriaLabel
341
+ }));
342
+ const rightArrowView = /*#__PURE__*/React.createElement("div", {
343
+ className: style.circle,
349
344
  onClick: this.handleOnRight,
350
345
  "data-name": "card-list-right-arrow"
351
- }, /*#__PURE__*/React.createElement(Icon, _extends({}, arrowIconProps, {
352
- iconName: "arrow-right"
353
- }))));
346
+ }, /*#__PURE__*/React.createElement(ArrowRight, {
347
+ style: {
348
+ color: dark
349
+ },
350
+ className: style.right,
351
+ width: 10,
352
+ height: 10,
353
+ "aria-label": ariaLabel.showMoreOnRightAriaLabel
354
+ }));
354
355
  const titleView = typeof title === 'string' ? /*#__PURE__*/React.createElement("span", {
355
356
  "data-name": "title",
356
357
  className: titleStyle,
@@ -368,7 +369,7 @@ class CardsList extends React.PureComponent {
368
369
  }) : null;
369
370
  const switchPagesView = hasPages ? /*#__PURE__*/React.createElement("div", {
370
371
  className: style.pagingWrapper
371
- }, showMoreView, arrows) : null;
372
+ }, showMoreView, leftArrowView, rightArrowView) : null;
372
373
  return /*#__PURE__*/React.createElement("div", {
373
374
  className: style.wrapper,
374
375
  style: customStyle,
@@ -400,7 +401,7 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
400
401
  dataName: PropTypes.string,
401
402
  title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
402
403
  showMore: PropTypes.string,
403
- cards: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape(cardPropTypes), PropTypes.shape(LearningPriorityCard.propTypes)])),
404
+ cards: PropTypes.arrayOf(PropTypes.shape(cardPropTypes)),
404
405
  customStyle: PropTypes.objectOf(PropTypes.string),
405
406
  onScroll: PropTypes.func,
406
407
  onShowMore: PropTypes.func,
@@ -408,7 +409,6 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
408
409
  showMoreOnLeftAriaLabel: PropTypes.string,
409
410
  showMoreOnRightAriaLabel: PropTypes.string
410
411
  }),
411
- type: PropTypes.oneOf(['cards', 'learningPrioritiesCards']),
412
412
  // eslint-disable-next-line react/forbid-prop-types
413
413
  testingSizes: PropTypes.any
414
414
  } : {};
@@ -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","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","arrowIconProps","preset","borderRadius","showMoreOnLeftAriaLabel","arrows","arrowsWrapper","arrow","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","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 } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n {card && card.type === 'learningPriority' ? (\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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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","cardPropTypes","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","customStyle","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","showMoreOnLeftAriaLabel","rightArrowView","right","showMoreOnRightAriaLabel","titleView","titleNode","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","oneOfType","node","arrayOf","shape","objectOf","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 NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType 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(PropTypes.shape(cardPropTypes)),\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 // 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 } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft\n style={{color: dark}}\n className={style.left}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnLeftAriaLabel}\n />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight\n style={{color: dark}}\n className={style.right}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnRightAriaLabel}\n />\n </div>\n );\n\n const titleView =\n 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 {leftArrowView}\n {rightArrowView}\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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"}
@@ -12,6 +12,5 @@ export declare type CardsListProps = {
12
12
  showMoreOnLeftAriaLabel: string;
13
13
  showMoreOnRightAriaLabel: string;
14
14
  };
15
- type: string;
16
15
  };
17
16
  //# sourceMappingURL=prop-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"names":[],"mappings":";AAAA,oBAAY,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB,EAAE;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"names":[],"mappings":";AAAA,oBAAY,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB,EAAE;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;CACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.js","names":[],"sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"sourcesContent":["export type CardsListProps = {\n contentType: string;\n dataName: string;\n title: string | React.ReactNode;\n showMore: string;\n cards: Record<string, unknown>[];\n customStyle: Record<string, unknown>;\n onScroll: (skip: number, limit: number) => void;\n onShowMore: () => void;\n 'arrows-aria-label': {\n showMoreOnLeftAriaLabel: string;\n showMoreOnRightAriaLabel: string;\n };\n type: string;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"prop-types.js","names":[],"sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"sourcesContent":["export type CardsListProps = {\n contentType: string;\n dataName: string;\n title: string | React.ReactNode;\n showMore: string;\n cards: Record<string, unknown>[];\n customStyle: Record<string, unknown>;\n onScroll: (skip: number, limit: number) => void;\n onShowMore: () => void;\n 'arrows-aria-label': {\n showMoreOnLeftAriaLabel: string;\n showMoreOnRightAriaLabel: string;\n };\n};\n"],"mappings":""}
@@ -8,8 +8,6 @@
8
8
  @value lightMediumGray from colors;
9
9
  @value medium from colors;
10
10
  @value light from colors;
11
- @value cm_grey_100 from colors;
12
- @value cm_grey_75 from colors;
13
11
 
14
12
  .wrapper {
15
13
  padding: 16px 30px 8px;
@@ -106,26 +104,45 @@
106
104
  }
107
105
 
108
106
  .arrow {
109
- background-color: cm_grey_75;
110
- border-radius: 8px;
107
+ position: flex;
108
+ padding: 9px;
111
109
  cursor: pointer;
110
+ opacity: 1;
112
111
  user-select: none;
113
112
  }
114
113
 
115
- .arrow:hover {
116
- background-color: cm_grey_100;
117
- }
118
-
119
- .arrowsWrapper {
120
- display: flex;
121
- justify-content: space-between;
122
- gap: 12px;
114
+ .circle:hover {
115
+ box-shadow: 0 0 10px 0 color(medium a(70%));
123
116
  }
124
117
 
118
+ .circle {
119
+ box-shadow: 0 0px 4px 0 color(lightMediumGray a(70%));
120
+ border: solid 1px light;
121
+ border-radius: 50%;
122
+ cursor: pointer;
123
+ line-height: 0;
124
+ margin-left: 5px;
125
+ }
125
126
  .pagingWrapper {
126
127
  display: inline-flex;
127
128
  }
128
129
 
130
+ .arrow:hover {
131
+ opacity: 1;
132
+ }
133
+
134
+ .left {
135
+ composes: arrow;
136
+ left: -35px;
137
+ text-align: right;
138
+ }
139
+
140
+ .right {
141
+ composes: arrow;
142
+ right: -35px;
143
+ text-align: left;
144
+ }
145
+
129
146
  @media tablet {
130
147
  .cards {
131
148
  overflow-x: scroll;
@@ -79,6 +79,8 @@ declare const ActionableExpandableTable: {
79
79
  download: import("prop-types").Requireable<boolean>;
80
80
  target: import("prop-types").Requireable<string>;
81
81
  }>>;
82
+ hoverBackgroundColor: import("prop-types").Requireable<string>;
83
+ hoverColor: import("prop-types").Requireable<string>;
82
84
  disabled: import("prop-types").Requireable<boolean>;
83
85
  className: import("prop-types").Requireable<string>;
84
86
  customStyle: import("prop-types").Requireable<import("prop-types").InferProps<{}>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAOjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAqCnF,QAAA,MAAM,yBAAyB;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoL/E,CAAC;AASF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAOjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAqCnF,QAAA,MAAM,yBAAyB;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoL/E,CAAC;AASF,eAAe,yBAAyB,CAAC"}
@@ -56,6 +56,8 @@ export declare const propTypes: {
56
56
  download: PropTypes.Requireable<boolean>;
57
57
  target: PropTypes.Requireable<string>;
58
58
  }>>;
59
+ hoverBackgroundColor: PropTypes.Requireable<string>;
60
+ hoverColor: PropTypes.Requireable<string>;
59
61
  disabled: PropTypes.Requireable<boolean>;
60
62
  className: PropTypes.Requireable<string>;
61
63
  customStyle: PropTypes.Requireable<PropTypes.InferProps<{}>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,KAAK,IAAI,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AA0BzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBrB,CAAC;AAEF,oBAAY,KAAK,GACb,MAAM,GACN,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC;CACzB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,gBAAgB,GAAG;IAClB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,GACF,CAAC,KAAK,GAAG;IACP,aAAa,EAAE,yBAAyB,CAAC;CAC1C,CAAC,CAAC;AAEP,oBAAY,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACrC,oBAAY,GAAG,GAAG;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AACF,oBAAY,OAAO,GAAG,MAAM,EAAE,CAAC;AAC/B,oBAAY,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzB,oBAAY,KAAK,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,oBAAY,WAAW,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,KAAK,IAAI,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AA0BzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBrB,CAAC;AAEF,oBAAY,KAAK,GACb,MAAM,GACN,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC;CACzB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,gBAAgB,GAAG;IAClB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,GACF,CAAC,KAAK,GAAG;IACP,aAAa,EAAE,yBAAyB,CAAC;CAC1C,CAAC,CAAC;AAEP,oBAAY,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACrC,oBAAY,GAAG,GAAG;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AACF,oBAAY,OAAO,GAAG,MAAM,EAAE,CAAC;AAC/B,oBAAY,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzB,oBAAY,KAAK,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,oBAAY,WAAW,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learner-skill-card/index.js"],"names":[],"mappings":";AASA,yEAyJC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learner-skill-card/index.js"],"names":[],"mappings":";AASA,yEAiJC"}
@@ -1,5 +1,5 @@
1
1
  import _get from "lodash/fp/get";
2
- import React, { useCallback, useState } from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  import { convert } from 'css-color-function';
4
4
  import PropTypes from 'prop-types';
5
5
  import Icon from '../../atom/icon';
@@ -28,7 +28,6 @@ const LearnerSkillCard = (props, context) => {
28
28
  skin,
29
29
  translate
30
30
  } = context;
31
- const [hovered, setHovered] = useState(false);
32
31
 
33
32
  const primarySkinColor = _get('common.primary', skin);
34
33
 
@@ -38,8 +37,6 @@ const LearnerSkillCard = (props, context) => {
38
37
  const questionsLocale = translate('questions');
39
38
  const skillFocusLocale = translate('skill_focus');
40
39
  const contentCompletedLocale = translate('courses_completed');
41
- const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
42
- const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
43
40
  const buttonReviewProps = {
44
41
  customStyle: {
45
42
  backgroundColor: '#FFF',
@@ -54,10 +51,12 @@ const LearnerSkillCard = (props, context) => {
54
51
  };
55
52
  const buttonExploreProps = {
56
53
  customStyle: {
57
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
58
- color: hovered ? '#FFFFFF' : primarySkinColor,
54
+ backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),
55
+ color: primarySkinColor,
59
56
  transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
60
57
  },
58
+ hoverColor: '#FFFFFF',
59
+ hoverBackgroundColor: primarySkinColor,
61
60
  onClick: onExploreClick,
62
61
  'aria-label': `${skillTitle}, ${exploreLocale}`,
63
62
  label: exploreLocale,
@@ -66,8 +65,8 @@ const LearnerSkillCard = (props, context) => {
66
65
  position: 'left',
67
66
  faIcon: {
68
67
  name: 'compass',
69
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
70
- color: hovered ? '#FFFFFF' : primarySkinColor,
68
+ backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),
69
+ color: primarySkinColor,
71
70
  size: 16
72
71
  }
73
72
  }
@@ -137,8 +136,6 @@ const LearnerSkillCard = (props, context) => {
137
136
  "data-name": "cta-wrapper"
138
137
  }, /*#__PURE__*/React.createElement(ButtonLink, buttonReviewProps), /*#__PURE__*/React.createElement("div", {
139
138
  className: style.buttonWrapper,
140
- onMouseOver: handleMouseOver,
141
- onMouseLeave: handleMouseLeave,
142
139
  "data-name": "button-explore-wrapper"
143
140
  }, /*#__PURE__*/React.createElement(ButtonLink, buttonExploreProps))));
144
141
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","score","content","questionsToReview","contentCompleted","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","contentCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","padding","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {score, content, questionsToReview, contentCompleted = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = get('common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const contentCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n padding: '0px'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const ProgressBar = useCallback(() => {\n if (!content) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [score, ariaLabel, content]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {content || questionsToReview ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {content ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{content}</span> {coursesLocale}\n </div>\n ) : null}\n {questionsToReview ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{questionsToReview}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {content ? (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{contentCompleted}</span>\n {` ${contentCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{score}%</span>\n </div>\n </>\n ) : null}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n content: PropTypes.number,\n questionsToReview: PropTypes.number,\n contentCompleted: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","score","content","questionsToReview","contentCompleted","skin","translate","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","contentCompletedLocale","buttonReviewProps","customStyle","backgroundColor","transition","padding","disabled","onClick","label","buttonExploreProps","color","hoverColor","hoverBackgroundColor","icon","position","faIcon","name","size","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport {convert} from 'css-color-function';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {score, content, questionsToReview, contentCompleted = 0} = metrics;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const contentCompletedLocale = translate('courses_completed');\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n padding: '0px'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n hoverColor: '#FFFFFF',\n hoverBackgroundColor: primarySkinColor,\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n size: 16\n }\n }\n };\n\n const ProgressBar = useCallback(() => {\n if (!content) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [score, ariaLabel, content]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {content || questionsToReview ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {content ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{content}</span> {coursesLocale}\n </div>\n ) : null}\n {questionsToReview ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{questionsToReview}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {content ? (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{contentCompleted}</span>\n {` ${contentCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{score}%</span>\n </div>\n </>\n ) : null}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div className={style.buttonWrapper} data-name=\"button-explore-wrapper\">\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n content: PropTypes.number,\n questionsToReview: PropTypes.number,\n contentCompleted: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
@@ -5,10 +5,11 @@ declare const LearningPriorityCard: {
5
5
  (props: LearningPriorityCardPropTypes, context: WebContextValues): JSX.Element;
6
6
  propTypes: {
7
7
  title: import("prop-types").Requireable<string>;
8
- tagLabel: import("prop-types").Requireable<string>;
8
+ tag: import("prop-types").Requireable<import("prop-types").InferProps<{
9
+ label: import("prop-types").Requireable<string>;
10
+ }>>;
9
11
  progression: import("prop-types").Requireable<number>;
10
12
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
11
- type: import("prop-types").Requireable<string>;
12
13
  };
13
14
  contextTypes: {
14
15
  skin: import("prop-types").Requireable<import("prop-types").InferProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-card/index.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAC,6BAA6B,EAAY,MAAM,SAAS,CAAC;AAGjE,QAAA,MAAM,oBAAoB;YAAW,6BAA6B,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D5F,CAAC;AASF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-card/index.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAC,6BAA6B,EAAY,MAAM,SAAS,CAAC;AAGjE,QAAA,MAAM,oBAAoB;YAAW,6BAA6B,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D5F,CAAC;AASF,eAAe,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import _get from "lodash/fp/get";
2
- import React, { useState, useCallback } from 'react';
2
+ import React from 'react';
3
3
  import { convert } from 'css-color-function';
4
4
  import Provider, { GetTranslateFromContext, GetSkinFromContext } from '../../atom/provider';
5
5
  import Tag from '../../atom/tag';
@@ -10,7 +10,9 @@ import style from './style.css';
10
10
 
11
11
  const LearningPriorityCard = (props, context) => {
12
12
  const {
13
- tagLabel,
13
+ tag: {
14
+ label: tagLabel
15
+ },
14
16
  title,
15
17
  progression,
16
18
  onClick
@@ -21,15 +23,14 @@ const LearningPriorityCard = (props, context) => {
21
23
 
22
24
  const primarySkinColor = _get('common.primary', skin);
23
25
 
24
- const [hovered, setHovered] = useState(false);
25
- const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
26
- const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
27
26
  const buttonExploreProps = {
28
27
  customStyle: {
29
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
30
- color: hovered ? '#FFFFFF' : primarySkinColor,
28
+ backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),
29
+ color: primarySkinColor,
31
30
  transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
32
31
  },
32
+ hoverBackgroundColor: primarySkinColor,
33
+ hoverColor: '#FFFFFF',
33
34
  onClick,
34
35
  'aria-label': `${title}, ${exploreLocale}`,
35
36
  label: exploreLocale,
@@ -38,8 +39,8 @@ const LearningPriorityCard = (props, context) => {
38
39
  position: 'left',
39
40
  faIcon: {
40
41
  name: 'compass',
41
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
42
- color: hovered ? '#FFFFFF' : primarySkinColor,
42
+ backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),
43
+ color: primarySkinColor,
43
44
  size: 16
44
45
  }
45
46
  }
@@ -63,8 +64,6 @@ const LearningPriorityCard = (props, context) => {
63
64
  'aria-label': `${title} ${progression}%`,
64
65
  'data-name': `circular-progress-bar-${title}`
65
66
  })), /*#__PURE__*/React.createElement("div", {
66
- onMouseOver: handleMouseOver,
67
- onMouseLeave: handleMouseLeave,
68
67
  "data-name": "button-explore-wrapper"
69
68
  }, /*#__PURE__*/React.createElement(ButtonLink, buttonExploreProps)));
70
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","useCallback","convert","Provider","GetTranslateFromContext","GetSkinFromContext","Tag","ButtonLink","CircularProgressBar","propTypes","style","LearningPriorityCard","props","context","tagLabel","title","progression","onClick","translate","skin","exploreLocale","primarySkinColor","hovered","setHovered","handleMouseOver","handleMouseLeave","buttonExploreProps","customStyle","backgroundColor","color","transition","label","icon","position","faIcon","name","size","container","circularProgressBarContainer","strokeWidth","contextTypes","childContextTypes"],"sources":["../../../src/molecule/learning-priority-card/index.tsx"],"sourcesContent":["import React, {useState, useCallback} from 'react';\nimport {get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider, {GetTranslateFromContext, GetSkinFromContext} from '../../atom/provider';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport CircularProgressBar from '../../atom/circular-progress-bar';\nimport {LearningPriorityCardPropTypes, propTypes} from './types';\nimport style from './style.css';\n\nconst LearningPriorityCard = (props: LearningPriorityCardPropTypes, context: WebContextValues) => {\n const {tagLabel, title, progression, onClick} = props;\n const translate = GetTranslateFromContext(context);\n const skin = GetSkinFromContext(context);\n const exploreLocale = translate('Explore');\n const primarySkinColor = get('common.primary', skin);\n\n const [hovered, setHovered] = useState(false);\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick,\n 'aria-label': `${title}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learning-priority-explore-button',\n icon: {\n position: 'left' as const,\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n return (\n <div\n className={style.container}\n aria-label={`learning priority card ${title}`}\n data-name={`learning-priority-card-${title}`}\n >\n <div>\n <Tag label={tagLabel} size={'S'} />\n </div>\n <div className={style.title}>{title}</div>\n <div className={style.circularProgressBarContainer}>\n <CircularProgressBar\n {...{\n size: 162,\n strokeWidth: 12,\n progression,\n label: translate('completed'),\n 'aria-label': `${title} ${progression}%`,\n 'data-name': `circular-progress-bar-${title}`\n }}\n />\n </div>\n <div\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n );\n};\n\nLearningPriorityCard.propTypes = propTypes;\n\nLearningPriorityCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default LearningPriorityCard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","convert","Provider","GetTranslateFromContext","GetSkinFromContext","Tag","ButtonLink","CircularProgressBar","propTypes","style","LearningPriorityCard","props","context","tag","label","tagLabel","title","progression","onClick","translate","skin","exploreLocale","primarySkinColor","buttonExploreProps","customStyle","backgroundColor","color","transition","hoverBackgroundColor","hoverColor","icon","position","faIcon","name","size","container","circularProgressBarContainer","strokeWidth","contextTypes","childContextTypes"],"sources":["../../../src/molecule/learning-priority-card/index.tsx"],"sourcesContent":["import React from 'react';\nimport {get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider, {GetTranslateFromContext, GetSkinFromContext} from '../../atom/provider';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport CircularProgressBar from '../../atom/circular-progress-bar';\nimport {LearningPriorityCardPropTypes, propTypes} from './types';\nimport style from './style.css';\n\nconst LearningPriorityCard = (props: LearningPriorityCardPropTypes, context: WebContextValues) => {\n const {\n tag: {label: tagLabel},\n title,\n progression,\n onClick\n } = props;\n const translate = GetTranslateFromContext(context);\n const skin = GetSkinFromContext(context);\n const exploreLocale = translate('Explore');\n const primarySkinColor = get('common.primary', skin);\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n hoverBackgroundColor: primarySkinColor,\n hoverColor: '#FFFFFF',\n onClick,\n 'aria-label': `${title}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learning-priority-explore-button',\n icon: {\n position: 'left' as const,\n faIcon: {\n name: 'compass',\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n size: 16\n }\n }\n };\n\n return (\n <div\n className={style.container}\n aria-label={`learning priority card ${title}`}\n data-name={`learning-priority-card-${title}`}\n >\n <div>\n <Tag label={tagLabel} size={'S'} />\n </div>\n <div className={style.title}>{title}</div>\n <div className={style.circularProgressBarContainer}>\n <CircularProgressBar\n {...{\n size: 162,\n strokeWidth: 12,\n progression,\n label: translate('completed'),\n 'aria-label': `${title} ${progression}%`,\n 'data-name': `circular-progress-bar-${title}`\n }}\n />\n </div>\n <div data-name=\"button-explore-wrapper\">\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n );\n};\n\nLearningPriorityCard.propTypes = propTypes;\n\nLearningPriorityCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default LearningPriorityCard;\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAAQC,OAAR,QAAsB,oBAAtB;AACA,OAAOC,QAAP,IAAkBC,uBAAlB,EAA2CC,kBAA3C,QAAoE,qBAApE;AAEA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,mBAAP,MAAgC,kCAAhC;AACA,SAAuCC,SAAvC,QAAuD,SAAvD;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,oBAAoB,GAAG,CAACC,KAAD,EAAuCC,OAAvC,KAAqE;EAChG,MAAM;IACJC,GAAG,EAAE;MAACC,KAAK,EAAEC;IAAR,CADD;IAEJC,KAFI;IAGJC,WAHI;IAIJC;EAJI,IAKFP,KALJ;EAMA,MAAMQ,SAAS,GAAGhB,uBAAuB,CAACS,OAAD,CAAzC;EACA,MAAMQ,IAAI,GAAGhB,kBAAkB,CAACQ,OAAD,CAA/B;EACA,MAAMS,aAAa,GAAGF,SAAS,CAAC,SAAD,CAA/B;;EACA,MAAMG,gBAAgB,GAAG,KAAI,gBAAJ,EAAsBF,IAAtB,CAAzB;;EAEA,MAAMG,kBAAkB,GAAG;IACzBC,WAAW,EAAE;MACXC,eAAe,EAAExB,OAAO,CAAE,SAAQqB,gBAAiB,WAA3B,CADb;MAEXI,KAAK,EAAEJ,gBAFI;MAGXK,UAAU,EAAE;IAHD,CADY;IAMzBC,oBAAoB,EAAEN,gBANG;IAOzBO,UAAU,EAAE,SAPa;IAQzBX,OARyB;IASzB,cAAe,GAAEF,KAAM,KAAIK,aAAc,EAThB;IAUzBP,KAAK,EAAEO,aAVkB;IAWzB,aAAa,kCAXY;IAYzBS,IAAI,EAAE;MACJC,QAAQ,EAAE,MADN;MAEJC,MAAM,EAAE;QACNC,IAAI,EAAE,SADA;QAENR,eAAe,EAAExB,OAAO,CAAE,SAAQqB,gBAAiB,WAA3B,CAFlB;QAGNI,KAAK,EAAEJ,gBAHD;QAINY,IAAI,EAAE;MAJA;IAFJ;EAZmB,CAA3B;EAuBA,oBACE;IACE,SAAS,EAAEzB,KAAK,CAAC0B,SADnB;IAEE,cAAa,0BAAyBnB,KAAM,EAF9C;IAGE,aAAY,0BAAyBA,KAAM;EAH7C,gBAKE,8CACE,oBAAC,GAAD;IAAK,KAAK,EAAED,QAAZ;IAAsB,IAAI,EAAE;EAA5B,EADF,CALF,eAQE;IAAK,SAAS,EAAEN,KAAK,CAACO;EAAtB,GAA8BA,KAA9B,CARF,eASE;IAAK,SAAS,EAAEP,KAAK,CAAC2B;EAAtB,gBACE,oBAAC,mBAAD;IAEIF,IAAI,EAAE,GAFV;IAGIG,WAAW,EAAE,EAHjB;IAIIpB,WAJJ;IAKIH,KAAK,EAAEK,SAAS,CAAC,WAAD,CALpB;IAMI,cAAe,GAAEH,KAAM,IAAGC,WAAY,GAN1C;IAOI,aAAc,yBAAwBD,KAAM;EAPhD,EADF,CATF,eAqBE;IAAK,aAAU;EAAf,gBACE,oBAAC,UAAD,EAAgBO,kBAAhB,CADF,CArBF,CADF;AA2BD,CA9DD;;AAgEAb,oBAAoB,CAACF,SAArB,2CAAiCA,SAAjC;AAEAE,oBAAoB,CAAC4B,YAArB,GAAoC;EAClClB,IAAI,EAAElB,QAAQ,CAACqC,iBAAT,CAA2BnB,IADC;EAElCD,SAAS,EAAEjB,QAAQ,CAACqC,iBAAT,CAA2BpB;AAFJ,CAApC;AAKA,eAAeT,oBAAf"}
@@ -1,9 +1,7 @@
1
1
  @value colors: "../../variables/colors.css";
2
2
  @value cm_grey_100 from colors;
3
- @value white from colors;
4
3
 
5
4
  .container {
6
- background-color: white;
7
5
  font-family: Gilroy;
8
6
  width: 256px;
9
7
  height: 334px;
@@ -1,16 +1,18 @@
1
1
  import PropTypes from 'prop-types';
2
2
  export declare type LearningPriorityCardPropTypes = {
3
3
  title: string;
4
- tagLabel: 'Skill' | 'Playlist' | 'Certification';
4
+ tag: {
5
+ label: 'Skill' | 'Playlist' | 'Certification';
6
+ };
5
7
  progression: number;
6
8
  onClick: () => void;
7
- type: 'learningPriority';
8
9
  };
9
10
  export declare const propTypes: {
10
11
  title: PropTypes.Requireable<string>;
11
- tagLabel: PropTypes.Requireable<string>;
12
+ tag: PropTypes.Requireable<PropTypes.InferProps<{
13
+ label: PropTypes.Requireable<string>;
14
+ }>>;
12
15
  progression: PropTypes.Requireable<number>;
13
16
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
14
- type: PropTypes.Requireable<string>;
15
17
  };
16
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-card/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,oBAAY,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-card/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,oBAAY,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE;QACH,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,eAAe,CAAC;KAC/C,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC"}