@coorpacademy/components 11.32.19 → 11.32.20-alpha.32

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 (241) hide show
  1. package/es/atom/button-link/index.d.ts +2 -0
  2. package/es/atom/button-link/index.d.ts.map +1 -1
  3. package/es/atom/button-link/index.js +22 -8
  4. package/es/atom/button-link/index.js.map +1 -1
  5. package/es/atom/button-link/types.d.ts +4 -0
  6. package/es/atom/button-link/types.d.ts.map +1 -1
  7. package/es/atom/button-link/types.js +2 -0
  8. package/es/atom/button-link/types.js.map +1 -1
  9. package/es/atom/circular-progress-bar/index.d.ts +15 -0
  10. package/es/atom/circular-progress-bar/index.d.ts.map +1 -0
  11. package/es/atom/circular-progress-bar/index.js +86 -0
  12. package/es/atom/circular-progress-bar/index.js.map +1 -0
  13. package/es/atom/circular-progress-bar/style.css +51 -0
  14. package/es/atom/circular-progress-bar/types.d.ts +18 -0
  15. package/es/atom/circular-progress-bar/types.d.ts.map +1 -0
  16. package/es/atom/circular-progress-bar/types.js +10 -0
  17. package/es/atom/circular-progress-bar/types.js.map +1 -0
  18. package/es/atom/tag/index.d.ts +10 -1
  19. package/es/atom/tag/index.d.ts.map +1 -1
  20. package/es/atom/tag/index.js +19 -11
  21. package/es/atom/tag/index.js.map +1 -1
  22. package/es/atom/tag/style.css +38 -19
  23. package/es/molecule/base-modal/index.d.ts.map +1 -1
  24. package/es/molecule/base-modal/index.js +6 -10
  25. package/es/molecule/base-modal/index.js.map +1 -1
  26. package/es/molecule/cm-popin/types.d.ts +8 -0
  27. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  28. package/es/molecule/draggable-list/index.d.ts +12 -0
  29. package/es/molecule/draggable-list/index.d.ts.map +1 -1
  30. package/es/molecule/draggable-list/index.js +4 -2
  31. package/es/molecule/draggable-list/index.js.map +1 -1
  32. package/es/molecule/expandible-actionable-table/index.d.ts +2 -0
  33. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  34. package/es/molecule/expandible-actionable-table/types.d.ts +2 -0
  35. package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  36. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  37. package/es/molecule/learner-skill-card/index.js +7 -10
  38. package/es/molecule/learner-skill-card/index.js.map +1 -1
  39. package/es/molecule/learning-priority-card/index.d.ts +40 -0
  40. package/es/molecule/learning-priority-card/index.d.ts.map +1 -0
  41. package/es/molecule/learning-priority-card/index.js +77 -0
  42. package/es/molecule/learning-priority-card/index.js.map +1 -0
  43. package/es/molecule/learning-priority-card/style.css +34 -0
  44. package/es/molecule/learning-priority-card/types.d.ts +18 -0
  45. package/es/molecule/learning-priority-card/types.d.ts.map +1 -0
  46. package/es/molecule/learning-priority-card/types.js +10 -0
  47. package/es/molecule/learning-priority-card/types.js.map +1 -0
  48. package/es/molecule/learning-priority-modal/index.d.ts +33 -0
  49. package/es/molecule/learning-priority-modal/index.d.ts.map +1 -0
  50. package/es/molecule/learning-priority-modal/index.js +231 -0
  51. package/es/molecule/learning-priority-modal/index.js.map +1 -0
  52. package/es/molecule/learning-priority-modal/style.css +68 -0
  53. package/es/molecule/learning-priority-setup-item/index.d.ts +18 -0
  54. package/es/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
  55. package/es/molecule/learning-priority-setup-item/index.js +69 -0
  56. package/es/molecule/learning-priority-setup-item/index.js.map +1 -0
  57. package/es/molecule/learning-priority-setup-item/style.css +47 -0
  58. package/es/molecule/skill-card/index.d.ts.map +1 -1
  59. package/es/molecule/skill-card/index.js +5 -8
  60. package/es/molecule/skill-card/index.js.map +1 -1
  61. package/es/organism/brand-learning-priorities/index.d.ts +170 -0
  62. package/es/organism/brand-learning-priorities/index.d.ts.map +1 -0
  63. package/es/organism/brand-learning-priorities/index.js +99 -0
  64. package/es/organism/brand-learning-priorities/index.js.map +1 -0
  65. package/es/organism/brand-learning-priorities/style.css +35 -0
  66. package/es/organism/list-item/index.d.ts +34 -2
  67. package/es/organism/list-item/index.d.ts.map +1 -1
  68. package/es/organism/list-item/index.js +58 -14
  69. package/es/organism/list-item/index.js.map +1 -1
  70. package/es/organism/list-item/style.css +21 -1
  71. package/es/organism/list-items/index.d.ts +8 -0
  72. package/es/organism/setup-header/index.d.ts +8 -0
  73. package/es/organism/wizard-contents/index.d.ts +6 -0
  74. package/es/template/app-player/loading/index.d.ts +8 -0
  75. package/es/template/app-player/player/index.d.ts +16 -0
  76. package/es/template/app-player/player/slides/index.d.ts +8 -0
  77. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  78. package/es/template/app-player/popin-correction/index.d.ts +8 -0
  79. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  80. package/es/template/app-player/popin-end/index.d.ts +8 -0
  81. package/es/template/app-review/index.d.ts +8 -0
  82. package/es/template/app-review/index.d.ts.map +1 -1
  83. package/es/template/app-review/player/prop-types.d.ts +8 -0
  84. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  85. package/es/template/app-review/prop-types.d.ts +8 -0
  86. package/es/template/app-review/prop-types.d.ts.map +1 -1
  87. package/es/template/back-office/brand-create/index.d.ts +8 -0
  88. package/es/template/back-office/brand-create/index.d.ts.map +1 -1
  89. package/es/template/back-office/brand-list/index.d.ts +8 -0
  90. package/es/template/back-office/brand-list/index.d.ts.map +1 -1
  91. package/es/template/back-office/brand-update/index.d.ts +171 -0
  92. package/es/template/back-office/brand-update/index.d.ts.map +1 -1
  93. package/es/template/back-office/brand-update/index.js +7 -0
  94. package/es/template/back-office/brand-update/index.js.map +1 -1
  95. package/es/template/back-office/dashboard-preview/index.d.ts +8 -0
  96. package/es/template/back-office/layout/index.d.ts +8 -0
  97. package/es/template/back-office/layout/index.d.ts.map +1 -1
  98. package/es/template/common/dashboard/index.d.ts +16 -0
  99. package/es/template/common/search-page/index.d.ts +8 -0
  100. package/es/template/external-course/index.d.ts +8 -0
  101. package/es/template/my-learning/index.d.ts.map +1 -1
  102. package/es/template/my-learning/index.js +10 -18
  103. package/es/template/my-learning/index.js.map +1 -1
  104. package/es/template/skill-detail/index.d.ts.map +1 -1
  105. package/es/template/skill-detail/index.js +4 -8
  106. package/es/template/skill-detail/index.js.map +1 -1
  107. package/lib/atom/button-link/index.d.ts +2 -0
  108. package/lib/atom/button-link/index.d.ts.map +1 -1
  109. package/lib/atom/button-link/index.js +21 -7
  110. package/lib/atom/button-link/index.js.map +1 -1
  111. package/lib/atom/button-link/types.d.ts +4 -0
  112. package/lib/atom/button-link/types.d.ts.map +1 -1
  113. package/lib/atom/button-link/types.js +2 -0
  114. package/lib/atom/button-link/types.js.map +1 -1
  115. package/lib/atom/circular-progress-bar/index.d.ts +15 -0
  116. package/lib/atom/circular-progress-bar/index.d.ts.map +1 -0
  117. package/lib/atom/circular-progress-bar/index.js +101 -0
  118. package/lib/atom/circular-progress-bar/index.js.map +1 -0
  119. package/lib/atom/circular-progress-bar/style.css +51 -0
  120. package/lib/atom/circular-progress-bar/types.d.ts +18 -0
  121. package/lib/atom/circular-progress-bar/types.d.ts.map +1 -0
  122. package/lib/atom/circular-progress-bar/types.js +19 -0
  123. package/lib/atom/circular-progress-bar/types.js.map +1 -0
  124. package/lib/atom/tag/index.d.ts +10 -1
  125. package/lib/atom/tag/index.d.ts.map +1 -1
  126. package/lib/atom/tag/index.js +20 -11
  127. package/lib/atom/tag/index.js.map +1 -1
  128. package/lib/atom/tag/style.css +38 -19
  129. package/lib/molecule/base-modal/index.d.ts.map +1 -1
  130. package/lib/molecule/base-modal/index.js +5 -9
  131. package/lib/molecule/base-modal/index.js.map +1 -1
  132. package/lib/molecule/cm-popin/types.d.ts +8 -0
  133. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  134. package/lib/molecule/draggable-list/index.d.ts +12 -0
  135. package/lib/molecule/draggable-list/index.d.ts.map +1 -1
  136. package/lib/molecule/draggable-list/index.js +5 -2
  137. package/lib/molecule/draggable-list/index.js.map +1 -1
  138. package/lib/molecule/expandible-actionable-table/index.d.ts +2 -0
  139. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  140. package/lib/molecule/expandible-actionable-table/types.d.ts +2 -0
  141. package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  142. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  143. package/lib/molecule/learner-skill-card/index.js +6 -9
  144. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  145. package/lib/molecule/learning-priority-card/index.d.ts +40 -0
  146. package/lib/molecule/learning-priority-card/index.d.ts.map +1 -0
  147. package/lib/molecule/learning-priority-card/index.js +95 -0
  148. package/lib/molecule/learning-priority-card/index.js.map +1 -0
  149. package/lib/molecule/learning-priority-card/style.css +34 -0
  150. package/lib/molecule/learning-priority-card/types.d.ts +18 -0
  151. package/lib/molecule/learning-priority-card/types.d.ts.map +1 -0
  152. package/lib/molecule/learning-priority-card/types.js +19 -0
  153. package/lib/molecule/learning-priority-card/types.js.map +1 -0
  154. package/lib/molecule/learning-priority-modal/index.d.ts +33 -0
  155. package/lib/molecule/learning-priority-modal/index.d.ts.map +1 -0
  156. package/lib/molecule/learning-priority-modal/index.js +254 -0
  157. package/lib/molecule/learning-priority-modal/index.js.map +1 -0
  158. package/lib/molecule/learning-priority-modal/style.css +68 -0
  159. package/lib/molecule/learning-priority-setup-item/index.d.ts +18 -0
  160. package/lib/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
  161. package/lib/molecule/learning-priority-setup-item/index.js +86 -0
  162. package/lib/molecule/learning-priority-setup-item/index.js.map +1 -0
  163. package/lib/molecule/learning-priority-setup-item/style.css +47 -0
  164. package/lib/molecule/skill-card/index.d.ts.map +1 -1
  165. package/lib/molecule/skill-card/index.js +4 -7
  166. package/lib/molecule/skill-card/index.js.map +1 -1
  167. package/lib/organism/brand-learning-priorities/index.d.ts +170 -0
  168. package/lib/organism/brand-learning-priorities/index.d.ts.map +1 -0
  169. package/lib/organism/brand-learning-priorities/index.js +117 -0
  170. package/lib/organism/brand-learning-priorities/index.js.map +1 -0
  171. package/lib/organism/brand-learning-priorities/style.css +35 -0
  172. package/lib/organism/list-item/index.d.ts +34 -2
  173. package/lib/organism/list-item/index.d.ts.map +1 -1
  174. package/lib/organism/list-item/index.js +62 -16
  175. package/lib/organism/list-item/index.js.map +1 -1
  176. package/lib/organism/list-item/style.css +21 -1
  177. package/lib/organism/list-items/index.d.ts +8 -0
  178. package/lib/organism/setup-header/index.d.ts +8 -0
  179. package/lib/organism/wizard-contents/index.d.ts +6 -0
  180. package/lib/template/app-player/loading/index.d.ts +8 -0
  181. package/lib/template/app-player/player/index.d.ts +16 -0
  182. package/lib/template/app-player/player/slides/index.d.ts +8 -0
  183. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  184. package/lib/template/app-player/popin-correction/index.d.ts +8 -0
  185. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  186. package/lib/template/app-player/popin-end/index.d.ts +8 -0
  187. package/lib/template/app-review/index.d.ts +8 -0
  188. package/lib/template/app-review/index.d.ts.map +1 -1
  189. package/lib/template/app-review/player/prop-types.d.ts +8 -0
  190. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  191. package/lib/template/app-review/prop-types.d.ts +8 -0
  192. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  193. package/lib/template/back-office/brand-create/index.d.ts +8 -0
  194. package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
  195. package/lib/template/back-office/brand-list/index.d.ts +8 -0
  196. package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
  197. package/lib/template/back-office/brand-update/index.d.ts +171 -0
  198. package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
  199. package/lib/template/back-office/brand-update/index.js +8 -0
  200. package/lib/template/back-office/brand-update/index.js.map +1 -1
  201. package/lib/template/back-office/dashboard-preview/index.d.ts +8 -0
  202. package/lib/template/back-office/layout/index.d.ts +8 -0
  203. package/lib/template/back-office/layout/index.d.ts.map +1 -1
  204. package/lib/template/common/dashboard/index.d.ts +16 -0
  205. package/lib/template/common/search-page/index.d.ts +8 -0
  206. package/lib/template/external-course/index.d.ts +8 -0
  207. package/lib/template/my-learning/index.d.ts.map +1 -1
  208. package/lib/template/my-learning/index.js +10 -18
  209. package/lib/template/my-learning/index.js.map +1 -1
  210. package/lib/template/skill-detail/index.d.ts.map +1 -1
  211. package/lib/template/skill-detail/index.js +4 -8
  212. package/lib/template/skill-detail/index.js.map +1 -1
  213. package/locales/bs/global.json +1 -0
  214. package/locales/cs/global.json +1 -0
  215. package/locales/de/global.json +1 -0
  216. package/locales/en/global.json +12 -0
  217. package/locales/es/global.json +1 -0
  218. package/locales/et/global.json +1 -0
  219. package/locales/fi/global.json +1 -0
  220. package/locales/fr/global.json +2 -1
  221. package/locales/hr/global.json +1 -0
  222. package/locales/hu/global.json +1 -0
  223. package/locales/hy/global.json +1 -0
  224. package/locales/it/global.json +1 -0
  225. package/locales/ja/global.json +1 -0
  226. package/locales/ko/global.json +1 -0
  227. package/locales/nl/global.json +1 -0
  228. package/locales/pl/global.json +1 -0
  229. package/locales/pt/global.json +1 -0
  230. package/locales/ro/global.json +1 -0
  231. package/locales/ru/global.json +1 -0
  232. package/locales/sk/global.json +1 -0
  233. package/locales/sl/global.json +1 -0
  234. package/locales/sv/global.json +1 -0
  235. package/locales/tl/global.json +1 -0
  236. package/locales/tr/global.json +1 -0
  237. package/locales/uk/global.json +1 -0
  238. package/locales/vi/global.json +1 -0
  239. package/locales/zh/global.json +1 -0
  240. package/locales/zh_TW/global.json +1 -0
  241. package/package.json +2 -2
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _pick2 = _interopRequireDefault(require("lodash/fp/pick"));
7
+
8
+ var _assign2 = _interopRequireDefault(require("lodash/fp/assign"));
9
+
10
+ var _get2 = _interopRequireDefault(require("lodash/fp/get"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _cssColorFunction = require("css-color-function");
17
+
18
+ var _baseModal = _interopRequireDefault(require("../base-modal"));
19
+
20
+ var _listItem = _interopRequireDefault(require("../../organism/list-item"));
21
+
22
+ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
23
+
24
+ var _loader = _interopRequireDefault(require("../../atom/loader"));
25
+
26
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
27
+
28
+ var _select = require("../../atom/select");
29
+
30
+ var _searchForm = _interopRequireDefault(require("../search-form"));
31
+
32
+ var _searchValueIncluded = _interopRequireDefault(require("../../util/search-value-included"));
33
+
34
+ var _style = _interopRequireDefault(require("./style.css"));
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
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ 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); }
43
+
44
+ const FilterButton = (props, context) => {
45
+ const {
46
+ active,
47
+ filter,
48
+ itemTotal,
49
+ onClick
50
+ } = props;
51
+ const {
52
+ skin
53
+ } = context;
54
+ const primarySkinColor = (0, _get2.default)('common.primary', skin);
55
+ const Content = (0, _react.useCallback)(() => /*#__PURE__*/_react.default.createElement("div", null, filter, /*#__PURE__*/_react.default.createElement("span", {
56
+ className: active ? _style.default.skillFilterNumber : _style.default.skillFilterNumberInActive,
57
+ style: {
58
+ backgroundColor: active ? (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',
59
+ color: active ? primarySkinColor : '#515161'
60
+ }
61
+ }, itemTotal)), [filter, itemTotal, active, primarySkinColor]);
62
+ const buttonProps = {
63
+ customStyle: {
64
+ backgroundColor: active ? (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`) : 'transparent',
65
+ color: active ? primarySkinColor : '#9999A8',
66
+ transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
67
+ width: 'fit-content'
68
+ },
69
+ onClick,
70
+ content: /*#__PURE__*/_react.default.createElement(Content, null),
71
+ 'data-name': 'change-skill-focus-button'
72
+ };
73
+ return /*#__PURE__*/_react.default.createElement(_buttonLink.default, buttonProps);
74
+ };
75
+
76
+ FilterButton.contextTypes = {
77
+ skin: _provider.default.childContextTypes.skin,
78
+ translate: _provider.default.childContextTypes.translate
79
+ };
80
+ FilterButton.propTypes = process.env.NODE_ENV !== "production" ? {
81
+ active: _propTypes.default.bool,
82
+ filter: _propTypes.default.string,
83
+ itemTotal: _propTypes.default.number,
84
+ onClick: _propTypes.default.func
85
+ } : {};
86
+
87
+ const LearningPriorityModal = (props, context) => {
88
+ const {
89
+ priorities,
90
+ preselected,
91
+ isOpen,
92
+ isLoading,
93
+ filters: {
94
+ options,
95
+ onChange
96
+ },
97
+ onCancel,
98
+ onAdd,
99
+ onClose
100
+ } = props;
101
+ const {
102
+ translate
103
+ } = context;
104
+ const [selectedPriority, setSelectedPriority] = (0, _react.useState)('');
105
+ const [searchValue, setSearchValue] = (0, _react.useState)('');
106
+ const [searchResults, setSearchResults] = (0, _react.useState)(priorities);
107
+ const handleCancel = (0, _react.useCallback)(() => {
108
+ setSelectedPriority('');
109
+ onCancel();
110
+ }, [setSelectedPriority, onCancel]);
111
+ const handleClose = (0, _react.useCallback)(() => {
112
+ setSelectedPriority('');
113
+ onClose();
114
+ }, [setSelectedPriority, onClose]);
115
+ const handleSearch = (0, _react.useCallback)(value => {
116
+ setSearchValue(value);
117
+ setSearchResults(priorities.filter(priority => (0, _searchValueIncluded.default)(priority.title, value)));
118
+ }, [priorities, setSearchValue, setSearchResults]);
119
+ const handleSearchReset = (0, _react.useCallback)(() => {
120
+ setSearchValue('');
121
+ setSearchResults(priorities);
122
+ }, [priorities, setSearchValue, setSearchResults]);
123
+ (0, _react.useEffect)(() => {
124
+ setSearchResults(priorities);
125
+ }, [priorities]);
126
+ const priorityList = (0, _react.useMemo)(() => {
127
+ return searchResults.map(priority => {
128
+ const isPreSelectedPriority = preselected.some(selected => selected === priority.ref);
129
+ return (0, _assign2.default)({
130
+ selected: isPreSelectedPriority,
131
+ disabled: isPreSelectedPriority
132
+ }, (0, _pick2.default)(['title', 'ref', 'type', 'courses'], priority));
133
+ });
134
+ }, [searchResults, preselected]);
135
+ const footer = (0, _react.useMemo)(() => {
136
+ return {
137
+ cancelButton: {
138
+ onCancel: handleCancel,
139
+ label: translate('cancel')
140
+ },
141
+ confirmButton: {
142
+ onConfirm: () => onAdd(selectedPriority),
143
+ label: translate('add'),
144
+ iconName: 'plus',
145
+ disabled: isLoading
146
+ }
147
+ };
148
+ }, [handleCancel, onAdd, translate, selectedPriority, isLoading]);
149
+ if (!isLoading && !priorities || !isOpen) return null;
150
+ return /*#__PURE__*/_react.default.createElement(_baseModal.default, {
151
+ title: translate('learning_priority_modal_title'),
152
+ description: translate('learning_priority_modal_description'),
153
+ isOpen: isOpen,
154
+ onClose: handleClose,
155
+ footer: footer
156
+ }, /*#__PURE__*/_react.default.createElement("div", {
157
+ className: _style.default.LearningPriorityContainer
158
+ }, isLoading ? /*#__PURE__*/_react.default.createElement("div", {
159
+ className: _style.default.loaderContainer
160
+ }, /*#__PURE__*/_react.default.createElement(_loader.default, {
161
+ className: _style.default.loader,
162
+ theme: "coorpmanager"
163
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
164
+ className: _style.default.searchWrapper
165
+ }, /*#__PURE__*/_react.default.createElement(_searchForm.default, {
166
+ search: {
167
+ placeholder: translate('search_priority_place_holder'),
168
+ value: searchValue,
169
+ onChange: handleSearch
170
+ },
171
+ onReset: handleSearchReset
172
+ })), /*#__PURE__*/_react.default.createElement("div", {
173
+ className: _style.default.filterWrapper
174
+ }, searchResults.length > 0 ? options.map((filter, index) => {
175
+ const {
176
+ name,
177
+ value,
178
+ selected,
179
+ count
180
+ } = filter;
181
+
182
+ function handleChange() {
183
+ onChange(value);
184
+ handleSearchReset();
185
+ }
186
+
187
+ if (count === 0) return null;
188
+ return /*#__PURE__*/_react.default.createElement("div", {
189
+ key: index,
190
+ className: _style.default.filterButtonWrapper
191
+ }, /*#__PURE__*/_react.default.createElement(FilterButton, {
192
+ active: selected,
193
+ filter: name,
194
+ onClick: handleChange,
195
+ itemTotal: count
196
+ }));
197
+ }) : null), /*#__PURE__*/_react.default.createElement("div", {
198
+ className: _style.default.priorityListWrapper
199
+ }, priorityList.map(priority => {
200
+ const {
201
+ title,
202
+ ref,
203
+ courses,
204
+ type,
205
+ selected,
206
+ disabled
207
+ } = priority;
208
+
209
+ function handlePriorityClick() {
210
+ setSelectedPriority(ref);
211
+ }
212
+
213
+ return /*#__PURE__*/_react.default.createElement(_listItem.default, {
214
+ title: title,
215
+ subtitle: `${courses} ${translate('courses')}`,
216
+ selected: selected || selectedPriority === ref,
217
+ disabled: disabled,
218
+ onClick: handlePriorityClick,
219
+ tags: [{
220
+ label: type,
221
+ type: 'default'
222
+ }],
223
+ key: ref,
224
+ backgroundColor: "skin"
225
+ });
226
+ })))));
227
+ };
228
+
229
+ LearningPriorityModal.contextTypes = {
230
+ translate: _provider.default.childContextTypes.translate
231
+ };
232
+ LearningPriorityModal.propTypes = process.env.NODE_ENV !== "production" ? {
233
+ priorities: _propTypes.default.arrayOf(_propTypes.default.shape({
234
+ ref: _propTypes.default.string,
235
+ title: _propTypes.default.string,
236
+ courses: _propTypes.default.number,
237
+ type: _propTypes.default.string
238
+ })),
239
+ preselected: _propTypes.default.arrayOf(_propTypes.default.string),
240
+ isOpen: _propTypes.default.bool,
241
+ isLoading: _propTypes.default.bool,
242
+ filters: _propTypes.default.shape({
243
+ onChange: _propTypes.default.func,
244
+ options: _propTypes.default.arrayOf(_propTypes.default.shape(_extends({}, _select.SelectOptionPropTypes, {
245
+ count: _propTypes.default.number
246
+ })))
247
+ }),
248
+ onCancel: _propTypes.default.func,
249
+ onAdd: _propTypes.default.func,
250
+ onClose: _propTypes.default.func
251
+ } : {};
252
+ var _default = LearningPriorityModal;
253
+ exports.default = _default;
254
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["FilterButton","props","context","active","filter","itemTotal","onClick","skin","primarySkinColor","Content","useCallback","style","skillFilterNumber","skillFilterNumberInActive","backgroundColor","convert","color","buttonProps","customStyle","transition","width","content","contextTypes","Provider","childContextTypes","translate","propTypes","PropTypes","bool","string","number","func","LearningPriorityModal","priorities","preselected","isOpen","isLoading","filters","options","onChange","onCancel","onAdd","onClose","selectedPriority","setSelectedPriority","useState","searchValue","setSearchValue","searchResults","setSearchResults","handleCancel","handleClose","handleSearch","value","priority","searchValueIncluded","title","handleSearchReset","useEffect","priorityList","useMemo","map","isPreSelectedPriority","some","selected","ref","disabled","footer","cancelButton","label","confirmButton","onConfirm","iconName","LearningPriorityContainer","loaderContainer","loader","searchWrapper","placeholder","filterWrapper","length","index","name","count","handleChange","filterButtonWrapper","priorityListWrapper","courses","type","handlePriorityClick","arrayOf","shape","SelectOptionPropTypes"],"sources":["../../../src/molecule/learning-priority-modal/index.js"],"sourcesContent":["import React, {useEffect, useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, assign, pick} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport BaseModal from '../base-modal';\nimport ListItem from '../../organism/list-item';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport SearchForm from '../search-form';\nimport searchValueIncluded from '../../util/search-value-included';\nimport style from './style.css';\n\nconst FilterButton = (props, context) => {\n const {active, filter, itemTotal, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span\n className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}\n style={{\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',\n color: active ? primarySkinColor : '#515161'\n }}\n >\n {itemTotal}\n </span>\n </div>\n ),\n [filter, itemTotal, active, primarySkinColor]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : 'transparent',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n itemTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst LearningPriorityModal = (props, context) => {\n const {\n priorities,\n preselected,\n isOpen,\n isLoading,\n filters: {options, onChange},\n onCancel,\n onAdd,\n onClose\n } = props;\n const {translate} = context;\n\n const [selectedPriority, setSelectedPriority] = useState('');\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(priorities);\n\n const handleCancel = useCallback(() => {\n setSelectedPriority('');\n onCancel();\n }, [setSelectedPriority, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedPriority('');\n onClose();\n }, [setSelectedPriority, onClose]);\n\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(priorities.filter(priority => searchValueIncluded(priority.title, value)));\n },\n [priorities, setSearchValue, setSearchResults]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(priorities);\n }, [priorities, setSearchValue, setSearchResults]);\n\n useEffect(() => {\n setSearchResults(priorities);\n }, [priorities]);\n\n const priorityList = useMemo(() => {\n return searchResults.map(priority => {\n const isPreSelectedPriority = preselected.some(selected => selected === priority.ref);\n return assign(\n {\n selected: isPreSelectedPriority,\n disabled: isPreSelectedPriority\n },\n pick(['title', 'ref', 'type', 'courses'], priority)\n );\n });\n }, [searchResults, preselected]);\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => onAdd(selectedPriority),\n label: translate('add'),\n iconName: 'plus',\n disabled: isLoading\n }\n };\n }, [handleCancel, onAdd, translate, selectedPriority, isLoading]);\n\n if ((!isLoading && !priorities) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('learning_priority_modal_title')}\n description={translate('learning_priority_modal_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n >\n <div className={style.LearningPriorityContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_priority_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n <div className={style.filterWrapper}>\n {searchResults.length > 0\n ? options.map((filter, index) => {\n const {name, value, selected, count} = filter;\n\n function handleChange() {\n onChange(value);\n handleSearchReset();\n }\n\n if (count === 0) return null;\n\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton\n active={selected}\n filter={name}\n onClick={handleChange}\n itemTotal={count}\n />\n </div>\n );\n })\n : null}\n </div>\n <div className={style.priorityListWrapper}>\n {priorityList.map(priority => {\n const {title, ref, courses, type, selected, disabled} = priority;\n function handlePriorityClick() {\n setSelectedPriority(ref);\n }\n\n return (\n <ListItem\n title={title}\n subtitle={`${courses} ${translate('courses')}`}\n selected={selected || selectedPriority === ref}\n disabled={disabled}\n onClick={handlePriorityClick}\n tags={[{label: type, type: 'default'}]}\n key={ref}\n backgroundColor=\"skin\"\n />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nLearningPriorityModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearningPriorityModal.propTypes = {\n priorities: PropTypes.arrayOf(\n PropTypes.shape({\n ref: PropTypes.string,\n title: PropTypes.string,\n courses: PropTypes.number,\n type: PropTypes.string\n })\n ),\n preselected: PropTypes.arrayOf(PropTypes.string),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n ...SelectOptionPropTypes,\n count: PropTypes.number\n })\n )\n }),\n onCancel: PropTypes.func,\n onAdd: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default LearningPriorityModal;\n"],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value cm_grey_100 from colors;
3
+
4
+ .LearningPriorityContainer {
5
+ height: 485px;
6
+ width: 660px;
7
+ overflow-y: auto;
8
+ }
9
+
10
+ .loaderContainer {
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ height: 100%;
15
+ width: 100%;
16
+ }
17
+
18
+ .loader {
19
+ width: 40px;
20
+ height: 40px;
21
+ }
22
+
23
+ .searchWrapper {
24
+ border-radius: 12px;
25
+ width: 300px;
26
+ background-color: cm_grey_100;
27
+ margin-bottom: 20px;
28
+ }
29
+
30
+ .filterWrapper {
31
+ display: flex;
32
+ gap: 12px;
33
+ margin-bottom: 32px;
34
+ }
35
+
36
+ .filterButtonWrapper {
37
+ display: flex;
38
+ align-items: center;
39
+ }
40
+
41
+ .skillFilterNumber,
42
+ .skillFilterNumberInActive {
43
+ border-radius: 50%;
44
+ background-color: #D6E6FF;
45
+ color: #0061FF;
46
+ padding: 2px 4px;
47
+ margin-left: 8px;
48
+ font-size: 10px;
49
+ font-weight: 600;
50
+ line-height: 12px;
51
+ }
52
+
53
+ .skillFilterNumberInActive {
54
+ background-color: #EAEAEB;
55
+ color: #515161;
56
+ }
57
+
58
+ .priorityListWrapper {
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ gap: 16px;
62
+ }
63
+
64
+ @media mobile {
65
+ .LearningPriorityContainer {
66
+ width: 100%;
67
+ }
68
+ }
@@ -0,0 +1,18 @@
1
+ export default LearningPrioritySetupItem;
2
+ declare function LearningPrioritySetupItem(props: any, context: any): JSX.Element;
3
+ declare namespace LearningPrioritySetupItem {
4
+ namespace contextTypes {
5
+ const translate: PropTypes.Requireable<(...args: any[]) => any>;
6
+ }
7
+ const propTypes: {
8
+ 'aria-label': PropTypes.Requireable<string>;
9
+ id: PropTypes.Requireable<string>;
10
+ priorityRef: PropTypes.Requireable<string>;
11
+ title: PropTypes.Requireable<string>;
12
+ courses: PropTypes.Requireable<number>;
13
+ type: PropTypes.Requireable<string>;
14
+ onRemove: PropTypes.Requireable<(...args: any[]) => any>;
15
+ };
16
+ }
17
+ import PropTypes from "prop-types";
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-setup-item/index.js"],"names":[],"mappings":";AAOA,kFAyCC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
11
+
12
+ var _tag = _interopRequireDefault(require("../../atom/tag"));
13
+
14
+ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
15
+
16
+ var _style = _interopRequireDefault(require("./style.css"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ const LearningPrioritySetupItem = (props, context) => {
25
+ const {
26
+ priorityRef,
27
+ id,
28
+ title,
29
+ courses,
30
+ type,
31
+ 'aria-label': ariaLabel,
32
+ onRemove
33
+ } = props;
34
+ const {
35
+ translate
36
+ } = context;
37
+ const handleRemovePriority = (0, _react.useCallback)(() => onRemove(priorityRef, type), [priorityRef, type]);
38
+ return /*#__PURE__*/_react.default.createElement("div", {
39
+ className: _style.default.container,
40
+ "aria-label": ariaLabel,
41
+ "data-name": `learning-priority-setup-item-${id}`
42
+ }, /*#__PURE__*/_react.default.createElement("div", {
43
+ className: _style.default.containerInfos
44
+ }, /*#__PURE__*/_react.default.createElement("div", {
45
+ className: _style.default.titleWrapper
46
+ }, /*#__PURE__*/_react.default.createElement("div", {
47
+ className: _style.default.title
48
+ }, title), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_tag.default, {
49
+ label: translate(type),
50
+ size: 'S'
51
+ }))), /*#__PURE__*/_react.default.createElement("span", {
52
+ className: _style.default.courses
53
+ }, `${courses} ${translate('courses')}`)), /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
54
+ type: "primary",
55
+ customStyle: {
56
+ width: 'fit-content',
57
+ backgroundColor: 'transparent'
58
+ },
59
+ hoverBackgroundColor: "#EAEAEB",
60
+ icon: {
61
+ position: 'left',
62
+ faIcon: {
63
+ name: 'trash',
64
+ color: '#515161',
65
+ size: 16
66
+ }
67
+ },
68
+ onClick: handleRemovePriority
69
+ }));
70
+ };
71
+
72
+ LearningPrioritySetupItem.contextTypes = {
73
+ translate: _provider.default.childContextTypes.translate
74
+ };
75
+ LearningPrioritySetupItem.propTypes = process.env.NODE_ENV !== "production" ? {
76
+ 'aria-label': _propTypes.default.string,
77
+ id: _propTypes.default.string,
78
+ priorityRef: _propTypes.default.string,
79
+ title: _propTypes.default.string,
80
+ courses: _propTypes.default.number,
81
+ type: _propTypes.default.string,
82
+ onRemove: _propTypes.default.func
83
+ } : {};
84
+ var _default = LearningPrioritySetupItem;
85
+ exports.default = _default;
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["LearningPrioritySetupItem","props","context","priorityRef","id","title","courses","type","ariaLabel","onRemove","translate","handleRemovePriority","useCallback","style","container","containerInfos","titleWrapper","width","backgroundColor","position","faIcon","name","color","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","number","func"],"sources":["../../../src/molecule/learning-priority-setup-item/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport style from './style.css';\n\nconst LearningPrioritySetupItem = (props, context) => {\n const {priorityRef, id, title, courses, type, 'aria-label': ariaLabel, onRemove} = props;\n\n const {translate} = context;\n\n const handleRemovePriority = useCallback(() => onRemove(priorityRef, type), [priorityRef, type]);\n\n return (\n <div\n className={style.container}\n aria-label={ariaLabel}\n data-name={`learning-priority-setup-item-${id}`}\n >\n <div className={style.containerInfos}>\n <div className={style.titleWrapper}>\n <div className={style.title}>{title}</div>\n <div>\n <Tag label={translate(type)} size={'S'} />\n </div>\n </div>\n <span className={style.courses}>{`${courses} ${translate('courses')}`}</span>\n </div>\n <ButtonLink\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n backgroundColor: 'transparent'\n }}\n hoverBackgroundColor=\"#EAEAEB\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'trash',\n color: '#515161',\n size: 16\n }\n }}\n onClick={handleRemovePriority}\n />\n </div>\n );\n};\n\nLearningPrioritySetupItem.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearningPrioritySetupItem.propTypes = {\n 'aria-label': PropTypes.string,\n id: PropTypes.string,\n priorityRef: PropTypes.string,\n title: PropTypes.string,\n courses: PropTypes.number,\n type: PropTypes.string,\n onRemove: PropTypes.func\n};\n\nexport default LearningPrioritySetupItem;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,yBAAyB,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACpD,MAAM;IAACC,WAAD;IAAcC,EAAd;IAAkBC,KAAlB;IAAyBC,OAAzB;IAAkCC,IAAlC;IAAwC,cAAcC,SAAtD;IAAiEC;EAAjE,IAA6ER,KAAnF;EAEA,MAAM;IAACS;EAAD,IAAcR,OAApB;EAEA,MAAMS,oBAAoB,GAAG,IAAAC,kBAAA,EAAY,MAAMH,QAAQ,CAACN,WAAD,EAAcI,IAAd,CAA1B,EAA+C,CAACJ,WAAD,EAAcI,IAAd,CAA/C,CAA7B;EAEA,oBACE;IACE,SAAS,EAAEM,cAAA,CAAMC,SADnB;IAEE,cAAYN,SAFd;IAGE,aAAY,gCAA+BJ,EAAG;EAHhD,gBAKE;IAAK,SAAS,EAAES,cAAA,CAAME;EAAtB,gBACE;IAAK,SAAS,EAAEF,cAAA,CAAMG;EAAtB,gBACE;IAAK,SAAS,EAAEH,cAAA,CAAMR;EAAtB,GAA8BA,KAA9B,CADF,eAEE,uDACE,6BAAC,YAAD;IAAK,KAAK,EAAEK,SAAS,CAACH,IAAD,CAArB;IAA6B,IAAI,EAAE;EAAnC,EADF,CAFF,CADF,eAOE;IAAM,SAAS,EAAEM,cAAA,CAAMP;EAAvB,GAAkC,GAAEA,OAAQ,IAAGI,SAAS,CAAC,SAAD,CAAY,EAApE,CAPF,CALF,eAcE,6BAAC,mBAAD;IACE,IAAI,EAAC,SADP;IAEE,WAAW,EAAE;MACXO,KAAK,EAAE,aADI;MAEXC,eAAe,EAAE;IAFN,CAFf;IAME,oBAAoB,EAAC,SANvB;IAOE,IAAI,EAAE;MACJC,QAAQ,EAAE,MADN;MAEJC,MAAM,EAAE;QACNC,IAAI,EAAE,OADA;QAENC,KAAK,EAAE,SAFD;QAGNC,IAAI,EAAE;MAHA;IAFJ,CAPR;IAeE,OAAO,EAAEZ;EAfX,EAdF,CADF;AAkCD,CAzCD;;AA2CAX,yBAAyB,CAACwB,YAA1B,GAAyC;EACvCd,SAAS,EAAEe,iBAAA,CAASC,iBAAT,CAA2BhB;AADC,CAAzC;AAIAV,yBAAyB,CAAC2B,SAA1B,2CAAsC;EACpC,cAAcC,kBAAA,CAAUC,MADY;EAEpCzB,EAAE,EAAEwB,kBAAA,CAAUC,MAFsB;EAGpC1B,WAAW,EAAEyB,kBAAA,CAAUC,MAHa;EAIpCxB,KAAK,EAAEuB,kBAAA,CAAUC,MAJmB;EAKpCvB,OAAO,EAAEsB,kBAAA,CAAUE,MALiB;EAMpCvB,IAAI,EAAEqB,kBAAA,CAAUC,MANoB;EAOpCpB,QAAQ,EAAEmB,kBAAA,CAAUG;AAPgB,CAAtC;eAUe/B,yB"}
@@ -0,0 +1,47 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value cm_grey_50 from colors;
3
+ @value cm_grey_700 from colors;
4
+ @value cm_grey_500 from colors;
5
+ @value cm_grey_400 from colors;
6
+
7
+ .container {
8
+ display: flex;
9
+ justify-content: space-between;
10
+ align-items: center;
11
+ background-color: cm_grey_50;
12
+ font-size: 14px;
13
+ margin-top: 8px;
14
+ padding: 8px 16px;
15
+ border-radius: 7px;
16
+ }
17
+
18
+ .containerInfos {
19
+ margin-left: 32px;
20
+ overflow: hidden;
21
+ flex-grow: 1;
22
+ }
23
+
24
+ .titleWrapper {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: 8px;
28
+ }
29
+
30
+ .title {
31
+ color: cm_grey_700;
32
+ line-height: 22px;
33
+ font-family: Gilroy;
34
+ font-size: 16px;
35
+ font-weight: bold;
36
+ overflow: hidden;
37
+ white-space: nowrap;
38
+ display: inline-block;
39
+ text-overflow: ellipsis;
40
+ }
41
+
42
+ .courses {
43
+ color: cm_grey_500;
44
+ display: block;
45
+ font-family: Gilroy;
46
+ line-height: 20px;
47
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-card/index.js"],"names":[],"mappings":";AAwBA,kEA0EC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-card/index.js"],"names":[],"mappings":";AAwBA,kEAkEC"}
@@ -43,16 +43,15 @@ const SkillCard = (props, context) => {
43
43
  const {
44
44
  skin
45
45
  } = context;
46
- const [hovered, setHovered] = (0, _react.useState)(false);
47
46
  const primarySkinColor = (0, _getOr.default)('#00B0FF', 'common.primary', skin);
48
- const handleMouseOver = (0, _react.useCallback)(() => setHovered(true), [setHovered]);
49
- const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
50
47
  const buttonProps = {
51
48
  customStyle: {
52
- backgroundColor: hovered ? primarySkinColor : (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`),
53
- color: hovered ? '#FFFFFF' : primarySkinColor,
49
+ backgroundColor: (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`),
50
+ color: primarySkinColor,
54
51
  transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
55
52
  },
53
+ hoverBackgroundColor: primarySkinColor,
54
+ hoverColor: '#FFFFFF',
56
55
  onClick,
57
56
  'aria-label': buttonAriaLabel ? `${skillTitle}, ${buttonAriaLabel}` : skillTitle,
58
57
  label: buttonLabel,
@@ -83,8 +82,6 @@ const SkillCard = (props, context) => {
83
82
  height: 16
84
83
  }), reviseLabel), /*#__PURE__*/_react.default.createElement("div", {
85
84
  className: _style.default.buttonWrapper,
86
- onMouseOver: handleMouseOver,
87
- onMouseLeave: handleMouseLeave,
88
85
  "data-name": "button-wrapper"
89
86
  }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, buttonProps))));
90
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getGradientBackground","baseColor","gradients","convert","SkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","buttonLabel","buttonAriaLabel","reviseLabel","reviseAriaLabel","onClick","isCustom","skin","hovered","setHovered","useState","primarySkinColor","getOr","handleMouseOver","useCallback","handleMouseLeave","buttonProps","customStyle","backgroundColor","color","transition","label","titleBackgroundColor","useMemo","titleBackground","style","skillCardWrapper","background","questionReviseText","questionReviseIcon","buttonWrapper","propTypes"],"sources":["../../../src/molecule/skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport {convert} from 'css-color-function';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport getOr from 'lodash/fp/getOr';\nimport ButtonLink from '../../atom/button-link';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nconst getGradientBackground = baseColor => {\n const gradients = [\n convert(`color(${baseColor} lightness(30%))`),\n convert(`color(${baseColor} lightness(47%))`),\n convert(`color(${baseColor} lightness(55%))`)\n ];\n\n return `radial-gradient(62.12% 56.45% at 0% 77.29%, ${gradients[0]} 0%, ${convert(\n `color(${gradients[0]} a(0))`\n )} 100%), radial-gradient(113.85% 103.46% at 93.27% 7.88%, ${gradients[1]} 0%, ${convert(\n `color(${gradients[1]} a(0))`\n )} 100%), radial-gradient(49.66% 49.63% at 78.65% 86.26%, ${gradients[2]} 0%, ${convert(\n `color(${gradients[2]} a(0))`\n )} 100%), ${baseColor}`;\n};\n\nconst SkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n buttonLabel,\n buttonAriaLabel,\n reviseLabel,\n reviseAriaLabel,\n onClick,\n isCustom = false\n } = props;\n const {skin} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick,\n 'aria-label': buttonAriaLabel ? `${skillTitle}, ${buttonAriaLabel}` : skillTitle,\n label: buttonLabel,\n 'data-name': 'skill-card-button'\n };\n\n const titleBackgroundColor = useMemo(\n () => (isCustom ? '#128C72' : primarySkinColor),\n [isCustom, primarySkinColor]\n );\n\n const titleBackground = useMemo(\n () => getGradientBackground(titleBackgroundColor),\n [titleBackgroundColor]\n );\n\n return (\n <div className={style.skillCardWrapper} data-name=\"skill-card-wrapper\" aria-label={ariaLabel}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n style={{\n background: titleBackground\n }}\n >\n {skillTitle}\n </div>\n <div data-name=\"card-content-wrapper\">\n <div\n className={style.questionReviseText}\n data-name=\"questions-to-revise-label\"\n aria-label={reviseAriaLabel || reviseLabel}\n >\n <QuestionIcon className={style.questionReviseIcon} width={16} height={16} />\n {reviseLabel}\n </div>\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-wrapper\"\n >\n <ButtonLink {...buttonProps} />\n </div>\n </div>\n </div>\n );\n};\n\nSkillCard.propTypes = propTypes;\n\nexport default SkillCard;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAGC,SAAS,IAAI;EACzC,MAAMC,SAAS,GAAG,CAChB,IAAAC,yBAAA,EAAS,SAAQF,SAAU,kBAA3B,CADgB,EAEhB,IAAAE,yBAAA,EAAS,SAAQF,SAAU,kBAA3B,CAFgB,EAGhB,IAAAE,yBAAA,EAAS,SAAQF,SAAU,kBAA3B,CAHgB,CAAlB;EAMA,OAAQ,+CAA8CC,SAAS,CAAC,CAAD,CAAI,QAAO,IAAAC,yBAAA,EACvE,SAAQD,SAAS,CAAC,CAAD,CAAI,QADkD,CAExE,4DAA2DA,SAAS,CAAC,CAAD,CAAI,QAAO,IAAAC,yBAAA,EAC9E,SAAQD,SAAS,CAAC,CAAD,CAAI,QADyD,CAE/E,2DAA0DA,SAAS,CAAC,CAAD,CAAI,QAAO,IAAAC,yBAAA,EAC7E,SAAQD,SAAS,CAAC,CAAD,CAAI,QADwD,CAE9E,WAAUD,SAAU,EANtB;AAOD,CAdD;;AAgBA,MAAMG,SAAS,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACpC,MAAM;IACJ,cAAcC,SADV;IAEJC,UAFI;IAGJC,cAHI;IAIJC,WAJI;IAKJC,eALI;IAMJC,WANI;IAOJC,eAPI;IAQJC,OARI;IASJC,QAAQ,GAAG;EATP,IAUFV,KAVJ;EAWA,MAAM;IAACW;EAAD,IAASV,OAAf;EACA,MAAM,CAACW,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,EAAS,KAAT,CAA9B;EACA,MAAMC,gBAAgB,GAAG,IAAAC,cAAA,EAAM,SAAN,EAAiB,gBAAjB,EAAmCL,IAAnC,CAAzB;EAEA,MAAMM,eAAe,GAAG,IAAAC,kBAAA,EAAY,MAAML,UAAU,CAAC,IAAD,CAA5B,EAAoC,CAACA,UAAD,CAApC,CAAxB;EAEA,MAAMM,gBAAgB,GAAG,IAAAD,kBAAA,EAAY,MAAML,UAAU,CAAC,KAAD,CAA5B,EAAqC,CAACA,UAAD,CAArC,CAAzB;EAEA,MAAMO,WAAW,GAAG;IAClBC,WAAW,EAAE;MACXC,eAAe,EAAEV,OAAO,GAAGG,gBAAH,GAAsB,IAAAjB,yBAAA,EAAS,SAAQiB,gBAAiB,WAAlC,CADnC;MAEXQ,KAAK,EAAEX,OAAO,GAAG,SAAH,GAAeG,gBAFlB;MAGXS,UAAU,EAAE;IAHD,CADK;IAMlBf,OANkB;IAOlB,cAAcH,eAAe,GAAI,GAAEH,UAAW,KAAIG,eAAgB,EAArC,GAAyCH,UAPpD;IAQlBsB,KAAK,EAAEpB,WARW;IASlB,aAAa;EATK,CAApB;EAYA,MAAMqB,oBAAoB,GAAG,IAAAC,cAAA,EAC3B,MAAOjB,QAAQ,GAAG,SAAH,GAAeK,gBADH,EAE3B,CAACL,QAAD,EAAWK,gBAAX,CAF2B,CAA7B;EAKA,MAAMa,eAAe,GAAG,IAAAD,cAAA,EACtB,MAAMhC,qBAAqB,CAAC+B,oBAAD,CADL,EAEtB,CAACA,oBAAD,CAFsB,CAAxB;EAKA,oBACE;IAAK,SAAS,EAAEG,cAAA,CAAMC,gBAAtB;IAAwC,aAAU,oBAAlD;IAAuE,cAAY5B;EAAnF,gBACE;IACE,aAAU,aADZ;IAEE,SAAS,EAAE2B,cAAA,CAAM1B,UAFnB;IAGE,cAAYC,cAAc,IAAID,UAHhC;IAIE,KAAK,EAAE;MACL4B,UAAU,EAAEH;IADP;EAJT,GAQGzB,UARH,CADF,eAWE;IAAK,aAAU;EAAf,gBACE;IACE,SAAS,EAAE0B,cAAA,CAAMG,kBADnB;IAEE,aAAU,2BAFZ;IAGE,cAAYxB,eAAe,IAAID;EAHjC,gBAKE,6BAAC,0DAAD;IAAc,SAAS,EAAEsB,cAAA,CAAMI,kBAA/B;IAAmD,KAAK,EAAE,EAA1D;IAA8D,MAAM,EAAE;EAAtE,EALF,EAMG1B,WANH,CADF,eASE;IACE,SAAS,EAAEsB,cAAA,CAAMK,aADnB;IAEE,WAAW,EAAEjB,eAFf;IAGE,YAAY,EAAEE,gBAHhB;IAIE,aAAU;EAJZ,gBAME,6BAAC,mBAAD,EAAgBC,WAAhB,CANF,CATF,CAXF,CADF;AAgCD,CA1ED;;AA4EArB,SAAS,CAACoC,SAAV,2CAAsBA,kBAAtB;eAEepC,S"}
1
+ {"version":3,"file":"index.js","names":["getGradientBackground","baseColor","gradients","convert","SkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","buttonLabel","buttonAriaLabel","reviseLabel","reviseAriaLabel","onClick","isCustom","skin","primarySkinColor","getOr","buttonProps","customStyle","backgroundColor","color","transition","hoverBackgroundColor","hoverColor","label","titleBackgroundColor","useMemo","titleBackground","style","skillCardWrapper","background","questionReviseText","questionReviseIcon","buttonWrapper","propTypes"],"sources":["../../../src/molecule/skill-card/index.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport {convert} from 'css-color-function';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport getOr from 'lodash/fp/getOr';\nimport ButtonLink from '../../atom/button-link';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nconst getGradientBackground = baseColor => {\n const gradients = [\n convert(`color(${baseColor} lightness(30%))`),\n convert(`color(${baseColor} lightness(47%))`),\n convert(`color(${baseColor} lightness(55%))`)\n ];\n\n return `radial-gradient(62.12% 56.45% at 0% 77.29%, ${gradients[0]} 0%, ${convert(\n `color(${gradients[0]} a(0))`\n )} 100%), radial-gradient(113.85% 103.46% at 93.27% 7.88%, ${gradients[1]} 0%, ${convert(\n `color(${gradients[1]} a(0))`\n )} 100%), radial-gradient(49.66% 49.63% at 78.65% 86.26%, ${gradients[2]} 0%, ${convert(\n `color(${gradients[2]} a(0))`\n )} 100%), ${baseColor}`;\n};\n\nconst SkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n buttonLabel,\n buttonAriaLabel,\n reviseLabel,\n reviseAriaLabel,\n onClick,\n isCustom = false\n } = props;\n const {skin} = context;\n const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n hoverBackgroundColor: primarySkinColor,\n hoverColor: '#FFFFFF',\n onClick,\n 'aria-label': buttonAriaLabel ? `${skillTitle}, ${buttonAriaLabel}` : skillTitle,\n label: buttonLabel,\n 'data-name': 'skill-card-button'\n };\n\n const titleBackgroundColor = useMemo(\n () => (isCustom ? '#128C72' : primarySkinColor),\n [isCustom, primarySkinColor]\n );\n\n const titleBackground = useMemo(\n () => getGradientBackground(titleBackgroundColor),\n [titleBackgroundColor]\n );\n\n return (\n <div className={style.skillCardWrapper} data-name=\"skill-card-wrapper\" aria-label={ariaLabel}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n style={{\n background: titleBackground\n }}\n >\n {skillTitle}\n </div>\n <div data-name=\"card-content-wrapper\">\n <div\n className={style.questionReviseText}\n data-name=\"questions-to-revise-label\"\n aria-label={reviseAriaLabel || reviseLabel}\n >\n <QuestionIcon className={style.questionReviseIcon} width={16} height={16} />\n {reviseLabel}\n </div>\n <div className={style.buttonWrapper} data-name=\"button-wrapper\">\n <ButtonLink {...buttonProps} />\n </div>\n </div>\n </div>\n );\n};\n\nSkillCard.propTypes = propTypes;\n\nexport default SkillCard;\n"],"mappings":"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"}