@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.
- package/es/atom/button-link/index.d.ts +2 -0
- package/es/atom/button-link/index.d.ts.map +1 -1
- package/es/atom/button-link/index.js +22 -8
- package/es/atom/button-link/index.js.map +1 -1
- package/es/atom/button-link/types.d.ts +4 -0
- package/es/atom/button-link/types.d.ts.map +1 -1
- package/es/atom/button-link/types.js +2 -0
- package/es/atom/button-link/types.js.map +1 -1
- package/es/atom/circular-progress-bar/index.d.ts +15 -0
- package/es/atom/circular-progress-bar/index.d.ts.map +1 -0
- package/es/atom/circular-progress-bar/index.js +86 -0
- package/es/atom/circular-progress-bar/index.js.map +1 -0
- package/es/atom/circular-progress-bar/style.css +51 -0
- package/es/atom/circular-progress-bar/types.d.ts +18 -0
- package/es/atom/circular-progress-bar/types.d.ts.map +1 -0
- package/es/atom/circular-progress-bar/types.js +10 -0
- package/es/atom/circular-progress-bar/types.js.map +1 -0
- package/es/atom/tag/index.d.ts +10 -1
- package/es/atom/tag/index.d.ts.map +1 -1
- package/es/atom/tag/index.js +19 -11
- package/es/atom/tag/index.js.map +1 -1
- package/es/atom/tag/style.css +38 -19
- package/es/molecule/base-modal/index.d.ts.map +1 -1
- package/es/molecule/base-modal/index.js +6 -10
- package/es/molecule/base-modal/index.js.map +1 -1
- package/es/molecule/cm-popin/types.d.ts +8 -0
- package/es/molecule/cm-popin/types.d.ts.map +1 -1
- package/es/molecule/draggable-list/index.d.ts +12 -0
- package/es/molecule/draggable-list/index.d.ts.map +1 -1
- package/es/molecule/draggable-list/index.js +4 -2
- package/es/molecule/draggable-list/index.js.map +1 -1
- package/es/molecule/expandible-actionable-table/index.d.ts +2 -0
- package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/es/molecule/expandible-actionable-table/types.d.ts +2 -0
- package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.js +7 -10
- package/es/molecule/learner-skill-card/index.js.map +1 -1
- package/es/molecule/learning-priority-card/index.d.ts +40 -0
- package/es/molecule/learning-priority-card/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-card/index.js +77 -0
- package/es/molecule/learning-priority-card/index.js.map +1 -0
- package/es/molecule/learning-priority-card/style.css +34 -0
- package/es/molecule/learning-priority-card/types.d.ts +18 -0
- package/es/molecule/learning-priority-card/types.d.ts.map +1 -0
- package/es/molecule/learning-priority-card/types.js +10 -0
- package/es/molecule/learning-priority-card/types.js.map +1 -0
- package/es/molecule/learning-priority-modal/index.d.ts +33 -0
- package/es/molecule/learning-priority-modal/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-modal/index.js +231 -0
- package/es/molecule/learning-priority-modal/index.js.map +1 -0
- package/es/molecule/learning-priority-modal/style.css +68 -0
- package/es/molecule/learning-priority-setup-item/index.d.ts +18 -0
- package/es/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-setup-item/index.js +69 -0
- package/es/molecule/learning-priority-setup-item/index.js.map +1 -0
- package/es/molecule/learning-priority-setup-item/style.css +47 -0
- package/es/molecule/skill-card/index.d.ts.map +1 -1
- package/es/molecule/skill-card/index.js +5 -8
- package/es/molecule/skill-card/index.js.map +1 -1
- package/es/organism/brand-learning-priorities/index.d.ts +170 -0
- package/es/organism/brand-learning-priorities/index.d.ts.map +1 -0
- package/es/organism/brand-learning-priorities/index.js +99 -0
- package/es/organism/brand-learning-priorities/index.js.map +1 -0
- package/es/organism/brand-learning-priorities/style.css +35 -0
- package/es/organism/list-item/index.d.ts +34 -2
- package/es/organism/list-item/index.d.ts.map +1 -1
- package/es/organism/list-item/index.js +58 -14
- package/es/organism/list-item/index.js.map +1 -1
- package/es/organism/list-item/style.css +21 -1
- package/es/organism/list-items/index.d.ts +8 -0
- package/es/organism/setup-header/index.d.ts +8 -0
- package/es/organism/wizard-contents/index.d.ts +6 -0
- package/es/template/app-player/loading/index.d.ts +8 -0
- package/es/template/app-player/player/index.d.ts +16 -0
- package/es/template/app-player/player/slides/index.d.ts +8 -0
- package/es/template/app-player/player/slides/index.d.ts.map +1 -1
- package/es/template/app-player/popin-correction/index.d.ts +8 -0
- package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/es/template/app-player/popin-end/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts.map +1 -1
- package/es/template/app-review/player/prop-types.d.ts +8 -0
- package/es/template/app-review/player/prop-types.d.ts.map +1 -1
- package/es/template/app-review/prop-types.d.ts +8 -0
- package/es/template/app-review/prop-types.d.ts.map +1 -1
- package/es/template/back-office/brand-create/index.d.ts +8 -0
- package/es/template/back-office/brand-create/index.d.ts.map +1 -1
- package/es/template/back-office/brand-list/index.d.ts +8 -0
- package/es/template/back-office/brand-list/index.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.d.ts +171 -0
- package/es/template/back-office/brand-update/index.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.js +7 -0
- package/es/template/back-office/brand-update/index.js.map +1 -1
- package/es/template/back-office/dashboard-preview/index.d.ts +8 -0
- package/es/template/back-office/layout/index.d.ts +8 -0
- package/es/template/back-office/layout/index.d.ts.map +1 -1
- package/es/template/common/dashboard/index.d.ts +16 -0
- package/es/template/common/search-page/index.d.ts +8 -0
- package/es/template/external-course/index.d.ts +8 -0
- package/es/template/my-learning/index.d.ts.map +1 -1
- package/es/template/my-learning/index.js +10 -18
- package/es/template/my-learning/index.js.map +1 -1
- package/es/template/skill-detail/index.d.ts.map +1 -1
- package/es/template/skill-detail/index.js +4 -8
- package/es/template/skill-detail/index.js.map +1 -1
- package/lib/atom/button-link/index.d.ts +2 -0
- package/lib/atom/button-link/index.d.ts.map +1 -1
- package/lib/atom/button-link/index.js +21 -7
- package/lib/atom/button-link/index.js.map +1 -1
- package/lib/atom/button-link/types.d.ts +4 -0
- package/lib/atom/button-link/types.d.ts.map +1 -1
- package/lib/atom/button-link/types.js +2 -0
- package/lib/atom/button-link/types.js.map +1 -1
- package/lib/atom/circular-progress-bar/index.d.ts +15 -0
- package/lib/atom/circular-progress-bar/index.d.ts.map +1 -0
- package/lib/atom/circular-progress-bar/index.js +101 -0
- package/lib/atom/circular-progress-bar/index.js.map +1 -0
- package/lib/atom/circular-progress-bar/style.css +51 -0
- package/lib/atom/circular-progress-bar/types.d.ts +18 -0
- package/lib/atom/circular-progress-bar/types.d.ts.map +1 -0
- package/lib/atom/circular-progress-bar/types.js +19 -0
- package/lib/atom/circular-progress-bar/types.js.map +1 -0
- package/lib/atom/tag/index.d.ts +10 -1
- package/lib/atom/tag/index.d.ts.map +1 -1
- package/lib/atom/tag/index.js +20 -11
- package/lib/atom/tag/index.js.map +1 -1
- package/lib/atom/tag/style.css +38 -19
- package/lib/molecule/base-modal/index.d.ts.map +1 -1
- package/lib/molecule/base-modal/index.js +5 -9
- package/lib/molecule/base-modal/index.js.map +1 -1
- package/lib/molecule/cm-popin/types.d.ts +8 -0
- package/lib/molecule/cm-popin/types.d.ts.map +1 -1
- package/lib/molecule/draggable-list/index.d.ts +12 -0
- package/lib/molecule/draggable-list/index.d.ts.map +1 -1
- package/lib/molecule/draggable-list/index.js +5 -2
- package/lib/molecule/draggable-list/index.js.map +1 -1
- package/lib/molecule/expandible-actionable-table/index.d.ts +2 -0
- package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/lib/molecule/expandible-actionable-table/types.d.ts +2 -0
- package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.js +6 -9
- package/lib/molecule/learner-skill-card/index.js.map +1 -1
- package/lib/molecule/learning-priority-card/index.d.ts +40 -0
- package/lib/molecule/learning-priority-card/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-card/index.js +95 -0
- package/lib/molecule/learning-priority-card/index.js.map +1 -0
- package/lib/molecule/learning-priority-card/style.css +34 -0
- package/lib/molecule/learning-priority-card/types.d.ts +18 -0
- package/lib/molecule/learning-priority-card/types.d.ts.map +1 -0
- package/lib/molecule/learning-priority-card/types.js +19 -0
- package/lib/molecule/learning-priority-card/types.js.map +1 -0
- package/lib/molecule/learning-priority-modal/index.d.ts +33 -0
- package/lib/molecule/learning-priority-modal/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-modal/index.js +254 -0
- package/lib/molecule/learning-priority-modal/index.js.map +1 -0
- package/lib/molecule/learning-priority-modal/style.css +68 -0
- package/lib/molecule/learning-priority-setup-item/index.d.ts +18 -0
- package/lib/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-setup-item/index.js +86 -0
- package/lib/molecule/learning-priority-setup-item/index.js.map +1 -0
- package/lib/molecule/learning-priority-setup-item/style.css +47 -0
- package/lib/molecule/skill-card/index.d.ts.map +1 -1
- package/lib/molecule/skill-card/index.js +4 -7
- package/lib/molecule/skill-card/index.js.map +1 -1
- package/lib/organism/brand-learning-priorities/index.d.ts +170 -0
- package/lib/organism/brand-learning-priorities/index.d.ts.map +1 -0
- package/lib/organism/brand-learning-priorities/index.js +117 -0
- package/lib/organism/brand-learning-priorities/index.js.map +1 -0
- package/lib/organism/brand-learning-priorities/style.css +35 -0
- package/lib/organism/list-item/index.d.ts +34 -2
- package/lib/organism/list-item/index.d.ts.map +1 -1
- package/lib/organism/list-item/index.js +62 -16
- package/lib/organism/list-item/index.js.map +1 -1
- package/lib/organism/list-item/style.css +21 -1
- package/lib/organism/list-items/index.d.ts +8 -0
- package/lib/organism/setup-header/index.d.ts +8 -0
- package/lib/organism/wizard-contents/index.d.ts +6 -0
- package/lib/template/app-player/loading/index.d.ts +8 -0
- package/lib/template/app-player/player/index.d.ts +16 -0
- package/lib/template/app-player/player/slides/index.d.ts +8 -0
- package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-correction/index.d.ts +8 -0
- package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-end/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts.map +1 -1
- package/lib/template/app-review/player/prop-types.d.ts +8 -0
- package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/prop-types.d.ts +8 -0
- package/lib/template/app-review/prop-types.d.ts.map +1 -1
- package/lib/template/back-office/brand-create/index.d.ts +8 -0
- package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-list/index.d.ts +8 -0
- package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.d.ts +171 -0
- package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.js +8 -0
- package/lib/template/back-office/brand-update/index.js.map +1 -1
- package/lib/template/back-office/dashboard-preview/index.d.ts +8 -0
- package/lib/template/back-office/layout/index.d.ts +8 -0
- package/lib/template/back-office/layout/index.d.ts.map +1 -1
- package/lib/template/common/dashboard/index.d.ts +16 -0
- package/lib/template/common/search-page/index.d.ts +8 -0
- package/lib/template/external-course/index.d.ts +8 -0
- package/lib/template/my-learning/index.d.ts.map +1 -1
- package/lib/template/my-learning/index.js +10 -18
- package/lib/template/my-learning/index.js.map +1 -1
- package/lib/template/skill-detail/index.d.ts.map +1 -1
- package/lib/template/skill-detail/index.js +4 -8
- package/lib/template/skill-detail/index.js.map +1 -1
- package/locales/bs/global.json +1 -0
- package/locales/cs/global.json +1 -0
- package/locales/de/global.json +1 -0
- package/locales/en/global.json +12 -0
- package/locales/es/global.json +1 -0
- package/locales/et/global.json +1 -0
- package/locales/fi/global.json +1 -0
- package/locales/fr/global.json +2 -1
- package/locales/hr/global.json +1 -0
- package/locales/hu/global.json +1 -0
- package/locales/hy/global.json +1 -0
- package/locales/it/global.json +1 -0
- package/locales/ja/global.json +1 -0
- package/locales/ko/global.json +1 -0
- package/locales/nl/global.json +1 -0
- package/locales/pl/global.json +1 -0
- package/locales/pt/global.json +1 -0
- package/locales/ro/global.json +1 -0
- package/locales/ru/global.json +1 -0
- package/locales/sk/global.json +1 -0
- package/locales/sl/global.json +1 -0
- package/locales/sv/global.json +1 -0
- package/locales/tl/global.json +1 -0
- package/locales/tr/global.json +1 -0
- package/locales/uk/global.json +1 -0
- package/locales/vi/global.json +1 -0
- package/locales/zh/global.json +1 -0
- package/locales/zh_TW/global.json +1 -0
- 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,
|
|
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, {
|
|
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:
|
|
36
|
-
color:
|
|
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","
|
|
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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"}
|