@coorpacademy/components 11.32.11 → 11.32.12-alpha.0

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 (90) hide show
  1. package/es/atom/select/index.d.ts.map +1 -1
  2. package/es/atom/select/index.js +2 -1
  3. package/es/atom/select/index.js.map +1 -1
  4. package/es/atom/select/style.css +28 -0
  5. package/es/molecule/cm-popin/types.d.ts +1 -0
  6. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  7. package/es/organism/cards-grid/index.d.ts +1 -0
  8. package/es/organism/cards-grid/index.js +6 -1
  9. package/es/organism/cards-grid/index.js.map +1 -1
  10. package/es/organism/cards-grid/style.css +0 -1
  11. package/es/template/app-player/loading/index.d.ts +1 -0
  12. package/es/template/app-player/player/index.d.ts +2 -0
  13. package/es/template/app-player/player/slides/index.d.ts +1 -0
  14. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  15. package/es/template/app-player/popin-correction/index.d.ts +1 -0
  16. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  17. package/es/template/app-player/popin-end/index.d.ts +1 -0
  18. package/es/template/app-review/index.d.ts +1 -0
  19. package/es/template/app-review/index.d.ts.map +1 -1
  20. package/es/template/app-review/player/prop-types.d.ts +1 -0
  21. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  22. package/es/template/app-review/prop-types.d.ts +1 -0
  23. package/es/template/app-review/prop-types.d.ts.map +1 -1
  24. package/es/template/back-office/brand-update/index.d.ts +1 -0
  25. package/es/template/common/authors/index.d.ts +1 -0
  26. package/es/template/common/authors/index.d.ts.map +1 -1
  27. package/es/template/common/dashboard/index.d.ts +2 -0
  28. package/es/template/common/search-page/index.d.ts +2 -0
  29. package/es/template/external-course/index.d.ts +1 -0
  30. package/es/template/skill-detail/all-courses.css +89 -0
  31. package/es/template/skill-detail/all-courses.d.ts +77 -0
  32. package/es/template/skill-detail/all-courses.d.ts.map +1 -0
  33. package/es/template/skill-detail/all-courses.js +168 -0
  34. package/es/template/skill-detail/all-courses.js.map +1 -0
  35. package/es/template/skill-detail/continue-learning.css +21 -0
  36. package/es/template/skill-detail/continue-learning.d.ts +37 -0
  37. package/es/template/skill-detail/continue-learning.d.ts.map +1 -0
  38. package/es/template/skill-detail/continue-learning.js +40 -0
  39. package/es/template/skill-detail/continue-learning.js.map +1 -0
  40. package/es/template/skill-detail/index.d.ts +95 -0
  41. package/es/template/skill-detail/index.d.ts.map +1 -0
  42. package/es/template/skill-detail/index.js +219 -0
  43. package/es/template/skill-detail/index.js.map +1 -0
  44. package/es/template/skill-detail/style.css +163 -0
  45. package/lib/atom/select/index.d.ts.map +1 -1
  46. package/lib/atom/select/index.js +2 -1
  47. package/lib/atom/select/index.js.map +1 -1
  48. package/lib/atom/select/style.css +28 -0
  49. package/lib/molecule/cm-popin/types.d.ts +1 -0
  50. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  51. package/lib/organism/cards-grid/index.d.ts +1 -0
  52. package/lib/organism/cards-grid/index.js +6 -1
  53. package/lib/organism/cards-grid/index.js.map +1 -1
  54. package/lib/organism/cards-grid/style.css +0 -1
  55. package/lib/template/app-player/loading/index.d.ts +1 -0
  56. package/lib/template/app-player/player/index.d.ts +2 -0
  57. package/lib/template/app-player/player/slides/index.d.ts +1 -0
  58. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  59. package/lib/template/app-player/popin-correction/index.d.ts +1 -0
  60. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  61. package/lib/template/app-player/popin-end/index.d.ts +1 -0
  62. package/lib/template/app-review/index.d.ts +1 -0
  63. package/lib/template/app-review/index.d.ts.map +1 -1
  64. package/lib/template/app-review/player/prop-types.d.ts +1 -0
  65. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  66. package/lib/template/app-review/prop-types.d.ts +1 -0
  67. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  68. package/lib/template/back-office/brand-update/index.d.ts +1 -0
  69. package/lib/template/common/authors/index.d.ts +1 -0
  70. package/lib/template/common/authors/index.d.ts.map +1 -1
  71. package/lib/template/common/dashboard/index.d.ts +2 -0
  72. package/lib/template/common/search-page/index.d.ts +2 -0
  73. package/lib/template/external-course/index.d.ts +1 -0
  74. package/lib/template/skill-detail/all-courses.css +89 -0
  75. package/lib/template/skill-detail/all-courses.d.ts +77 -0
  76. package/lib/template/skill-detail/all-courses.d.ts.map +1 -0
  77. package/lib/template/skill-detail/all-courses.js +187 -0
  78. package/lib/template/skill-detail/all-courses.js.map +1 -0
  79. package/lib/template/skill-detail/continue-learning.css +21 -0
  80. package/lib/template/skill-detail/continue-learning.d.ts +37 -0
  81. package/lib/template/skill-detail/continue-learning.d.ts.map +1 -0
  82. package/lib/template/skill-detail/continue-learning.js +52 -0
  83. package/lib/template/skill-detail/continue-learning.js.map +1 -0
  84. package/lib/template/skill-detail/index.d.ts +95 -0
  85. package/lib/template/skill-detail/index.d.ts.map +1 -0
  86. package/lib/template/skill-detail/index.js +241 -0
  87. package/lib/template/skill-detail/index.js.map +1 -0
  88. package/lib/template/skill-detail/style.css +163 -0
  89. package/locales/en/global.json +7 -0
  90. package/package.json +2 -2
@@ -93,6 +93,7 @@ declare namespace ExternalCourse {
93
93
  type: PropTypes.Requireable<string>;
94
94
  list: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
95
95
  list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
96
+ justifyContent: PropTypes.Requireable<string>;
96
97
  loading: PropTypes.Requireable<boolean>;
97
98
  }> | PropTypes.InferProps<{
98
99
  'aria-label': PropTypes.Requireable<string>;
@@ -0,0 +1,89 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value breakpoints: "../../variables/breakpoints.css";
3
+ @value tablet from breakpoints;
4
+ @value mobile from breakpoints;
5
+ @value xtraLightGrey from colors;
6
+ @value cm_grey_100 from colors;
7
+ @value cm_grey_200 from colors;
8
+ @value cm_grey_400 from colors;
9
+
10
+ .continueLearningWrapper {
11
+ margin-top: 40px;
12
+ margin-bottom: 16px;
13
+ }
14
+
15
+ .continueLearningTitle {
16
+ font-size: 16px;
17
+ font-weight: 600;
18
+ line-height: 22px;
19
+ }
20
+
21
+ .continueLearningNumber {
22
+ border-radius: 50%;
23
+ background-color: #EAEAEB;
24
+ color: #515161;
25
+ padding: 2px 4px;
26
+ margin-left: 8px;
27
+ font-size: 10px;
28
+ font-weight: 600;
29
+ line-height: 12px;
30
+ }
31
+
32
+ .searchAndSortSection {
33
+ display: flex;
34
+ margin-bottom: 16px;
35
+ justify-content: space-between;
36
+ }
37
+
38
+ .searchWrapper {
39
+ border-radius: 12px;
40
+ width: 300px;
41
+ background-color: cm_grey_100;
42
+ }
43
+
44
+ .sortSection {
45
+ display: flex;
46
+ gap: 32px;
47
+ align-items: center;
48
+ }
49
+
50
+ .sortWrapper {
51
+ display: flex;
52
+ align-items: center;
53
+ gap: 12px;
54
+ }
55
+
56
+ .filterWrapper {
57
+ display: flex;
58
+ gap: 12px;
59
+ margin-bottom: 32px;
60
+ }
61
+
62
+ .filterButtonWrapper {
63
+ display: flex;
64
+ align-items: center;
65
+ }
66
+
67
+ .divider {
68
+ height: 24px;
69
+ width: 1px;
70
+ background-color: cm_grey_200;
71
+ margin-left: 12px;
72
+ }
73
+
74
+ @media mobile {
75
+ .searchAndSortSection {
76
+ flex-direction: column;
77
+ }
78
+
79
+ .sortSection {
80
+ flex-direction: column;
81
+ gap: 16px;
82
+ align-items: flex-start;
83
+ margin-top: 16px;
84
+ }
85
+
86
+ .filterWrapper {
87
+ overflow-x: scroll;
88
+ }
89
+ }
@@ -0,0 +1,77 @@
1
+ export default AllCourses;
2
+ declare function AllCourses(props: any, context: any): JSX.Element;
3
+ declare namespace AllCourses {
4
+ namespace contextTypes {
5
+ const skin: PropTypes.Requireable<PropTypes.InferProps<{
6
+ common: PropTypes.Requireable<{
7
+ [x: string]: any;
8
+ }>;
9
+ images: PropTypes.Requireable<PropTypes.InferProps<{
10
+ 'logo-mobile': PropTypes.Requireable<any>;
11
+ logo: PropTypes.Requireable<any>;
12
+ 'logo-email': PropTypes.Requireable<any>;
13
+ login: PropTypes.Requireable<any>;
14
+ }>>;
15
+ icons: PropTypes.Requireable<{
16
+ [x: string]: any;
17
+ }>;
18
+ mod: PropTypes.Requireable<{
19
+ [x: string]: any;
20
+ }>;
21
+ courses: PropTypes.Requireable<any[]>;
22
+ texts: PropTypes.Requireable<{
23
+ [x: string]: any;
24
+ }>;
25
+ }>>;
26
+ const translate: PropTypes.Requireable<(...args: any[]) => any>;
27
+ }
28
+ namespace propTypes {
29
+ const skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
30
+ list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
31
+ justifyContent: PropTypes.Requireable<string>;
32
+ loading: PropTypes.Requireable<boolean>;
33
+ }>>;
34
+ const filters: PropTypes.Requireable<PropTypes.InferProps<{
35
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
36
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
37
+ name: PropTypes.Validator<string>;
38
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
39
+ selected: PropTypes.Requireable<boolean>;
40
+ validOption: PropTypes.Requireable<boolean>;
41
+ }> | null | undefined)[]>;
42
+ }>>;
43
+ const sorting: PropTypes.Requireable<PropTypes.InferProps<{
44
+ title: PropTypes.Requireable<string>;
45
+ name: PropTypes.Requireable<string>;
46
+ className: PropTypes.Requireable<string>;
47
+ borderClassName: PropTypes.Requireable<string>;
48
+ disabled: PropTypes.Requireable<boolean>;
49
+ multiple: PropTypes.Requireable<boolean>;
50
+ description: PropTypes.Requireable<string>;
51
+ required: PropTypes.Requireable<boolean>;
52
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
53
+ theme: PropTypes.Requireable<string>;
54
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
55
+ name: PropTypes.Validator<string>;
56
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
57
+ selected: PropTypes.Requireable<boolean>;
58
+ validOption: PropTypes.Requireable<boolean>;
59
+ }> | null | undefined)[]>;
60
+ optgroups: PropTypes.Requireable<(PropTypes.InferProps<{
61
+ label: PropTypes.Validator<string>;
62
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
63
+ name: PropTypes.Validator<string>;
64
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
65
+ selected: PropTypes.Requireable<boolean>;
66
+ validOption: PropTypes.Requireable<boolean>;
67
+ }> | null | undefined)[]>;
68
+ }> | null | undefined)[]>;
69
+ modified: PropTypes.Requireable<boolean>;
70
+ error: PropTypes.Requireable<boolean>;
71
+ 'aria-label': PropTypes.Requireable<string>;
72
+ 'aria-labelledby': PropTypes.Requireable<string>;
73
+ }>>;
74
+ }
75
+ }
76
+ import PropTypes from "prop-types";
77
+ //# sourceMappingURL=all-courses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-courses.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/all-courses.js"],"names":[],"mappings":";AA2CA,mEAmGC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _get2 = _interopRequireDefault(require("lodash/fp/get"));
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
13
+
14
+ var _select = _interopRequireWildcard(require("../../atom/select"));
15
+
16
+ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
17
+
18
+ var _searchForm = _interopRequireDefault(require("../../molecule/search-form"));
19
+
20
+ var _cardsGrid = _interopRequireDefault(require("../../organism/cards-grid"));
21
+
22
+ var _searchValueIncluded = _interopRequireDefault(require("../../util/search-value-included"));
23
+
24
+ var _inputSwitch = _interopRequireDefault(require("../../atom/input-switch"));
25
+
26
+ var _allCourses = _interopRequireDefault(require("./all-courses.css"));
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
35
+
36
+ const FilterButton = (props, context) => {
37
+ const {
38
+ selected,
39
+ filter,
40
+ onClick
41
+ } = props;
42
+ const {
43
+ skin
44
+ } = context;
45
+ const primarySkinColor = (0, _get2.default)('common.primary', skin);
46
+ const buttonProps = {
47
+ customStyle: {
48
+ backgroundColor: selected ? primarySkinColor : '#E1E1E3',
49
+ color: selected ? '#FFFFFF' : '#515161',
50
+ transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
51
+ width: 'fit-content'
52
+ },
53
+ label: filter,
54
+ onClick,
55
+ 'data-name': 'filter-type-course-button'
56
+ };
57
+ return /*#__PURE__*/_react.default.createElement(_buttonLink.default, buttonProps);
58
+ };
59
+
60
+ FilterButton.contextTypes = {
61
+ skin: _provider.default.childContextTypes.skin,
62
+ translate: _provider.default.childContextTypes.translate
63
+ };
64
+ FilterButton.propTypes = process.env.NODE_ENV !== "production" ? {
65
+ selected: _propTypes.default.bool,
66
+ filter: _propTypes.default.string,
67
+ onClick: _propTypes.default.func
68
+ } : {};
69
+
70
+ const AllCourses = (props, context) => {
71
+ const {
72
+ skillIncludedCourses,
73
+ filters,
74
+ sorting
75
+ } = props;
76
+ const {
77
+ options,
78
+ onChange
79
+ } = filters;
80
+ const {
81
+ list
82
+ } = skillIncludedCourses;
83
+ const {
84
+ translate
85
+ } = context;
86
+ const [showCompleted, setShowCompleted] = (0, _react.useState)(true);
87
+ const [searchValue, setSearchValue] = (0, _react.useState)('');
88
+ const [searchResults, setSearchResults] = (0, _react.useState)(list.sort((a, b) => {
89
+ const progressA = a.progress ?? 0;
90
+ const progressB = b.progress ?? 0;
91
+ return progressB - progressA;
92
+ }));
93
+ const sortView = sorting !== undefined ? /*#__PURE__*/_react.default.createElement("div", {
94
+ "data-name": "choice"
95
+ }, /*#__PURE__*/_react.default.createElement(_select.default, _extends({}, sorting, {
96
+ "aria-label": "All courses sort"
97
+ }))) : null;
98
+ const handleSearch = (0, _react.useCallback)(value => {
99
+ setSearchValue(value);
100
+ setSearchResults(list.filter(skill => (0, _searchValueIncluded.default)(skill.title, value)));
101
+ }, [list, setSearchValue, setSearchResults]);
102
+ const handleSearchReset = (0, _react.useCallback)(() => {
103
+ setSearchValue('');
104
+ setSearchResults(list);
105
+ }, [list, setSearchValue, setSearchResults]);
106
+ const handleShowCompletedToggle = (0, _react.useCallback)(() => {
107
+ const tempShowCompleted = !showCompleted;
108
+ setShowCompleted(tempShowCompleted);
109
+
110
+ if (tempShowCompleted) {
111
+ setSearchResults(list);
112
+ handleSearchReset();
113
+ } else {
114
+ setSearchResults(searchResults.filter(skill => skill.progress === 0));
115
+ }
116
+ }, [searchResults, showCompleted, setShowCompleted]);
117
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
118
+ className: _allCourses.default.continueLearningWrapper
119
+ }, /*#__PURE__*/_react.default.createElement("span", {
120
+ className: _allCourses.default.continueLearningTitle
121
+ }, translate('all_courses')), /*#__PURE__*/_react.default.createElement("span", {
122
+ className: _allCourses.default.continueLearningNumber
123
+ }, skillIncludedCourses.list.length)), /*#__PURE__*/_react.default.createElement("div", {
124
+ className: _allCourses.default.searchAndSortSection
125
+ }, /*#__PURE__*/_react.default.createElement("div", {
126
+ className: _allCourses.default.searchWrapper
127
+ }, /*#__PURE__*/_react.default.createElement(_searchForm.default, {
128
+ search: {
129
+ placeholder: translate('search_place_holder'),
130
+ value: searchValue,
131
+ onChange: handleSearch
132
+ },
133
+ onReset: handleSearchReset
134
+ })), /*#__PURE__*/_react.default.createElement("div", {
135
+ className: _allCourses.default.sortSection
136
+ }, /*#__PURE__*/_react.default.createElement(_inputSwitch.default, {
137
+ type: "switch",
138
+ title: translate('show_completed'),
139
+ value: showCompleted,
140
+ onChange: handleShowCompletedToggle
141
+ }), /*#__PURE__*/_react.default.createElement("div", {
142
+ className: _allCourses.default.sortWrapper
143
+ }, translate('sort_by'), sortView))), /*#__PURE__*/_react.default.createElement("div", {
144
+ className: _allCourses.default.filterWrapper
145
+ }, options.length > 2 ? options.map((filter, index) => {
146
+ const {
147
+ name,
148
+ value,
149
+ selected
150
+ } = filter;
151
+
152
+ function handleChange() {
153
+ onChange(value);
154
+ handleSearchReset();
155
+ }
156
+
157
+ return /*#__PURE__*/_react.default.createElement("div", {
158
+ key: index,
159
+ className: _allCourses.default.filterButtonWrapper
160
+ }, /*#__PURE__*/_react.default.createElement(FilterButton, {
161
+ selected: selected,
162
+ filter: name,
163
+ onClick: handleChange
164
+ }), value === 'ALL' ? /*#__PURE__*/_react.default.createElement("div", {
165
+ className: _allCourses.default.divider
166
+ }) : null);
167
+ }) : null), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_cardsGrid.default, {
168
+ list: searchResults,
169
+ justifyContent: "left"
170
+ })));
171
+ };
172
+
173
+ AllCourses.contextTypes = {
174
+ skin: _provider.default.childContextTypes.skin,
175
+ translate: _provider.default.childContextTypes.translate
176
+ };
177
+ AllCourses.propTypes = process.env.NODE_ENV !== "production" ? {
178
+ skillIncludedCourses: _propTypes.default.shape(_cardsGrid.default.propTypes),
179
+ filters: _propTypes.default.shape({
180
+ onChange: _propTypes.default.func,
181
+ options: _propTypes.default.arrayOf(_propTypes.default.shape(_select.SelectOptionPropTypes))
182
+ }),
183
+ sorting: _propTypes.default.shape(_select.default.propTypes)
184
+ } : {};
185
+ var _default = AllCourses;
186
+ exports.default = _default;
187
+ //# sourceMappingURL=all-courses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-courses.js","names":["FilterButton","props","context","selected","filter","onClick","skin","primarySkinColor","buttonProps","customStyle","backgroundColor","color","transition","width","label","contextTypes","Provider","childContextTypes","translate","propTypes","PropTypes","bool","string","func","AllCourses","skillIncludedCourses","filters","sorting","options","onChange","list","showCompleted","setShowCompleted","useState","searchValue","setSearchValue","searchResults","setSearchResults","sort","a","b","progressA","progress","progressB","sortView","undefined","handleSearch","useCallback","value","skill","searchValueIncluded","title","handleSearchReset","handleShowCompletedToggle","tempShowCompleted","style","continueLearningWrapper","continueLearningTitle","continueLearningNumber","length","searchAndSortSection","searchWrapper","placeholder","sortSection","sortWrapper","filterWrapper","map","index","name","handleChange","filterButtonWrapper","divider","shape","CardsGrid","arrayOf","SelectOptionPropTypes","Select"],"sources":["../../../src/template/skill-detail/all-courses.js"],"sourcesContent":["import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {get} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport SearchForm from '../../molecule/search-form';\nimport CardsGrid from '../../organism/cards-grid';\nimport searchValueIncluded from '../../util/search-value-included';\nimport InputSwitch from '../../atom/input-switch';\nimport style from './all-courses.css';\n\nconst FilterButton = (props, context) => {\n const {selected, filter, onClick} = props;\n const {skin} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const buttonProps = {\n customStyle: {\n backgroundColor: selected ? primarySkinColor : '#E1E1E3',\n color: selected ? '#FFFFFF' : '#515161',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: 'fit-content'\n },\n label: filter,\n onClick,\n 'data-name': 'filter-type-course-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 selected: PropTypes.bool,\n filter: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst AllCourses = (props, context) => {\n const {skillIncludedCourses, filters, sorting} = props;\n const {options, onChange} = filters;\n const {list} = skillIncludedCourses;\n const {translate} = context;\n const [showCompleted, setShowCompleted] = useState(true);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(\n list.sort((a, b) => {\n const progressA = a.progress ?? 0;\n const progressB = b.progress ?? 0;\n return progressB - progressA;\n })\n );\n\n const sortView =\n sorting !== undefined ? (\n <div data-name=\"choice\">\n <Select {...sorting} aria-label=\"All courses sort\" />\n </div>\n ) : null;\n\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(list.filter(skill => searchValueIncluded(skill.title, value)));\n },\n [list, setSearchValue, setSearchResults]\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(list);\n }, [list, setSearchValue, setSearchResults]);\n\n const handleShowCompletedToggle = useCallback(() => {\n const tempShowCompleted = !showCompleted;\n setShowCompleted(tempShowCompleted);\n if (tempShowCompleted) {\n setSearchResults(list);\n handleSearchReset();\n } else {\n setSearchResults(searchResults.filter(skill => skill.progress === 0));\n }\n }, [searchResults, showCompleted, setShowCompleted]);\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('all_courses')}</span>\n <span className={style.continueLearningNumber}>{skillIncludedCourses.list.length}</span>\n </div>\n <div className={style.searchAndSortSection}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n <div className={style.sortSection}>\n <InputSwitch\n type=\"switch\"\n title={translate('show_completed')}\n value={showCompleted}\n onChange={handleShowCompletedToggle}\n />\n <div className={style.sortWrapper}>\n {translate('sort_by')}\n {sortView}\n </div>\n </div>\n </div>\n <div className={style.filterWrapper}>\n {options.length > 2\n ? options.map((filter, index) => {\n const {name, value, selected} = filter;\n\n function handleChange() {\n onChange(value);\n handleSearchReset();\n }\n return (\n <div key={index} className={style.filterButtonWrapper}>\n <FilterButton selected={selected} filter={name} onClick={handleChange} />\n {value === 'ALL' ? <div className={style.divider} /> : null}\n </div>\n );\n })\n : null}\n </div>\n <div>\n <CardsGrid list={searchResults} justifyContent=\"left\" />\n </div>\n </>\n );\n};\n\nAllCourses.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nAllCourses.propTypes = {\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n sorting: PropTypes.shape(Select.propTypes)\n};\n\nexport default AllCourses;\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ .continueLearningWrapper {
2
+ margin-top: 40px;
3
+ margin-bottom: 16px;
4
+ }
5
+
6
+ .continueLearningTitle {
7
+ font-size: 16px;
8
+ font-weight: 600;
9
+ line-height: 22px;
10
+ }
11
+
12
+ .continueLearningNumber {
13
+ border-radius: 50%;
14
+ background-color: #EAEAEB;
15
+ color: #515161;
16
+ padding: 2px 4px;
17
+ margin-left: 8px;
18
+ font-size: 10px;
19
+ font-weight: 600;
20
+ line-height: 12px;
21
+ }
@@ -0,0 +1,37 @@
1
+ export default ContinueLearning;
2
+ declare function ContinueLearning(props: any, context: any): JSX.Element | null;
3
+ declare namespace ContinueLearning {
4
+ namespace contextTypes {
5
+ const skin: PropTypes.Requireable<PropTypes.InferProps<{
6
+ common: PropTypes.Requireable<{
7
+ [x: string]: any;
8
+ }>;
9
+ images: PropTypes.Requireable<PropTypes.InferProps<{
10
+ 'logo-mobile': PropTypes.Requireable<any>;
11
+ logo: PropTypes.Requireable<any>;
12
+ 'logo-email': PropTypes.Requireable<any>;
13
+ login: PropTypes.Requireable<any>;
14
+ }>>;
15
+ icons: PropTypes.Requireable<{
16
+ [x: string]: any;
17
+ }>;
18
+ mod: PropTypes.Requireable<{
19
+ [x: string]: any;
20
+ }>;
21
+ courses: PropTypes.Requireable<any[]>;
22
+ texts: PropTypes.Requireable<{
23
+ [x: string]: any;
24
+ }>;
25
+ }>>;
26
+ const translate: PropTypes.Requireable<(...args: any[]) => any>;
27
+ }
28
+ namespace propTypes {
29
+ const ongoingCourses: PropTypes.Requireable<PropTypes.InferProps<{
30
+ list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
31
+ justifyContent: PropTypes.Requireable<string>;
32
+ loading: PropTypes.Requireable<boolean>;
33
+ }>>;
34
+ }
35
+ }
36
+ import PropTypes from "prop-types";
37
+ //# sourceMappingURL=continue-learning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue-learning.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/continue-learning.js"],"names":[],"mappings":";AAMA,gFAmBC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireDefault(require("react"));
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
11
+
12
+ var _cardsGrid = _interopRequireDefault(require("../../organism/cards-grid"));
13
+
14
+ var _continueLearning = _interopRequireDefault(require("./continue-learning.css"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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); }
19
+
20
+ const ContinueLearning = (props, context) => {
21
+ const {
22
+ ongoingCourses
23
+ } = props;
24
+ const {
25
+ translate
26
+ } = context;
27
+
28
+ if (ongoingCourses.list.length === 0) {
29
+ return null;
30
+ }
31
+
32
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
33
+ className: _continueLearning.default.continueLearningWrapper
34
+ }, /*#__PURE__*/_react.default.createElement("span", {
35
+ className: _continueLearning.default.continueLearningTitle
36
+ }, translate('continue_learning')), /*#__PURE__*/_react.default.createElement("span", {
37
+ className: _continueLearning.default.continueLearningNumber
38
+ }, ongoingCourses.list.length)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_cardsGrid.default, _extends({}, ongoingCourses, {
39
+ justifyContent: "left"
40
+ }))));
41
+ };
42
+
43
+ ContinueLearning.contextTypes = {
44
+ skin: _provider.default.childContextTypes.skin,
45
+ translate: _provider.default.childContextTypes.translate
46
+ };
47
+ ContinueLearning.propTypes = process.env.NODE_ENV !== "production" ? {
48
+ ongoingCourses: _propTypes.default.shape(_cardsGrid.default.propTypes)
49
+ } : {};
50
+ var _default = ContinueLearning;
51
+ exports.default = _default;
52
+ //# sourceMappingURL=continue-learning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue-learning.js","names":["ContinueLearning","props","context","ongoingCourses","translate","list","length","style","continueLearningWrapper","continueLearningTitle","continueLearningNumber","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","shape","CardsGrid"],"sources":["../../../src/template/skill-detail/continue-learning.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Provider from '../../atom/provider';\nimport CardsGrid from '../../organism/cards-grid';\nimport style from './continue-learning.css';\n\nconst ContinueLearning = (props, context) => {\n const {ongoingCourses} = props;\n const {translate} = context;\n\n if (ongoingCourses.list.length === 0) {\n return null;\n }\n\n return (\n <>\n <div className={style.continueLearningWrapper}>\n <span className={style.continueLearningTitle}>{translate('continue_learning')}</span>\n <span className={style.continueLearningNumber}>{ongoingCourses.list.length}</span>\n </div>\n <div>\n <CardsGrid {...ongoingCourses} justifyContent=\"left\" />\n </div>\n </>\n );\n};\n\nContinueLearning.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearning.propTypes = {\n ongoingCourses: PropTypes.shape(CardsGrid.propTypes)\n};\n\nexport default ContinueLearning;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,gBAAgB,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EAC3C,MAAM;IAACC;EAAD,IAAmBF,KAAzB;EACA,MAAM;IAACG;EAAD,IAAcF,OAApB;;EAEA,IAAIC,cAAc,CAACE,IAAf,CAAoBC,MAApB,KAA+B,CAAnC,EAAsC;IACpC,OAAO,IAAP;EACD;;EAED,oBACE,yEACE;IAAK,SAAS,EAAEC,yBAAA,CAAMC;EAAtB,gBACE;IAAM,SAAS,EAAED,yBAAA,CAAME;EAAvB,GAA+CL,SAAS,CAAC,mBAAD,CAAxD,CADF,eAEE;IAAM,SAAS,EAAEG,yBAAA,CAAMG;EAAvB,GAAgDP,cAAc,CAACE,IAAf,CAAoBC,MAApE,CAFF,CADF,eAKE,uDACE,6BAAC,kBAAD,eAAeH,cAAf;IAA+B,cAAc,EAAC;EAA9C,GADF,CALF,CADF;AAWD,CAnBD;;AAqBAH,gBAAgB,CAACW,YAAjB,GAAgC;EAC9BC,IAAI,EAAEC,iBAAA,CAASC,iBAAT,CAA2BF,IADH;EAE9BR,SAAS,EAAES,iBAAA,CAASC,iBAAT,CAA2BV;AAFR,CAAhC;AAKAJ,gBAAgB,CAACe,SAAjB,2CAA6B;EAC3BZ,cAAc,EAAEa,kBAAA,CAAUC,KAAV,CAAgBC,kBAAA,CAAUH,SAA1B;AADW,CAA7B;eAIef,gB"}
@@ -0,0 +1,95 @@
1
+ export default SkillDetail;
2
+ declare function SkillDetail(props: any, context: any): JSX.Element;
3
+ declare namespace SkillDetail {
4
+ namespace contextTypes {
5
+ const skin: PropTypes.Requireable<PropTypes.InferProps<{
6
+ common: PropTypes.Requireable<{
7
+ [x: string]: any;
8
+ }>;
9
+ images: PropTypes.Requireable<PropTypes.InferProps<{
10
+ 'logo-mobile': PropTypes.Requireable<any>;
11
+ logo: PropTypes.Requireable<any>;
12
+ 'logo-email': PropTypes.Requireable<any>;
13
+ login: PropTypes.Requireable<any>;
14
+ }>>;
15
+ icons: PropTypes.Requireable<{
16
+ [x: string]: any;
17
+ }>;
18
+ mod: PropTypes.Requireable<{
19
+ [x: string]: any;
20
+ }>;
21
+ courses: PropTypes.Requireable<any[]>;
22
+ texts: PropTypes.Requireable<{
23
+ [x: string]: any;
24
+ }>;
25
+ }>>;
26
+ const translate: PropTypes.Requireable<(...args: any[]) => any>;
27
+ }
28
+ namespace propTypes {
29
+ const title: PropTypes.Validator<string>;
30
+ const description: PropTypes.Requireable<string>;
31
+ const metrics: PropTypes.Requireable<PropTypes.InferProps<{
32
+ score: PropTypes.Requireable<number>;
33
+ content: PropTypes.Requireable<number>;
34
+ questionsToReview: PropTypes.Requireable<number>;
35
+ contentCompleted: PropTypes.Requireable<number>;
36
+ }>>;
37
+ const focused: PropTypes.Requireable<boolean>;
38
+ const availableForReview: PropTypes.Requireable<boolean>;
39
+ const ongoingCourses: PropTypes.Requireable<PropTypes.InferProps<{
40
+ list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
41
+ justifyContent: PropTypes.Requireable<string>;
42
+ loading: PropTypes.Requireable<boolean>;
43
+ }>>;
44
+ const skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
45
+ list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
46
+ justifyContent: PropTypes.Requireable<string>;
47
+ loading: PropTypes.Requireable<boolean>;
48
+ }>>;
49
+ const filters: PropTypes.Requireable<PropTypes.InferProps<{
50
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
51
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
52
+ name: PropTypes.Validator<string>;
53
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
54
+ selected: PropTypes.Requireable<boolean>;
55
+ validOption: PropTypes.Requireable<boolean>;
56
+ }> | null | undefined)[]>;
57
+ }>>;
58
+ const sorting: PropTypes.Requireable<PropTypes.InferProps<{
59
+ title: PropTypes.Requireable<string>;
60
+ name: PropTypes.Requireable<string>;
61
+ className: PropTypes.Requireable<string>;
62
+ borderClassName: PropTypes.Requireable<string>;
63
+ disabled: PropTypes.Requireable<boolean>;
64
+ multiple: PropTypes.Requireable<boolean>;
65
+ description: PropTypes.Requireable<string>;
66
+ required: PropTypes.Requireable<boolean>;
67
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
68
+ theme: PropTypes.Requireable<string>;
69
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
70
+ name: PropTypes.Validator<string>;
71
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
72
+ selected: PropTypes.Requireable<boolean>;
73
+ validOption: PropTypes.Requireable<boolean>;
74
+ }> | null | undefined)[]>;
75
+ optgroups: PropTypes.Requireable<(PropTypes.InferProps<{
76
+ label: PropTypes.Validator<string>;
77
+ options: PropTypes.Requireable<(PropTypes.InferProps<{
78
+ name: PropTypes.Validator<string>;
79
+ value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
80
+ selected: PropTypes.Requireable<boolean>;
81
+ validOption: PropTypes.Requireable<boolean>;
82
+ }> | null | undefined)[]>;
83
+ }> | null | undefined)[]>;
84
+ modified: PropTypes.Requireable<boolean>;
85
+ error: PropTypes.Requireable<boolean>;
86
+ 'aria-label': PropTypes.Requireable<string>;
87
+ 'aria-labelledby': PropTypes.Requireable<string>;
88
+ }>>;
89
+ const onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
90
+ const onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
91
+ const onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
92
+ }
93
+ }
94
+ import PropTypes from "prop-types";
95
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/index.js"],"names":[],"mappings":";AA2DA,oEAuJC"}