@coorpacademy/components 11.9.2-alpha.1 → 11.9.2

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 (98) hide show
  1. package/es/atom/drag-and-drop/style.css +14 -9
  2. package/es/atom/image-upload/index.d.ts +6 -1
  3. package/es/atom/image-upload/index.d.ts.map +1 -1
  4. package/es/atom/image-upload/index.js +24 -4
  5. package/es/atom/image-upload/index.js.map +1 -1
  6. package/es/atom/image-upload/style.css +7 -0
  7. package/es/atom/review-presentation/index.d.ts.map +1 -1
  8. package/es/atom/review-presentation/index.js +62 -12
  9. package/es/atom/review-presentation/index.js.map +1 -1
  10. package/es/atom/review-presentation/style.css +67 -7
  11. package/es/atom/title/index.d.ts +1 -0
  12. package/es/atom/title/index.d.ts.map +1 -1
  13. package/es/atom/title/index.js +14 -5
  14. package/es/atom/title/index.js.map +1 -1
  15. package/es/atom/title/style.css +6 -0
  16. package/es/molecule/brand-form-group/index.d.ts +5 -0
  17. package/es/molecule/brand-form-group/index.d.ts.map +1 -1
  18. package/es/molecule/brand-form-group/index.js +4 -1
  19. package/es/molecule/brand-form-group/index.js.map +1 -1
  20. package/es/molecule/brand-form-group/style.css +9 -10
  21. package/es/molecule/drag-and-drop-wrapper/index.d.ts +2 -0
  22. package/es/molecule/setup-slide/index.d.ts +2 -0
  23. package/es/molecule/setup-slider/index.d.ts +2 -0
  24. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +3 -0
  25. package/es/organism/brand-form/index.d.ts +5 -0
  26. package/es/organism/rewards-form/index.d.ts +3 -0
  27. package/es/organism/wizard-contents/index.d.ts +8 -0
  28. package/es/template/activity/engine-stars.css +33 -16
  29. package/es/template/activity/engine-stars.d.ts +17 -15
  30. package/es/template/activity/engine-stars.d.ts.map +1 -1
  31. package/es/template/activity/engine-stars.js +115 -128
  32. package/es/template/activity/engine-stars.js.map +1 -1
  33. package/es/template/activity/index.d.ts +0 -1
  34. package/es/template/activity/index.d.ts.map +1 -1
  35. package/es/template/activity/index.js +9 -18
  36. package/es/template/activity/index.js.map +1 -1
  37. package/es/template/activity/progression-item.js +1 -1
  38. package/es/template/activity/progression-item.js.map +1 -1
  39. package/es/template/activity/stars-summary.d.ts +0 -1
  40. package/es/template/activity/stars-summary.d.ts.map +1 -1
  41. package/es/template/activity/stars-summary.js +5 -10
  42. package/es/template/activity/stars-summary.js.map +1 -1
  43. package/es/template/back-office/brand-update/index.d.ts +13 -0
  44. package/lib/atom/drag-and-drop/style.css +14 -9
  45. package/lib/atom/image-upload/index.d.ts +6 -1
  46. package/lib/atom/image-upload/index.d.ts.map +1 -1
  47. package/lib/atom/image-upload/index.js +25 -4
  48. package/lib/atom/image-upload/index.js.map +1 -1
  49. package/lib/atom/image-upload/style.css +7 -0
  50. package/lib/atom/review-presentation/index.d.ts.map +1 -1
  51. package/lib/atom/review-presentation/index.js +66 -13
  52. package/lib/atom/review-presentation/index.js.map +1 -1
  53. package/lib/atom/review-presentation/style.css +67 -7
  54. package/lib/atom/title/index.d.ts +1 -0
  55. package/lib/atom/title/index.d.ts.map +1 -1
  56. package/lib/atom/title/index.js +14 -5
  57. package/lib/atom/title/index.js.map +1 -1
  58. package/lib/atom/title/style.css +6 -0
  59. package/lib/molecule/brand-form-group/index.d.ts +5 -0
  60. package/lib/molecule/brand-form-group/index.d.ts.map +1 -1
  61. package/lib/molecule/brand-form-group/index.js +4 -1
  62. package/lib/molecule/brand-form-group/index.js.map +1 -1
  63. package/lib/molecule/brand-form-group/style.css +9 -10
  64. package/lib/molecule/drag-and-drop-wrapper/index.d.ts +2 -0
  65. package/lib/molecule/setup-slide/index.d.ts +2 -0
  66. package/lib/molecule/setup-slider/index.d.ts +2 -0
  67. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +3 -0
  68. package/lib/organism/brand-form/index.d.ts +5 -0
  69. package/lib/organism/rewards-form/index.d.ts +3 -0
  70. package/lib/organism/wizard-contents/index.d.ts +8 -0
  71. package/lib/template/activity/engine-stars.css +33 -16
  72. package/lib/template/activity/engine-stars.d.ts +17 -15
  73. package/lib/template/activity/engine-stars.d.ts.map +1 -1
  74. package/lib/template/activity/engine-stars.js +116 -135
  75. package/lib/template/activity/engine-stars.js.map +1 -1
  76. package/lib/template/activity/index.d.ts +0 -1
  77. package/lib/template/activity/index.d.ts.map +1 -1
  78. package/lib/template/activity/index.js +9 -21
  79. package/lib/template/activity/index.js.map +1 -1
  80. package/lib/template/activity/progression-item.js +1 -1
  81. package/lib/template/activity/progression-item.js.map +1 -1
  82. package/lib/template/activity/stars-summary.d.ts +0 -1
  83. package/lib/template/activity/stars-summary.d.ts.map +1 -1
  84. package/lib/template/activity/stars-summary.js +5 -10
  85. package/lib/template/activity/stars-summary.js.map +1 -1
  86. package/lib/template/back-office/brand-update/index.d.ts +13 -0
  87. package/locales/en/global.json +0 -1
  88. package/package.json +3 -4
  89. package/es/atom/tooltip/index.d.ts +0 -22
  90. package/es/atom/tooltip/index.d.ts.map +0 -1
  91. package/es/atom/tooltip/index.js +0 -117
  92. package/es/atom/tooltip/index.js.map +0 -1
  93. package/es/atom/tooltip/style.css +0 -96
  94. package/lib/atom/tooltip/index.d.ts +0 -22
  95. package/lib/atom/tooltip/index.d.ts.map +0 -1
  96. package/lib/atom/tooltip/index.js +0 -137
  97. package/lib/atom/tooltip/index.js.map +0 -1
  98. package/lib/atom/tooltip/style.css +0 -96
@@ -1,15 +1,11 @@
1
1
  import _noop from "lodash/fp/noop";
2
2
  import _get from "lodash/fp/get";
3
-
4
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
-
6
3
  import classnames from 'classnames';
7
- import React, { useCallback, useMemo, useState, useRef } from 'react';
4
+ import React from 'react';
5
+ import ReactTooltip from 'react-tooltip';
8
6
  import PropTypes from 'prop-types';
9
- import { v5 as uuidV5 } from 'uuid';
10
7
  import { NovaCompositionCoorpacademyStar as StarIcon, NovaCompositionCoorpacademyTimer as TimerIcon, NovaCompositionCoorpacademyBolt as BoltIcon, NovaSolidSchoolScienceGraduationHat as CertificationIcon, NovaSolidContentContentBook1 as LearnerIcon, NovaSolidVoteRewardsRewardsBadge1 as BonusIcon, NovaCompositionCoorpacademyScorm as ScormIcon, NovaCompositionCoorpacademyArticle as ArticleIcon, NovaCompositionCoorpacademyVideo as VideoIcon, NovaCompositionCoorpacademyMicrophone as PodcastIcon, NovaCompositionCoorpacademyRevision as RevisionIcon } from '@coorpacademy/nova-icons';
11
- import Provider, { GetSkinFromContext, GetTranslateFromContext } from '../../atom/provider';
12
- import ToolTip, { toggleStateOnKeyPress } from '../../atom/tooltip';
8
+ import Provider from '../../atom/provider';
13
9
  import Link from '../../atom/link';
14
10
  import style from './engine-stars.css';
15
11
  const ICONS = {
@@ -25,136 +21,131 @@ const ICONS = {
25
21
  review: RevisionIcon
26
22
  };
27
23
 
28
- const ToolTipContent = ({
29
- preMessage,
30
- linkMessage,
31
- endMessage,
32
- onClick,
33
- color,
34
- handleContentMouseOver
35
- }) => /*#__PURE__*/React.createElement("p", {
36
- className: style.toolTipContent,
37
- onMouseOver: handleContentMouseOver,
38
- "data-testid": "react-tooltip-content"
39
- }, /*#__PURE__*/React.createElement("span", null, preMessage), /*#__PURE__*/React.createElement(Link, {
40
- onClick: onClick,
41
- style: {
42
- color
24
+ const ToolTip = ({
25
+ toolTip,
26
+ id
27
+ }, context) => {
28
+ if (!toolTip) {
29
+ return null;
43
30
  }
44
- }, linkMessage), /*#__PURE__*/React.createElement("span", null, endMessage));
45
31
 
46
- ToolTipContent.propTypes = process.env.NODE_ENV !== "production" ? {
47
- preMessage: PropTypes.string,
48
- linkMessage: PropTypes.string,
49
- endMessage: PropTypes.string,
50
- color: PropTypes.string,
51
- onClick: PropTypes.func,
52
- handleContentMouseOver: PropTypes.func
32
+ const {
33
+ skin
34
+ } = context;
35
+ const {
36
+ preMessage,
37
+ endMessage,
38
+ linkMessage,
39
+ onClick
40
+ } = toolTip;
41
+
42
+ const primary = _get('common.primary', skin);
43
+
44
+ const handleClick = onClick;
45
+ return /*#__PURE__*/React.createElement(ReactTooltip, {
46
+ id: id,
47
+ className: style.toolTip,
48
+ "data-event-off": "click",
49
+ place: "left",
50
+ effect: "solid",
51
+ delayHide: 500
52
+ }, /*#__PURE__*/React.createElement("p", {
53
+ className: style.toolTipContent
54
+ }, /*#__PURE__*/React.createElement("span", null, `${preMessage}`), /*#__PURE__*/React.createElement(Link, {
55
+ onClick: handleClick,
56
+ style: {
57
+ color: primary
58
+ }
59
+ }, `${linkMessage}`), /*#__PURE__*/React.createElement("span", null, `${endMessage}`)));
60
+ };
61
+
62
+ ToolTip.contextTypes = {
63
+ skin: Provider.childContextTypes.skin
64
+ };
65
+ ToolTip.propTypes = process.env.NODE_ENV !== "production" ? {
66
+ toolTip: PropTypes.shape({
67
+ preMessage: PropTypes.string,
68
+ linkMessage: PropTypes.string,
69
+ endMessage: PropTypes.string,
70
+ onClick: PropTypes.func
71
+ }),
72
+ id: PropTypes.string.isRequired
53
73
  } : {};
54
74
 
55
- const EngineStars = (props, legacyContext) => {
56
- const skin = GetSkinFromContext(legacyContext);
57
- const translate = GetTranslateFromContext(legacyContext);
58
- const {
59
- toolTip = null,
60
- disabled,
61
- type,
62
- stars,
63
- title,
64
- active = false,
65
- onClick = _noop,
66
- className
67
- } = props;
75
+ class EngineStars extends React.Component {
76
+ constructor(props, context) {
77
+ super(props, context);
68
78
 
69
- const handleClick = e => {
70
- e.stopPropagation();
71
- e.preventDefault();
72
- onClick(e);
73
- };
79
+ this.handleClick = e => {
80
+ e.stopPropagation();
81
+ e.preventDefault();
82
+ const {
83
+ onClick
84
+ } = this.props;
85
+ onClick && onClick(e);
86
+ };
74
87
 
75
- const dark = _get('common.dark', skin);
88
+ this.handleClick = this.handleClick.bind(this);
89
+ }
76
90
 
77
- const light = _get('common.light', skin);
91
+ render() {
92
+ const {
93
+ skin
94
+ } = this.context;
95
+ const {
96
+ disabled,
97
+ type,
98
+ stars,
99
+ title,
100
+ active = false,
101
+ onClick = _noop,
102
+ toolTip = null
103
+ } = this.props;
78
104
 
79
- const IconType = ICONS[type];
105
+ const dark = _get('common.dark', skin);
80
106
 
81
- const primary = _get('common.primary', skin); // to replace by useId when React17 is bumped to React18
107
+ const light = _get('common.light', skin);
82
108
 
109
+ const primary = _get('common.primary', skin);
83
110
 
84
- const [engineStarsContentId] = useState(disabled ? uuidV5('engine-stars', uuidV5.URL) : undefined);
85
- const [toolTipIsVisible, setToolTipIsVisible] = useState(false);
86
- const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);
87
- const buttonRef = useRef(null);
88
- const handleKeyPress = useCallback(event => {
89
- toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
90
- }, [toolTipIsVisible]);
91
- const handleMouseOver = useCallback(() => {
92
- mouseLeaveTimer && clearTimeout(mouseLeaveTimer);
93
- setToolTipIsVisible(true);
94
- }, [mouseLeaveTimer]);
95
- const handleContentMouseOver = useCallback(() => {
96
- mouseLeaveTimer &&
97
- /* istanbul ignore next */
98
- clearTimeout(mouseLeaveTimer);
99
- }, [mouseLeaveTimer]);
100
- const handleMouseLeave = useCallback(() => {
101
- setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), 500));
102
- }, []);
103
- const toolTipContentProps = useMemo(() => toolTip ? {
104
- preMessage: toolTip.preMessage,
105
- linkMessage: toolTip.linkMessage,
106
- endMessage: toolTip.endMessage,
107
- color: primary,
108
- onClick: toolTip.onClick
109
- } : null, [primary, toolTip]);
110
- const toolTipProps = {
111
- closeToolTipInformationTextAriaLabel: translate('Press the escape key to close the information text')
112
- };
113
- const TooltipContent = useCallback(_props => /*#__PURE__*/React.createElement(ToolTipContent, _extends({}, _extends({}, toolTipContentProps, _props), {
114
- handleContentMouseOver: handleContentMouseOver
115
- })), [handleContentMouseOver, toolTipContentProps]);
116
- return /*#__PURE__*/React.createElement("button", {
117
- ref: buttonRef,
118
- "data-tip": disabled,
119
- "data-engine": type,
120
- "data-testid": `engine-stars-${type}` // eslint-disable-next-line no-nested-ternary
121
- ,
122
- onClick: disabled ? handleKeyPress : active ? _noop : handleClick,
123
- "data-for": engineStarsContentId,
124
- className: classnames([style.engineStars, disabled ? style.disabled : '', active ? style.active : '', onClick !== _noop ? style.clickable : null, className]),
125
- type: "button",
126
- "data-tooltip-place": "left",
127
- onKeyDown: handleKeyPress,
128
- onMouseLeave: handleMouseLeave,
129
- onMouseOver: handleMouseOver
130
- }, disabled ? /*#__PURE__*/React.createElement(ToolTip, _extends({}, toolTipProps, {
131
- anchorId: engineStarsContentId,
132
- toolTipIsVisible: toolTipIsVisible,
133
- TooltipContent: TooltipContent,
134
- mouseLeaveTimer: mouseLeaveTimer
135
- })) : null, /*#__PURE__*/React.createElement("span", {
136
- className: style.engineIcon,
137
- style: {
138
- backgroundColor: onClick === _noop ? light : primary
139
- }
140
- }, /*#__PURE__*/React.createElement(IconType, {
141
- className: style.iconHeader,
142
- width: "30"
143
- })), /*#__PURE__*/React.createElement("div", {
144
- className: style.score,
145
- style: {
111
+ const IconType = ICONS[type];
112
+ return /*#__PURE__*/React.createElement("div", {
113
+ "data-tip": disabled,
114
+ "data-engine": type,
115
+ onClick: disabled || active ? _noop : this.handleClick,
116
+ "data-for": disabled && type,
117
+ className: classnames([style.engineStars, disabled ? style.disabled : '', active ? style.active : '', onClick !== _noop ? style.clickable : null])
118
+ }, /*#__PURE__*/React.createElement(ToolTip, {
119
+ toolTip: toolTip,
120
+ id: type
121
+ }), /*#__PURE__*/React.createElement("span", {
122
+ className: style.engineIcon,
123
+ style: {
124
+ backgroundColor: onClick === _noop ? light : primary
125
+ }
126
+ }, /*#__PURE__*/React.createElement(IconType, {
127
+ className: style.iconHeader,
128
+ width: "30"
129
+ })), /*#__PURE__*/React.createElement("div", {
130
+ className: style.score,
131
+ style: {
132
+ color: active ? primary : dark
133
+ }
134
+ }, /*#__PURE__*/React.createElement("p", {
135
+ "data-name": "star-counter"
136
+ }, stars), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(StarIcon, {
137
+ className: style.iconStar,
146
138
  color: active ? primary : dark
147
- }
148
- }, /*#__PURE__*/React.createElement("p", {
149
- "data-name": "star-counter"
150
- }, stars), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(StarIcon, {
151
- className: style.iconStar,
152
- color: active ? primary : dark
153
- }))), /*#__PURE__*/React.createElement("div", {
154
- className: style.scoreTitle
155
- }, title));
156
- };
139
+ }))), /*#__PURE__*/React.createElement("div", {
140
+ className: style.scoreTitle
141
+ }, title));
142
+ }
143
+
144
+ }
157
145
 
146
+ EngineStars.contextTypes = {
147
+ skin: Provider.childContextTypes.skin
148
+ };
158
149
  EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
159
150
  type: PropTypes.string.isRequired,
160
151
  stars: PropTypes.number.isRequired,
@@ -162,7 +153,6 @@ EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
162
153
  active: PropTypes.bool,
163
154
  disabled: PropTypes.bool,
164
155
  onClick: PropTypes.func,
165
- className: PropTypes.string,
166
156
  toolTip: PropTypes.shape({
167
157
  preMessage: PropTypes.string,
168
158
  linkMessage: PropTypes.string,
@@ -170,8 +160,5 @@ EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
170
160
  onClick: PropTypes.func
171
161
  })
172
162
  } : {};
173
- EngineStars.contextTypes = {
174
- skin: Provider.childContextTypes.skin
175
- };
176
163
  export default EngineStars;
177
164
  //# sourceMappingURL=engine-stars.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-stars.js","names":["classnames","React","useCallback","useMemo","useState","useRef","PropTypes","v5","uuidV5","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyTimer","TimerIcon","NovaCompositionCoorpacademyBolt","BoltIcon","NovaSolidSchoolScienceGraduationHat","CertificationIcon","NovaSolidContentContentBook1","LearnerIcon","NovaSolidVoteRewardsRewardsBadge1","BonusIcon","NovaCompositionCoorpacademyScorm","ScormIcon","NovaCompositionCoorpacademyArticle","ArticleIcon","NovaCompositionCoorpacademyVideo","VideoIcon","NovaCompositionCoorpacademyMicrophone","PodcastIcon","NovaCompositionCoorpacademyRevision","RevisionIcon","Provider","GetSkinFromContext","GetTranslateFromContext","ToolTip","toggleStateOnKeyPress","Link","style","ICONS","microlearning","learner","battle","certifications","bonus","article","scorm","video","podcast","review","ToolTipContent","preMessage","linkMessage","endMessage","onClick","color","handleContentMouseOver","toolTipContent","propTypes","string","func","EngineStars","props","legacyContext","skin","translate","toolTip","disabled","type","stars","title","active","className","handleClick","e","stopPropagation","preventDefault","dark","light","IconType","primary","engineStarsContentId","URL","undefined","toolTipIsVisible","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","buttonRef","handleKeyPress","event","handleMouseOver","clearTimeout","handleMouseLeave","setTimeout","toolTipContentProps","toolTipProps","closeToolTipInformationTextAriaLabel","TooltipContent","_props","engineStars","clickable","engineIcon","backgroundColor","iconHeader","score","iconStar","scoreTitle","isRequired","number","bool","shape","contextTypes","childContextTypes"],"sources":["../../../src/template/activity/engine-stars.js"],"sourcesContent":["import classnames from 'classnames';\nimport React, {useCallback, useMemo, useState, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport {v5 as uuidV5} from 'uuid';\nimport {\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon,\n NovaCompositionCoorpacademyBolt as BoltIcon,\n NovaSolidSchoolScienceGraduationHat as CertificationIcon,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaSolidVoteRewardsRewardsBadge1 as BonusIcon,\n NovaCompositionCoorpacademyScorm as ScormIcon,\n NovaCompositionCoorpacademyArticle as ArticleIcon,\n NovaCompositionCoorpacademyVideo as VideoIcon,\n NovaCompositionCoorpacademyMicrophone as PodcastIcon,\n NovaCompositionCoorpacademyRevision as RevisionIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Link from '../../atom/link';\nimport style from './engine-stars.css';\n\nconst ICONS = {\n microlearning: TimerIcon,\n learner: LearnerIcon,\n battle: BoltIcon,\n certifications: CertificationIcon,\n bonus: BonusIcon,\n article: ArticleIcon,\n scorm: ScormIcon,\n video: VideoIcon,\n podcast: PodcastIcon,\n review: RevisionIcon\n};\n\nconst ToolTipContent = ({\n preMessage,\n linkMessage,\n endMessage,\n onClick,\n color,\n handleContentMouseOver\n}) => (\n <p\n className={style.toolTipContent}\n onMouseOver={handleContentMouseOver}\n data-testid=\"react-tooltip-content\"\n >\n <span>{preMessage}</span>\n <Link\n onClick={onClick}\n style={{\n color\n }}\n >\n {linkMessage}\n </Link>\n <span>{endMessage}</span>\n </p>\n);\n\nToolTipContent.propTypes = {\n preMessage: PropTypes.string,\n linkMessage: PropTypes.string,\n endMessage: PropTypes.string,\n color: PropTypes.string,\n onClick: PropTypes.func,\n handleContentMouseOver: PropTypes.func\n};\n\nconst EngineStars = (props, legacyContext) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const {\n toolTip = null,\n disabled,\n type,\n stars,\n title,\n active = false,\n onClick = noop,\n className\n } = props;\n\n const handleClick = e => {\n e.stopPropagation();\n e.preventDefault();\n onClick(e);\n };\n const dark = get('common.dark', skin);\n const light = get('common.light', skin);\n const IconType = ICONS[type];\n\n const primary = get('common.primary', skin);\n\n // to replace by useId when React17 is bumped to React18\n const [engineStarsContentId] = useState(\n disabled ? uuidV5('engine-stars', uuidV5.URL) : undefined\n );\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n const buttonRef = useRef(null);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), 500));\n }, []);\n\n const toolTipContentProps = useMemo(\n () =>\n toolTip\n ? {\n preMessage: toolTip.preMessage,\n linkMessage: toolTip.linkMessage,\n endMessage: toolTip.endMessage,\n color: primary,\n onClick: toolTip.onClick\n }\n : null,\n [primary, toolTip]\n );\n\n const toolTipProps = {\n closeToolTipInformationTextAriaLabel: translate(\n 'Press the escape key to close the information text'\n )\n };\n\n const TooltipContent = useCallback(\n _props => (\n <ToolTipContent\n {...{...toolTipContentProps, ..._props}}\n handleContentMouseOver={handleContentMouseOver}\n />\n ),\n [handleContentMouseOver, toolTipContentProps]\n );\n\n return (\n <button\n ref={buttonRef}\n data-tip={disabled}\n data-engine={type}\n data-testid={`engine-stars-${type}`}\n // eslint-disable-next-line no-nested-ternary\n onClick={disabled ? handleKeyPress : active ? noop : handleClick}\n data-for={engineStarsContentId}\n className={classnames([\n style.engineStars,\n disabled ? style.disabled : '',\n active ? style.active : '',\n onClick !== noop ? style.clickable : null,\n className\n ])}\n type=\"button\"\n data-tooltip-place=\"left\"\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {disabled ? (\n <ToolTip\n {...toolTipProps}\n anchorId={engineStarsContentId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={TooltipContent}\n mouseLeaveTimer={mouseLeaveTimer}\n />\n ) : null}\n <span\n className={style.engineIcon}\n style={{\n backgroundColor: onClick === noop ? light : primary\n }}\n >\n <IconType className={style.iconHeader} width=\"30\" />\n </span>\n <div\n className={style.score}\n style={{\n color: active ? primary : dark\n }}\n >\n <p data-name=\"star-counter\">{stars}</p>\n <span>\n <StarIcon className={style.iconStar} color={active ? primary : dark} />\n </span>\n </div>\n <div className={style.scoreTitle}>{title}</div>\n </button>\n );\n};\n\nEngineStars.propTypes = {\n type: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string,\n toolTip: PropTypes.shape({\n preMessage: PropTypes.string,\n linkMessage: PropTypes.string,\n endMessage: PropTypes.string,\n onClick: PropTypes.func\n })\n};\n\nEngineStars.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default EngineStars;\n"],"mappings":"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"}
1
+ {"version":3,"file":"engine-stars.js","names":["classnames","React","ReactTooltip","PropTypes","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyTimer","TimerIcon","NovaCompositionCoorpacademyBolt","BoltIcon","NovaSolidSchoolScienceGraduationHat","CertificationIcon","NovaSolidContentContentBook1","LearnerIcon","NovaSolidVoteRewardsRewardsBadge1","BonusIcon","NovaCompositionCoorpacademyScorm","ScormIcon","NovaCompositionCoorpacademyArticle","ArticleIcon","NovaCompositionCoorpacademyVideo","VideoIcon","NovaCompositionCoorpacademyMicrophone","PodcastIcon","NovaCompositionCoorpacademyRevision","RevisionIcon","Provider","Link","style","ICONS","microlearning","learner","battle","certifications","bonus","article","scorm","video","podcast","review","ToolTip","toolTip","id","context","skin","preMessage","endMessage","linkMessage","onClick","primary","handleClick","toolTipContent","color","contextTypes","childContextTypes","propTypes","shape","string","func","isRequired","EngineStars","Component","constructor","props","e","stopPropagation","preventDefault","bind","render","disabled","type","stars","title","active","dark","light","IconType","engineStars","clickable","engineIcon","backgroundColor","iconHeader","score","iconStar","scoreTitle","number","bool"],"sources":["../../../src/template/activity/engine-stars.js"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon,\n NovaCompositionCoorpacademyBolt as BoltIcon,\n NovaSolidSchoolScienceGraduationHat as CertificationIcon,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaSolidVoteRewardsRewardsBadge1 as BonusIcon,\n NovaCompositionCoorpacademyScorm as ScormIcon,\n NovaCompositionCoorpacademyArticle as ArticleIcon,\n NovaCompositionCoorpacademyVideo as VideoIcon,\n NovaCompositionCoorpacademyMicrophone as PodcastIcon,\n NovaCompositionCoorpacademyRevision as RevisionIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport Link from '../../atom/link';\nimport style from './engine-stars.css';\n\nconst ICONS = {\n microlearning: TimerIcon,\n learner: LearnerIcon,\n battle: BoltIcon,\n certifications: CertificationIcon,\n bonus: BonusIcon,\n article: ArticleIcon,\n scorm: ScormIcon,\n video: VideoIcon,\n podcast: PodcastIcon,\n review: RevisionIcon\n};\n\nconst ToolTip = ({toolTip, id}, context) => {\n if (!toolTip) {\n return null;\n }\n\n const {skin} = context;\n const {preMessage, endMessage, linkMessage, onClick} = toolTip;\n const primary = get('common.primary', skin);\n\n const handleClick = onClick;\n\n return (\n <ReactTooltip\n id={id}\n className={style.toolTip}\n data-event-off=\"click\"\n place=\"left\"\n effect=\"solid\"\n delayHide={500}\n >\n <p className={style.toolTipContent}>\n <span>{`${preMessage}`}</span>\n <Link\n onClick={handleClick}\n style={{\n color: primary\n }}\n >\n {`${linkMessage}`}\n </Link>\n <span>{`${endMessage}`}</span>\n </p>\n </ReactTooltip>\n );\n};\n\nToolTip.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nToolTip.propTypes = {\n toolTip: PropTypes.shape({\n preMessage: PropTypes.string,\n linkMessage: PropTypes.string,\n endMessage: PropTypes.string,\n onClick: PropTypes.func\n }),\n id: PropTypes.string.isRequired\n};\n\nclass EngineStars extends React.Component {\n static propTypes = {\n type: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n toolTip: PropTypes.shape({\n preMessage: PropTypes.string,\n linkMessage: PropTypes.string,\n endMessage: PropTypes.string,\n onClick: PropTypes.func\n })\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props, context) {\n super(props, context);\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick = e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = this.props;\n onClick && onClick(e);\n };\n\n render() {\n const {skin} = this.context;\n const {\n disabled,\n type,\n stars,\n title,\n active = false,\n onClick = noop,\n toolTip = null\n } = this.props;\n const dark = get('common.dark', skin);\n const light = get('common.light', skin);\n const primary = get('common.primary', skin);\n const IconType = ICONS[type];\n\n return (\n <div\n data-tip={disabled}\n data-engine={type}\n onClick={disabled || active ? noop : this.handleClick}\n data-for={disabled && type}\n className={classnames([\n style.engineStars,\n disabled ? style.disabled : '',\n active ? style.active : '',\n onClick !== noop ? style.clickable : null\n ])}\n >\n <ToolTip toolTip={toolTip} id={type} />\n\n <span\n className={style.engineIcon}\n style={{\n backgroundColor: onClick === noop ? light : primary\n }}\n >\n <IconType className={style.iconHeader} width=\"30\" />\n </span>\n <div\n className={style.score}\n style={{\n color: active ? primary : dark\n }}\n >\n <p data-name=\"star-counter\">{stars}</p>\n <span>\n <StarIcon className={style.iconStar} color={active ? primary : dark} />\n </span>\n </div>\n <div className={style.scoreTitle}>{title}</div>\n </div>\n );\n }\n}\n\nexport default EngineStars;\n"],"mappings":"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"}
@@ -39,7 +39,6 @@ declare namespace Progression {
39
39
  active: PropTypes.Requireable<boolean>;
40
40
  disabled: PropTypes.Requireable<boolean>;
41
41
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
42
- className: PropTypes.Requireable<string>;
43
42
  toolTip: PropTypes.Requireable<PropTypes.InferProps<{
44
43
  preMessage: PropTypes.Requireable<string>;
45
44
  linkMessage: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAmBA,0EA0GC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/activity/index.js"],"names":[],"mappings":";AAeA,0EAuGC"}
@@ -3,8 +3,6 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
3
3
  import React, { useCallback } from 'react';
4
4
  import get from 'lodash/fp/get';
5
5
  import isEmpty from 'lodash/fp/isEmpty';
6
- import map from 'lodash/fp/map';
7
- import noop from 'lodash/fp/noop';
8
6
  import omit from 'lodash/fp/omit';
9
7
  import PropTypes from 'prop-types';
10
8
  import classnames from 'classnames';
@@ -16,9 +14,6 @@ import ProgressionItem from './progression-item';
16
14
  import EngineStars from './engine-stars';
17
15
  import StarsSummary from './stars-summary';
18
16
  import style from './style.css';
19
- const mapWithIndex = map.convert({
20
- cap: false
21
- });
22
17
 
23
18
  const Progression = (props, legacyContext) => {
24
19
  const {
@@ -40,9 +35,9 @@ const Progression = (props, legacyContext) => {
40
35
  e.stopPropagation();
41
36
  e.preventDefault();
42
37
  const {
43
- onClick = noop
38
+ onClick
44
39
  } = recommendation;
45
- onClick(e);
40
+ onClick && onClick(e);
46
41
  }, [recommendation]);
47
42
  const handleSelectTheme = useCallback(e => {
48
43
  themeFilterOnChange && themeFilterOnChange(e);
@@ -51,10 +46,10 @@ const Progression = (props, legacyContext) => {
51
46
  const loader = loading ? /*#__PURE__*/React.createElement("div", {
52
47
  className: style.loader
53
48
  }, /*#__PURE__*/React.createElement(Loader, null)) : null;
54
- const allProgressions = mapWithIndex((progression, index) => /*#__PURE__*/React.createElement(ProgressionItem, _extends({}, omit(['ref'], progression), {
55
- key: `${index}-${progression.ref}`,
49
+ const allProgressions = progressions.map(progression => /*#__PURE__*/React.createElement(ProgressionItem, _extends({}, omit(['ref'], progression), {
50
+ key: progression.ref,
56
51
  adaptiveAriaLabel: adaptiveAriaLabel
57
- })), progressions);
52
+ })));
58
53
  const coreProgression = /*#__PURE__*/React.createElement("div", {
59
54
  "data-name": "activityCore",
60
55
  className: style.core
@@ -90,17 +85,13 @@ const Progression = (props, legacyContext) => {
90
85
  return /*#__PURE__*/React.createElement("div", {
91
86
  className: style.default
92
87
  }, /*#__PURE__*/React.createElement("div", {
93
- "data-name": "activity-header",
94
- tabIndex: 0
88
+ "data-name": "activity-header"
95
89
  }, /*#__PURE__*/React.createElement("div", {
96
- className: style.mainTitle,
97
- tabIndex: 0
90
+ className: style.mainTitle
98
91
  }, /*#__PURE__*/React.createElement("span", null, mainTitle), " ", mainSubtitle), /*#__PURE__*/React.createElement("div", {
99
- className: style.headerProgression,
100
- tabIndex: 0
92
+ className: style.headerProgression
101
93
  }, /*#__PURE__*/React.createElement("div", {
102
- className: style.wrapperCta,
103
- tabIndex: 0
94
+ className: style.wrapperCta
104
95
  }, themeSelect, recommendationSection), /*#__PURE__*/React.createElement(StarsSummary, {
105
96
  engines: engines,
106
97
  total: total
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","get","isEmpty","map","noop","omit","PropTypes","classnames","Provider","GetSkinFromContext","Button","Select","Loader","ProgressionItem","EngineStars","StarsSummary","style","mapWithIndex","convert","cap","Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","onChange","themeFilterOnChange","handleClick","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","loader","allProgressions","progression","index","ref","coreProgression","core","themeSelect","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","childContextTypes","propTypes","string","isRequired","shape","label","stars","number","arrayOf","bool","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport map from 'lodash/fp/map';\nimport noop from 'lodash/fp/noop';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst mapWithIndex = map.convert({cap: false});\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick = noop} = recommendation;\n onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = mapWithIndex(\n (progression, index) => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={`${index}-${progression.ref}`}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ),\n progressions\n );\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\" tabIndex={0}>\n <div className={style.mainTitle} tabIndex={0}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression} tabIndex={0}>\n <div className={style.wrapperCta} tabIndex={0}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n })\n};\n\nexport default Progression;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","get","isEmpty","omit","PropTypes","classnames","Provider","GetSkinFromContext","Button","Select","Loader","ProgressionItem","EngineStars","StarsSummary","style","Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","onChange","themeFilterOnChange","handleClick","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","loader","allProgressions","map","progression","ref","coreProgression","core","themeSelect","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","childContextTypes","propTypes","string","isRequired","shape","label","stars","number","arrayOf","bool","func"],"sources":["../../../src/template/activity/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport get from 'lodash/fp/get';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport omit from 'lodash/fp/omit';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport Button from '../../atom/button';\nimport Select from '../../atom/select';\nimport Loader from '../../atom/loader';\nimport ProgressionItem from './progression-item';\nimport EngineStars from './engine-stars';\nimport StarsSummary from './stars-summary';\nimport style from './style.css';\n\nconst Progression = (props, legacyContext) => {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading\n } = props;\n const skin = GetSkinFromContext(legacyContext);\n const {onChange: themeFilterOnChange} = themeFilter;\n\n const handleClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n },\n [recommendation]\n );\n\n const handleSelectTheme = useCallback(\n e => {\n themeFilterOnChange && themeFilterOnChange(e);\n },\n [themeFilterOnChange]\n );\n\n const primary = get('common.primary', skin);\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n const allProgressions = progressions.map(progression => (\n <ProgressionItem\n {...omit(['ref'], progression)}\n key={progression.ref}\n adaptiveAriaLabel={adaptiveAriaLabel}\n />\n ));\n\n const coreProgression = (\n <div data-name=\"activityCore\" className={style.core}>\n {allProgressions}\n </div>\n );\n const themeSelect = !isEmpty(themeFilter.options) ? (\n <Select\n borderClassName={style.selectBorder}\n className={style.select}\n theme=\"thematiques\"\n options={themeFilter.options}\n onChange={handleSelectTheme}\n />\n ) : null;\n const recommendationSection = !isEmpty(recommendation) ? (\n <div className={style.recommendationWrapper}>\n <p className={style.recommendationSection}>{recommendation.title} </p>\n <p className={style.recommendationSection}>\n <span>{recommendation.subtitle} </span>\n <span\n className={classnames(style.course, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: recommendation.courseTitle}}\n />\n </p>\n <Button\n type=\"link\"\n onClick={handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\n\n return (\n <div className={style.default}>\n <div data-name=\"activity-header\">\n <div className={style.mainTitle}>\n <span>{mainTitle}</span> {mainSubtitle}\n </div>\n <div className={style.headerProgression}>\n <div className={style.wrapperCta}>\n {themeSelect}\n {recommendationSection}\n </div>\n <StarsSummary engines={engines} total={total} />\n </div>\n </div>\n <div className={style.wrapperProgression} data-name=\"activityList\">\n {coreProgression}\n {loader}\n </div>\n </div>\n );\n};\n\nProgression.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nProgression.propTypes = {\n mainTitle: PropTypes.string.isRequired,\n mainSubtitle: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n total: PropTypes.shape({\n label: PropTypes.string.isRequired,\n stars: PropTypes.number.isRequired\n }).isRequired,\n engines: PropTypes.arrayOf(PropTypes.shape(EngineStars.propTypes)),\n loading: PropTypes.bool.isRequired,\n progressions: PropTypes.arrayOf(\n PropTypes.shape({...ProgressionItem.propTypes, ref: PropTypes.string.isRequired})\n ),\n themeFilter: PropTypes.shape({\n options: Select.propTypes.options.isRequired,\n onChange: Select.propTypes.onChange\n }),\n recommendation: PropTypes.shape({\n cta: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n courseTitle: PropTypes.string.isRequired,\n onClick: PropTypes.func\n })\n};\n\nexport default Progression;\n"],"mappings":"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"}
@@ -59,7 +59,7 @@ const ProgressionItem = (props, context) => {
59
59
  const handleCTAClick = useMemo(() => e => {
60
60
  e.stopPropagation();
61
61
  e.preventDefault();
62
- onClick(e);
62
+ onClick && onClick(e);
63
63
  }, [onClick]);
64
64
  const link = disabled ? null : /*#__PURE__*/React.createElement(Link, {
65
65
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"progression-item.js","names":["React","useMemo","PropTypes","classnames","NovaCompositionNavigationArrowRight","ArrowRightIcon","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyTimer","TimerIcon","NovaCompositionCoorpacademyBolt","BoltIcon","NovaSolidSchoolScienceGraduationHat","CertificationIcon","NovaCompositionCoorpacademyAdaptive","AdaptiveIcon","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyScorm","ScormIcon","NovaCompositionCoorpacademyArticle","ArticleIcon","NovaCompositionCoorpacademyVideo","VideoIcon","NovaCompositionCoorpacademyMicrophone","PodcastIcon","NovaCompositionCoorpacademyRevision","RevisionIcon","Provider","ProgressBar","Link","style","ICONS","chapter","course","battle","certification","article","scorm","video","podcast","review","ProgressionItem","props","context","skin","disabled","adaptive","completion","label","level","onClick","stars","maxStars","state","type","steps","adaptiveAriaLabel","dark","primary","white","IconType","adaptiveIcon","backgroundColor","handleCTAClick","e","stopPropagation","preventDefault","link","color","cta","progressionItem","wrapperTitle","iconType","innerHTML","__html","smallStars","iconStar","borderRadius","propTypes","number","isRequired","bool","string","func","contextTypes","childContextTypes"],"sources":["../../../src/template/activity/progression-item.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRightIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon,\n NovaCompositionCoorpacademyBolt as BoltIcon,\n NovaSolidSchoolScienceGraduationHat as CertificationIcon,\n NovaCompositionCoorpacademyAdaptive as AdaptiveIcon,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyScorm as ScormIcon,\n NovaCompositionCoorpacademyArticle as ArticleIcon,\n NovaCompositionCoorpacademyVideo as VideoIcon,\n NovaCompositionCoorpacademyMicrophone as PodcastIcon,\n NovaCompositionCoorpacademyRevision as RevisionIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport ProgressBar from '../../molecule/progress-bar';\nimport Link from '../../atom/link';\nimport style from './progression-item.css';\n\nconst ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon,\n battle: BoltIcon,\n certification: CertificationIcon,\n article: ArticleIcon,\n scorm: ScormIcon,\n video: VideoIcon,\n podcast: PodcastIcon,\n review: RevisionIcon\n};\n\nconst ProgressionItem = (props, context) => {\n const {skin} = context;\n const {\n disabled = false,\n adaptive,\n completion,\n label,\n level,\n onClick = noop,\n stars,\n maxStars,\n state,\n type,\n steps = 0,\n adaptiveAriaLabel\n } = props;\n\n const dark = get('common.dark', skin);\n const primary = get('common.primary', skin);\n const white = get('common.white', skin);\n const IconType = ICONS[type];\n\n const adaptiveIcon = adaptive ? (\n <div\n className={style.adaptiveIcon}\n style={{\n backgroundColor: primary\n }}\n >\n <AdaptiveIcon color={white} height={14} aria-label={adaptiveAriaLabel} />\n </div>\n ) : null;\n\n const handleCTAClick = useMemo(\n () => e => {\n e.stopPropagation();\n e.preventDefault();\n onClick(e);\n },\n [onClick]\n );\n\n const link = disabled ? null : (\n <Link style={{color: primary}} onClick={handleCTAClick} data-progression-state={state}>\n <span className={style.cta}>\n {state} <ArrowRightIcon color={primary} height={12} width={20} />\n </span>\n </Link>\n );\n\n return (\n <div className={classnames(style.progressionItem, disabled ? style.disabled : '')}>\n <div className={style.wrapperTitle}>\n <IconType className={style.iconType} color={dark} />\n <div data-name=\"activityLabel\" className={style.label} title={label}>\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: label}}\n />\n {adaptiveIcon}\n </div>\n\n <div\n data-name=\"activityStars\"\n className={style.stars}\n style={{\n color: primary\n }}\n >\n {stars}\n {maxStars ? ' /' : null}\n {maxStars ? <span className={style.smallStars}>{maxStars}</span> : null}{' '}\n <StarIcon className={style.iconStar} color={primary} />\n </div>\n </div>\n <ProgressBar\n className={style.completion}\n value={completion * 100}\n max={100}\n steps={steps}\n style={{backgroundColor: primary, borderRadius: 0}}\n />\n <div className={style.state}>\n {link}\n <span className={style.level}>{level}</span>\n </div>\n </div>\n );\n};\n\nProgressionItem.propTypes = {\n completion: PropTypes.number.isRequired,\n stars: PropTypes.number.isRequired,\n maxStars: PropTypes.number,\n steps: PropTypes.number,\n disabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n level: PropTypes.string.isRequired,\n state: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n type: PropTypes.string.isRequired,\n adaptive: PropTypes.bool.isRequired,\n onClick: PropTypes.func\n};\n\nProgressionItem.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ProgressionItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"progression-item.js","names":["React","useMemo","PropTypes","classnames","NovaCompositionNavigationArrowRight","ArrowRightIcon","NovaCompositionCoorpacademyStar","StarIcon","NovaCompositionCoorpacademyTimer","TimerIcon","NovaCompositionCoorpacademyBolt","BoltIcon","NovaSolidSchoolScienceGraduationHat","CertificationIcon","NovaCompositionCoorpacademyAdaptive","AdaptiveIcon","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyScorm","ScormIcon","NovaCompositionCoorpacademyArticle","ArticleIcon","NovaCompositionCoorpacademyVideo","VideoIcon","NovaCompositionCoorpacademyMicrophone","PodcastIcon","NovaCompositionCoorpacademyRevision","RevisionIcon","Provider","ProgressBar","Link","style","ICONS","chapter","course","battle","certification","article","scorm","video","podcast","review","ProgressionItem","props","context","skin","disabled","adaptive","completion","label","level","onClick","stars","maxStars","state","type","steps","adaptiveAriaLabel","dark","primary","white","IconType","adaptiveIcon","backgroundColor","handleCTAClick","e","stopPropagation","preventDefault","link","color","cta","progressionItem","wrapperTitle","iconType","innerHTML","__html","smallStars","iconStar","borderRadius","propTypes","number","isRequired","bool","string","func","contextTypes","childContextTypes"],"sources":["../../../src/template/activity/progression-item.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRightIcon,\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon,\n NovaCompositionCoorpacademyBolt as BoltIcon,\n NovaSolidSchoolScienceGraduationHat as CertificationIcon,\n NovaCompositionCoorpacademyAdaptive as AdaptiveIcon,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyScorm as ScormIcon,\n NovaCompositionCoorpacademyArticle as ArticleIcon,\n NovaCompositionCoorpacademyVideo as VideoIcon,\n NovaCompositionCoorpacademyMicrophone as PodcastIcon,\n NovaCompositionCoorpacademyRevision as RevisionIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../atom/provider';\nimport ProgressBar from '../../molecule/progress-bar';\nimport Link from '../../atom/link';\nimport style from './progression-item.css';\n\nconst ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon,\n battle: BoltIcon,\n certification: CertificationIcon,\n article: ArticleIcon,\n scorm: ScormIcon,\n video: VideoIcon,\n podcast: PodcastIcon,\n review: RevisionIcon\n};\n\nconst ProgressionItem = (props, context) => {\n const {skin} = context;\n const {\n disabled = false,\n adaptive,\n completion,\n label,\n level,\n onClick = noop,\n stars,\n maxStars,\n state,\n type,\n steps = 0,\n adaptiveAriaLabel\n } = props;\n\n const dark = get('common.dark', skin);\n const primary = get('common.primary', skin);\n const white = get('common.white', skin);\n const IconType = ICONS[type];\n\n const adaptiveIcon = adaptive ? (\n <div\n className={style.adaptiveIcon}\n style={{\n backgroundColor: primary\n }}\n >\n <AdaptiveIcon color={white} height={14} aria-label={adaptiveAriaLabel} />\n </div>\n ) : null;\n\n const handleCTAClick = useMemo(\n () => e => {\n e.stopPropagation();\n e.preventDefault();\n onClick && onClick(e);\n },\n [onClick]\n );\n\n const link = disabled ? null : (\n <Link style={{color: primary}} onClick={handleCTAClick} data-progression-state={state}>\n <span className={style.cta}>\n {state} <ArrowRightIcon color={primary} height={12} width={20} />\n </span>\n </Link>\n );\n\n return (\n <div className={classnames(style.progressionItem, disabled ? style.disabled : '')}>\n <div className={style.wrapperTitle}>\n <IconType className={style.iconType} color={dark} />\n <div data-name=\"activityLabel\" className={style.label} title={label}>\n <div\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: label}}\n />\n {adaptiveIcon}\n </div>\n\n <div\n data-name=\"activityStars\"\n className={style.stars}\n style={{\n color: primary\n }}\n >\n {stars}\n {maxStars ? ' /' : null}\n {maxStars ? <span className={style.smallStars}>{maxStars}</span> : null}{' '}\n <StarIcon className={style.iconStar} color={primary} />\n </div>\n </div>\n <ProgressBar\n className={style.completion}\n value={completion * 100}\n max={100}\n steps={steps}\n style={{backgroundColor: primary, borderRadius: 0}}\n />\n <div className={style.state}>\n {link}\n <span className={style.level}>{level}</span>\n </div>\n </div>\n );\n};\n\nProgressionItem.propTypes = {\n completion: PropTypes.number.isRequired,\n stars: PropTypes.number.isRequired,\n maxStars: PropTypes.number,\n steps: PropTypes.number,\n disabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n level: PropTypes.string.isRequired,\n state: PropTypes.string.isRequired,\n adaptiveAriaLabel: PropTypes.string,\n type: PropTypes.string.isRequired,\n adaptive: PropTypes.bool.isRequired,\n onClick: PropTypes.func\n};\n\nProgressionItem.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ProgressionItem;\n"],"mappings":"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"}
@@ -13,7 +13,6 @@ declare namespace StarsSummary {
13
13
  active: PropTypes.Requireable<boolean>;
14
14
  disabled: PropTypes.Requireable<boolean>;
15
15
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
16
- className: PropTypes.Requireable<string>;
17
16
  toolTip: PropTypes.Requireable<PropTypes.InferProps<{
18
17
  preMessage: PropTypes.Requireable<string>;
19
18
  linkMessage: PropTypes.Requireable<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"stars-summary.d.ts","sourceRoot":"","sources":["../../../src/template/activity/stars-summary.js"],"names":[],"mappings":";AA2DA,kFAoFC"}
1
+ {"version":3,"file":"stars-summary.d.ts","sourceRoot":"","sources":["../../../src/template/activity/stars-summary.js"],"names":[],"mappings":";AA0DA,kFAiFC"}
@@ -27,7 +27,6 @@ const EngineTab = ({
27
27
  key: type,
28
28
  "data-name": dataName
29
29
  }, /*#__PURE__*/React.createElement(EngineStars, _extends({}, engine, {
30
- key: type,
31
30
  className: engineIndex < firstItemIndex ? style.hidden : style.active
32
31
  })));
33
32
  };
@@ -82,12 +81,11 @@ const StarsSummary = (props, legacyContext) => {
82
81
  return null;
83
82
  }
84
83
 
85
- const leftArrowView = totalItems > 6 && firstItemIndex > 0 ? /*#__PURE__*/React.createElement("button", {
84
+ const leftArrowView = totalItems > 6 && firstItemIndex > 0 ? /*#__PURE__*/React.createElement("div", {
86
85
  className: style.circle,
87
86
  onClick: handleOnLeft,
88
87
  "data-name": "left-arrow",
89
- "data-testid": "stars-summary-left-arrow",
90
- type: "button"
88
+ "data-testid": "stars-summary-left-arrow"
91
89
  }, /*#__PURE__*/React.createElement(ArrowLeft, {
92
90
  color: dark,
93
91
  className: style.left,
@@ -107,18 +105,15 @@ const StarsSummary = (props, legacyContext) => {
107
105
  })) : null;
108
106
  return /*#__PURE__*/React.createElement("div", {
109
107
  "data-name": "myStars",
110
- className: style.myStars,
111
- tabIndex: 0
108
+ className: style.myStars
112
109
  }, /*#__PURE__*/React.createElement("div", {
113
110
  "data-name": "myStars-wrapper",
114
111
  className: style.myStarsWrapper,
115
- "data-testid": `stars-summary-engine-index-${firstItemIndex}`,
116
- tabIndex: 0
112
+ "data-testid": `stars-summary-engine-index-${firstItemIndex}`
117
113
  }, /*#__PURE__*/React.createElement("ul", {
118
114
  className: style.allStars,
119
115
  "data-name": "engineList",
120
- "data-testid": "stars-summary-engine-tabs",
121
- tabIndex: 0
116
+ "data-testid": "stars-summary-engine-tabs"
122
117
  }, /*#__PURE__*/React.createElement(EngineTabs, {
123
118
  engines: engines,
124
119
  firstItemIndex: firstItemIndex