@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
@@ -9,30 +9,22 @@ var _get2 = _interopRequireDefault(require("lodash/fp/get"));
9
9
 
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
 
12
- var _react = _interopRequireWildcard(require("react"));
12
+ var _react = _interopRequireDefault(require("react"));
13
13
 
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _reactTooltip = _interopRequireDefault(require("react-tooltip"));
15
15
 
16
- var _uuid = require("uuid");
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _novaIcons = require("@coorpacademy/nova-icons");
19
19
 
20
- var _provider = _interopRequireWildcard(require("../../atom/provider"));
21
-
22
- var _tooltip = _interopRequireWildcard(require("../../atom/tooltip"));
20
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
23
21
 
24
22
  var _link = _interopRequireDefault(require("../../atom/link"));
25
23
 
26
24
  var _engineStars = _interopRequireDefault(require("./engine-stars.css"));
27
25
 
28
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
27
 
34
- 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); }
35
-
36
28
  const ICONS = {
37
29
  microlearning: _novaIcons.NovaCompositionCoorpacademyTimer,
38
30
  learner: _novaIcons.NovaSolidContentContentBook1,
@@ -46,132 +38,125 @@ const ICONS = {
46
38
  review: _novaIcons.NovaCompositionCoorpacademyRevision
47
39
  };
48
40
 
49
- const ToolTipContent = ({
50
- preMessage,
51
- linkMessage,
52
- endMessage,
53
- onClick,
54
- color,
55
- handleContentMouseOver
56
- }) => /*#__PURE__*/_react.default.createElement("p", {
57
- className: _engineStars.default.toolTipContent,
58
- onMouseOver: handleContentMouseOver,
59
- "data-testid": "react-tooltip-content"
60
- }, /*#__PURE__*/_react.default.createElement("span", null, preMessage), /*#__PURE__*/_react.default.createElement(_link.default, {
61
- onClick: onClick,
62
- style: {
63
- color
41
+ const ToolTip = ({
42
+ toolTip,
43
+ id
44
+ }, context) => {
45
+ if (!toolTip) {
46
+ return null;
64
47
  }
65
- }, linkMessage), /*#__PURE__*/_react.default.createElement("span", null, endMessage));
66
48
 
67
- ToolTipContent.propTypes = process.env.NODE_ENV !== "production" ? {
68
- preMessage: _propTypes.default.string,
69
- linkMessage: _propTypes.default.string,
70
- endMessage: _propTypes.default.string,
71
- color: _propTypes.default.string,
72
- onClick: _propTypes.default.func,
73
- handleContentMouseOver: _propTypes.default.func
74
- } : {};
75
-
76
- const EngineStars = (props, legacyContext) => {
77
- const skin = (0, _provider.GetSkinFromContext)(legacyContext);
78
- const translate = (0, _provider.GetTranslateFromContext)(legacyContext);
79
49
  const {
80
- toolTip = null,
81
- disabled,
82
- type,
83
- stars,
84
- title,
85
- active = false,
86
- onClick = _noop2.default,
87
- className
88
- } = props;
89
-
90
- const handleClick = e => {
91
- e.stopPropagation();
92
- e.preventDefault();
93
- onClick(e);
94
- };
95
-
96
- const dark = (0, _get2.default)('common.dark', skin);
97
- const light = (0, _get2.default)('common.light', skin);
98
- const IconType = ICONS[type];
99
- const primary = (0, _get2.default)('common.primary', skin); // to replace by useId when React17 is bumped to React18
100
-
101
- const [engineStarsContentId] = (0, _react.useState)(disabled ? (0, _uuid.v5)('engine-stars', _uuid.v5.URL) : undefined);
102
- const [toolTipIsVisible, setToolTipIsVisible] = (0, _react.useState)(false);
103
- const [mouseLeaveTimer, setMouseLeaveTimer] = (0, _react.useState)(undefined);
104
- const buttonRef = (0, _react.useRef)(null);
105
- const handleKeyPress = (0, _react.useCallback)(event => {
106
- (0, _tooltip.toggleStateOnKeyPress)(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
107
- }, [toolTipIsVisible]);
108
- const handleMouseOver = (0, _react.useCallback)(() => {
109
- mouseLeaveTimer && clearTimeout(mouseLeaveTimer);
110
- setToolTipIsVisible(true);
111
- }, [mouseLeaveTimer]);
112
- const handleContentMouseOver = (0, _react.useCallback)(() => {
113
- mouseLeaveTimer &&
114
- /* istanbul ignore next */
115
- clearTimeout(mouseLeaveTimer);
116
- }, [mouseLeaveTimer]);
117
- const handleMouseLeave = (0, _react.useCallback)(() => {
118
- setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), 500));
119
- }, []);
120
- const toolTipContentProps = (0, _react.useMemo)(() => toolTip ? {
121
- preMessage: toolTip.preMessage,
122
- linkMessage: toolTip.linkMessage,
123
- endMessage: toolTip.endMessage,
124
- color: primary,
125
- onClick: toolTip.onClick
126
- } : null, [primary, toolTip]);
127
- const toolTipProps = {
128
- closeToolTipInformationTextAriaLabel: translate('Press the escape key to close the information text')
129
- };
130
- const TooltipContent = (0, _react.useCallback)(_props => /*#__PURE__*/_react.default.createElement(ToolTipContent, _extends({}, _extends({}, toolTipContentProps, _props), {
131
- handleContentMouseOver: handleContentMouseOver
132
- })), [handleContentMouseOver, toolTipContentProps]);
133
- return /*#__PURE__*/_react.default.createElement("button", {
134
- ref: buttonRef,
135
- "data-tip": disabled,
136
- "data-engine": type,
137
- "data-testid": `engine-stars-${type}` // eslint-disable-next-line no-nested-ternary
138
- ,
139
- onClick: disabled ? handleKeyPress : active ? _noop2.default : handleClick,
140
- "data-for": engineStarsContentId,
141
- className: (0, _classnames.default)([_engineStars.default.engineStars, disabled ? _engineStars.default.disabled : '', active ? _engineStars.default.active : '', onClick !== _noop2.default ? _engineStars.default.clickable : null, className]),
142
- type: "button",
143
- "data-tooltip-place": "left",
144
- onKeyDown: handleKeyPress,
145
- onMouseLeave: handleMouseLeave,
146
- onMouseOver: handleMouseOver
147
- }, disabled ? /*#__PURE__*/_react.default.createElement(_tooltip.default, _extends({}, toolTipProps, {
148
- anchorId: engineStarsContentId,
149
- toolTipIsVisible: toolTipIsVisible,
150
- TooltipContent: TooltipContent,
151
- mouseLeaveTimer: mouseLeaveTimer
152
- })) : null, /*#__PURE__*/_react.default.createElement("span", {
153
- className: _engineStars.default.engineIcon,
154
- style: {
155
- backgroundColor: onClick === _noop2.default ? light : primary
156
- }
157
- }, /*#__PURE__*/_react.default.createElement(IconType, {
158
- className: _engineStars.default.iconHeader,
159
- width: "30"
160
- })), /*#__PURE__*/_react.default.createElement("div", {
161
- className: _engineStars.default.score,
50
+ skin
51
+ } = context;
52
+ const {
53
+ preMessage,
54
+ endMessage,
55
+ linkMessage,
56
+ onClick
57
+ } = toolTip;
58
+ const primary = (0, _get2.default)('common.primary', skin);
59
+ const handleClick = onClick;
60
+ return /*#__PURE__*/_react.default.createElement(_reactTooltip.default, {
61
+ id: id,
62
+ className: _engineStars.default.toolTip,
63
+ "data-event-off": "click",
64
+ place: "left",
65
+ effect: "solid",
66
+ delayHide: 500
67
+ }, /*#__PURE__*/_react.default.createElement("p", {
68
+ className: _engineStars.default.toolTipContent
69
+ }, /*#__PURE__*/_react.default.createElement("span", null, `${preMessage}`), /*#__PURE__*/_react.default.createElement(_link.default, {
70
+ onClick: handleClick,
162
71
  style: {
163
- color: active ? primary : dark
72
+ color: primary
164
73
  }
165
- }, /*#__PURE__*/_react.default.createElement("p", {
166
- "data-name": "star-counter"
167
- }, stars), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyStar, {
168
- className: _engineStars.default.iconStar,
169
- color: active ? primary : dark
170
- }))), /*#__PURE__*/_react.default.createElement("div", {
171
- className: _engineStars.default.scoreTitle
172
- }, title));
74
+ }, `${linkMessage}`), /*#__PURE__*/_react.default.createElement("span", null, `${endMessage}`)));
173
75
  };
174
76
 
77
+ ToolTip.contextTypes = {
78
+ skin: _provider.default.childContextTypes.skin
79
+ };
80
+ ToolTip.propTypes = process.env.NODE_ENV !== "production" ? {
81
+ toolTip: _propTypes.default.shape({
82
+ preMessage: _propTypes.default.string,
83
+ linkMessage: _propTypes.default.string,
84
+ endMessage: _propTypes.default.string,
85
+ onClick: _propTypes.default.func
86
+ }),
87
+ id: _propTypes.default.string.isRequired
88
+ } : {};
89
+
90
+ class EngineStars extends _react.default.Component {
91
+ constructor(props, context) {
92
+ super(props, context);
93
+
94
+ this.handleClick = e => {
95
+ e.stopPropagation();
96
+ e.preventDefault();
97
+ const {
98
+ onClick
99
+ } = this.props;
100
+ onClick && onClick(e);
101
+ };
102
+
103
+ this.handleClick = this.handleClick.bind(this);
104
+ }
105
+
106
+ render() {
107
+ const {
108
+ skin
109
+ } = this.context;
110
+ const {
111
+ disabled,
112
+ type,
113
+ stars,
114
+ title,
115
+ active = false,
116
+ onClick = _noop2.default,
117
+ toolTip = null
118
+ } = this.props;
119
+ const dark = (0, _get2.default)('common.dark', skin);
120
+ const light = (0, _get2.default)('common.light', skin);
121
+ const primary = (0, _get2.default)('common.primary', skin);
122
+ const IconType = ICONS[type];
123
+ return /*#__PURE__*/_react.default.createElement("div", {
124
+ "data-tip": disabled,
125
+ "data-engine": type,
126
+ onClick: disabled || active ? _noop2.default : this.handleClick,
127
+ "data-for": disabled && type,
128
+ className: (0, _classnames.default)([_engineStars.default.engineStars, disabled ? _engineStars.default.disabled : '', active ? _engineStars.default.active : '', onClick !== _noop2.default ? _engineStars.default.clickable : null])
129
+ }, /*#__PURE__*/_react.default.createElement(ToolTip, {
130
+ toolTip: toolTip,
131
+ id: type
132
+ }), /*#__PURE__*/_react.default.createElement("span", {
133
+ className: _engineStars.default.engineIcon,
134
+ style: {
135
+ backgroundColor: onClick === _noop2.default ? light : primary
136
+ }
137
+ }, /*#__PURE__*/_react.default.createElement(IconType, {
138
+ className: _engineStars.default.iconHeader,
139
+ width: "30"
140
+ })), /*#__PURE__*/_react.default.createElement("div", {
141
+ className: _engineStars.default.score,
142
+ style: {
143
+ color: active ? primary : dark
144
+ }
145
+ }, /*#__PURE__*/_react.default.createElement("p", {
146
+ "data-name": "star-counter"
147
+ }, stars), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyStar, {
148
+ className: _engineStars.default.iconStar,
149
+ color: active ? primary : dark
150
+ }))), /*#__PURE__*/_react.default.createElement("div", {
151
+ className: _engineStars.default.scoreTitle
152
+ }, title));
153
+ }
154
+
155
+ }
156
+
157
+ EngineStars.contextTypes = {
158
+ skin: _provider.default.childContextTypes.skin
159
+ };
175
160
  EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
176
161
  type: _propTypes.default.string.isRequired,
177
162
  stars: _propTypes.default.number.isRequired,
@@ -179,7 +164,6 @@ EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
179
164
  active: _propTypes.default.bool,
180
165
  disabled: _propTypes.default.bool,
181
166
  onClick: _propTypes.default.func,
182
- className: _propTypes.default.string,
183
167
  toolTip: _propTypes.default.shape({
184
168
  preMessage: _propTypes.default.string,
185
169
  linkMessage: _propTypes.default.string,
@@ -187,9 +171,6 @@ EngineStars.propTypes = process.env.NODE_ENV !== "production" ? {
187
171
  onClick: _propTypes.default.func
188
172
  })
189
173
  } : {};
190
- EngineStars.contextTypes = {
191
- skin: _provider.default.childContextTypes.skin
192
- };
193
174
  var _default = EngineStars;
194
175
  exports.default = _default;
195
176
  //# sourceMappingURL=engine-stars.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine-stars.js","names":["ICONS","microlearning","TimerIcon","learner","LearnerIcon","battle","BoltIcon","certifications","CertificationIcon","bonus","BonusIcon","article","ArticleIcon","scorm","ScormIcon","video","VideoIcon","podcast","PodcastIcon","review","RevisionIcon","ToolTipContent","preMessage","linkMessage","endMessage","onClick","color","handleContentMouseOver","style","toolTipContent","propTypes","PropTypes","string","func","EngineStars","props","legacyContext","skin","GetSkinFromContext","translate","GetTranslateFromContext","toolTip","disabled","type","stars","title","active","className","handleClick","e","stopPropagation","preventDefault","dark","light","IconType","primary","engineStarsContentId","useState","uuidV5","URL","undefined","toolTipIsVisible","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","buttonRef","useRef","handleKeyPress","useCallback","event","toggleStateOnKeyPress","handleMouseOver","clearTimeout","handleMouseLeave","setTimeout","toolTipContentProps","useMemo","toolTipProps","closeToolTipInformationTextAriaLabel","TooltipContent","_props","classnames","engineStars","clickable","engineIcon","backgroundColor","iconHeader","score","iconStar","scoreTitle","isRequired","number","bool","shape","contextTypes","Provider","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":["ICONS","microlearning","TimerIcon","learner","LearnerIcon","battle","BoltIcon","certifications","CertificationIcon","bonus","BonusIcon","article","ArticleIcon","scorm","ScormIcon","video","VideoIcon","podcast","PodcastIcon","review","RevisionIcon","ToolTip","toolTip","id","context","skin","preMessage","endMessage","linkMessage","onClick","primary","handleClick","style","toolTipContent","color","contextTypes","Provider","childContextTypes","propTypes","PropTypes","shape","string","func","isRequired","EngineStars","React","Component","constructor","props","e","stopPropagation","preventDefault","bind","render","disabled","type","stars","title","active","dark","light","IconType","classnames","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"}
@@ -9,10 +9,6 @@ var _get = _interopRequireDefault(require("lodash/fp/get"));
9
9
 
10
10
  var _isEmpty = _interopRequireDefault(require("lodash/fp/isEmpty"));
11
11
 
12
- var _map = _interopRequireDefault(require("lodash/fp/map"));
13
-
14
- var _noop = _interopRequireDefault(require("lodash/fp/noop"));
15
-
16
12
  var _omit = _interopRequireDefault(require("lodash/fp/omit"));
17
13
 
18
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -43,10 +39,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
43
39
 
44
40
  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); }
45
41
 
46
- const mapWithIndex = _map.default.convert({
47
- cap: false
48
- });
49
-
50
42
  const Progression = (props, legacyContext) => {
51
43
  const {
52
44
  mainTitle,
@@ -67,9 +59,9 @@ const Progression = (props, legacyContext) => {
67
59
  e.stopPropagation();
68
60
  e.preventDefault();
69
61
  const {
70
- onClick = _noop.default
62
+ onClick
71
63
  } = recommendation;
72
- onClick(e);
64
+ onClick && onClick(e);
73
65
  }, [recommendation]);
74
66
  const handleSelectTheme = (0, _react.useCallback)(e => {
75
67
  themeFilterOnChange && themeFilterOnChange(e);
@@ -78,10 +70,10 @@ const Progression = (props, legacyContext) => {
78
70
  const loader = loading ? /*#__PURE__*/_react.default.createElement("div", {
79
71
  className: _style.default.loader
80
72
  }, /*#__PURE__*/_react.default.createElement(_loader.default, null)) : null;
81
- const allProgressions = mapWithIndex((progression, index) => /*#__PURE__*/_react.default.createElement(_progressionItem.default, _extends({}, (0, _omit.default)(['ref'], progression), {
82
- key: `${index}-${progression.ref}`,
73
+ const allProgressions = progressions.map(progression => /*#__PURE__*/_react.default.createElement(_progressionItem.default, _extends({}, (0, _omit.default)(['ref'], progression), {
74
+ key: progression.ref,
83
75
  adaptiveAriaLabel: adaptiveAriaLabel
84
- })), progressions);
76
+ })));
85
77
 
86
78
  const coreProgression = /*#__PURE__*/_react.default.createElement("div", {
87
79
  "data-name": "activityCore",
@@ -119,17 +111,13 @@ const Progression = (props, legacyContext) => {
119
111
  return /*#__PURE__*/_react.default.createElement("div", {
120
112
  className: _style.default.default
121
113
  }, /*#__PURE__*/_react.default.createElement("div", {
122
- "data-name": "activity-header",
123
- tabIndex: 0
114
+ "data-name": "activity-header"
124
115
  }, /*#__PURE__*/_react.default.createElement("div", {
125
- className: _style.default.mainTitle,
126
- tabIndex: 0
116
+ className: _style.default.mainTitle
127
117
  }, /*#__PURE__*/_react.default.createElement("span", null, mainTitle), " ", mainSubtitle), /*#__PURE__*/_react.default.createElement("div", {
128
- className: _style.default.headerProgression,
129
- tabIndex: 0
118
+ className: _style.default.headerProgression
130
119
  }, /*#__PURE__*/_react.default.createElement("div", {
131
- className: _style.default.wrapperCta,
132
- tabIndex: 0
120
+ className: _style.default.wrapperCta
133
121
  }, themeSelect, recommendationSection), /*#__PURE__*/_react.default.createElement(_starsSummary.default, {
134
122
  engines: engines,
135
123
  total: total
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["mapWithIndex","map","convert","cap","Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","GetSkinFromContext","onChange","themeFilterOnChange","handleClick","useCallback","e","stopPropagation","preventDefault","onClick","noop","handleSelectTheme","primary","get","loader","style","allProgressions","progression","index","omit","ref","coreProgression","core","themeSelect","isEmpty","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","classnames","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","label","stars","number","arrayOf","EngineStars","bool","ProgressionItem","Select","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":["Progression","props","legacyContext","mainTitle","mainSubtitle","recommendation","progressions","adaptiveAriaLabel","total","engines","themeFilter","loading","skin","GetSkinFromContext","onChange","themeFilterOnChange","handleClick","useCallback","e","stopPropagation","preventDefault","onClick","handleSelectTheme","primary","get","loader","style","allProgressions","map","progression","omit","ref","coreProgression","core","themeSelect","isEmpty","options","selectBorder","select","recommendationSection","recommendationWrapper","title","subtitle","classnames","course","innerHTML","__html","courseTitle","cta","backgroundColor","default","headerProgression","wrapperCta","wrapperProgression","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","label","stars","number","arrayOf","EngineStars","bool","ProgressionItem","Select","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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"}
@@ -76,7 +76,7 @@ const ProgressionItem = (props, context) => {
76
76
  const handleCTAClick = (0, _react.useMemo)(() => e => {
77
77
  e.stopPropagation();
78
78
  e.preventDefault();
79
- onClick(e);
79
+ onClick && onClick(e);
80
80
  }, [onClick]);
81
81
  const link = disabled ? null : /*#__PURE__*/_react.default.createElement(_link.default, {
82
82
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"progression-item.js","names":["ICONS","chapter","TimerIcon","course","LearnerIcon","battle","BoltIcon","certification","CertificationIcon","article","ArticleIcon","scorm","ScormIcon","video","VideoIcon","podcast","PodcastIcon","review","RevisionIcon","ProgressionItem","props","context","skin","disabled","adaptive","completion","label","level","onClick","stars","maxStars","state","type","steps","adaptiveAriaLabel","dark","primary","white","IconType","adaptiveIcon","style","backgroundColor","handleCTAClick","useMemo","e","stopPropagation","preventDefault","link","color","cta","classnames","progressionItem","wrapperTitle","iconType","innerHTML","__html","smallStars","iconStar","borderRadius","propTypes","PropTypes","number","isRequired","bool","string","func","contextTypes","Provider","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":["ICONS","chapter","TimerIcon","course","LearnerIcon","battle","BoltIcon","certification","CertificationIcon","article","ArticleIcon","scorm","ScormIcon","video","VideoIcon","podcast","PodcastIcon","review","RevisionIcon","ProgressionItem","props","context","skin","disabled","adaptive","completion","label","level","onClick","stars","maxStars","state","type","steps","adaptiveAriaLabel","dark","primary","white","IconType","adaptiveIcon","style","backgroundColor","handleCTAClick","useMemo","e","stopPropagation","preventDefault","link","color","cta","classnames","progressionItem","wrapperTitle","iconType","innerHTML","__html","smallStars","iconStar","borderRadius","propTypes","PropTypes","number","isRequired","bool","string","func","contextTypes","Provider","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"}
@@ -46,7 +46,6 @@ const EngineTab = ({
46
46
  key: type,
47
47
  "data-name": dataName
48
48
  }, /*#__PURE__*/_react.default.createElement(_engineStars.default, _extends({}, engine, {
49
- key: type,
50
49
  className: engineIndex < firstItemIndex ? _starsSummary.default.hidden : _starsSummary.default.active
51
50
  })));
52
51
  };
@@ -98,12 +97,11 @@ const StarsSummary = (props, legacyContext) => {
98
97
  return null;
99
98
  }
100
99
 
101
- const leftArrowView = totalItems > 6 && firstItemIndex > 0 ? /*#__PURE__*/_react.default.createElement("button", {
100
+ const leftArrowView = totalItems > 6 && firstItemIndex > 0 ? /*#__PURE__*/_react.default.createElement("div", {
102
101
  className: _starsSummary.default.circle,
103
102
  onClick: handleOnLeft,
104
103
  "data-name": "left-arrow",
105
- "data-testid": "stars-summary-left-arrow",
106
- type: "button"
104
+ "data-testid": "stars-summary-left-arrow"
107
105
  }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowLeft, {
108
106
  color: dark,
109
107
  className: _starsSummary.default.left,
@@ -123,18 +121,15 @@ const StarsSummary = (props, legacyContext) => {
123
121
  })) : null;
124
122
  return /*#__PURE__*/_react.default.createElement("div", {
125
123
  "data-name": "myStars",
126
- className: _starsSummary.default.myStars,
127
- tabIndex: 0
124
+ className: _starsSummary.default.myStars
128
125
  }, /*#__PURE__*/_react.default.createElement("div", {
129
126
  "data-name": "myStars-wrapper",
130
127
  className: _starsSummary.default.myStarsWrapper,
131
- "data-testid": `stars-summary-engine-index-${firstItemIndex}`,
132
- tabIndex: 0
128
+ "data-testid": `stars-summary-engine-index-${firstItemIndex}`
133
129
  }, /*#__PURE__*/_react.default.createElement("ul", {
134
130
  className: _starsSummary.default.allStars,
135
131
  "data-name": "engineList",
136
- "data-testid": "stars-summary-engine-tabs",
137
- tabIndex: 0
132
+ "data-testid": "stars-summary-engine-tabs"
138
133
  }, /*#__PURE__*/_react.default.createElement(EngineTabs, {
139
134
  engines: engines,
140
135
  firstItemIndex: firstItemIndex