@coorpacademy/components 11.6.1 → 11.7.3

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 (114) hide show
  1. package/es/atom/loader/index.native.d.ts +10 -0
  2. package/es/atom/loader/index.native.d.ts.map +1 -0
  3. package/es/atom/loader/index.native.js +192 -0
  4. package/es/atom/loader/index.native.js.map +1 -0
  5. package/es/atom/select/index.d.ts.map +1 -1
  6. package/es/atom/select/index.js +48 -11
  7. package/es/atom/select/index.js.map +1 -1
  8. package/es/molecule/answer/index.d.ts.map +1 -1
  9. package/es/molecule/answer/index.js +1 -9
  10. package/es/molecule/answer/index.js.map +1 -1
  11. package/es/molecule/empty-state-dashboard/index.d.ts +23 -0
  12. package/es/molecule/empty-state-dashboard/index.d.ts.map +1 -0
  13. package/es/molecule/empty-state-dashboard/index.js +31 -0
  14. package/es/molecule/empty-state-dashboard/index.js.map +1 -0
  15. package/es/molecule/empty-state-dashboard/style.css +55 -0
  16. package/es/molecule/empty-state-dashboard/types.d.ts +19 -0
  17. package/es/molecule/empty-state-dashboard/types.d.ts.map +1 -0
  18. package/es/molecule/empty-state-dashboard/types.js +19 -0
  19. package/es/molecule/empty-state-dashboard/types.js.map +1 -0
  20. package/es/organism/list-item/index.d.ts +8 -6
  21. package/es/organism/list-item/index.d.ts.map +1 -1
  22. package/es/organism/list-item/index.js +16 -2
  23. package/es/organism/list-item/index.js.map +1 -1
  24. package/es/organism/list-item/style.css +18 -0
  25. package/es/organism/list-items/index.d.ts +2 -0
  26. package/es/organism/list-items/index.js +5 -1
  27. package/es/organism/list-items/index.js.map +1 -1
  28. package/es/template/activity/index.d.ts +36 -40
  29. package/es/template/activity/index.d.ts.map +1 -1
  30. package/es/template/activity/index.js +89 -111
  31. package/es/template/activity/index.js.map +1 -1
  32. package/es/template/activity/stars-summary.d.ts +9 -18
  33. package/es/template/activity/stars-summary.d.ts.map +1 -1
  34. package/es/template/activity/stars-summary.js +94 -122
  35. package/es/template/activity/stars-summary.js.map +1 -1
  36. package/es/template/back-office/brand-update/index.d.ts +20 -0
  37. package/es/template/back-office/brand-update/index.d.ts.map +1 -1
  38. package/es/template/back-office/brand-update/index.js +12 -3
  39. package/es/template/back-office/brand-update/index.js.map +1 -1
  40. package/es/template/back-office/brand-update/style.css +5 -1
  41. package/es/util/button-icons.d.ts +1 -0
  42. package/es/util/button-icons.d.ts.map +1 -1
  43. package/es/util/button-icons.js +3 -2
  44. package/es/util/button-icons.js.map +1 -1
  45. package/lib/atom/loader/index.native.d.ts +10 -0
  46. package/lib/atom/loader/index.native.d.ts.map +1 -0
  47. package/lib/atom/loader/index.native.js +205 -0
  48. package/lib/atom/loader/index.native.js.map +1 -0
  49. package/lib/atom/select/index.d.ts.map +1 -1
  50. package/lib/atom/select/index.js +46 -9
  51. package/lib/atom/select/index.js.map +1 -1
  52. package/lib/molecule/answer/index.d.ts.map +1 -1
  53. package/lib/molecule/answer/index.js +1 -10
  54. package/lib/molecule/answer/index.js.map +1 -1
  55. package/lib/molecule/empty-state-dashboard/index.d.ts +23 -0
  56. package/lib/molecule/empty-state-dashboard/index.d.ts.map +1 -0
  57. package/lib/molecule/empty-state-dashboard/index.js +42 -0
  58. package/lib/molecule/empty-state-dashboard/index.js.map +1 -0
  59. package/lib/molecule/empty-state-dashboard/style.css +55 -0
  60. package/lib/molecule/empty-state-dashboard/types.d.ts +19 -0
  61. package/lib/molecule/empty-state-dashboard/types.d.ts.map +1 -0
  62. package/lib/molecule/empty-state-dashboard/types.js +29 -0
  63. package/lib/molecule/empty-state-dashboard/types.js.map +1 -0
  64. package/lib/organism/list-item/index.d.ts +8 -6
  65. package/lib/organism/list-item/index.d.ts.map +1 -1
  66. package/lib/organism/list-item/index.js +16 -2
  67. package/lib/organism/list-item/index.js.map +1 -1
  68. package/lib/organism/list-item/style.css +18 -0
  69. package/lib/organism/list-items/index.d.ts +2 -0
  70. package/lib/organism/list-items/index.js +5 -1
  71. package/lib/organism/list-items/index.js.map +1 -1
  72. package/lib/template/activity/index.d.ts +36 -40
  73. package/lib/template/activity/index.d.ts.map +1 -1
  74. package/lib/template/activity/index.js +95 -110
  75. package/lib/template/activity/index.js.map +1 -1
  76. package/lib/template/activity/stars-summary.d.ts +9 -18
  77. package/lib/template/activity/stars-summary.d.ts.map +1 -1
  78. package/lib/template/activity/stars-summary.js +90 -119
  79. package/lib/template/activity/stars-summary.js.map +1 -1
  80. package/lib/template/back-office/brand-update/index.d.ts +20 -0
  81. package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
  82. package/lib/template/back-office/brand-update/index.js +13 -3
  83. package/lib/template/back-office/brand-update/index.js.map +1 -1
  84. package/lib/template/back-office/brand-update/style.css +5 -1
  85. package/lib/util/button-icons.d.ts +1 -0
  86. package/lib/util/button-icons.d.ts.map +1 -1
  87. package/lib/util/button-icons.js +2 -1
  88. package/lib/util/button-icons.js.map +1 -1
  89. package/locales/bs/global.json +8 -1
  90. package/locales/cs/global.json +8 -1
  91. package/locales/de/global.json +8 -1
  92. package/locales/en/global.json +0 -1
  93. package/locales/es/global.json +8 -1
  94. package/locales/et/global.json +8 -1
  95. package/locales/fr/global.json +0 -1
  96. package/locales/hr/global.json +8 -1
  97. package/locales/hu/global.json +8 -1
  98. package/locales/hy/global.json +0 -1
  99. package/locales/it/global.json +8 -1
  100. package/locales/ja/global.json +8 -1
  101. package/locales/ko/global.json +8 -1
  102. package/locales/nl/global.json +8 -1
  103. package/locales/pl/global.json +8 -1
  104. package/locales/pt/global.json +8 -1
  105. package/locales/ro/global.json +8 -1
  106. package/locales/ru/global.json +0 -1
  107. package/locales/sk/global.json +8 -1
  108. package/locales/tl/global.json +8 -1
  109. package/locales/tr/global.json +8 -1
  110. package/locales/uk/global.json +8 -1
  111. package/locales/vi/global.json +8 -1
  112. package/locales/zh/global.json +8 -1
  113. package/locales/zh_TW/global.json +8 -1
  114. package/package.json +3 -3
@@ -3,19 +3,19 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
- var _isEmpty2 = _interopRequireDefault(require("lodash/fp/isEmpty"));
6
+ var _react = _interopRequireWildcard(require("react"));
7
7
 
8
- var _omit2 = _interopRequireDefault(require("lodash/fp/omit"));
8
+ var _get = _interopRequireDefault(require("lodash/fp/get"));
9
9
 
10
- var _get2 = _interopRequireDefault(require("lodash/fp/get"));
10
+ var _isEmpty = _interopRequireDefault(require("lodash/fp/isEmpty"));
11
11
 
12
- var _react = _interopRequireDefault(require("react"));
12
+ var _omit = _interopRequireDefault(require("lodash/fp/omit"));
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
17
 
18
- var _provider = _interopRequireDefault(require("../../atom/provider"));
18
+ var _provider = _interopRequireWildcard(require("../../atom/provider"));
19
19
 
20
20
  var _button = _interopRequireDefault(require("../../atom/button"));
21
21
 
@@ -33,114 +33,99 @@ var _style = _interopRequireDefault(require("./style.css"));
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
36
+ 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); }
37
+
38
+ 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; }
39
+
36
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); }
37
41
 
38
- class Progression extends _react.default.Component {
39
- constructor(props, context) {
40
- super(props, context);
41
-
42
- this.handleClick = e => {
43
- const {
44
- recommendation
45
- } = this.props;
46
- e.stopPropagation();
47
- e.preventDefault();
48
- const {
49
- onClick
50
- } = recommendation;
51
- onClick && onClick(e);
52
- };
53
-
54
- this.handleSelectTheme = e => {
55
- const {
56
- themeFilter: {
57
- onChange
58
- }
59
- } = this.props;
60
- onChange && onChange(e);
61
- };
62
-
63
- this.handleClick = this.handleClick.bind(this);
64
- this.handleSelectTheme = this.handleSelectTheme.bind(this);
65
- }
66
-
67
- render() {
42
+ const Progression = (props, legacyContext) => {
43
+ const {
44
+ mainTitle,
45
+ mainSubtitle,
46
+ recommendation = {},
47
+ progressions = [],
48
+ adaptiveAriaLabel,
49
+ total,
50
+ engines = [],
51
+ themeFilter = {},
52
+ loading
53
+ } = props;
54
+ const skin = (0, _provider.GetSkinFromContext)(legacyContext);
55
+ const {
56
+ onChange: themeFilterOnChange
57
+ } = themeFilter;
58
+ const handleClick = (0, _react.useCallback)(e => {
59
+ e.stopPropagation();
60
+ e.preventDefault();
68
61
  const {
69
- mainTitle,
70
- mainSubtitle,
71
- recommendation = {},
72
- progressions = [],
73
- adaptiveAriaLabel,
74
- total,
75
- engines = [],
76
- themeFilter = {},
77
- loading
78
- } = this.props;
79
- const {
80
- skin
81
- } = this.context;
82
- const primary = (0, _get2.default)('common.primary', skin);
83
- const loader = loading ? /*#__PURE__*/_react.default.createElement("div", {
84
- className: _style.default.loader
85
- }, /*#__PURE__*/_react.default.createElement(_loader.default, null)) : null;
86
- const allProgressions = progressions.map(progression => /*#__PURE__*/_react.default.createElement(_progressionItem.default, _extends({}, (0, _omit2.default)(['ref'], progression), {
87
- key: progression.ref,
88
- adaptiveAriaLabel: adaptiveAriaLabel
89
- })));
90
-
91
- const coreProgression = /*#__PURE__*/_react.default.createElement("div", {
92
- "data-name": "activityCore",
93
- className: _style.default.core
94
- }, allProgressions);
95
-
96
- const themeSelect = !(0, _isEmpty2.default)(themeFilter.options) ? /*#__PURE__*/_react.default.createElement(_select.default, {
97
- borderClassName: _style.default.selectBorder,
98
- className: _style.default.select,
99
- theme: "thematiques",
100
- options: themeFilter.options,
101
- onChange: this.handleSelectTheme
102
- }) : null;
103
- const recommendationSection = !(0, _isEmpty2.default)(recommendation) ? /*#__PURE__*/_react.default.createElement("div", {
104
- className: _style.default.recommendationWrapper
105
- }, /*#__PURE__*/_react.default.createElement("p", {
106
- className: _style.default.recommendationSection
107
- }, recommendation.title, " "), /*#__PURE__*/_react.default.createElement("p", {
108
- className: _style.default.recommendationSection
109
- }, /*#__PURE__*/_react.default.createElement("span", null, recommendation.subtitle, " "), /*#__PURE__*/_react.default.createElement("span", {
110
- className: (0, _classnames.default)(_style.default.course, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
111
- ,
112
- dangerouslySetInnerHTML: {
113
- __html: recommendation.courseTitle
114
- }
115
- })), /*#__PURE__*/_react.default.createElement(_button.default, {
116
- type: "link",
117
- onClick: this.handleClick,
118
- submitValue: recommendation.cta,
119
- style: {
120
- backgroundColor: primary
121
- },
122
- className: _style.default.cta
123
- })) : null;
124
- return /*#__PURE__*/_react.default.createElement("div", {
125
- className: _style.default.default
126
- }, /*#__PURE__*/_react.default.createElement("div", {
127
- "data-name": "activity-header"
128
- }, /*#__PURE__*/_react.default.createElement("div", {
129
- className: _style.default.mainTitle
130
- }, /*#__PURE__*/_react.default.createElement("span", null, mainTitle), " ", mainSubtitle), /*#__PURE__*/_react.default.createElement("div", {
131
- className: _style.default.headerProgression
132
- }, /*#__PURE__*/_react.default.createElement("div", {
133
- className: _style.default.wrapperCta
134
- }, themeSelect, recommendationSection), /*#__PURE__*/_react.default.createElement(_starsSummary.default, {
135
- engines: engines,
136
- total: total
137
- }))), /*#__PURE__*/_react.default.createElement("div", {
138
- className: _style.default.wrapperProgression,
139
- "data-name": "activityList"
140
- }, coreProgression, loader));
141
- }
142
-
143
- }
62
+ onClick
63
+ } = recommendation;
64
+ onClick && onClick(e);
65
+ }, [recommendation]);
66
+ const handleSelectTheme = (0, _react.useCallback)(e => {
67
+ themeFilterOnChange && themeFilterOnChange(e);
68
+ }, [themeFilterOnChange]);
69
+ const primary = (0, _get.default)('common.primary', skin);
70
+ const loader = loading ? /*#__PURE__*/_react.default.createElement("div", {
71
+ className: _style.default.loader
72
+ }, /*#__PURE__*/_react.default.createElement(_loader.default, null)) : null;
73
+ const allProgressions = progressions.map(progression => /*#__PURE__*/_react.default.createElement(_progressionItem.default, _extends({}, (0, _omit.default)(['ref'], progression), {
74
+ key: progression.ref,
75
+ adaptiveAriaLabel: adaptiveAriaLabel
76
+ })));
77
+
78
+ const coreProgression = /*#__PURE__*/_react.default.createElement("div", {
79
+ "data-name": "activityCore",
80
+ className: _style.default.core
81
+ }, allProgressions);
82
+
83
+ const themeSelect = !(0, _isEmpty.default)(themeFilter.options) ? /*#__PURE__*/_react.default.createElement(_select.default, {
84
+ borderClassName: _style.default.selectBorder,
85
+ className: _style.default.select,
86
+ theme: "thematiques",
87
+ options: themeFilter.options,
88
+ onChange: handleSelectTheme
89
+ }) : null;
90
+ const recommendationSection = !(0, _isEmpty.default)(recommendation) ? /*#__PURE__*/_react.default.createElement("div", {
91
+ className: _style.default.recommendationWrapper
92
+ }, /*#__PURE__*/_react.default.createElement("p", {
93
+ className: _style.default.recommendationSection
94
+ }, recommendation.title, " "), /*#__PURE__*/_react.default.createElement("p", {
95
+ className: _style.default.recommendationSection
96
+ }, /*#__PURE__*/_react.default.createElement("span", null, recommendation.subtitle, " "), /*#__PURE__*/_react.default.createElement("span", {
97
+ className: (0, _classnames.default)(_style.default.course, _style.default.innerHTML) // eslint-disable-next-line react/no-danger
98
+ ,
99
+ dangerouslySetInnerHTML: {
100
+ __html: recommendation.courseTitle
101
+ }
102
+ })), /*#__PURE__*/_react.default.createElement(_button.default, {
103
+ type: "link",
104
+ onClick: handleClick,
105
+ submitValue: recommendation.cta,
106
+ style: {
107
+ backgroundColor: primary
108
+ },
109
+ className: _style.default.cta
110
+ })) : null;
111
+ return /*#__PURE__*/_react.default.createElement("div", {
112
+ className: _style.default.default
113
+ }, /*#__PURE__*/_react.default.createElement("div", {
114
+ "data-name": "activity-header"
115
+ }, /*#__PURE__*/_react.default.createElement("div", {
116
+ className: _style.default.mainTitle
117
+ }, /*#__PURE__*/_react.default.createElement("span", null, mainTitle), " ", mainSubtitle), /*#__PURE__*/_react.default.createElement("div", {
118
+ className: _style.default.headerProgression
119
+ }, /*#__PURE__*/_react.default.createElement("div", {
120
+ className: _style.default.wrapperCta
121
+ }, themeSelect, recommendationSection), /*#__PURE__*/_react.default.createElement(_starsSummary.default, {
122
+ engines: engines,
123
+ total: total
124
+ }))), /*#__PURE__*/_react.default.createElement("div", {
125
+ className: _style.default.wrapperProgression,
126
+ "data-name": "activityList"
127
+ }, coreProgression, loader));
128
+ };
144
129
 
145
130
  Progression.contextTypes = {
146
131
  skin: _provider.default.childContextTypes.skin
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Progression","React","Component","constructor","props","context","handleClick","e","recommendation","stopPropagation","preventDefault","onClick","handleSelectTheme","themeFilter","onChange","bind","render","mainTitle","mainSubtitle","progressions","adaptiveAriaLabel","total","engines","loading","skin","primary","loader","style","allProgressions","map","progression","ref","coreProgression","core","themeSelect","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 from 'react';\nimport {get, omit, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Provider 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\nclass Progression extends React.Component {\n static 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\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 this.handleSelectTheme = this.handleSelectTheme.bind(this);\n }\n\n handleClick = e => {\n const {recommendation} = this.props;\n e.stopPropagation();\n e.preventDefault();\n const {onClick} = recommendation;\n onClick && onClick(e);\n };\n\n handleSelectTheme = e => {\n const {\n themeFilter: {onChange}\n } = this.props;\n onChange && onChange(e);\n };\n\n render() {\n const {\n mainTitle,\n mainSubtitle,\n recommendation = {},\n progressions = [],\n adaptiveAriaLabel,\n total,\n engines = [],\n themeFilter = {},\n loading\n } = this.props;\n const {skin} = this.context;\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={this.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={this.handleClick}\n submitValue={recommendation.cta}\n style={{\n backgroundColor: primary\n }}\n className={style.cta}\n />\n </div>\n ) : null;\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}\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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"}
@@ -1,11 +1,12 @@
1
1
  export default StarsSummary;
2
- declare class StarsSummary extends React.Component<any, any, any> {
3
- static propTypes: {
4
- total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
2
+ declare function StarsSummary(props: any, legacyContext: any): JSX.Element | null;
3
+ declare namespace StarsSummary {
4
+ namespace propTypes {
5
+ const total: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
5
6
  label: PropTypes.Validator<string>;
6
7
  stars: PropTypes.Validator<number>;
7
8
  }>>>;
8
- engines: PropTypes.Requireable<(PropTypes.InferProps<{
9
+ const engines: PropTypes.Validator<(PropTypes.InferProps<{
9
10
  type: PropTypes.Validator<string>;
10
11
  stars: PropTypes.Validator<number>;
11
12
  title: PropTypes.Validator<string>;
@@ -19,9 +20,9 @@ declare class StarsSummary extends React.Component<any, any, any> {
19
20
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
20
21
  }>>;
21
22
  }> | null | undefined)[]>;
22
- };
23
- static contextTypes: {
24
- skin: PropTypes.Requireable<PropTypes.InferProps<{
23
+ }
24
+ namespace contextTypes {
25
+ const skin: PropTypes.Requireable<PropTypes.InferProps<{
25
26
  common: PropTypes.Requireable<{
26
27
  [x: string]: any;
27
28
  }>;
@@ -42,17 +43,7 @@ declare class StarsSummary extends React.Component<any, any, any> {
42
43
  [x: string]: any;
43
44
  }>;
44
45
  }>>;
45
- };
46
- constructor(props: any);
47
- state: {
48
- firstItem: number;
49
- totalItems: any;
50
- };
51
- handleOnLeft(): void;
52
- handleOnRight(): void;
53
- scrollTo(page: any): void;
54
- render(): JSX.Element | null;
46
+ }
55
47
  }
56
- import React from "react";
57
48
  import PropTypes from "prop-types";
58
49
  //# sourceMappingURL=stars-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stars-summary.d.ts","sourceRoot":"","sources":["../../../src/template/activity/stars-summary.js"],"names":[],"mappings":";AAkDA;IACE;;;;;;;;;;;;;;;;;;;MAME;IAEF;;;;;;;;;;;;;;;;;;;;;;MAEE;IAEF,wBAYC;IARC;;;MAGC;IAOH,qBAGC;IAED,sBAGC;IAED,0BAIC;IAED,6BAiDC;CACF"}
1
+ {"version":3,"file":"stars-summary.d.ts","sourceRoot":"","sources":["../../../src/template/activity/stars-summary.js"],"names":[],"mappings":";AA0DA,kFAiFC"}
@@ -17,7 +17,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _novaIcons = require("@coorpacademy/nova-icons");
19
19
 
20
- var _provider = _interopRequireDefault(require("../../atom/provider"));
20
+ var _provider = _interopRequireWildcard(require("../../atom/provider"));
21
21
 
22
22
  var _engineStars = _interopRequireDefault(require("./engine-stars"));
23
23
 
@@ -34,165 +34,136 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
34
34
  const EngineTab = ({
35
35
  engine,
36
36
  engineIndex,
37
- firstItem
37
+ firstItemIndex
38
38
  }) => {
39
39
  const {
40
40
  type
41
41
  } = engine;
42
- const state = engineIndex < firstItem ? 'hidden' : 'active';
42
+ const state = (0, _react.useMemo)(() => engineIndex < firstItemIndex ? 'hidden' : 'active', [engineIndex, firstItemIndex]);
43
+ const dataName = (0, _react.useMemo)(() => `${type}_total_${state}`, [state, type]);
43
44
  return /*#__PURE__*/_react.default.createElement("li", {
44
45
  className: _starsSummary.default[state],
45
46
  key: type,
46
- "data-name": `${type}_total_${state}`
47
+ "data-name": dataName
47
48
  }, /*#__PURE__*/_react.default.createElement(_engineStars.default, _extends({}, engine, {
48
- className: engineIndex < firstItem ? _starsSummary.default.hidden : _starsSummary.default.active
49
+ className: engineIndex < firstItemIndex ? _starsSummary.default.hidden : _starsSummary.default.active
49
50
  })));
50
51
  };
51
52
 
52
53
  EngineTab.propTypes = process.env.NODE_ENV !== "production" ? {
53
54
  engine: _propTypes.default.shape(_engineStars.default.propTypes),
54
55
  engineIndex: _propTypes.default.number,
55
- firstItem: _propTypes.default.number
56
+ firstItemIndex: _propTypes.default.number
56
57
  } : {};
57
58
 
58
59
  const EngineTabs = ({
59
60
  engines,
60
- firstItem
61
+ firstItemIndex
61
62
  }) => {
62
63
  return (0, _react.useMemo)(() => _map2.default.convert({
63
64
  cap: false
64
65
  })((engine, index) => /*#__PURE__*/_react.default.createElement(EngineTab, {
65
66
  engine: engine,
66
67
  key: `engineTab_${index}`,
67
- firstItem: firstItem,
68
+ firstItemIndex: firstItemIndex,
68
69
  engineIndex: index
69
- }), engines), [engines, firstItem]);
70
+ }), engines), [engines, firstItemIndex]);
70
71
  };
71
72
 
72
73
  EngineTabs.propTypes = process.env.NODE_ENV !== "production" ? {
73
74
  engines: _propTypes.default.arrayOf(_propTypes.default.shape(_engineStars.default.propTypes)),
74
- firstItem: _propTypes.default.number
75
+ firstItemIndex: _propTypes.default.number
75
76
  } : {};
76
77
 
77
- class StarsSummary extends _react.default.Component {
78
- constructor(props) {
79
- super(props);
80
- const {
81
- engines = []
82
- } = props;
83
- this.state = {
84
- firstItem: 0,
85
- totalItems: engines.length
86
- };
87
- this.handleOnLeft = this.handleOnLeft.bind(this);
88
- this.handleOnRight = this.handleOnRight.bind(this);
89
- this.scrollTo = this.scrollTo.bind(this);
90
- }
91
-
92
- handleOnLeft() {
93
- const {
94
- firstItem
95
- } = this.state;
96
- this.scrollTo(firstItem - 1);
97
- }
98
-
99
- handleOnRight() {
100
- const {
101
- firstItem
102
- } = this.state;
103
- this.scrollTo(firstItem + 1);
104
- }
105
-
106
- scrollTo(page) {
107
- this.setState({
108
- firstItem: page
109
- });
78
+ const StarsSummary = (props, legacyContext) => {
79
+ const {
80
+ total,
81
+ engines
82
+ } = props;
83
+ const skin = (0, _provider.GetSkinFromContext)(legacyContext);
84
+ const [firstItemIndex, setFirstItemIndex] = (0, _react.useState)(0);
85
+ const [totalItems] = (0, _react.useState)(engines.length);
86
+ const dark = (0, _getOr2.default)('#90A4AE', 'common.dark', skin);
87
+ const primary = (0, _get2.default)('common.primary', skin);
88
+ const scrollTo = (0, _react.useCallback)(page => setFirstItemIndex(page), []);
89
+ const handleOnLeft = (0, _react.useCallback)(() => {
90
+ scrollTo(firstItemIndex - 1);
91
+ }, [firstItemIndex, scrollTo]);
92
+ const handleOnRight = (0, _react.useCallback)(() => {
93
+ scrollTo(firstItemIndex + 1);
94
+ }, [firstItemIndex, scrollTo]);
95
+
96
+ if ((0, _isEmpty2.default)(engines)) {
97
+ return null;
110
98
  }
111
99
 
112
- render() {
113
- const {
114
- total,
115
- engines = []
116
- } = this.props;
117
- const {
118
- skin
119
- } = this.context;
120
- const {
121
- firstItem,
122
- totalItems
123
- } = this.state;
124
- const dark = (0, _getOr2.default)('#90A4AE', 'common.dark', skin);
125
- const primary = (0, _get2.default)('common.primary', skin);
126
-
127
- if ((0, _isEmpty2.default)(engines)) {
128
- return null;
100
+ const leftArrowView = totalItems > 6 && firstItemIndex > 0 ? /*#__PURE__*/_react.default.createElement("div", {
101
+ className: _starsSummary.default.circle,
102
+ onClick: handleOnLeft,
103
+ "data-name": "left-arrow",
104
+ "data-testid": "stars-summary-left-arrow"
105
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowLeft, {
106
+ color: dark,
107
+ className: _starsSummary.default.left,
108
+ width: 10,
109
+ height: 10
110
+ })) : null;
111
+ const rightArrowView = totalItems > 6 && firstItemIndex < totalItems - 6 ? /*#__PURE__*/_react.default.createElement("div", {
112
+ className: _starsSummary.default.circle,
113
+ onClick: handleOnRight,
114
+ "data-name": "right-arrow",
115
+ "data-testid": "stars-summary-right-arrow"
116
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowRight, {
117
+ color: dark,
118
+ className: _starsSummary.default.right,
119
+ width: 10,
120
+ height: 10
121
+ })) : null;
122
+ return /*#__PURE__*/_react.default.createElement("div", {
123
+ "data-name": "myStars",
124
+ className: _starsSummary.default.myStars
125
+ }, /*#__PURE__*/_react.default.createElement("div", {
126
+ "data-name": "myStars-wrapper",
127
+ className: _starsSummary.default.myStarsWrapper,
128
+ "data-testid": `stars-summary-engine-index-${firstItemIndex}`
129
+ }, /*#__PURE__*/_react.default.createElement("ul", {
130
+ className: _starsSummary.default.allStars,
131
+ "data-name": "engineList",
132
+ "data-testid": "stars-summary-engine-tabs"
133
+ }, /*#__PURE__*/_react.default.createElement(EngineTabs, {
134
+ engines: engines,
135
+ firstItemIndex: firstItemIndex
136
+ })), /*#__PURE__*/_react.default.createElement("div", {
137
+ className: _starsSummary.default.footerSummaryStars,
138
+ style: {
139
+ backgroundColor: primary
129
140
  }
130
-
131
- const leftArrowView = totalItems > 6 && firstItem > 0 ? /*#__PURE__*/_react.default.createElement("div", {
132
- className: _starsSummary.default.circle,
133
- onClick: this.handleOnLeft,
134
- "data-name": "left-arrow"
135
- }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowLeft, {
136
- color: dark,
137
- className: _starsSummary.default.left,
138
- width: 10,
139
- height: 10
140
- })) : null;
141
- const rightArrowView = totalItems > 6 && firstItem < totalItems - 6 ? /*#__PURE__*/_react.default.createElement("div", {
142
- className: _starsSummary.default.circle,
143
- onClick: this.handleOnRight,
144
- "data-name": "right-arrow"
145
- }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowRight, {
146
- color: dark,
147
- className: _starsSummary.default.right,
148
- width: 10,
149
- height: 10
150
- })) : null;
151
- return /*#__PURE__*/_react.default.createElement("div", {
152
- "data-name": "myStars",
153
- className: _starsSummary.default.myStars
154
- }, /*#__PURE__*/_react.default.createElement("div", {
155
- "data-name": "myStars-wrapper",
156
- className: _starsSummary.default.myStarsWrapper
157
- }, /*#__PURE__*/_react.default.createElement("ul", {
158
- className: _starsSummary.default.allStars,
159
- "data-name": "engineList"
160
- }, /*#__PURE__*/_react.default.createElement(EngineTabs, {
161
- engines: engines,
162
- firstItem: firstItem
163
- })), /*#__PURE__*/_react.default.createElement("div", {
164
- className: _starsSummary.default.footerSummaryStars,
165
- style: {
166
- backgroundColor: primary
167
- }
168
- }, /*#__PURE__*/_react.default.createElement("div", {
169
- className: _starsSummary.default.totalStars
170
- }, /*#__PURE__*/_react.default.createElement("span", null, total.label), /*#__PURE__*/_react.default.createElement("p", {
171
- "data-name": "star-counter"
172
- }, total.stars), /*#__PURE__*/_react.default.createElement("div", {
173
- className: _starsSummary.default.iconBubble
174
- }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyStar, {
175
- className: _starsSummary.default.iconHeader,
176
- color: primary
177
- }))), /*#__PURE__*/_react.default.createElement("div", {
178
- className: _starsSummary.default.navigationLeft
179
- }, leftArrowView), /*#__PURE__*/_react.default.createElement("div", {
180
- className: _starsSummary.default.navigationRight
181
- }, rightArrowView))));
182
- }
183
-
184
- }
185
-
186
- StarsSummary.contextTypes = {
187
- skin: _provider.default.childContextTypes.skin
141
+ }, /*#__PURE__*/_react.default.createElement("div", {
142
+ className: _starsSummary.default.totalStars
143
+ }, /*#__PURE__*/_react.default.createElement("span", null, total.label), /*#__PURE__*/_react.default.createElement("p", {
144
+ "data-name": "star-counter"
145
+ }, total.stars), /*#__PURE__*/_react.default.createElement("div", {
146
+ className: _starsSummary.default.iconBubble
147
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyStar, {
148
+ className: _starsSummary.default.iconHeader,
149
+ color: primary
150
+ }))), /*#__PURE__*/_react.default.createElement("div", {
151
+ className: _starsSummary.default.navigationLeft
152
+ }, leftArrowView), /*#__PURE__*/_react.default.createElement("div", {
153
+ className: _starsSummary.default.navigationRight
154
+ }, rightArrowView))));
188
155
  };
156
+
189
157
  StarsSummary.propTypes = process.env.NODE_ENV !== "production" ? {
190
158
  total: _propTypes.default.shape({
191
159
  label: _propTypes.default.string.isRequired,
192
160
  stars: _propTypes.default.number.isRequired
193
161
  }).isRequired,
194
- engines: _propTypes.default.arrayOf(_propTypes.default.shape(_engineStars.default.propTypes))
162
+ engines: _propTypes.default.arrayOf(_propTypes.default.shape(_engineStars.default.propTypes)).isRequired
195
163
  } : {};
164
+ StarsSummary.contextTypes = {
165
+ skin: _provider.default.childContextTypes.skin
166
+ };
196
167
  var _default = StarsSummary;
197
168
  exports.default = _default;
198
169
  //# sourceMappingURL=stars-summary.js.map