@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,33 @@
1
+ export default LearningPriorityModal;
2
+ declare function LearningPriorityModal(props: any, context: any): JSX.Element | null;
3
+ declare namespace LearningPriorityModal {
4
+ namespace contextTypes {
5
+ const translate: PropTypes.Requireable<(...args: any[]) => any>;
6
+ }
7
+ namespace propTypes {
8
+ const priorities: PropTypes.Requireable<(PropTypes.InferProps<{
9
+ ref: PropTypes.Requireable<string>;
10
+ title: PropTypes.Requireable<string>;
11
+ courses: PropTypes.Requireable<number>;
12
+ type: PropTypes.Requireable<string>;
13
+ }> | null | undefined)[]>;
14
+ const preselected: PropTypes.Requireable<(string | null | undefined)[]>;
15
+ const isOpen: PropTypes.Requireable<boolean>;
16
+ const isLoading: PropTypes.Requireable<boolean>;
17
+ const filters: PropTypes.Requireable<PropTypes.InferProps<{
18
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
19
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
20
+ count: PropTypes.Requireable<number>;
21
+ name: PropTypes.Validator<string>;
22
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
23
+ selected: PropTypes.Requireable<boolean>;
24
+ validOption: PropTypes.Requireable<boolean>;
25
+ }> | null | undefined)[]>;
26
+ }>>;
27
+ const onCancel: PropTypes.Requireable<(...args: any[]) => any>;
28
+ const onAdd: PropTypes.Requireable<(...args: any[]) => any>;
29
+ const onClose: PropTypes.Requireable<(...args: any[]) => any>;
30
+ }
31
+ }
32
+ import PropTypes from "prop-types";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/learning-priority-modal/index.js"],"names":[],"mappings":";AAgEA,qFAsJC"}
@@ -0,0 +1,231 @@
1
+ import _pick from "lodash/fp/pick";
2
+ import _assign from "lodash/fp/assign";
3
+ import _get from "lodash/fp/get";
4
+
5
+ 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); }
6
+
7
+ import React, { useEffect, useMemo, useState, useCallback } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { convert } from 'css-color-function';
10
+ import BaseModal from '../base-modal';
11
+ import ListItem from '../../organism/list-item';
12
+ import ButtonLink from '../../atom/button-link';
13
+ import Loader from '../../atom/loader';
14
+ import Provider from '../../atom/provider';
15
+ import { SelectOptionPropTypes } from '../../atom/select';
16
+ import SearchForm from '../search-form';
17
+ import searchValueIncluded from '../../util/search-value-included';
18
+ import style from './style.css';
19
+
20
+ const FilterButton = (props, context) => {
21
+ const {
22
+ active,
23
+ filter,
24
+ itemTotal,
25
+ onClick
26
+ } = props;
27
+ const {
28
+ skin
29
+ } = context;
30
+
31
+ const primarySkinColor = _get('common.primary', skin);
32
+
33
+ const Content = useCallback(() => /*#__PURE__*/React.createElement("div", null, filter, /*#__PURE__*/React.createElement("span", {
34
+ className: active ? style.skillFilterNumber : style.skillFilterNumberInActive,
35
+ style: {
36
+ backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',
37
+ color: active ? primarySkinColor : '#515161'
38
+ }
39
+ }, itemTotal)), [filter, itemTotal, active, primarySkinColor]);
40
+ const buttonProps = {
41
+ customStyle: {
42
+ backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : 'transparent',
43
+ color: active ? primarySkinColor : '#9999A8',
44
+ transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
45
+ width: 'fit-content'
46
+ },
47
+ onClick,
48
+ content: /*#__PURE__*/React.createElement(Content, null),
49
+ 'data-name': 'change-skill-focus-button'
50
+ };
51
+ return /*#__PURE__*/React.createElement(ButtonLink, buttonProps);
52
+ };
53
+
54
+ FilterButton.contextTypes = {
55
+ skin: Provider.childContextTypes.skin,
56
+ translate: Provider.childContextTypes.translate
57
+ };
58
+ FilterButton.propTypes = process.env.NODE_ENV !== "production" ? {
59
+ active: PropTypes.bool,
60
+ filter: PropTypes.string,
61
+ itemTotal: PropTypes.number,
62
+ onClick: PropTypes.func
63
+ } : {};
64
+
65
+ const LearningPriorityModal = (props, context) => {
66
+ const {
67
+ priorities,
68
+ preselected,
69
+ isOpen,
70
+ isLoading,
71
+ filters: {
72
+ options,
73
+ onChange
74
+ },
75
+ onCancel,
76
+ onAdd,
77
+ onClose
78
+ } = props;
79
+ const {
80
+ translate
81
+ } = context;
82
+ const [selectedPriority, setSelectedPriority] = useState('');
83
+ const [searchValue, setSearchValue] = useState('');
84
+ const [searchResults, setSearchResults] = useState(priorities);
85
+ const handleCancel = useCallback(() => {
86
+ setSelectedPriority('');
87
+ onCancel();
88
+ }, [setSelectedPriority, onCancel]);
89
+ const handleClose = useCallback(() => {
90
+ setSelectedPriority('');
91
+ onClose();
92
+ }, [setSelectedPriority, onClose]);
93
+ const handleSearch = useCallback(value => {
94
+ setSearchValue(value);
95
+ setSearchResults(priorities.filter(priority => searchValueIncluded(priority.title, value)));
96
+ }, [priorities, setSearchValue, setSearchResults]);
97
+ const handleSearchReset = useCallback(() => {
98
+ setSearchValue('');
99
+ setSearchResults(priorities);
100
+ }, [priorities, setSearchValue, setSearchResults]);
101
+ useEffect(() => {
102
+ setSearchResults(priorities);
103
+ }, [priorities]);
104
+ const priorityList = useMemo(() => {
105
+ return searchResults.map(priority => {
106
+ const isPreSelectedPriority = preselected.some(selected => selected === priority.ref);
107
+ return _assign({
108
+ selected: isPreSelectedPriority,
109
+ disabled: isPreSelectedPriority
110
+ }, _pick(['title', 'ref', 'type', 'courses'], priority));
111
+ });
112
+ }, [searchResults, preselected]);
113
+ const footer = useMemo(() => {
114
+ return {
115
+ cancelButton: {
116
+ onCancel: handleCancel,
117
+ label: translate('cancel')
118
+ },
119
+ confirmButton: {
120
+ onConfirm: () => onAdd(selectedPriority),
121
+ label: translate('add'),
122
+ iconName: 'plus',
123
+ disabled: isLoading
124
+ }
125
+ };
126
+ }, [handleCancel, onAdd, translate, selectedPriority, isLoading]);
127
+ if (!isLoading && !priorities || !isOpen) return null;
128
+ return /*#__PURE__*/React.createElement(BaseModal, {
129
+ title: translate('learning_priority_modal_title'),
130
+ description: translate('learning_priority_modal_description'),
131
+ isOpen: isOpen,
132
+ onClose: handleClose,
133
+ footer: footer
134
+ }, /*#__PURE__*/React.createElement("div", {
135
+ className: style.LearningPriorityContainer
136
+ }, isLoading ? /*#__PURE__*/React.createElement("div", {
137
+ className: style.loaderContainer
138
+ }, /*#__PURE__*/React.createElement(Loader, {
139
+ className: style.loader,
140
+ theme: "coorpmanager"
141
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
142
+ className: style.searchWrapper
143
+ }, /*#__PURE__*/React.createElement(SearchForm, {
144
+ search: {
145
+ placeholder: translate('search_priority_place_holder'),
146
+ value: searchValue,
147
+ onChange: handleSearch
148
+ },
149
+ onReset: handleSearchReset
150
+ })), /*#__PURE__*/React.createElement("div", {
151
+ className: style.filterWrapper
152
+ }, searchResults.length > 0 ? options.map((filter, index) => {
153
+ const {
154
+ name,
155
+ value,
156
+ selected,
157
+ count
158
+ } = filter;
159
+
160
+ function handleChange() {
161
+ onChange(value);
162
+ handleSearchReset();
163
+ }
164
+
165
+ if (count === 0) return null;
166
+ return /*#__PURE__*/React.createElement("div", {
167
+ key: index,
168
+ className: style.filterButtonWrapper
169
+ }, /*#__PURE__*/React.createElement(FilterButton, {
170
+ active: selected,
171
+ filter: name,
172
+ onClick: handleChange,
173
+ itemTotal: count
174
+ }));
175
+ }) : null), /*#__PURE__*/React.createElement("div", {
176
+ className: style.priorityListWrapper
177
+ }, priorityList.map(priority => {
178
+ const {
179
+ title,
180
+ ref,
181
+ courses,
182
+ type,
183
+ selected,
184
+ disabled
185
+ } = priority;
186
+
187
+ function handlePriorityClick() {
188
+ setSelectedPriority(ref);
189
+ }
190
+
191
+ return /*#__PURE__*/React.createElement(ListItem, {
192
+ title: title,
193
+ subtitle: `${courses} ${translate('courses')}`,
194
+ selected: selected || selectedPriority === ref,
195
+ disabled: disabled,
196
+ onClick: handlePriorityClick,
197
+ tags: [{
198
+ label: type,
199
+ type: 'default'
200
+ }],
201
+ key: ref,
202
+ backgroundColor: "skin"
203
+ });
204
+ })))));
205
+ };
206
+
207
+ LearningPriorityModal.contextTypes = {
208
+ translate: Provider.childContextTypes.translate
209
+ };
210
+ LearningPriorityModal.propTypes = process.env.NODE_ENV !== "production" ? {
211
+ priorities: PropTypes.arrayOf(PropTypes.shape({
212
+ ref: PropTypes.string,
213
+ title: PropTypes.string,
214
+ courses: PropTypes.number,
215
+ type: PropTypes.string
216
+ })),
217
+ preselected: PropTypes.arrayOf(PropTypes.string),
218
+ isOpen: PropTypes.bool,
219
+ isLoading: PropTypes.bool,
220
+ filters: PropTypes.shape({
221
+ onChange: PropTypes.func,
222
+ options: PropTypes.arrayOf(PropTypes.shape(_extends({}, SelectOptionPropTypes, {
223
+ count: PropTypes.number
224
+ })))
225
+ }),
226
+ onCancel: PropTypes.func,
227
+ onAdd: PropTypes.func,
228
+ onClose: PropTypes.func
229
+ } : {};
230
+ export default LearningPriorityModal;
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","useEffect","useMemo","useState","useCallback","PropTypes","convert","BaseModal","ListItem","ButtonLink","Loader","Provider","SelectOptionPropTypes","SearchForm","searchValueIncluded","style","FilterButton","props","context","active","filter","itemTotal","onClick","skin","primarySkinColor","Content","skillFilterNumber","skillFilterNumberInActive","backgroundColor","color","buttonProps","customStyle","transition","width","content","contextTypes","childContextTypes","translate","propTypes","bool","string","number","func","LearningPriorityModal","priorities","preselected","isOpen","isLoading","filters","options","onChange","onCancel","onAdd","onClose","selectedPriority","setSelectedPriority","searchValue","setSearchValue","searchResults","setSearchResults","handleCancel","handleClose","handleSearch","value","priority","title","handleSearchReset","priorityList","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"],"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,69 @@
1
+ import React, { useCallback } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Provider from '../../atom/provider';
4
+ import Tag from '../../atom/tag';
5
+ import ButtonLink from '../../atom/button-link';
6
+ import style from './style.css';
7
+
8
+ const LearningPrioritySetupItem = (props, context) => {
9
+ const {
10
+ priorityRef,
11
+ id,
12
+ title,
13
+ courses,
14
+ type,
15
+ 'aria-label': ariaLabel,
16
+ onRemove
17
+ } = props;
18
+ const {
19
+ translate
20
+ } = context;
21
+ const handleRemovePriority = useCallback(() => onRemove(priorityRef, type), [priorityRef, type]);
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ className: style.container,
24
+ "aria-label": ariaLabel,
25
+ "data-name": `learning-priority-setup-item-${id}`
26
+ }, /*#__PURE__*/React.createElement("div", {
27
+ className: style.containerInfos
28
+ }, /*#__PURE__*/React.createElement("div", {
29
+ className: style.titleWrapper
30
+ }, /*#__PURE__*/React.createElement("div", {
31
+ className: style.title
32
+ }, title), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Tag, {
33
+ label: translate(type),
34
+ size: 'S'
35
+ }))), /*#__PURE__*/React.createElement("span", {
36
+ className: style.courses
37
+ }, `${courses} ${translate('courses')}`)), /*#__PURE__*/React.createElement(ButtonLink, {
38
+ type: "primary",
39
+ customStyle: {
40
+ width: 'fit-content',
41
+ backgroundColor: 'transparent'
42
+ },
43
+ hoverBackgroundColor: "#EAEAEB",
44
+ icon: {
45
+ position: 'left',
46
+ faIcon: {
47
+ name: 'trash',
48
+ color: '#515161',
49
+ size: 16
50
+ }
51
+ },
52
+ onClick: handleRemovePriority
53
+ }));
54
+ };
55
+
56
+ LearningPrioritySetupItem.contextTypes = {
57
+ translate: Provider.childContextTypes.translate
58
+ };
59
+ LearningPrioritySetupItem.propTypes = process.env.NODE_ENV !== "production" ? {
60
+ 'aria-label': PropTypes.string,
61
+ id: PropTypes.string,
62
+ priorityRef: PropTypes.string,
63
+ title: PropTypes.string,
64
+ courses: PropTypes.number,
65
+ type: PropTypes.string,
66
+ onRemove: PropTypes.func
67
+ } : {};
68
+ export default LearningPrioritySetupItem;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","useCallback","PropTypes","Provider","Tag","ButtonLink","style","LearningPrioritySetupItem","props","context","priorityRef","id","title","courses","type","ariaLabel","onRemove","translate","handleRemovePriority","container","containerInfos","titleWrapper","width","backgroundColor","position","faIcon","name","color","size","contextTypes","childContextTypes","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,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,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,GAAGjB,WAAW,CAAC,MAAMe,QAAQ,CAACN,WAAD,EAAcI,IAAd,CAAf,EAAoC,CAACJ,WAAD,EAAcI,IAAd,CAApC,CAAxC;EAEA,oBACE;IACE,SAAS,EAAER,KAAK,CAACa,SADnB;IAEE,cAAYJ,SAFd;IAGE,aAAY,gCAA+BJ,EAAG;EAHhD,gBAKE;IAAK,SAAS,EAAEL,KAAK,CAACc;EAAtB,gBACE;IAAK,SAAS,EAAEd,KAAK,CAACe;EAAtB,gBACE;IAAK,SAAS,EAAEf,KAAK,CAACM;EAAtB,GAA8BA,KAA9B,CADF,eAEE,8CACE,oBAAC,GAAD;IAAK,KAAK,EAAEK,SAAS,CAACH,IAAD,CAArB;IAA6B,IAAI,EAAE;EAAnC,EADF,CAFF,CADF,eAOE;IAAM,SAAS,EAAER,KAAK,CAACO;EAAvB,GAAkC,GAAEA,OAAQ,IAAGI,SAAS,CAAC,SAAD,CAAY,EAApE,CAPF,CALF,eAcE,oBAAC,UAAD;IACE,IAAI,EAAC,SADP;IAEE,WAAW,EAAE;MACXK,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,EAAEV;EAfX,EAdF,CADF;AAkCD,CAzCD;;AA2CAX,yBAAyB,CAACsB,YAA1B,GAAyC;EACvCZ,SAAS,EAAEd,QAAQ,CAAC2B,iBAAT,CAA2Bb;AADC,CAAzC;AAIAV,yBAAyB,CAACwB,SAA1B,2CAAsC;EACpC,cAAc7B,SAAS,CAAC8B,MADY;EAEpCrB,EAAE,EAAET,SAAS,CAAC8B,MAFsB;EAGpCtB,WAAW,EAAER,SAAS,CAAC8B,MAHa;EAIpCpB,KAAK,EAAEV,SAAS,CAAC8B,MAJmB;EAKpCnB,OAAO,EAAEX,SAAS,CAAC+B,MALiB;EAMpCnB,IAAI,EAAEZ,SAAS,CAAC8B,MANoB;EAOpChB,QAAQ,EAAEd,SAAS,CAACgC;AAPgB,CAAtC;AAUA,eAAe3B,yBAAf"}
@@ -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"}
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useState, useMemo } from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { convert } from 'css-color-function';
3
3
  import { NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon } from '@coorpacademy/nova-icons';
4
4
  import getOr from 'lodash/fp/getOr';
@@ -26,16 +26,15 @@ const SkillCard = (props, context) => {
26
26
  const {
27
27
  skin
28
28
  } = context;
29
- const [hovered, setHovered] = useState(false);
30
29
  const primarySkinColor = getOr('#00B0FF', 'common.primary', skin);
31
- const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
32
- const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
33
30
  const buttonProps = {
34
31
  customStyle: {
35
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
36
- color: hovered ? '#FFFFFF' : primarySkinColor,
32
+ backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),
33
+ color: primarySkinColor,
37
34
  transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
38
35
  },
36
+ hoverBackgroundColor: primarySkinColor,
37
+ hoverColor: '#FFFFFF',
39
38
  onClick,
40
39
  'aria-label': buttonAriaLabel ? `${skillTitle}, ${buttonAriaLabel}` : skillTitle,
41
40
  label: buttonLabel,
@@ -66,8 +65,6 @@ const SkillCard = (props, context) => {
66
65
  height: 16
67
66
  }), reviseLabel), /*#__PURE__*/React.createElement("div", {
68
67
  className: style.buttonWrapper,
69
- onMouseOver: handleMouseOver,
70
- onMouseLeave: handleMouseLeave,
71
68
  "data-name": "button-wrapper"
72
69
  }, /*#__PURE__*/React.createElement(ButtonLink, buttonProps))));
73
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","useMemo","convert","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","getOr","ButtonLink","style","propTypes","getGradientBackground","baseColor","gradients","SkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","buttonLabel","buttonAriaLabel","reviseLabel","reviseAriaLabel","onClick","isCustom","skin","hovered","setHovered","primarySkinColor","handleMouseOver","handleMouseLeave","buttonProps","customStyle","backgroundColor","color","transition","label","titleBackgroundColor","titleBackground","skillCardWrapper","background","questionReviseText","questionReviseIcon","buttonWrapper"],"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":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","convert","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","getOr","ButtonLink","style","propTypes","getGradientBackground","baseColor","gradients","SkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","buttonLabel","buttonAriaLabel","reviseLabel","reviseAriaLabel","onClick","isCustom","skin","primarySkinColor","buttonProps","customStyle","backgroundColor","color","transition","hoverBackgroundColor","hoverColor","label","titleBackgroundColor","titleBackground","skillCardWrapper","background","questionReviseText","questionReviseIcon","buttonWrapper"],"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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"}