@coorpacademy/components 11.32.3 → 11.32.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.
Files changed (130) hide show
  1. package/es/atom/battle-opponent/index.d.ts.map +1 -1
  2. package/es/atom/battle-opponent/index.js +1 -1
  3. package/es/atom/battle-opponent/index.js.map +1 -1
  4. package/es/molecule/base-modal/index.d.ts +24 -1
  5. package/es/molecule/base-modal/index.d.ts.map +1 -1
  6. package/es/molecule/base-modal/index.js +26 -5
  7. package/es/molecule/base-modal/index.js.map +1 -1
  8. package/es/molecule/card/favorite.d.ts.map +1 -1
  9. package/es/molecule/card/favorite.js +1 -1
  10. package/es/molecule/card/favorite.js.map +1 -1
  11. package/es/molecule/discipline-associated-skills/index.d.ts +17 -0
  12. package/es/molecule/discipline-associated-skills/index.d.ts.map +1 -0
  13. package/es/molecule/discipline-associated-skills/index.js +73 -0
  14. package/es/molecule/discipline-associated-skills/index.js.map +1 -0
  15. package/es/molecule/discipline-associated-skills/style.css +71 -0
  16. package/es/molecule/learner-skill-card/index.d.ts +22 -0
  17. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  18. package/es/molecule/learner-skill-card/index.js +7 -6
  19. package/es/molecule/learner-skill-card/index.js.map +1 -1
  20. package/es/molecule/learning-profile-radar-chart/index.d.ts +28 -1
  21. package/es/molecule/learning-profile-radar-chart/index.d.ts.map +1 -1
  22. package/es/molecule/learning-profile-radar-chart/index.js +115 -28
  23. package/es/molecule/learning-profile-radar-chart/index.js.map +1 -1
  24. package/es/molecule/learning-profile-radar-chart/style.css +14 -0
  25. package/es/molecule/learning-profile-radar-chart/types.d.ts +2 -0
  26. package/es/molecule/learning-profile-radar-chart/types.d.ts.map +1 -1
  27. package/es/molecule/learning-profile-radar-chart/types.js +2 -1
  28. package/es/molecule/learning-profile-radar-chart/types.js.map +1 -1
  29. package/es/molecule/review-correction-popin/index.d.ts.map +1 -1
  30. package/es/molecule/review-correction-popin/index.js +1 -1
  31. package/es/molecule/review-correction-popin/index.js.map +1 -1
  32. package/es/molecule/skill-picker-modal/index.d.ts.map +1 -1
  33. package/es/molecule/skill-picker-modal/index.js +2 -1
  34. package/es/molecule/skill-picker-modal/index.js.map +1 -1
  35. package/es/organism/user-preferences/index.d.ts.map +1 -1
  36. package/es/organism/user-preferences/index.js +1 -1
  37. package/es/organism/user-preferences/index.js.map +1 -1
  38. package/es/template/activity/engine-stars.d.ts.map +1 -1
  39. package/es/template/activity/engine-stars.js +1 -1
  40. package/es/template/activity/engine-stars.js.map +1 -1
  41. package/es/template/common/discipline/index.d.ts +6 -0
  42. package/es/template/common/discipline/index.d.ts.map +1 -1
  43. package/es/template/common/discipline/index.js +17 -2
  44. package/es/template/common/discipline/index.js.map +1 -1
  45. package/es/template/common/discipline/style.css +4 -1
  46. package/es/template/my-learning/index.d.ts +21 -0
  47. package/es/template/my-learning/index.d.ts.map +1 -1
  48. package/es/template/my-learning/index.js +41 -15
  49. package/es/template/my-learning/index.js.map +1 -1
  50. package/es/template/my-learning/style.css +6 -1
  51. package/lib/atom/battle-opponent/index.d.ts.map +1 -1
  52. package/lib/atom/battle-opponent/index.js +1 -1
  53. package/lib/atom/battle-opponent/index.js.map +1 -1
  54. package/lib/molecule/base-modal/index.d.ts +24 -1
  55. package/lib/molecule/base-modal/index.d.ts.map +1 -1
  56. package/lib/molecule/base-modal/index.js +26 -4
  57. package/lib/molecule/base-modal/index.js.map +1 -1
  58. package/lib/molecule/card/favorite.d.ts.map +1 -1
  59. package/lib/molecule/card/favorite.js +1 -1
  60. package/lib/molecule/card/favorite.js.map +1 -1
  61. package/lib/molecule/discipline-associated-skills/index.d.ts +17 -0
  62. package/lib/molecule/discipline-associated-skills/index.d.ts.map +1 -0
  63. package/lib/molecule/discipline-associated-skills/index.js +94 -0
  64. package/lib/molecule/discipline-associated-skills/index.js.map +1 -0
  65. package/lib/molecule/discipline-associated-skills/style.css +71 -0
  66. package/lib/molecule/learner-skill-card/index.d.ts +22 -0
  67. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  68. package/lib/molecule/learner-skill-card/index.js +7 -7
  69. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  70. package/lib/molecule/learning-profile-radar-chart/index.d.ts +28 -1
  71. package/lib/molecule/learning-profile-radar-chart/index.d.ts.map +1 -1
  72. package/lib/molecule/learning-profile-radar-chart/index.js +117 -28
  73. package/lib/molecule/learning-profile-radar-chart/index.js.map +1 -1
  74. package/lib/molecule/learning-profile-radar-chart/style.css +14 -0
  75. package/lib/molecule/learning-profile-radar-chart/types.d.ts +2 -0
  76. package/lib/molecule/learning-profile-radar-chart/types.d.ts.map +1 -1
  77. package/lib/molecule/learning-profile-radar-chart/types.js +2 -1
  78. package/lib/molecule/learning-profile-radar-chart/types.js.map +1 -1
  79. package/lib/molecule/review-correction-popin/index.d.ts.map +1 -1
  80. package/lib/molecule/review-correction-popin/index.js +1 -1
  81. package/lib/molecule/review-correction-popin/index.js.map +1 -1
  82. package/lib/molecule/skill-picker-modal/index.d.ts.map +1 -1
  83. package/lib/molecule/skill-picker-modal/index.js +2 -1
  84. package/lib/molecule/skill-picker-modal/index.js.map +1 -1
  85. package/lib/organism/user-preferences/index.d.ts.map +1 -1
  86. package/lib/organism/user-preferences/index.js +1 -1
  87. package/lib/organism/user-preferences/index.js.map +1 -1
  88. package/lib/template/activity/engine-stars.d.ts.map +1 -1
  89. package/lib/template/activity/engine-stars.js +1 -1
  90. package/lib/template/activity/engine-stars.js.map +1 -1
  91. package/lib/template/common/discipline/index.d.ts +6 -0
  92. package/lib/template/common/discipline/index.d.ts.map +1 -1
  93. package/lib/template/common/discipline/index.js +18 -2
  94. package/lib/template/common/discipline/index.js.map +1 -1
  95. package/lib/template/common/discipline/style.css +4 -1
  96. package/lib/template/my-learning/index.d.ts +21 -0
  97. package/lib/template/my-learning/index.d.ts.map +1 -1
  98. package/lib/template/my-learning/index.js +39 -15
  99. package/lib/template/my-learning/index.js.map +1 -1
  100. package/lib/template/my-learning/style.css +6 -1
  101. package/locales/bs/global.json +3 -1
  102. package/locales/cs/global.json +4 -2
  103. package/locales/de/global.json +3 -1
  104. package/locales/en/global.json +3 -1
  105. package/locales/es/global.json +3 -1
  106. package/locales/et/global.json +3 -1
  107. package/locales/fi/global.json +3 -1
  108. package/locales/fr/global.json +3 -1
  109. package/locales/hr/global.json +3 -1
  110. package/locales/hu/global.json +3 -1
  111. package/locales/hy/global.json +3 -1
  112. package/locales/it/global.json +3 -1
  113. package/locales/ja/global.json +3 -1
  114. package/locales/ko/global.json +3 -1
  115. package/locales/nl/global.json +3 -1
  116. package/locales/pl/global.json +3 -1
  117. package/locales/pt/global.json +3 -1
  118. package/locales/ro/global.json +3 -1
  119. package/locales/ru/global.json +3 -1
  120. package/locales/sk/global.json +3 -1
  121. package/locales/sl/global.json +3 -1
  122. package/locales/sv/global.json +3 -1
  123. package/locales/th/global.json +1 -1
  124. package/locales/tl/global.json +4 -2
  125. package/locales/tr/global.json +3 -1
  126. package/locales/uk/global.json +3 -1
  127. package/locales/vi/global.json +4 -2
  128. package/locales/zh/global.json +3 -1
  129. package/locales/zh_TW/global.json +3 -1
  130. package/package.json +2 -2
@@ -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","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","completedPercentage","Number","parseInt","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, getOr} 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 {skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#0061FF', '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 coursesCompletedLocale = 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 },\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 completedPercentage =\n skillCourses && Number.parseInt((completedCourses / skillCourses) * 100);\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${completedPercentage}%`\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 }, [completedPercentage, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</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 {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {` ${coursesCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{completedPercentage}%</span>\n </div>\n </>\n )}\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 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 skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: 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","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","score","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","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, skillCourses, skillQuestions, completedCourses = 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 coursesCompletedLocale = 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 },\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 (!skillCourses) 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, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</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 {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {` ${coursesCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{score}%</span>\n </div>\n </>\n )}\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 skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: 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,10 +1,35 @@
1
1
  /// <reference types="react" />
2
+ import { WebContextValues } from '../../atom/provider/web-context';
2
3
  import { FormatedDataType, LearningProfileRadarChartPropTypes } from './types';
3
4
  export declare const formatData: (legend: {
4
5
  [ref: string]: string;
5
6
  }, data_: LearningProfileRadarChartPropTypes['data']) => FormatedDataType[];
6
7
  export declare const LearningProfileRadarChart: {
7
- ({ data, legend, totalDataset, colors: colorsProps, onClick, width, height, margin }: LearningProfileRadarChartPropTypes): JSX.Element;
8
+ ({ data, legend, totalDataset, colors: colorsProps, onClick, onExploreClick, width, height, margin }: LearningProfileRadarChartPropTypes, legacyContext: WebContextValues): JSX.Element;
9
+ contextTypes: {
10
+ skin: import("prop-types").Requireable<import("prop-types").InferProps<{
11
+ common: import("prop-types").Requireable<{
12
+ [x: string]: any;
13
+ }>;
14
+ images: import("prop-types").Requireable<import("prop-types").InferProps<{
15
+ 'logo-mobile': import("prop-types").Requireable<any>;
16
+ logo: import("prop-types").Requireable<any>;
17
+ 'logo-email': import("prop-types").Requireable<any>;
18
+ login: import("prop-types").Requireable<any>;
19
+ }>>;
20
+ icons: import("prop-types").Requireable<{
21
+ [x: string]: any;
22
+ }>;
23
+ mod: import("prop-types").Requireable<{
24
+ [x: string]: any;
25
+ }>;
26
+ courses: import("prop-types").Requireable<any[]>;
27
+ texts: import("prop-types").Requireable<{
28
+ [x: string]: any;
29
+ }>;
30
+ }>>;
31
+ translate: import("prop-types").Requireable<(...args: any[]) => any>;
32
+ };
8
33
  propTypes: {
9
34
  data: import("prop-types").Validator<{
10
35
  [x: string]: NonNullable<number | (number | null | undefined)[] | null | undefined> | null | undefined;
@@ -26,6 +51,7 @@ export declare const LearningProfileRadarChart: {
26
51
  }> | null | undefined)[]>;
27
52
  width: import("prop-types").Requireable<number>;
28
53
  height: import("prop-types").Requireable<number>;
54
+ onExploreClick: import("prop-types").Requireable<(...args: any[]) => any>;
29
55
  };
30
56
  };
31
57
  declare const ResponsiveLearningProfileRadarChart: {
@@ -51,6 +77,7 @@ declare const ResponsiveLearningProfileRadarChart: {
51
77
  }> | null | undefined)[]>;
52
78
  width: import("prop-types").Requireable<number>;
53
79
  height: import("prop-types").Requireable<number>;
80
+ onExploreClick: import("prop-types").Requireable<(...args: any[]) => any>;
54
81
  };
55
82
  };
56
83
  export default ResponsiveLearningProfileRadarChart;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-profile-radar-chart/index.tsx"],"names":[],"mappings":";AA6BA,OAAO,EAGL,gBAAgB,EAChB,kCAAkC,EAGnC,MAAM,SAAS,CAAC;AAkQjB,eAAO,MAAM,UAAU,EAAE,CACvB,MAAM,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,EAC/B,KAAK,EAAE,kCAAkC,CAAC,MAAM,CAAC,KAC9C,gBAAgB,EAOX,CAAC;AAEX,eAAO,MAAM,yBAAyB;0FASnC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;CAqHpC,CAAC;AAEF,QAAA,MAAM,mCAAmC;YAAW,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;CAIrF,CAAC;AAKF,eAAe,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-profile-radar-chart/index.tsx"],"names":[],"mappings":";AAiCA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAGL,gBAAgB,EAChB,kCAAkC,EAGnC,MAAM,SAAS,CAAC;AAmUjB,eAAO,MAAM,UAAU,EAAE,CACvB,MAAM,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,EAC/B,KAAK,EAAE,kCAAkC,CAAC,MAAM,CAAC,KAC9C,gBAAgB,EAOX,CAAC;AAEX,eAAO,MAAM,yBAAyB;0GAWjC,kCAAkC,iBACtB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJhC,CAAC;AAEF,QAAA,MAAM,mCAAmC;YAAW,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;CAIrF,CAAC;AAUF,eAAe,mCAAmC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import _get from "lodash/fp/get";
1
2
  import _findKey from "lodash/fp/findKey";
2
3
  import _flatten from "lodash/fp/flatten";
3
4
  import _times from "lodash/fp/times";
@@ -20,10 +21,13 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
20
21
 
21
22
  import React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
22
23
  import { Radar, RadarChart, PolarGrid, PolarAngleAxis, ResponsiveContainer, Tooltip, PolarRadiusAxis } from 'recharts';
24
+ import { convert } from 'css-color-function';
23
25
  import classnames from 'classnames';
24
26
  import { isMobile as getIsMobile } from '../../util/check-is-mobile';
25
- import style from './style.css';
27
+ import ButtonLink from '../../atom/button-link';
28
+ import Provider, { GetSkinFromContext, GetTranslateFromContext } from '../../atom/provider';
26
29
  import { learningProfileRadarChartPropTypes } from './types';
30
+ import style from './style.css';
27
31
 
28
32
  /* TICK_POSITIONS */
29
33
  const top = {
@@ -154,6 +158,7 @@ const CustomDot = ({
154
158
  cx,
155
159
  cy,
156
160
  payload,
161
+ onDotHover,
157
162
  onDotClick,
158
163
  stroke,
159
164
  activeDot,
@@ -171,10 +176,15 @@ const CustomDot = ({
171
176
  if (!payload?.name) return;
172
177
  onDotClick(payload.name);
173
178
  },
179
+ onMouseOver: () => {
180
+ if (!payload?.name) return;
181
+ onDotHover(payload.name);
182
+ },
183
+ onMouseLeave: () => onDotHover(''),
174
184
  'data-name': dataName
175
185
  }));
176
186
 
177
- const buildRadars = (totalDataset, handleOnDotClick, activeDot) => _times(index => {
187
+ const buildRadars = (totalDataset, handleDotHover, handleOnDotClick, activeDot) => _times(index => {
178
188
  const datakey = `value${index + 1}`;
179
189
  const dataset = `dataset-${index + 1}`;
180
190
  return /*#__PURE__*/React.createElement(Radar, _extends({}, RADAR_DEFAULT_PROPS, {
@@ -190,6 +200,7 @@ const buildRadars = (totalDataset, handleOnDotClick, activeDot) => _times(index
190
200
  // use with the tooltip component
191
201
  ,
192
202
  dot: /*#__PURE__*/React.createElement(CustomDot, {
203
+ onDotHover: handleDotHover,
193
204
  onDotClick: handleOnDotClick,
194
205
  activeDot: activeDot,
195
206
  dataKey: datakey,
@@ -199,7 +210,7 @@ const buildRadars = (totalDataset, handleOnDotClick, activeDot) => _times(index
199
210
  }));
200
211
  }, totalDataset);
201
212
 
202
- const buildCustomLabel = ({
213
+ const CustomLabel = ({
203
214
  index,
204
215
  x,
205
216
  y,
@@ -208,8 +219,13 @@ const buildCustomLabel = ({
208
219
  activeDot,
209
220
  chartType,
210
221
  formatedColors,
211
- onClick
222
+ primarySkinColor,
223
+ exploreLocale,
224
+ hoveredDot,
225
+ onClick,
226
+ onExploreClick
212
227
  }) => {
228
+ const [hovered, setHovered] = useState(false);
213
229
  const isCurrentDotActive = activeDot?.label === label;
214
230
 
215
231
  const _CHART_CONFIGS$chartT = CHART_CONFIGS[chartType].ticks[index],
@@ -227,16 +243,44 @@ const buildCustomLabel = ({
227
243
  onClick(label);
228
244
  }
229
245
 
246
+ function handleExploreClick() {
247
+ onExploreClick(label);
248
+ }
249
+
250
+ const buttonExploreProps = {
251
+ customStyle: {
252
+ height: '36px',
253
+ backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
254
+ color: hovered ? '#FFFFFF' : primarySkinColor,
255
+ transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
256
+ },
257
+ onClick: handleExploreClick,
258
+ 'aria-label': `${label}, ${exploreLocale}`,
259
+ label: exploreLocale,
260
+ 'data-name': 'learner-skill-card-explore-button',
261
+ icon: {
262
+ position: 'left',
263
+ faIcon: {
264
+ name: 'compass',
265
+ backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
266
+ color: hovered ? '#FFFFFF' : primarySkinColor,
267
+ size: 16
268
+ }
269
+ }
270
+ };
271
+ const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
272
+ const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
273
+ const extraOffsetY = isCurrentDotActive && index === 0 ? -25 : 0;
230
274
  return /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("foreignObject", {
231
275
  className: style.tickeForeignObject,
232
276
  x: x + offsetX,
233
- y: y + offsetY,
277
+ y: y + offsetY + extraOffsetY,
234
278
  width: "200",
235
279
  height: "65"
236
280
  }, /*#__PURE__*/React.createElement("div", {
237
281
  "data-name": label,
238
282
  onClick: onLabelClick,
239
- className: classnames(style.tickWrapper, isCurrentDotActive && style.tickWrapperFocus),
283
+ className: classnames(style.tickWrapper, isCurrentDotActive && style.tickWrapperFocus, hoveredDot === label && style.tickWrapperHover),
240
284
  style: _extends({}, rest, {
241
285
  alignItems: alignment,
242
286
  textAlign: alignment,
@@ -263,7 +307,12 @@ const buildCustomLabel = ({
263
307
  style: {
264
308
  color: colorLabel
265
309
  }
266
- }, label))))));
310
+ }, label))), isCurrentDotActive ? /*#__PURE__*/React.createElement("div", {
311
+ className: style.buttonWrapper,
312
+ onMouseOver: handleMouseOver,
313
+ onMouseLeave: handleMouseLeave,
314
+ "data-name": "button-explore-wrapper"
315
+ }, /*#__PURE__*/React.createElement(ButtonLink, buttonExploreProps)) : null)));
267
316
  };
268
317
  /* UTILS */
269
318
 
@@ -283,12 +332,18 @@ export const LearningProfileRadarChart = ({
283
332
  totalDataset,
284
333
  colors: colorsProps,
285
334
  onClick,
335
+ onExploreClick,
286
336
  width,
287
337
  height,
288
338
  margin
289
- }) => {
339
+ }, legacyContext) => {
290
340
  const [isMobile, setIsMobile] = useState(false);
291
341
  const [activeDot, setActiveDot] = useState();
342
+ const [hoveredDot, setHoveredDot] = useState('');
343
+ const skin = GetSkinFromContext(legacyContext);
344
+ const translate = GetTranslateFromContext(legacyContext);
345
+
346
+ const primarySkinColor = _get('common.primary', skin);
292
347
 
293
348
  const formatedColors = _times(i => {
294
349
  if (!colorsProps?.length) return DEFAULT_COLORS;
@@ -329,7 +384,17 @@ export const LearningProfileRadarChart = ({
329
384
  };
330
385
  }, [activeDot, onClick, setActiveDot]);
331
386
 
387
+ function handleOnActiveDotClick() {
388
+ setActiveDot(undefined);
389
+ onClick(undefined);
390
+ }
391
+
332
392
  function handleOnDotClick(label) {
393
+ if (!_isEmpty(activeDot) && activeDot?.label === label) {
394
+ handleOnActiveDotClick();
395
+ return;
396
+ }
397
+
333
398
  const payload = formatedData.find(({
334
399
  subject
335
400
  }) => subject === label);
@@ -349,30 +414,48 @@ export const LearningProfileRadarChart = ({
349
414
  }
350
415
  }
351
416
 
352
- function renderCustomLabel({
353
- x,
354
- y,
355
- payload: {
356
- value: label
357
- },
358
- index
359
- }) {
360
- const currentData = formatedData.find(({
417
+ function handleExploreClick(label) {
418
+ const payload = formatedData.find(({
361
419
  subject
362
420
  }) => subject === label);
421
+ if (!payload) return;
363
422
 
364
- const percentagesValues = _pipe(_omit('subject'), _mapValues(value => `${value}%`), _values)(currentData);
423
+ const skillRef = _findKey(val => val === payload?.subject, legend);
424
+
425
+ if (skillRef) {
426
+ onExploreClick(skillRef);
427
+ }
428
+ }
365
429
 
366
- return buildCustomLabel({
367
- index,
430
+ function renderCustomLabel(props) {
431
+ const {
368
432
  x,
369
433
  y,
370
- percentagesValues,
371
- label,
372
- activeDot,
373
- chartType,
374
- formatedColors,
375
- onClick: handleOnDotClick
434
+ payload: {
435
+ value: label
436
+ },
437
+ index
438
+ } = props;
439
+ const currentData = formatedData.find(({
440
+ subject
441
+ }) => subject === label);
442
+
443
+ const percentagesValues = _pipe(_omit('subject'), _mapValues(value => `${value}%`), _values)(currentData);
444
+
445
+ return /*#__PURE__*/React.createElement(CustomLabel, {
446
+ index: index,
447
+ x: x,
448
+ y: y,
449
+ percentagesValues: percentagesValues,
450
+ label: label,
451
+ activeDot: activeDot,
452
+ chartType: chartType,
453
+ formatedColors: formatedColors,
454
+ primarySkinColor: primarySkinColor,
455
+ exploreLocale: translate('Explore'),
456
+ hoveredDot: hoveredDot,
457
+ onClick: handleOnDotClick,
458
+ onExploreClick: handleExploreClick
376
459
  });
377
460
  }
378
461
 
@@ -389,7 +472,7 @@ export const LearningProfileRadarChart = ({
389
472
  cy: "50%",
390
473
  outerRadius: "80%",
391
474
  data: formatedData
392
- }, gradients, buildRadars(totalDataset, handleOnDotClick, activeDot), /*#__PURE__*/React.createElement(PolarGrid, {
475
+ }, gradients, /*#__PURE__*/React.createElement(PolarGrid, {
393
476
  strokeDasharray: 10,
394
477
  strokeWidth: 2,
395
478
  radialLines: false
@@ -400,7 +483,7 @@ export const LearningProfileRadarChart = ({
400
483
  tick: false,
401
484
  axisLine: false,
402
485
  domain: [0, 100]
403
- }), isMobile ? /*#__PURE__*/React.createElement(Tooltip, {
486
+ }), buildRadars(totalDataset, setHoveredDot, handleOnDotClick, activeDot), isMobile ? /*#__PURE__*/React.createElement(Tooltip, {
404
487
  cursor: false,
405
488
  content: /*#__PURE__*/React.createElement(CustomTooltip, null)
406
489
  }) : null);
@@ -411,6 +494,10 @@ const ResponsiveLearningProfileRadarChart = props => /*#__PURE__*/React.createEl
411
494
  height: "100%"
412
495
  }, /*#__PURE__*/React.createElement(LearningProfileRadarChart, props));
413
496
 
497
+ LearningProfileRadarChart.contextTypes = {
498
+ skin: Provider.childContextTypes.skin,
499
+ translate: Provider.childContextTypes.translate
500
+ };
414
501
  LearningProfileRadarChart.propTypes = process.env.NODE_ENV !== "production" ? learningProfileRadarChartPropTypes : {};
415
502
  ResponsiveLearningProfileRadarChart.propTypes = process.env.NODE_ENV !== "production" ? learningProfileRadarChartPropTypes : {};
416
503
  export default ResponsiveLearningProfileRadarChart;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Fragment","useCallback","useEffect","useMemo","useState","Radar","RadarChart","PolarGrid","PolarAngleAxis","ResponsiveContainer","Tooltip","PolarRadiusAxis","classnames","isMobile","getIsMobile","style","learningProfileRadarChartPropTypes","top","offset","x","y","alignment","margin","bottom","right","marginRight","left","marginLeft","BLACK","WHITE","DEFAULT_MAIN_COLOR","DEFAULT_COLORS","gradient","fill","stroke","percentage","color","background","label","CHART_CONFIGS","triangle","name","ticks","sideCount","quadrilateral","pentagon","hexagon","DOT_DEFAULT_PROPS","strokeWidth","strokeOpacity","r","pointerEvents","cursor","DOT_ACTIVE_PROPS","RADAR_DEFAULT_PROPS","fillOpacity","Gradient","type","colors","firstColor","secondColor","CustomTooltip","active","payload","length","tooltip","tooltipLabel","tooltipValue","value","CustomDot","cx","cy","onDotClick","activeDot","dataName","subject","onTouchStart","onClick","e","stopPropagation","buildRadars","totalDataset","handleOnDotClick","index","datakey","dataset","buildCustomLabel","percentagesValues","chartType","formatedColors","isCurrentDotActive","offsetX","offsetY","rest","onLabelClick","tickeForeignObject","tickWrapper","tickWrapperFocus","alignItems","textAlign","opacity","map","colorLabel","i","tickValue","tickLabel","CHART_CONFIGS_BY_SIDE_COUNT","formatValues","values_","val","formatData","legend","data_","ref","LearningProfileRadarChart","data","colorsProps","width","height","setIsMobile","setActiveDot","Object","assign","gradients","userAgent","navigator","isMobile_","setIsMobile_","handleClick","undefined","window","addEventListener","removeEventListener","formatedData","find","indexOf","skillRef","key","renderCustomLabel","currentData","ResponsiveLearningProfileRadarChart","props","propTypes"],"sources":["../../../src/molecule/learning-profile-radar-chart/index.tsx"],"sourcesContent":["import React, {Fragment, useCallback, useEffect, useMemo, useState} from 'react';\nimport {\n Radar,\n RadarChart,\n PolarGrid,\n PolarAngleAxis,\n ResponsiveContainer,\n Tooltip,\n PolarRadiusAxis\n} from 'recharts';\nimport {\n pipe,\n keyBy,\n mapValues,\n size,\n getOr,\n map,\n toPairs,\n values,\n isEmpty,\n omit,\n fromPairs,\n times,\n flatten,\n findKey\n} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {isMobile as getIsMobile} from '../../util/check-is-mobile';\nimport style from './style.css';\nimport {\n ActiveDotType,\n FormatedColorsType,\n FormatedDataType,\n LearningProfileRadarChartPropTypes,\n TickType,\n learningProfileRadarChartPropTypes\n} from './types';\n\ntype CHART_TYPE_TYPE = keyof typeof CHART_CONFIGS;\n\n/* TICK_POSITIONS */\nconst top: TickType = {offset: {x: -100, y: -75}, alignment: 'center', margin: 'auto'};\nconst bottom: TickType = {offset: {x: -100, y: 10}, alignment: 'center', margin: 'auto'};\nconst right: TickType = {offset: {x: 30, y: -10}, alignment: 'start', marginRight: 'auto'};\nconst left: TickType = {offset: {x: -230, y: -10}, alignment: 'end', marginLeft: 'auto'};\n\n/* CONSTANTS */\nconst BLACK = '#000000ff';\nconst WHITE = '#ffffffff';\nconst DEFAULT_MAIN_COLOR = '#0062ffff';\n\nconst DEFAULT_COLORS: FormatedColorsType = {\n gradient: {\n fill: [DEFAULT_MAIN_COLOR, DEFAULT_MAIN_COLOR],\n stroke: [DEFAULT_MAIN_COLOR, DEFAULT_MAIN_COLOR]\n },\n percentage: {\n color: BLACK,\n background: WHITE\n },\n label: {\n color: BLACK\n }\n};\n\nconst CHART_CONFIGS = {\n triangle: {\n name: 'triangle',\n ticks: [top, right, left],\n sideCount: 3\n },\n quadrilateral: {\n name: 'quadrilateral',\n ticks: [top, right, bottom, left],\n sideCount: 4\n },\n pentagon: {\n name: 'pentagon',\n ticks: [top, right, right, left, left],\n sideCount: 5\n },\n hexagon: {\n name: 'hexagon',\n ticks: [top, right, right, bottom, left, left],\n sideCount: 6\n }\n} as const;\n\nconst DOT_DEFAULT_PROPS = {\n strokeWidth: 2,\n strokeOpacity: 0.4,\n fill: '#fff',\n r: 4,\n pointerEvents: 'all',\n style: {cursor: 'pointer'}\n} as const;\n\nconst DOT_ACTIVE_PROPS = {\n fill: '#fff',\n r: 6,\n strokeWidth: 4,\n strokeOpacity: 0.6\n} as const;\n\nconst RADAR_DEFAULT_PROPS = {\n strokeWidth: 3,\n strokeOpacity: 0.2,\n fillOpacity: 0.2\n} as const;\n\n/* COMPONENTS */\nconst Gradient = ({type, colors: [firstColor, secondColor]}: {type: string; colors: string[]}) => (\n <defs>\n <linearGradient id={`gradient-${type}`} x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor={firstColor} />\n <stop offset=\"100%\" stopColor={secondColor} />\n </linearGradient>\n </defs>\n);\n\nconst CustomTooltip = ({\n active,\n payload,\n label\n}: {\n active?: boolean;\n payload?: {value: number}[];\n label?: string;\n}) =>\n active && !!payload?.length ? (\n <div className={style.tooltip}>\n <span className={style.tooltipLabel}>{label}</span>\n <span className={style.tooltipValue}>{payload[0].value}%</span>\n </div>\n ) : null;\n\nconst CustomDot = ({\n cx,\n cy,\n payload,\n onDotClick,\n stroke,\n activeDot,\n dataName\n}: {\n cx?: number;\n cy?: number;\n payload?: {payload: {subject: string} & {[datakey: string]: number}; name: string};\n onDotClick: (name: string) => void;\n dataKey: string;\n stroke: string;\n activeDot?: ActiveDotType;\n dataName: string;\n}) => (\n <circle\n {...{\n ...DOT_DEFAULT_PROPS,\n ...(payload?.payload.subject === activeDot?.label && DOT_ACTIVE_PROPS),\n stroke,\n cx,\n cy,\n onTouchStart: () => {\n if (!payload?.name) return;\n onDotClick(payload.name);\n },\n onClick: e => {\n e.stopPropagation();\n\n if (!payload?.name) return;\n onDotClick(payload.name);\n },\n 'data-name': dataName\n }}\n />\n);\n\nconst buildRadars = (\n totalDataset: number,\n handleOnDotClick: (name: string) => void,\n activeDot?: ActiveDotType\n) =>\n times(index => {\n const datakey = `value${index + 1}`;\n const dataset = `dataset-${index + 1}`;\n\n return (\n <Radar\n {...RADAR_DEFAULT_PROPS}\n fill={`url(#gradient-fill-${index})`}\n stroke={`url(#gradient-stroke-${index})`}\n key={dataset}\n name={dataset}\n dataKey={datakey}\n activeDot={{\n ...DOT_ACTIVE_PROPS,\n stroke: `url(#gradient-stroke-${index})`\n }}\n // only on mobile\n // to handle dot style on hover (convert to click)\n // use with the tooltip component\n dot={\n <CustomDot\n onDotClick={handleOnDotClick}\n activeDot={activeDot}\n dataKey={datakey}\n stroke={`url(#gradient-stroke-${index})`}\n dataName={`dot-${dataset}`}\n />\n }\n />\n );\n }, totalDataset);\n\nconst buildCustomLabel = ({\n index,\n x,\n y,\n percentagesValues,\n label,\n activeDot,\n chartType,\n formatedColors,\n onClick\n}: {\n index: number;\n x: number;\n y: number;\n percentagesValues: number[];\n label: string;\n chartType: CHART_TYPE_TYPE;\n formatedColors: FormatedColorsType[];\n activeDot?: ActiveDotType;\n onClick: (name: string) => void;\n}) => {\n const isCurrentDotActive = activeDot?.label === label;\n const {\n offset: {x: offsetX, y: offsetY},\n alignment,\n ...rest\n } = CHART_CONFIGS[chartType].ticks[index];\n\n function onLabelClick(e: React.MouseEvent) {\n e.stopPropagation();\n onClick(label);\n }\n\n return (\n <g>\n <foreignObject\n className={style.tickeForeignObject}\n x={x + offsetX}\n y={y + offsetY}\n width=\"200\"\n height=\"65\"\n >\n <div\n data-name={label}\n onClick={onLabelClick}\n className={classnames(style.tickWrapper, isCurrentDotActive && style.tickWrapperFocus)}\n style={{\n ...rest,\n alignItems: alignment,\n textAlign: alignment,\n opacity: !isEmpty(activeDot) && !isCurrentDotActive ? 0.3 : 1\n }}\n >\n {formatedColors.map(\n ({percentage: {color, background}, label: {color: colorLabel}}, i) => (\n <Fragment key={i}>\n <span className={style.tickValue} style={{color, background}}>\n {percentagesValues[i]}\n </span>\n <span className={style.tickLabel} style={{color: colorLabel}}>\n {label}\n </span>\n </Fragment>\n )\n )}\n </div>\n </foreignObject>\n </g>\n );\n};\n\n/* UTILS */\nconst CHART_CONFIGS_BY_SIDE_COUNT = pipe(keyBy('sideCount'), mapValues('name'))(CHART_CONFIGS);\n\nconst formatValues: (values_: number | number[]) => Record<string, number> = pipe(\n values_ => flatten([values_]),\n values_ => values_.map((val: number, i: number): [string, number] => [`value${i + 1}`, val]),\n fromPairs\n);\n\n/* this convert incoming component data to rechart data structure */\nexport const formatData: (\n legend: {[ref: string]: string},\n data_: LearningProfileRadarChartPropTypes['data']\n) => FormatedDataType[] = (legend, data_) =>\n pipe(\n toPairs,\n map(([ref, values_]: [string, number | number[]]) => ({\n ...formatValues(values_),\n subject: legend[ref]\n }))\n )(data_);\n\nexport const LearningProfileRadarChart = ({\n data,\n legend,\n totalDataset,\n colors: colorsProps,\n onClick,\n width,\n height,\n margin\n}: LearningProfileRadarChartPropTypes) => {\n const [isMobile, setIsMobile] = useState(false);\n const [activeDot, setActiveDot] = useState<ActiveDotType>();\n\n const formatedColors = times(i => {\n if (!colorsProps?.length) return DEFAULT_COLORS;\n\n const colors = colorsProps[i];\n return colors ? Object.assign({}, DEFAULT_COLORS, colors) : DEFAULT_COLORS;\n })(totalDataset);\n\n const chartType: CHART_TYPE_TYPE = useMemo(\n () => getOr('hexagon', size(data), CHART_CONFIGS_BY_SIDE_COUNT),\n [data]\n );\n\n const gradients = useMemo(\n () =>\n formatedColors.map(({gradient: {fill, stroke}}, index) => (\n <svg key={`gradient-${index}`}>\n <Gradient type={`fill-${index}`} colors={fill} />\n <Gradient type={`stroke-${index}`} colors={stroke} />\n </svg>\n )),\n [formatedColors]\n );\n\n const userAgent = navigator?.userAgent;\n const isMobile_ = useMemo(() => getIsMobile(userAgent), [userAgent]);\n\n const setIsMobile_ = useCallback(() => {\n setIsMobile(isMobile_);\n }, [isMobile_]);\n\n useEffect(() => setIsMobile_(), [setIsMobile_]);\n\n useEffect(() => {\n const handleClick = () => {\n setActiveDot(undefined);\n onClick(undefined);\n };\n\n !isEmpty(activeDot) && window.addEventListener('click', handleClick);\n\n return () => {\n window.removeEventListener('click', handleClick);\n };\n }, [activeDot, onClick, setActiveDot]);\n\n function handleOnDotClick(label: string) {\n const payload = formatedData.find(({subject}) => subject === label);\n if (!payload) return;\n\n const index = formatedData.indexOf(payload);\n const datakey = `value${index + 1}`;\n const skillRef = findKey(val => val === payload?.subject, legend);\n\n if (skillRef) {\n setActiveDot({\n key: datakey,\n value: payload[datakey],\n label: payload.subject\n });\n onClick(skillRef);\n }\n }\n\n function renderCustomLabel({\n x,\n y,\n payload: {value: label},\n index\n }: {\n x: number;\n y: number;\n payload: {value: string};\n index: number;\n }) {\n const currentData = formatedData.find(({subject}) => subject === label);\n const percentagesValues: number[] = pipe(\n omit('subject'),\n mapValues(value => `${value}%`),\n values\n )(currentData);\n\n return buildCustomLabel({\n index,\n x,\n y,\n percentagesValues,\n label,\n activeDot,\n chartType,\n formatedColors,\n onClick: handleOnDotClick\n });\n }\n const formatedData = useMemo(() => formatData(legend, data), [legend, data]);\n\n return (\n <RadarChart\n width={width}\n height={height}\n margin={margin ?? (isMobile ? {top: 80} : {top: 180})}\n cx=\"50%\"\n cy=\"50%\"\n outerRadius=\"80%\"\n data={formatedData}\n >\n {gradients}\n {buildRadars(totalDataset, handleOnDotClick, activeDot)}\n <PolarGrid strokeDasharray={10} strokeWidth={2} radialLines={false} />\n <PolarAngleAxis dataKey=\"subject\" tick={!isMobile && renderCustomLabel} />\n <PolarRadiusAxis tick={false} axisLine={false} domain={[0, 100]} />\n {isMobile ? <Tooltip cursor={false} content={<CustomTooltip />} /> : null}\n </RadarChart>\n );\n};\n\nconst ResponsiveLearningProfileRadarChart = (props: LearningProfileRadarChartPropTypes) => (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <LearningProfileRadarChart {...props} />\n </ResponsiveContainer>\n);\n\nLearningProfileRadarChart.propTypes = learningProfileRadarChartPropTypes;\nResponsiveLearningProfileRadarChart.propTypes = learningProfileRadarChartPropTypes;\n\nexport default ResponsiveLearningProfileRadarChart;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","Fragment","useCallback","useEffect","useMemo","useState","Radar","RadarChart","PolarGrid","PolarAngleAxis","ResponsiveContainer","Tooltip","PolarRadiusAxis","convert","classnames","isMobile","getIsMobile","ButtonLink","Provider","GetSkinFromContext","GetTranslateFromContext","learningProfileRadarChartPropTypes","style","top","offset","x","y","alignment","margin","bottom","right","marginRight","left","marginLeft","BLACK","WHITE","DEFAULT_MAIN_COLOR","DEFAULT_COLORS","gradient","fill","stroke","percentage","color","background","label","CHART_CONFIGS","triangle","name","ticks","sideCount","quadrilateral","pentagon","hexagon","DOT_DEFAULT_PROPS","strokeWidth","strokeOpacity","r","pointerEvents","cursor","DOT_ACTIVE_PROPS","RADAR_DEFAULT_PROPS","fillOpacity","Gradient","type","colors","firstColor","secondColor","CustomTooltip","active","payload","length","tooltip","tooltipLabel","tooltipValue","value","CustomDot","cx","cy","onDotHover","onDotClick","activeDot","dataName","subject","onTouchStart","onClick","e","stopPropagation","onMouseOver","onMouseLeave","buildRadars","totalDataset","handleDotHover","handleOnDotClick","index","datakey","dataset","CustomLabel","percentagesValues","chartType","formatedColors","primarySkinColor","exploreLocale","hoveredDot","onExploreClick","hovered","setHovered","isCurrentDotActive","offsetX","offsetY","rest","onLabelClick","handleExploreClick","buttonExploreProps","customStyle","height","backgroundColor","transition","icon","position","faIcon","size","handleMouseOver","handleMouseLeave","extraOffsetY","tickeForeignObject","tickWrapper","tickWrapperFocus","tickWrapperHover","alignItems","textAlign","opacity","map","colorLabel","i","tickValue","tickLabel","buttonWrapper","CHART_CONFIGS_BY_SIDE_COUNT","formatValues","values_","val","formatData","legend","data_","ref","LearningProfileRadarChart","data","colorsProps","width","legacyContext","setIsMobile","setActiveDot","setHoveredDot","skin","translate","Object","assign","gradients","userAgent","navigator","isMobile_","setIsMobile_","handleClick","undefined","window","addEventListener","removeEventListener","handleOnActiveDotClick","formatedData","find","indexOf","skillRef","key","renderCustomLabel","props","currentData","ResponsiveLearningProfileRadarChart","contextTypes","childContextTypes","propTypes"],"sources":["../../../src/molecule/learning-profile-radar-chart/index.tsx"],"sourcesContent":["import React, {Fragment, useCallback, useEffect, useMemo, useState} from 'react';\nimport {\n Radar,\n RadarChart,\n PolarGrid,\n PolarAngleAxis,\n ResponsiveContainer,\n Tooltip,\n PolarRadiusAxis\n} from 'recharts';\nimport {\n pipe,\n keyBy,\n mapValues,\n size,\n getOr,\n map,\n toPairs,\n values,\n isEmpty,\n omit,\n fromPairs,\n times,\n flatten,\n findKey,\n get\n} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {isMobile as getIsMobile} from '../../util/check-is-mobile';\nimport ButtonLink from '../../atom/button-link';\nimport {ButtonLinkProps} from '../../atom/button-link/types';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport {\n ActiveDotType,\n FormatedColorsType,\n FormatedDataType,\n LearningProfileRadarChartPropTypes,\n TickType,\n learningProfileRadarChartPropTypes\n} from './types';\nimport style from './style.css';\n\ntype CHART_TYPE_TYPE = keyof typeof CHART_CONFIGS;\n\n/* TICK_POSITIONS */\nconst top: TickType = {offset: {x: -100, y: -75}, alignment: 'center', margin: 'auto'};\nconst bottom: TickType = {offset: {x: -100, y: 10}, alignment: 'center', margin: 'auto'};\nconst right: TickType = {offset: {x: 30, y: -10}, alignment: 'start', marginRight: 'auto'};\nconst left: TickType = {offset: {x: -230, y: -10}, alignment: 'end', marginLeft: 'auto'};\n\n/* CONSTANTS */\nconst BLACK = '#000000ff';\nconst WHITE = '#ffffffff';\nconst DEFAULT_MAIN_COLOR = '#0062ffff';\n\nconst DEFAULT_COLORS: FormatedColorsType = {\n gradient: {\n fill: [DEFAULT_MAIN_COLOR, DEFAULT_MAIN_COLOR],\n stroke: [DEFAULT_MAIN_COLOR, DEFAULT_MAIN_COLOR]\n },\n percentage: {\n color: BLACK,\n background: WHITE\n },\n label: {\n color: BLACK\n }\n};\n\nconst CHART_CONFIGS = {\n triangle: {\n name: 'triangle',\n ticks: [top, right, left],\n sideCount: 3\n },\n quadrilateral: {\n name: 'quadrilateral',\n ticks: [top, right, bottom, left],\n sideCount: 4\n },\n pentagon: {\n name: 'pentagon',\n ticks: [top, right, right, left, left],\n sideCount: 5\n },\n hexagon: {\n name: 'hexagon',\n ticks: [top, right, right, bottom, left, left],\n sideCount: 6\n }\n} as const;\n\nconst DOT_DEFAULT_PROPS = {\n strokeWidth: 2,\n strokeOpacity: 0.4,\n fill: '#fff',\n r: 4,\n pointerEvents: 'all',\n style: {cursor: 'pointer'}\n} as const;\n\nconst DOT_ACTIVE_PROPS = {\n fill: '#fff',\n r: 6,\n strokeWidth: 4,\n strokeOpacity: 0.6\n} as const;\n\nconst RADAR_DEFAULT_PROPS = {\n strokeWidth: 3,\n strokeOpacity: 0.2,\n fillOpacity: 0.2\n} as const;\n\n/* COMPONENTS */\nconst Gradient = ({type, colors: [firstColor, secondColor]}: {type: string; colors: string[]}) => (\n <defs>\n <linearGradient id={`gradient-${type}`} x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor={firstColor} />\n <stop offset=\"100%\" stopColor={secondColor} />\n </linearGradient>\n </defs>\n);\n\nconst CustomTooltip = ({\n active,\n payload,\n label\n}: {\n active?: boolean;\n payload?: {value: number}[];\n label?: string;\n}) =>\n active && !!payload?.length ? (\n <div className={style.tooltip}>\n <span className={style.tooltipLabel}>{label}</span>\n <span className={style.tooltipValue}>{payload[0].value}%</span>\n </div>\n ) : null;\n\nconst CustomDot = ({\n cx,\n cy,\n payload,\n onDotHover,\n onDotClick,\n stroke,\n activeDot,\n dataName\n}: {\n cx?: number;\n cy?: number;\n payload?: {payload: {subject: string} & {[datakey: string]: number}; name: string};\n onDotHover: (name: string) => void;\n onDotClick: (name: string) => void;\n dataKey: string;\n stroke: string;\n activeDot?: ActiveDotType;\n dataName: string;\n}) => (\n <circle\n {...{\n ...DOT_DEFAULT_PROPS,\n ...(payload?.payload.subject === activeDot?.label && DOT_ACTIVE_PROPS),\n stroke,\n cx,\n cy,\n onTouchStart: () => {\n if (!payload?.name) return;\n onDotClick(payload.name);\n },\n onClick: e => {\n e.stopPropagation();\n\n if (!payload?.name) return;\n onDotClick(payload.name);\n },\n onMouseOver: () => {\n if (!payload?.name) return;\n onDotHover(payload.name);\n },\n onMouseLeave: () => onDotHover(''),\n 'data-name': dataName\n }}\n />\n);\n\nconst buildRadars = (\n totalDataset: number,\n handleDotHover: (name: string) => void,\n handleOnDotClick: (name: string) => void,\n activeDot?: ActiveDotType\n) =>\n times(index => {\n const datakey = `value${index + 1}`;\n const dataset = `dataset-${index + 1}`;\n\n return (\n <Radar\n {...RADAR_DEFAULT_PROPS}\n fill={`url(#gradient-fill-${index})`}\n stroke={`url(#gradient-stroke-${index})`}\n key={dataset}\n name={dataset}\n dataKey={datakey}\n activeDot={{\n ...DOT_ACTIVE_PROPS,\n stroke: `url(#gradient-stroke-${index})`\n }}\n // only on mobile\n // to handle dot style on hover (convert to click)\n // use with the tooltip component\n dot={\n <CustomDot\n onDotHover={handleDotHover}\n onDotClick={handleOnDotClick}\n activeDot={activeDot}\n dataKey={datakey}\n stroke={`url(#gradient-stroke-${index})`}\n dataName={`dot-${dataset}`}\n />\n }\n />\n );\n }, totalDataset);\n\nconst CustomLabel = ({\n index,\n x,\n y,\n percentagesValues,\n label,\n activeDot,\n chartType,\n formatedColors,\n primarySkinColor,\n exploreLocale,\n hoveredDot,\n onClick,\n onExploreClick\n}: {\n index: number;\n x: number;\n y: number;\n percentagesValues: number[];\n label: string;\n chartType: CHART_TYPE_TYPE;\n formatedColors: FormatedColorsType[];\n activeDot?: ActiveDotType;\n primarySkinColor: string;\n exploreLocale: string;\n hoveredDot: string;\n onClick: (name: string) => void;\n onExploreClick: (name: string) => void;\n}) => {\n const [hovered, setHovered] = useState(false);\n const isCurrentDotActive = activeDot?.label === label;\n const {\n offset: {x: offsetX, y: offsetY},\n alignment,\n ...rest\n } = CHART_CONFIGS[chartType].ticks[index];\n\n function onLabelClick(e: React.MouseEvent) {\n e.stopPropagation();\n onClick(label);\n }\n\n function handleExploreClick() {\n onExploreClick(label);\n }\n\n const buttonExploreProps: ButtonLinkProps = {\n customStyle: {\n height: '36px',\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: handleExploreClick,\n 'aria-label': `${label}, ${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 handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const extraOffsetY = isCurrentDotActive && index === 0 ? -25 : 0;\n\n return (\n <g>\n <foreignObject\n className={style.tickeForeignObject}\n x={x + offsetX}\n y={y + offsetY + extraOffsetY}\n width=\"200\"\n height=\"65\"\n >\n <div\n data-name={label}\n onClick={onLabelClick}\n className={classnames(\n style.tickWrapper,\n isCurrentDotActive && style.tickWrapperFocus,\n hoveredDot === label && style.tickWrapperHover\n )}\n style={{\n ...rest,\n alignItems: alignment,\n textAlign: alignment,\n opacity: !isEmpty(activeDot) && !isCurrentDotActive ? 0.3 : 1\n }}\n >\n {formatedColors.map(\n ({percentage: {color, background}, label: {color: colorLabel}}, i) => (\n <Fragment key={i}>\n <span className={style.tickValue} style={{color, background}}>\n {percentagesValues[i]}\n </span>\n <span className={style.tickLabel} style={{color: colorLabel}}>\n {label}\n </span>\n </Fragment>\n )\n )}\n {isCurrentDotActive ? (\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 ) : null}\n </div>\n </foreignObject>\n </g>\n );\n};\n\n/* UTILS */\nconst CHART_CONFIGS_BY_SIDE_COUNT = pipe(keyBy('sideCount'), mapValues('name'))(CHART_CONFIGS);\n\nconst formatValues: (values_: number | number[]) => Record<string, number> = pipe(\n values_ => flatten([values_]),\n values_ => values_.map((val: number, i: number): [string, number] => [`value${i + 1}`, val]),\n fromPairs\n);\n\n/* this convert incoming component data to rechart data structure */\nexport const formatData: (\n legend: {[ref: string]: string},\n data_: LearningProfileRadarChartPropTypes['data']\n) => FormatedDataType[] = (legend, data_) =>\n pipe(\n toPairs,\n map(([ref, values_]: [string, number | number[]]) => ({\n ...formatValues(values_),\n subject: legend[ref]\n }))\n )(data_);\n\nexport const LearningProfileRadarChart = (\n {\n data,\n legend,\n totalDataset,\n colors: colorsProps,\n onClick,\n onExploreClick,\n width,\n height,\n margin\n }: LearningProfileRadarChartPropTypes,\n legacyContext: WebContextValues\n) => {\n const [isMobile, setIsMobile] = useState(false);\n const [activeDot, setActiveDot] = useState<ActiveDotType>();\n const [hoveredDot, setHoveredDot] = useState('');\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const primarySkinColor = get('common.primary', skin);\n\n const formatedColors = times(i => {\n if (!colorsProps?.length) return DEFAULT_COLORS;\n\n const colors = colorsProps[i];\n return colors ? Object.assign({}, DEFAULT_COLORS, colors) : DEFAULT_COLORS;\n })(totalDataset);\n\n const chartType: CHART_TYPE_TYPE = useMemo(\n () => getOr('hexagon', size(data), CHART_CONFIGS_BY_SIDE_COUNT),\n [data]\n );\n\n const gradients = useMemo(\n () =>\n formatedColors.map(({gradient: {fill, stroke}}, index) => (\n <svg key={`gradient-${index}`}>\n <Gradient type={`fill-${index}`} colors={fill} />\n <Gradient type={`stroke-${index}`} colors={stroke} />\n </svg>\n )),\n [formatedColors]\n );\n\n const userAgent = navigator?.userAgent;\n const isMobile_ = useMemo(() => getIsMobile(userAgent), [userAgent]);\n\n const setIsMobile_ = useCallback(() => {\n setIsMobile(isMobile_);\n }, [isMobile_]);\n\n useEffect(() => setIsMobile_(), [setIsMobile_]);\n\n useEffect(() => {\n const handleClick = () => {\n setActiveDot(undefined);\n onClick(undefined);\n };\n\n !isEmpty(activeDot) && window.addEventListener('click', handleClick);\n\n return () => {\n window.removeEventListener('click', handleClick);\n };\n }, [activeDot, onClick, setActiveDot]);\n\n function handleOnActiveDotClick() {\n setActiveDot(undefined);\n onClick(undefined);\n }\n\n function handleOnDotClick(label: string) {\n if (!isEmpty(activeDot) && activeDot?.label === label) {\n handleOnActiveDotClick();\n return;\n }\n const payload = formatedData.find(({subject}) => subject === label);\n if (!payload) return;\n\n const index = formatedData.indexOf(payload);\n const datakey = `value${index + 1}`;\n const skillRef = findKey(val => val === payload?.subject, legend);\n\n if (skillRef) {\n setActiveDot({\n key: datakey,\n value: payload[datakey],\n label: payload.subject\n });\n onClick(skillRef);\n }\n }\n\n function handleExploreClick(label: string) {\n const payload = formatedData.find(({subject}) => subject === label);\n if (!payload) return;\n\n const skillRef = findKey(val => val === payload?.subject, legend);\n\n if (skillRef) {\n onExploreClick(skillRef);\n }\n }\n\n function renderCustomLabel(props: {\n x: number;\n y: number;\n payload: {value: string};\n index: number;\n }) {\n const {\n x,\n y,\n payload: {value: label},\n index\n } = props;\n const currentData = formatedData.find(({subject}) => subject === label);\n const percentagesValues: number[] = pipe(\n omit('subject'),\n mapValues(value => `${value}%`),\n values\n )(currentData);\n\n return (\n <CustomLabel\n index={index}\n x={x}\n y={y}\n percentagesValues={percentagesValues}\n label={label}\n activeDot={activeDot}\n chartType={chartType}\n formatedColors={formatedColors}\n primarySkinColor={primarySkinColor}\n exploreLocale={translate('Explore')}\n hoveredDot={hoveredDot}\n onClick={handleOnDotClick}\n onExploreClick={handleExploreClick}\n />\n );\n }\n const formatedData = useMemo(() => formatData(legend, data), [legend, data]);\n\n return (\n <RadarChart\n width={width}\n height={height}\n margin={margin ?? (isMobile ? {top: 80} : {top: 180})}\n cx=\"50%\"\n cy=\"50%\"\n outerRadius=\"80%\"\n data={formatedData}\n >\n {gradients}\n <PolarGrid strokeDasharray={10} strokeWidth={2} radialLines={false} />\n <PolarAngleAxis dataKey=\"subject\" tick={!isMobile && renderCustomLabel} />\n <PolarRadiusAxis tick={false} axisLine={false} domain={[0, 100]} />\n {buildRadars(totalDataset, setHoveredDot, handleOnDotClick, activeDot)}\n {isMobile ? <Tooltip cursor={false} content={<CustomTooltip />} /> : null}\n </RadarChart>\n );\n};\n\nconst ResponsiveLearningProfileRadarChart = (props: LearningProfileRadarChartPropTypes) => (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <LearningProfileRadarChart {...props} />\n </ResponsiveContainer>\n);\n\nLearningProfileRadarChart.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nLearningProfileRadarChart.propTypes = learningProfileRadarChartPropTypes;\nResponsiveLearningProfileRadarChart.propTypes = learningProfileRadarChartPropTypes;\n\nexport default ResponsiveLearningProfileRadarChart;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  @value colors: "../../variables/colors.css";
2
2
  @value cm_primary_blue from colors;
3
3
  @value cm_grey_50 from colors;
4
+ @value cm_grey_75 from colors;
4
5
  @value lightDark from colors;
5
6
 
6
7
  .tickeForeignObject {
@@ -27,6 +28,14 @@
27
28
  width: fit-content;
28
29
  }
29
30
 
31
+ .tickWrapper:hover,
32
+ .tickWrapperHover {
33
+ background-color: cm_grey_75;
34
+ border-radius: 12px;
35
+ }
36
+
37
+
38
+
30
39
  .tickValue {
31
40
  padding: 4px;
32
41
  border-radius: 12px;
@@ -64,4 +73,9 @@
64
73
  .tooltipValue {
65
74
  font-size: 14px;
66
75
  font-weight: 700;
76
+ }
77
+
78
+ .buttonWrapper {
79
+ width: 100%;
80
+ height: 36px;
67
81
  }
@@ -20,6 +20,7 @@ export declare const learningProfileRadarChartPropTypes: {
20
20
  }> | null | undefined)[]>;
21
21
  width: PropTypes.Requireable<number>;
22
22
  height: PropTypes.Requireable<number>;
23
+ onExploreClick: PropTypes.Requireable<(...args: any[]) => any>;
23
24
  };
24
25
  export declare const customDotPropTypes: {
25
26
  cx: PropTypes.Requireable<number>;
@@ -74,6 +75,7 @@ export declare type LearningProfileRadarChartPropTypes = {
74
75
  };
75
76
  totalDataset: number;
76
77
  onClick: (skillRef?: string) => void;
78
+ onExploreClick: (label?: string) => void;
77
79
  colors?: ColorType[];
78
80
  width?: number;
79
81
  height?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-profile-radar-chart/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-profile-radar-chart/types.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,8 @@ export const learningProfileRadarChartPropTypes = {
18
18
  })
19
19
  })),
20
20
  width: PropTypes.number,
21
- height: PropTypes.number
21
+ height: PropTypes.number,
22
+ onExploreClick: PropTypes.func
22
23
  };
23
24
  export const customDotPropTypes = {
24
25
  cx: PropTypes.number,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["PropTypes","learningProfileRadarChartPropTypes","data","objectOf","oneOfType","arrayOf","number","isRequired","totalDataset","onDotClick","func","colors","shape","gradient","fill","string","stroke","percentage","color","background","label","width","height","customDotPropTypes","cx","cy","payload","value","subject","name","index","activeDot","key","dataKey","customTooltipPropTypes","active","bool","gradientPropTypes","type"],"sources":["../../../src/molecule/learning-profile-radar-chart/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\n// PROPTYPES\nexport const learningProfileRadarChartPropTypes = {\n data: PropTypes.objectOf(\n PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number])\n ).isRequired,\n totalDataset: PropTypes.number.isRequired,\n onDotClick: PropTypes.func,\n colors: PropTypes.arrayOf(\n PropTypes.shape({\n gradient: PropTypes.shape({\n fill: PropTypes.arrayOf(PropTypes.string),\n stroke: PropTypes.arrayOf(PropTypes.string)\n }),\n percentage: PropTypes.shape({\n color: PropTypes.string,\n background: PropTypes.string\n }),\n label: PropTypes.shape({\n color: PropTypes.string\n })\n })\n ),\n width: PropTypes.number,\n height: PropTypes.number\n};\n\nexport const customDotPropTypes = {\n cx: PropTypes.number,\n cy: PropTypes.number,\n payload: PropTypes.shape({\n payload: PropTypes.shape({\n value: PropTypes.number,\n subject: PropTypes.string\n }),\n name: PropTypes.string\n }),\n onDotClick: PropTypes.func,\n index: PropTypes.number,\n activeDot: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.number,\n key: PropTypes.string\n }),\n dataKey: PropTypes.string,\n stroke: PropTypes.string\n};\n\nexport const customTooltipPropTypes = {\n active: PropTypes.bool,\n payload: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.number\n })\n ),\n label: PropTypes.string\n};\n\nexport const gradientPropTypes = {\n type: PropTypes.string,\n colors: PropTypes.arrayOf(PropTypes.string)\n};\n\n// TYPES\nexport type ColorType = {\n gradient?: {\n fill?: string[];\n stroke?: string[];\n };\n percentage?: {\n color?: string;\n background?: string;\n };\n label?: {\n color?: string;\n };\n};\n\nexport type LearningProfileRadarChartPropTypes = {\n data: {\n [ref: string]: number | number[];\n };\n legend: {\n [ref: string]: string;\n };\n totalDataset: number;\n onClick: (skillRef?: string) => void;\n colors?: ColorType[];\n width?: number;\n height?: number;\n margin?: {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n };\n};\n\nexport type CustomDotPropTypes = {\n cx: number;\n cy: number;\n payload: {\n payload: {\n value: number;\n subject: string;\n };\n name: string;\n };\n onDotClick: (name: string) => void;\n index: number;\n activeDot?: {\n label: string;\n value: number;\n key: string;\n };\n dataKey: string;\n stroke: string;\n};\n\nexport type CustomTooltipPropTypes = {\n active: boolean;\n payload: {\n value: number;\n }[];\n label: string;\n};\n\nexport type GradientPropTypes = {\n type: string;\n colors: string[];\n};\n\nexport type TickType = {\n offset: {x: number; y: number};\n alignment: 'center' | 'start' | 'end';\n margin?: 'auto';\n marginLeft?: 'auto';\n marginRight?: 'auto';\n};\n\nexport type FormatedColorsType = {\n gradient: {\n fill: string[];\n stroke: string[];\n };\n percentage: {\n color: string;\n background: string;\n };\n label: {\n color: string;\n };\n};\n\nexport type FormatedDataType = {\n subject: string;\n} & {\n [key: string]: number | string;\n};\n\nexport type ActiveDotType = {\n key: string;\n value: number | string;\n label: string;\n};\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB,C,CAEA;;AACA,OAAO,MAAMC,kCAAkC,GAAG;EAChDC,IAAI,EAAEF,SAAS,CAACG,QAAV,CACJH,SAAS,CAACI,SAAV,CAAoB,CAACJ,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACM,MAA5B,CAAD,EAAsCN,SAAS,CAACM,MAAhD,CAApB,CADI,EAEJC,UAH8C;EAIhDC,YAAY,EAAER,SAAS,CAACM,MAAV,CAAiBC,UAJiB;EAKhDE,UAAU,EAAET,SAAS,CAACU,IAL0B;EAMhDC,MAAM,EAAEX,SAAS,CAACK,OAAV,CACNL,SAAS,CAACY,KAAV,CAAgB;IACdC,QAAQ,EAAEb,SAAS,CAACY,KAAV,CAAgB;MACxBE,IAAI,EAAEd,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B,CADkB;MAExBC,MAAM,EAAEhB,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B;IAFgB,CAAhB,CADI;IAKdE,UAAU,EAAEjB,SAAS,CAACY,KAAV,CAAgB;MAC1BM,KAAK,EAAElB,SAAS,CAACe,MADS;MAE1BI,UAAU,EAAEnB,SAAS,CAACe;IAFI,CAAhB,CALE;IASdK,KAAK,EAAEpB,SAAS,CAACY,KAAV,CAAgB;MACrBM,KAAK,EAAElB,SAAS,CAACe;IADI,CAAhB;EATO,CAAhB,CADM,CANwC;EAqBhDM,KAAK,EAAErB,SAAS,CAACM,MArB+B;EAsBhDgB,MAAM,EAAEtB,SAAS,CAACM;AAtB8B,CAA3C;AAyBP,OAAO,MAAMiB,kBAAkB,GAAG;EAChCC,EAAE,EAAExB,SAAS,CAACM,MADkB;EAEhCmB,EAAE,EAAEzB,SAAS,CAACM,MAFkB;EAGhCoB,OAAO,EAAE1B,SAAS,CAACY,KAAV,CAAgB;IACvBc,OAAO,EAAE1B,SAAS,CAACY,KAAV,CAAgB;MACvBe,KAAK,EAAE3B,SAAS,CAACM,MADM;MAEvBsB,OAAO,EAAE5B,SAAS,CAACe;IAFI,CAAhB,CADc;IAKvBc,IAAI,EAAE7B,SAAS,CAACe;EALO,CAAhB,CAHuB;EAUhCN,UAAU,EAAET,SAAS,CAACU,IAVU;EAWhCoB,KAAK,EAAE9B,SAAS,CAACM,MAXe;EAYhCyB,SAAS,EAAE/B,SAAS,CAACY,KAAV,CAAgB;IACzBQ,KAAK,EAAEpB,SAAS,CAACe,MADQ;IAEzBY,KAAK,EAAE3B,SAAS,CAACM,MAFQ;IAGzB0B,GAAG,EAAEhC,SAAS,CAACe;EAHU,CAAhB,CAZqB;EAiBhCkB,OAAO,EAAEjC,SAAS,CAACe,MAjBa;EAkBhCC,MAAM,EAAEhB,SAAS,CAACe;AAlBc,CAA3B;AAqBP,OAAO,MAAMmB,sBAAsB,GAAG;EACpCC,MAAM,EAAEnC,SAAS,CAACoC,IADkB;EAEpCV,OAAO,EAAE1B,SAAS,CAACK,OAAV,CACPL,SAAS,CAACY,KAAV,CAAgB;IACde,KAAK,EAAE3B,SAAS,CAACM;EADH,CAAhB,CADO,CAF2B;EAOpCc,KAAK,EAAEpB,SAAS,CAACe;AAPmB,CAA/B;AAUP,OAAO,MAAMsB,iBAAiB,GAAG;EAC/BC,IAAI,EAAEtC,SAAS,CAACe,MADe;EAE/BJ,MAAM,EAAEX,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B;AAFuB,CAA1B,C,CAKP"}
1
+ {"version":3,"file":"types.js","names":["PropTypes","learningProfileRadarChartPropTypes","data","objectOf","oneOfType","arrayOf","number","isRequired","totalDataset","onDotClick","func","colors","shape","gradient","fill","string","stroke","percentage","color","background","label","width","height","onExploreClick","customDotPropTypes","cx","cy","payload","value","subject","name","index","activeDot","key","dataKey","customTooltipPropTypes","active","bool","gradientPropTypes","type"],"sources":["../../../src/molecule/learning-profile-radar-chart/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\n// PROPTYPES\nexport const learningProfileRadarChartPropTypes = {\n data: PropTypes.objectOf(\n PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number])\n ).isRequired,\n totalDataset: PropTypes.number.isRequired,\n onDotClick: PropTypes.func,\n colors: PropTypes.arrayOf(\n PropTypes.shape({\n gradient: PropTypes.shape({\n fill: PropTypes.arrayOf(PropTypes.string),\n stroke: PropTypes.arrayOf(PropTypes.string)\n }),\n percentage: PropTypes.shape({\n color: PropTypes.string,\n background: PropTypes.string\n }),\n label: PropTypes.shape({\n color: PropTypes.string\n })\n })\n ),\n width: PropTypes.number,\n height: PropTypes.number,\n onExploreClick: PropTypes.func\n};\n\nexport const customDotPropTypes = {\n cx: PropTypes.number,\n cy: PropTypes.number,\n payload: PropTypes.shape({\n payload: PropTypes.shape({\n value: PropTypes.number,\n subject: PropTypes.string\n }),\n name: PropTypes.string\n }),\n onDotClick: PropTypes.func,\n index: PropTypes.number,\n activeDot: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.number,\n key: PropTypes.string\n }),\n dataKey: PropTypes.string,\n stroke: PropTypes.string\n};\n\nexport const customTooltipPropTypes = {\n active: PropTypes.bool,\n payload: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.number\n })\n ),\n label: PropTypes.string\n};\n\nexport const gradientPropTypes = {\n type: PropTypes.string,\n colors: PropTypes.arrayOf(PropTypes.string)\n};\n\n// TYPES\nexport type ColorType = {\n gradient?: {\n fill?: string[];\n stroke?: string[];\n };\n percentage?: {\n color?: string;\n background?: string;\n };\n label?: {\n color?: string;\n };\n};\n\nexport type LearningProfileRadarChartPropTypes = {\n data: {\n [ref: string]: number | number[];\n };\n legend: {\n [ref: string]: string;\n };\n totalDataset: number;\n onClick: (skillRef?: string) => void;\n onExploreClick: (label?: string) => void;\n colors?: ColorType[];\n width?: number;\n height?: number;\n margin?: {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n };\n};\n\nexport type CustomDotPropTypes = {\n cx: number;\n cy: number;\n payload: {\n payload: {\n value: number;\n subject: string;\n };\n name: string;\n };\n onDotClick: (name: string) => void;\n index: number;\n activeDot?: {\n label: string;\n value: number;\n key: string;\n };\n dataKey: string;\n stroke: string;\n};\n\nexport type CustomTooltipPropTypes = {\n active: boolean;\n payload: {\n value: number;\n }[];\n label: string;\n};\n\nexport type GradientPropTypes = {\n type: string;\n colors: string[];\n};\n\nexport type TickType = {\n offset: {x: number; y: number};\n alignment: 'center' | 'start' | 'end';\n margin?: 'auto';\n marginLeft?: 'auto';\n marginRight?: 'auto';\n};\n\nexport type FormatedColorsType = {\n gradient: {\n fill: string[];\n stroke: string[];\n };\n percentage: {\n color: string;\n background: string;\n };\n label: {\n color: string;\n };\n};\n\nexport type FormatedDataType = {\n subject: string;\n} & {\n [key: string]: number | string;\n};\n\nexport type ActiveDotType = {\n key: string;\n value: number | string;\n label: string;\n};\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB,C,CAEA;;AACA,OAAO,MAAMC,kCAAkC,GAAG;EAChDC,IAAI,EAAEF,SAAS,CAACG,QAAV,CACJH,SAAS,CAACI,SAAV,CAAoB,CAACJ,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACM,MAA5B,CAAD,EAAsCN,SAAS,CAACM,MAAhD,CAApB,CADI,EAEJC,UAH8C;EAIhDC,YAAY,EAAER,SAAS,CAACM,MAAV,CAAiBC,UAJiB;EAKhDE,UAAU,EAAET,SAAS,CAACU,IAL0B;EAMhDC,MAAM,EAAEX,SAAS,CAACK,OAAV,CACNL,SAAS,CAACY,KAAV,CAAgB;IACdC,QAAQ,EAAEb,SAAS,CAACY,KAAV,CAAgB;MACxBE,IAAI,EAAEd,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B,CADkB;MAExBC,MAAM,EAAEhB,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B;IAFgB,CAAhB,CADI;IAKdE,UAAU,EAAEjB,SAAS,CAACY,KAAV,CAAgB;MAC1BM,KAAK,EAAElB,SAAS,CAACe,MADS;MAE1BI,UAAU,EAAEnB,SAAS,CAACe;IAFI,CAAhB,CALE;IASdK,KAAK,EAAEpB,SAAS,CAACY,KAAV,CAAgB;MACrBM,KAAK,EAAElB,SAAS,CAACe;IADI,CAAhB;EATO,CAAhB,CADM,CANwC;EAqBhDM,KAAK,EAAErB,SAAS,CAACM,MArB+B;EAsBhDgB,MAAM,EAAEtB,SAAS,CAACM,MAtB8B;EAuBhDiB,cAAc,EAAEvB,SAAS,CAACU;AAvBsB,CAA3C;AA0BP,OAAO,MAAMc,kBAAkB,GAAG;EAChCC,EAAE,EAAEzB,SAAS,CAACM,MADkB;EAEhCoB,EAAE,EAAE1B,SAAS,CAACM,MAFkB;EAGhCqB,OAAO,EAAE3B,SAAS,CAACY,KAAV,CAAgB;IACvBe,OAAO,EAAE3B,SAAS,CAACY,KAAV,CAAgB;MACvBgB,KAAK,EAAE5B,SAAS,CAACM,MADM;MAEvBuB,OAAO,EAAE7B,SAAS,CAACe;IAFI,CAAhB,CADc;IAKvBe,IAAI,EAAE9B,SAAS,CAACe;EALO,CAAhB,CAHuB;EAUhCN,UAAU,EAAET,SAAS,CAACU,IAVU;EAWhCqB,KAAK,EAAE/B,SAAS,CAACM,MAXe;EAYhC0B,SAAS,EAAEhC,SAAS,CAACY,KAAV,CAAgB;IACzBQ,KAAK,EAAEpB,SAAS,CAACe,MADQ;IAEzBa,KAAK,EAAE5B,SAAS,CAACM,MAFQ;IAGzB2B,GAAG,EAAEjC,SAAS,CAACe;EAHU,CAAhB,CAZqB;EAiBhCmB,OAAO,EAAElC,SAAS,CAACe,MAjBa;EAkBhCC,MAAM,EAAEhB,SAAS,CAACe;AAlBc,CAA3B;AAqBP,OAAO,MAAMoB,sBAAsB,GAAG;EACpCC,MAAM,EAAEpC,SAAS,CAACqC,IADkB;EAEpCV,OAAO,EAAE3B,SAAS,CAACK,OAAV,CACPL,SAAS,CAACY,KAAV,CAAgB;IACdgB,KAAK,EAAE5B,SAAS,CAACM;EADH,CAAhB,CADO,CAF2B;EAOpCc,KAAK,EAAEpB,SAAS,CAACe;AAPmB,CAA/B;AAUP,OAAO,MAAMuB,iBAAiB,GAAG;EAC/BC,IAAI,EAAEvC,SAAS,CAACe,MADe;EAE/BJ,MAAM,EAAEX,SAAS,CAACK,OAAV,CAAkBL,SAAS,CAACe,MAA5B;AAFuB,CAA1B,C,CAKP"}