@coorpacademy/components 11.38.6-alpha.29 → 11.38.6
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/molecule/card/favorite.css +1 -0
- package/es/template/certification-detail/index.d.ts +1 -0
- package/es/template/certification-detail/index.d.ts.map +1 -1
- package/es/template/certification-detail/index.js +10 -4
- package/es/template/certification-detail/index.js.map +1 -1
- package/es/template/playlist-detail/index.d.ts +3 -0
- package/es/template/playlist-detail/index.d.ts.map +1 -1
- package/es/template/playlist-detail/index.js +11 -0
- package/es/template/playlist-detail/index.js.map +1 -1
- package/lib/molecule/card/favorite.css +1 -0
- package/lib/template/certification-detail/index.d.ts +1 -0
- package/lib/template/certification-detail/index.d.ts.map +1 -1
- package/lib/template/certification-detail/index.js +10 -4
- package/lib/template/certification-detail/index.js.map +1 -1
- package/lib/template/playlist-detail/index.d.ts +3 -0
- package/lib/template/playlist-detail/index.d.ts.map +1 -1
- package/lib/template/playlist-detail/index.js +11 -0
- package/lib/template/playlist-detail/index.js.map +1 -1
- package/locales/bs/global.json +5 -0
- package/locales/cs/global.json +5 -0
- package/locales/de/global.json +5 -0
- package/locales/es/global.json +5 -0
- package/locales/et/global.json +5 -0
- package/locales/fi/global.json +5 -0
- package/locales/fr/global.json +5 -0
- package/locales/hr/global.json +5 -0
- package/locales/hu/global.json +5 -0
- package/locales/hy/global.json +5 -0
- package/locales/it/global.json +5 -0
- package/locales/ja/global.json +5 -0
- package/locales/ko/global.json +5 -0
- package/locales/lt/global.json +42 -37
- package/locales/nl/global.json +5 -0
- package/locales/pl/global.json +5 -0
- package/locales/pt/global.json +5 -0
- package/locales/ro/global.json +5 -0
- package/locales/ru/global.json +5 -0
- package/locales/sk/global.json +5 -0
- package/locales/sl/global.json +5 -0
- package/locales/sv/global.json +5 -0
- package/locales/tl/global.json +5 -0
- package/locales/tr/global.json +5 -0
- package/locales/uk/global.json +5 -0
- package/locales/vi/global.json +5 -0
- package/locales/zh/global.json +5 -0
- package/locales/zh_TW/global.json +5 -0
- package/package.json +2 -2
|
@@ -36,6 +36,7 @@ declare namespace CertificationDetail {
|
|
|
36
36
|
stars: PropTypes.Requireable<number>;
|
|
37
37
|
mandatoryModules: PropTypes.Requireable<number>;
|
|
38
38
|
totalModules: PropTypes.Requireable<number>;
|
|
39
|
+
totalContents: PropTypes.Requireable<number>;
|
|
39
40
|
}>>;
|
|
40
41
|
const diplomaUrl: PropTypes.Requireable<string>;
|
|
41
42
|
const badgeUrl: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAgBA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAgBA,4EAkIC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import _getOr from "lodash/fp/getOr";
|
|
2
|
+
import _pipe from "lodash/fp/pipe";
|
|
3
|
+
import _size from "lodash/fp/size";
|
|
1
4
|
import _isNil from "lodash/fp/isNil";
|
|
2
5
|
import _round from "lodash/fp/round";
|
|
3
6
|
import _compact from "lodash/fp/compact";
|
|
@@ -26,11 +29,11 @@ const CertificationDetail = (props, context) => {
|
|
|
26
29
|
filters,
|
|
27
30
|
onBackClick,
|
|
28
31
|
onContinueLearningClick,
|
|
29
|
-
metrics,
|
|
30
32
|
logoUrl,
|
|
31
33
|
diplomaUrl,
|
|
32
34
|
badgeUrl,
|
|
33
|
-
search
|
|
35
|
+
search,
|
|
36
|
+
metrics = {}
|
|
34
37
|
} = props;
|
|
35
38
|
const descriptionRef = useRef(null);
|
|
36
39
|
const {
|
|
@@ -40,7 +43,8 @@ const CertificationDetail = (props, context) => {
|
|
|
40
43
|
progression,
|
|
41
44
|
mandatoryModules,
|
|
42
45
|
stars,
|
|
43
|
-
totalModules
|
|
46
|
+
totalModules,
|
|
47
|
+
totalContents = _pipe(_getOr([], 'list'), _size)(certificationCourses)
|
|
44
48
|
} = metrics;
|
|
45
49
|
const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);
|
|
46
50
|
const [showMore, setShowMore] = useState(false);
|
|
@@ -118,6 +122,7 @@ const CertificationDetail = (props, context) => {
|
|
|
118
122
|
}])
|
|
119
123
|
}), /*#__PURE__*/React.createElement(AllCourses, {
|
|
120
124
|
content: certificationCourses,
|
|
125
|
+
totalContents: totalContents,
|
|
121
126
|
filters: filters,
|
|
122
127
|
"data-name": "certification-courses",
|
|
123
128
|
search: search
|
|
@@ -137,7 +142,8 @@ CertificationDetail.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
137
142
|
progression: PropTypes.number,
|
|
138
143
|
stars: PropTypes.number,
|
|
139
144
|
mandatoryModules: PropTypes.number,
|
|
140
|
-
totalModules: PropTypes.number
|
|
145
|
+
totalModules: PropTypes.number,
|
|
146
|
+
totalContents: PropTypes.number
|
|
141
147
|
}),
|
|
142
148
|
diplomaUrl: PropTypes.string,
|
|
143
149
|
badgeUrl: PropTypes.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","useMemo","PropTypes","classnames","Markdown","Provider","Tag","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","ContinueLearningButton","ProgressWrapper","style","CertificationDetail","props","context","certificationRef","title","tag","description","certificationCourses","ongoingCoursesAvailable","filters","onBackClick","onContinueLearningClick","metrics","logoUrl","diplomaUrl","badgeUrl","search","descriptionRef","translate","progression","mandatoryModules","stars","totalModules","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","createElement","ref","className","truncate","completedModules","_round","backgroundContainer","container","_isNil","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","logoContainer","logo","src","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","contentStats","count","subtitle","sections","_compact","type","downloadUrl","content","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","string","isRequired","shape","number","bool","onChange","func","options","arrayOf","oldValue"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, round, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n tag,\n description,\n certificationCourses,\n ongoingCoursesAvailable,\n filters,\n onBackClick,\n onContinueLearningClick,\n metrics,\n logoUrl,\n diplomaUrl,\n badgeUrl,\n search\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n\n const {progression, mandatoryModules, stars, totalModules} = metrics;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n const completedModules = useMemo(\n () => round((mandatoryModules * progression) / 100),\n [mandatoryModules, progression]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={tag} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${translate('modules', {count: totalModules})}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedModules={completedModules}\n mandatoryModules={mandatoryModules}\n sections={compact([\n diplomaUrl && {\n type: 'diploma',\n downloadUrl: diplomaUrl\n },\n badgeUrl && {\n type: 'badge',\n downloadUrl: badgeUrl\n },\n stars && {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses\n content={certificationCourses}\n filters={filters}\n data-name=\"certification-courses\"\n search={search}\n />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n tag: PropTypes.string,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n mandatoryModules: PropTypes.number,\n totalModules: PropTypes.number\n }),\n diplomaUrl: PropTypes.string,\n badgeUrl: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default CertificationDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","useMemo","PropTypes","classnames","Markdown","Provider","Tag","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","ContinueLearningButton","ProgressWrapper","style","CertificationDetail","props","context","certificationRef","title","tag","description","certificationCourses","ongoingCoursesAvailable","filters","onBackClick","onContinueLearningClick","logoUrl","diplomaUrl","badgeUrl","search","metrics","descriptionRef","translate","progression","mandatoryModules","stars","totalModules","totalContents","_pipe","_getOr","_size","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","createElement","ref","className","truncate","completedModules","_round","backgroundContainer","container","_isNil","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","logoContainer","logo","src","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","contentStats","count","subtitle","sections","_compact","type","downloadUrl","content","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","string","isRequired","shape","number","bool","onChange","func","options","arrayOf","oldValue"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, round, isNil, size, pipe, getOr} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n tag,\n description,\n certificationCourses,\n ongoingCoursesAvailable,\n filters,\n onBackClick,\n onContinueLearningClick,\n logoUrl,\n diplomaUrl,\n badgeUrl,\n search,\n metrics = {}\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n\n const {\n progression,\n mandatoryModules,\n stars,\n totalModules,\n totalContents = pipe(getOr([], 'list'), size)(certificationCourses)\n } = metrics;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n const completedModules = useMemo(\n () => round((mandatoryModules * progression) / 100),\n [mandatoryModules, progression]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={tag} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${translate('modules', {count: totalModules})}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedModules={completedModules}\n mandatoryModules={mandatoryModules}\n sections={compact([\n diplomaUrl && {\n type: 'diploma',\n downloadUrl: diplomaUrl\n },\n badgeUrl && {\n type: 'badge',\n downloadUrl: badgeUrl\n },\n stars && {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses\n content={certificationCourses}\n totalContents={totalContents}\n filters={filters}\n data-name=\"certification-courses\"\n search={search}\n />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n tag: PropTypes.string,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n mandatoryModules: PropTypes.number,\n totalModules: PropTypes.number,\n totalContents: PropTypes.number\n }),\n diplomaUrl: PropTypes.string,\n badgeUrl: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default CertificationDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,6 +50,9 @@ declare namespace PlaylistDetail {
|
|
|
50
50
|
validOption: PropTypes.Requireable<boolean>;
|
|
51
51
|
}> | null | undefined)[]>;
|
|
52
52
|
}>>;
|
|
53
|
+
const metrics: PropTypes.Requireable<PropTypes.InferProps<{
|
|
54
|
+
totalContents: PropTypes.Requireable<number>;
|
|
55
|
+
}>>;
|
|
53
56
|
const sorting: PropTypes.Requireable<PropTypes.InferProps<{
|
|
54
57
|
title: PropTypes.Requireable<string>;
|
|
55
58
|
name: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/playlist-detail/index.js"],"names":[],"mappings":";AAgBA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/playlist-detail/index.js"],"names":[],"mappings":";AAgBA,uEAyGC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import _size from "lodash/fp/size";
|
|
2
|
+
import _pipe from "lodash/fp/pipe";
|
|
1
3
|
import _isNil from "lodash/fp/isNil";
|
|
4
|
+
import _getOr from "lodash/fp/getOr";
|
|
2
5
|
import React, { useCallback, useState, useEffect, useRef } from 'react';
|
|
3
6
|
import PropTypes from 'prop-types';
|
|
4
7
|
import classnames from 'classnames';
|
|
@@ -26,8 +29,12 @@ const PlaylistDetail = (props, context) => {
|
|
|
26
29
|
onBackClick,
|
|
27
30
|
onContinueLearningClick,
|
|
28
31
|
search,
|
|
32
|
+
metrics = {},
|
|
29
33
|
bannerMicrolearning = {}
|
|
30
34
|
} = props;
|
|
35
|
+
const {
|
|
36
|
+
totalContents = _pipe(_getOr([], 'list'), _size)(playlistCourses)
|
|
37
|
+
} = metrics;
|
|
31
38
|
const descriptionRef = useRef(null);
|
|
32
39
|
const {
|
|
33
40
|
translate
|
|
@@ -92,6 +99,7 @@ const PlaylistDetail = (props, context) => {
|
|
|
92
99
|
onClick: onContinueLearningClick
|
|
93
100
|
})))), /*#__PURE__*/React.createElement(AllCourses, {
|
|
94
101
|
content: playlistCourses,
|
|
102
|
+
totalContents: totalContents,
|
|
95
103
|
filters: filters,
|
|
96
104
|
sorting: sorting,
|
|
97
105
|
bannerMicrolearning: bannerMicrolearningAction ? {
|
|
@@ -117,6 +125,9 @@ PlaylistDetail.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
117
125
|
onChange: PropTypes.func,
|
|
118
126
|
options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))
|
|
119
127
|
}),
|
|
128
|
+
metrics: PropTypes.shape({
|
|
129
|
+
totalContents: PropTypes.number
|
|
130
|
+
}),
|
|
120
131
|
sorting: PropTypes.shape(Select.propTypes),
|
|
121
132
|
search: PropTypes.shape({
|
|
122
133
|
oldValue: PropTypes.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","PropTypes","classnames","Markdown","Provider","Tag","Select","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","PlaylistDetailCover","ContinueLearningButton","style","PlaylistDetail","props","context","title","coverImages","playlistRef","description","ongoingCoursesAvailable","playlistCourses","filters","sorting","onBackClick","onContinueLearningClick","search","bannerMicrolearning","descriptionRef","translate","action","bannerMicrolearningAction","oldSwitchValue","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","createElement","ref","className","truncate","backgroundContainer","container","_isNil","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","coverWrapper","images","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","continueLearningButton","content","type","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","string","isRequired","bool","shape","onChange","func","options","arrayOf","oldValue"],"sources":["../../../src/template/playlist-detail/index.js"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport PlaylistDetailCover from '../../molecule/playlist-detail-cover';\nimport {ContinueLearningButton} from '../skill-detail';\nimport style from './style.css';\n\nconst PlaylistDetail = (props, context) => {\n const {\n title,\n coverImages,\n playlistRef,\n description,\n ongoingCoursesAvailable,\n playlistCourses,\n filters,\n sorting,\n onBackClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning = {}\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n const {action: bannerMicrolearningAction, oldSwitchValue} = bannerMicrolearning;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={playlistRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.coverWrapper}>\n <PlaylistDetailCover images={coverImages} />\n </div>\n <div>\n <Tag label={translate('playlist')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.continueLearningButton}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n </div>\n <AllCourses\n content={playlistCourses}\n filters={filters}\n sorting={sorting}\n bannerMicrolearning={\n bannerMicrolearningAction\n ? {\n type: 'playlist',\n action: bannerMicrolearningAction,\n oldSwitchValue\n }\n : {}\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nPlaylistDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nPlaylistDetail.propTypes = {\n title: PropTypes.string.isRequired,\n coverImages: PlaylistDetailCover.propTypes.images,\n playlistRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n playlistCourses: 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 search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default PlaylistDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","useRef","PropTypes","classnames","Markdown","Provider","Tag","Select","SelectOptionPropTypes","ButtonLinkIcon","Icon","CardsGrid","AllCourses","PlaylistDetailCover","ContinueLearningButton","style","PlaylistDetail","props","context","title","coverImages","playlistRef","description","ongoingCoursesAvailable","playlistCourses","filters","sorting","onBackClick","onContinueLearningClick","search","metrics","bannerMicrolearning","totalContents","_pipe","_getOr","_size","descriptionRef","translate","action","bannerMicrolearningAction","oldSwitchValue","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","createElement","ref","className","truncate","backgroundContainer","container","_isNil","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","coverWrapper","images","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","continueLearningButton","content","type","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","string","isRequired","bool","shape","onChange","func","options","arrayOf","number","oldValue"],"sources":["../../../src/template/playlist-detail/index.js"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {getOr, isNil, pipe, size} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport PlaylistDetailCover from '../../molecule/playlist-detail-cover';\nimport {ContinueLearningButton} from '../skill-detail';\nimport style from './style.css';\n\nconst PlaylistDetail = (props, context) => {\n const {\n title,\n coverImages,\n playlistRef,\n description,\n ongoingCoursesAvailable,\n playlistCourses,\n filters,\n sorting,\n onBackClick,\n onContinueLearningClick,\n search,\n metrics = {},\n bannerMicrolearning = {}\n } = props;\n const {totalContents = pipe(getOr([], 'list'), size)(playlistCourses)} = metrics;\n const descriptionRef = useRef(null);\n const {translate} = context;\n const {action: bannerMicrolearningAction, oldSwitchValue} = bannerMicrolearning;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={playlistRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.coverWrapper}>\n <PlaylistDetailCover images={coverImages} />\n </div>\n <div>\n <Tag label={translate('playlist')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.continueLearningButton}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n </div>\n <AllCourses\n content={playlistCourses}\n totalContents={totalContents}\n filters={filters}\n sorting={sorting}\n bannerMicrolearning={\n bannerMicrolearningAction\n ? {\n type: 'playlist',\n action: bannerMicrolearningAction,\n oldSwitchValue\n }\n : {}\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nPlaylistDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nPlaylistDetail.propTypes = {\n title: PropTypes.string.isRequired,\n coverImages: PlaylistDetailCover.propTypes.images,\n playlistRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n playlistCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n metrics: PropTypes.shape({\n totalContents: PropTypes.number\n }),\n sorting: PropTypes.shape(Select.propTypes),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default PlaylistDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,6 +36,7 @@ declare namespace CertificationDetail {
|
|
|
36
36
|
stars: PropTypes.Requireable<number>;
|
|
37
37
|
mandatoryModules: PropTypes.Requireable<number>;
|
|
38
38
|
totalModules: PropTypes.Requireable<number>;
|
|
39
|
+
totalContents: PropTypes.Requireable<number>;
|
|
39
40
|
}>>;
|
|
40
41
|
const diplomaUrl: PropTypes.Requireable<string>;
|
|
41
42
|
const badgeUrl: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAgBA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/certification-detail/index.js"],"names":[],"mappings":";AAgBA,4EAkIC"}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
+
var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
|
|
6
|
+
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
7
|
+
var _size2 = _interopRequireDefault(require("lodash/fp/size"));
|
|
5
8
|
var _isNil2 = _interopRequireDefault(require("lodash/fp/isNil"));
|
|
6
9
|
var _round2 = _interopRequireDefault(require("lodash/fp/round"));
|
|
7
10
|
var _compact2 = _interopRequireDefault(require("lodash/fp/compact"));
|
|
@@ -33,11 +36,11 @@ const CertificationDetail = (props, context) => {
|
|
|
33
36
|
filters,
|
|
34
37
|
onBackClick,
|
|
35
38
|
onContinueLearningClick,
|
|
36
|
-
metrics,
|
|
37
39
|
logoUrl,
|
|
38
40
|
diplomaUrl,
|
|
39
41
|
badgeUrl,
|
|
40
|
-
search
|
|
42
|
+
search,
|
|
43
|
+
metrics = {}
|
|
41
44
|
} = props;
|
|
42
45
|
const descriptionRef = (0, _react.useRef)(null);
|
|
43
46
|
const {
|
|
@@ -47,7 +50,8 @@ const CertificationDetail = (props, context) => {
|
|
|
47
50
|
progression,
|
|
48
51
|
mandatoryModules,
|
|
49
52
|
stars,
|
|
50
|
-
totalModules
|
|
53
|
+
totalModules,
|
|
54
|
+
totalContents = (0, _pipe2.default)((0, _getOr2.default)([], 'list'), _size2.default)(certificationCourses)
|
|
51
55
|
} = metrics;
|
|
52
56
|
const [isDescriptionTruncated, setIsDescriptionTruncated] = (0, _react.useState)(false);
|
|
53
57
|
const [showMore, setShowMore] = (0, _react.useState)(false);
|
|
@@ -125,6 +129,7 @@ const CertificationDetail = (props, context) => {
|
|
|
125
129
|
}])
|
|
126
130
|
}), /*#__PURE__*/_react.default.createElement(_allCourses.default, {
|
|
127
131
|
content: certificationCourses,
|
|
132
|
+
totalContents: totalContents,
|
|
128
133
|
filters: filters,
|
|
129
134
|
"data-name": "certification-courses",
|
|
130
135
|
search: search
|
|
@@ -144,7 +149,8 @@ CertificationDetail.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
144
149
|
progression: _propTypes.default.number,
|
|
145
150
|
stars: _propTypes.default.number,
|
|
146
151
|
mandatoryModules: _propTypes.default.number,
|
|
147
|
-
totalModules: _propTypes.default.number
|
|
152
|
+
totalModules: _propTypes.default.number,
|
|
153
|
+
totalContents: _propTypes.default.number
|
|
148
154
|
}),
|
|
149
155
|
diplomaUrl: _propTypes.default.string,
|
|
150
156
|
badgeUrl: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_provider","_tag","_select","_buttonLinkIcon","_icon","_cardsGrid","_allCourses","_skillDetail","_progressWrapper","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CertificationDetail","props","context","certificationRef","title","tag","description","certificationCourses","ongoingCoursesAvailable","filters","onBackClick","onContinueLearningClick","metrics","logoUrl","diplomaUrl","badgeUrl","search","descriptionRef","useRef","translate","progression","mandatoryModules","stars","totalModules","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","createElement","ref","className","classnames","style","truncate","completedModules","useMemo","_round2","backgroundContainer","container","_isNil2","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","logoContainer","logo","src","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","contentStats","count","ContinueLearningButton","subtitle","sections","_compact2","type","downloadUrl","content","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","isRequired","shape","number","bool","CardsGrid","onChange","func","options","arrayOf","SelectOptionPropTypes","oldValue","_default","exports"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, round, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n tag,\n description,\n certificationCourses,\n ongoingCoursesAvailable,\n filters,\n onBackClick,\n onContinueLearningClick,\n metrics,\n logoUrl,\n diplomaUrl,\n badgeUrl,\n search\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n\n const {progression, mandatoryModules, stars, totalModules} = metrics;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n const completedModules = useMemo(\n () => round((mandatoryModules * progression) / 100),\n [mandatoryModules, progression]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={tag} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${translate('modules', {count: totalModules})}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedModules={completedModules}\n mandatoryModules={mandatoryModules}\n sections={compact([\n diplomaUrl && {\n type: 'diploma',\n downloadUrl: diplomaUrl\n },\n badgeUrl && {\n type: 'badge',\n downloadUrl: badgeUrl\n },\n stars && {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses\n content={certificationCourses}\n filters={filters}\n data-name=\"certification-courses\"\n search={search}\n />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n tag: PropTypes.string,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n mandatoryModules: PropTypes.number,\n totalModules: PropTypes.number\n }),\n diplomaUrl: PropTypes.string,\n badgeUrl: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default CertificationDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_provider","_tag","_select","_buttonLinkIcon","_icon","_cardsGrid","_allCourses","_skillDetail","_progressWrapper","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CertificationDetail","props","context","certificationRef","title","tag","description","certificationCourses","ongoingCoursesAvailable","filters","onBackClick","onContinueLearningClick","logoUrl","diplomaUrl","badgeUrl","search","metrics","descriptionRef","useRef","translate","progression","mandatoryModules","stars","totalModules","totalContents","_pipe2","_getOr2","_size2","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","createElement","ref","className","classnames","style","truncate","completedModules","useMemo","_round2","backgroundContainer","container","_isNil2","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","logoContainer","logo","src","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","contentStats","count","ContinueLearningButton","subtitle","sections","_compact2","type","downloadUrl","content","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","isRequired","shape","number","bool","CardsGrid","onChange","func","options","arrayOf","SelectOptionPropTypes","oldValue","_default","exports"],"sources":["../../../src/template/certification-detail/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {compact, round, isNil, size, pipe, getOr} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport {ContinueLearningButton} from '../skill-detail';\nimport ProgressWrapper from '../../molecule/progress-wrapper';\nimport style from './style.css';\n\nconst CertificationDetail = (props, context) => {\n const {\n certificationRef,\n title,\n tag,\n description,\n certificationCourses,\n ongoingCoursesAvailable,\n filters,\n onBackClick,\n onContinueLearningClick,\n logoUrl,\n diplomaUrl,\n badgeUrl,\n search,\n metrics = {}\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n\n const {\n progression,\n mandatoryModules,\n stars,\n totalModules,\n totalContents = pipe(getOr([], 'list'), size)(certificationCourses)\n } = metrics;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n const completedModules = useMemo(\n () => round((mandatoryModules * progression) / 100),\n [mandatoryModules, progression]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={certificationRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.logoContainer}>\n <img className={style.logo} src={logoUrl} />\n </div>\n <div>\n <Tag label={tag} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.contentStats}>\n <span>{`${translate('modules', {count: totalModules})}`}</span>\n </div>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n <ProgressWrapper\n title={translate('your_progress')}\n subtitle={translate('certification_progress_wrapper_subtitle')}\n progression={progression}\n completedModules={completedModules}\n mandatoryModules={mandatoryModules}\n sections={compact([\n diplomaUrl && {\n type: 'diploma',\n downloadUrl: diplomaUrl\n },\n badgeUrl && {\n type: 'badge',\n downloadUrl: badgeUrl\n },\n stars && {\n type: 'stars',\n stars\n }\n ])}\n />\n <AllCourses\n content={certificationCourses}\n totalContents={totalContents}\n filters={filters}\n data-name=\"certification-courses\"\n search={search}\n />\n </div>\n </div>\n );\n};\n\nCertificationDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nCertificationDetail.propTypes = {\n title: PropTypes.string.isRequired,\n tag: PropTypes.string,\n certificationRef: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n logoUrl: PropTypes.string,\n metrics: PropTypes.shape({\n progression: PropTypes.number,\n stars: PropTypes.number,\n mandatoryModules: PropTypes.number,\n totalModules: PropTypes.number,\n totalContents: PropTypes.number\n }),\n diplomaUrl: PropTypes.string,\n badgeUrl: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n certificationCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n })\n};\n\nexport default CertificationDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,6 +50,9 @@ declare namespace PlaylistDetail {
|
|
|
50
50
|
validOption: PropTypes.Requireable<boolean>;
|
|
51
51
|
}> | null | undefined)[]>;
|
|
52
52
|
}>>;
|
|
53
|
+
const metrics: PropTypes.Requireable<PropTypes.InferProps<{
|
|
54
|
+
totalContents: PropTypes.Requireable<number>;
|
|
55
|
+
}>>;
|
|
53
56
|
const sorting: PropTypes.Requireable<PropTypes.InferProps<{
|
|
54
57
|
title: PropTypes.Requireable<string>;
|
|
55
58
|
name: PropTypes.Requireable<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/playlist-detail/index.js"],"names":[],"mappings":";AAgBA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/playlist-detail/index.js"],"names":[],"mappings":";AAgBA,uEAyGC"}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
|
+
var _size2 = _interopRequireDefault(require("lodash/fp/size"));
|
|
6
|
+
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
5
7
|
var _isNil2 = _interopRequireDefault(require("lodash/fp/isNil"));
|
|
8
|
+
var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
|
|
6
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -33,8 +36,12 @@ const PlaylistDetail = (props, context) => {
|
|
|
33
36
|
onBackClick,
|
|
34
37
|
onContinueLearningClick,
|
|
35
38
|
search,
|
|
39
|
+
metrics = {},
|
|
36
40
|
bannerMicrolearning = {}
|
|
37
41
|
} = props;
|
|
42
|
+
const {
|
|
43
|
+
totalContents = (0, _pipe2.default)((0, _getOr2.default)([], 'list'), _size2.default)(playlistCourses)
|
|
44
|
+
} = metrics;
|
|
38
45
|
const descriptionRef = (0, _react.useRef)(null);
|
|
39
46
|
const {
|
|
40
47
|
translate
|
|
@@ -99,6 +106,7 @@ const PlaylistDetail = (props, context) => {
|
|
|
99
106
|
onClick: onContinueLearningClick
|
|
100
107
|
})))), /*#__PURE__*/_react.default.createElement(_allCourses.default, {
|
|
101
108
|
content: playlistCourses,
|
|
109
|
+
totalContents: totalContents,
|
|
102
110
|
filters: filters,
|
|
103
111
|
sorting: sorting,
|
|
104
112
|
bannerMicrolearning: bannerMicrolearningAction ? {
|
|
@@ -124,6 +132,9 @@ PlaylistDetail.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
124
132
|
onChange: _propTypes.default.func,
|
|
125
133
|
options: _propTypes.default.arrayOf(_propTypes.default.shape(_select.SelectOptionPropTypes))
|
|
126
134
|
}),
|
|
135
|
+
metrics: _propTypes.default.shape({
|
|
136
|
+
totalContents: _propTypes.default.number
|
|
137
|
+
}),
|
|
127
138
|
sorting: _propTypes.default.shape(_select.default.propTypes),
|
|
128
139
|
search: _propTypes.default.shape({
|
|
129
140
|
oldValue: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_provider","_tag","_select","_buttonLinkIcon","_icon","_cardsGrid","_allCourses","_playlistDetailCover","_skillDetail","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlaylistDetail","props","context","title","coverImages","playlistRef","description","ongoingCoursesAvailable","playlistCourses","filters","sorting","onBackClick","onContinueLearningClick","search","bannerMicrolearning","descriptionRef","useRef","translate","action","bannerMicrolearningAction","oldSwitchValue","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","createElement","ref","className","classnames","style","truncate","backgroundContainer","container","_isNil2","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","coverWrapper","images","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","continueLearningButton","ContinueLearningButton","content","type","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","isRequired","PlaylistDetailCover","bool","shape","CardsGrid","onChange","func","options","arrayOf","SelectOptionPropTypes","Select","oldValue","_default","exports"],"sources":["../../../src/template/playlist-detail/index.js"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport PlaylistDetailCover from '../../molecule/playlist-detail-cover';\nimport {ContinueLearningButton} from '../skill-detail';\nimport style from './style.css';\n\nconst PlaylistDetail = (props, context) => {\n const {\n title,\n coverImages,\n playlistRef,\n description,\n ongoingCoursesAvailable,\n playlistCourses,\n filters,\n sorting,\n onBackClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning = {}\n } = props;\n const descriptionRef = useRef(null);\n const {translate} = context;\n const {action: bannerMicrolearningAction, oldSwitchValue} = bannerMicrolearning;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={playlistRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.coverWrapper}>\n <PlaylistDetailCover images={coverImages} />\n </div>\n <div>\n <Tag label={translate('playlist')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.continueLearningButton}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n </div>\n <AllCourses\n content={playlistCourses}\n filters={filters}\n sorting={sorting}\n bannerMicrolearning={\n bannerMicrolearningAction\n ? {\n type: 'playlist',\n action: bannerMicrolearningAction,\n oldSwitchValue\n }\n : {}\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nPlaylistDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nPlaylistDetail.propTypes = {\n title: PropTypes.string.isRequired,\n coverImages: PlaylistDetailCover.propTypes.images,\n playlistRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n playlistCourses: 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 search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default PlaylistDetail;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_markdownToJsx","_provider","_tag","_select","_buttonLinkIcon","_icon","_cardsGrid","_allCourses","_playlistDetailCover","_skillDetail","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlaylistDetail","props","context","title","coverImages","playlistRef","description","ongoingCoursesAvailable","playlistCourses","filters","sorting","onBackClick","onContinueLearningClick","search","metrics","bannerMicrolearning","totalContents","_pipe2","_getOr2","_size2","descriptionRef","useRef","translate","action","bannerMicrolearningAction","oldSwitchValue","isDescriptionTruncated","setIsDescriptionTruncated","useState","showMore","setShowMore","handleShowMore","useCallback","useEffect","current","clientHeight","scrollHeight","Description","createElement","ref","className","classnames","style","truncate","backgroundContainer","container","_isNil2","faIcon","onClick","backButton","tooltipPlacement","ctaContainer","coverWrapper","images","label","Fragment","showMoreWrapper","iconName","size","faSize","wrapperSize","continueLearningButton","ContinueLearningButton","content","type","contextTypes","skin","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","isRequired","PlaylistDetailCover","bool","shape","CardsGrid","onChange","func","options","arrayOf","SelectOptionPropTypes","number","Select","oldValue","_default","exports"],"sources":["../../../src/template/playlist-detail/index.js"],"sourcesContent":["import React, {useCallback, useState, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {getOr, isNil, pipe, size} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Tag from '../../atom/tag';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport AllCourses from '../skill-detail/all-courses';\nimport PlaylistDetailCover from '../../molecule/playlist-detail-cover';\nimport {ContinueLearningButton} from '../skill-detail';\nimport style from './style.css';\n\nconst PlaylistDetail = (props, context) => {\n const {\n title,\n coverImages,\n playlistRef,\n description,\n ongoingCoursesAvailable,\n playlistCourses,\n filters,\n sorting,\n onBackClick,\n onContinueLearningClick,\n search,\n metrics = {},\n bannerMicrolearning = {}\n } = props;\n const {totalContents = pipe(getOr([], 'list'), size)(playlistCourses)} = metrics;\n const descriptionRef = useRef(null);\n const {translate} = context;\n const {action: bannerMicrolearningAction, oldSwitchValue} = bannerMicrolearning;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\n </div>\n );\n }, [showMore, description]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={playlistRef}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n <div className={style.ctaContainer}>\n <div className={style.coverWrapper}>\n <PlaylistDetailCover images={coverImages} />\n </div>\n <div>\n <Tag label={translate('playlist')} />\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {isDescriptionTruncated ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {translate(showMore ? 'Show less' : 'Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{faSize: 14, wrapperSize: 16}}\n />\n </div>\n ) : null}\n </>\n ) : null}\n <div className={style.continueLearningButton}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n </div>\n <AllCourses\n content={playlistCourses}\n totalContents={totalContents}\n filters={filters}\n sorting={sorting}\n bannerMicrolearning={\n bannerMicrolearningAction\n ? {\n type: 'playlist',\n action: bannerMicrolearningAction,\n oldSwitchValue\n }\n : {}\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nPlaylistDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nPlaylistDetail.propTypes = {\n title: PropTypes.string.isRequired,\n coverImages: PlaylistDetailCover.propTypes.images,\n playlistRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n ongoingCoursesAvailable: PropTypes.bool,\n playlistCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n metrics: PropTypes.shape({\n totalContents: PropTypes.number\n }),\n sorting: PropTypes.shape(Select.propTypes),\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n onBackClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default PlaylistDetail;\n"],"mappings":"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","ignoreList":[]}
|
package/locales/bs/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm datoteka nije važeća",
|
|
182
182
|
"show_errors": "pokazati greške"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Pregledajte ovu vještinu",
|
|
185
190
|
"review_skill_empty": "Još nemate vještinu za reviziju",
|
|
186
191
|
"review_skill_empty_description": "Prvo morate završiti kurseve prije nego što možete provjeriti različite vještine.",
|
package/locales/cs/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "soubor scorm je neplatný",
|
|
182
182
|
"show_errors": "zobrazit chyby"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Zkontrolujte tuto dovednost",
|
|
185
190
|
"review_skill_empty": "Zatím nemáte žádnou dovednost k prověření",
|
|
186
191
|
"review_skill_empty_description": "Nejprve musíte dokončit kurzy, než budete moci prověřovat různé dovednosti.",
|
package/locales/de/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Scorm-Datei ist ungültig",
|
|
182
182
|
"show_errors": "Fehler anzeigen"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Diese Fähigkeit überprüfen",
|
|
185
190
|
"review_skill_empty": "Sie haben noch keine Fähigkeiten zum Überarbeiten",
|
|
186
191
|
"review_skill_empty_description": "Sie müssen erst Kurse abschließen, bevor Sie verschiedene Fähigkeiten überprüfen können.",
|
package/locales/es/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "el archivo scorm no es válido",
|
|
182
182
|
"show_errors": "mostrar errores"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Revisa esta habilidad",
|
|
185
190
|
"review_skill_empty": "Aún no tienes ninguna habilidad para repasar",
|
|
186
191
|
"review_skill_empty_description": "Primero tienes que completar los cursos antes de poder repasar habilidades diferentes.",
|
package/locales/et/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scormi fail ei ole kehtiv",
|
|
182
182
|
"show_errors": "näidata vigu"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Vaadake see oskus üle",
|
|
185
190
|
"review_skill_empty": "Sul puuduvad ülevaatuseks oskused",
|
|
186
191
|
"review_skill_empty_description": "Enne eri oskuste ülevaatamist tuleb sul läbida kursused.",
|
package/locales/fi/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Scorm-tiedosto ei ole käypä",
|
|
182
182
|
"show_errors": "näytä virheet"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Tarkista tämä taito",
|
|
185
190
|
"review_skill_empty": "Sinulla ei ole vielä kerrattavia valmiuksia",
|
|
186
191
|
"review_skill_empty_description": "Sinun on ensin suoritettava kursseja ennen kuin voit kerrata eri valmiuksia.",
|
package/locales/fr/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Le fichier SCORM n'est pas valide",
|
|
182
182
|
"show_errors": "afficher les erreurs"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Revoir cette compétence",
|
|
185
190
|
"review_skill_empty": "Vous n'avez pas encore de compétence à réviser",
|
|
186
191
|
"review_skill_empty_description": "Vous devez d'abord suivre des cours avant de pouvoir réviser différentes compétences.",
|
package/locales/hr/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm datoteka nije ispravna",
|
|
182
182
|
"show_errors": "pokazati greške"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Pregledajte ovu vještinu",
|
|
185
190
|
"review_skill_empty": "Još nemaš vještinu za pregled",
|
|
186
191
|
"review_skill_empty_description": "Prvo moraš završiti tečajeve prije nego što možeš pregledavati različite vještine.",
|
package/locales/hu/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm fájl nem érvényes",
|
|
182
182
|
"show_errors": "hibákat mutatni"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Tekintse át ezt a képességet",
|
|
185
190
|
"review_skill_empty": "Még nincs javítható képességed",
|
|
186
191
|
"review_skill_empty_description": "Először tanfolyamokat kell elvégezned, mielőtt áttekinthetnéd a különböző képességeket.",
|
package/locales/hy/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm ֆայլը վավեր չէ",
|
|
182
182
|
"show_errors": "ցույց տալ սխալները"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Վերանայեք այս հմտությունը",
|
|
185
190
|
"review_skill_empty": "Դեռևս վերանայելու հմտություն չունեք",
|
|
186
191
|
"review_skill_empty_description": "Սկզբում դուք պետք է ավարտեք դասընթացները, որպեսզի կարողանաք վերանայել տարբեր հմտություններ:",
|
package/locales/it/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Il file scorm non è valido",
|
|
182
182
|
"show_errors": "mostrare errori"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Rivedi questa abilità",
|
|
185
190
|
"review_skill_empty": "Non hai ancora la capacità di rivedere",
|
|
186
191
|
"review_skill_empty_description": "Per prima cosa devi completare i corsi prima di poter rivedere le diverse competenze.",
|
package/locales/ja/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "SCORMファイルが有効ではありません",
|
|
182
182
|
"show_errors": "エラーを表示する"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "このスキルを確認する",
|
|
185
190
|
"review_skill_empty": "まだ復習するスキルがありません",
|
|
186
191
|
"review_skill_empty_description": "異なるスキルを復習するには、まずコースを修了する必要があります。",
|
package/locales/ko/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm 파일이 유효하지 않습니다",
|
|
182
182
|
"show_errors": "오류 표시"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "이 기술을 검토하세요",
|
|
185
190
|
"review_skill_empty": "아직 수정할 기술이 없습니다.",
|
|
186
191
|
"review_skill_empty_description": "다양한 기술을 복습하려면 먼저 과정을 끝내야 합니다.",
|
package/locales/lt/global.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"all": "Visi",
|
|
3
3
|
"all_courses": "Visi kursai",
|
|
4
|
-
"all_content": "
|
|
4
|
+
"all_content": "Visa medžiaga",
|
|
5
5
|
"alphabetical": "Abėcėlės tvarka",
|
|
6
6
|
"add_learning_priority": "Pridėti mokymosi prioritetą",
|
|
7
7
|
"accepted_cards": "Kredito arba debeto kortelė",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"bonus_stars": "Papildomos žvaigždutės",
|
|
22
22
|
"certificates": "Sertifikatai",
|
|
23
23
|
"certificate(s)": "sertifikatas(-ai)",
|
|
24
|
-
"certificates_subtitle": "Atskleiskite savo žinias ir įgūdžius, kurie jums padės išsiskirti
|
|
24
|
+
"certificates_subtitle": "Atskleiskite savo žinias ir įgūdžius, kurie jums padės išsiskirti karjeros kelyje bei pasiekti prasmingų rezultatų.",
|
|
25
25
|
"certification_module": "modulis, kurį reikia užbaigti",
|
|
26
26
|
"cart_title": "„Coopacademy“ prenumerata",
|
|
27
27
|
"challenges you on": "meta jums iššūkį",
|
|
28
28
|
"download": "Atsisiųsti",
|
|
29
29
|
"is challenging you": "{{username}} meta jums iššūkį {{courseName}}",
|
|
30
|
-
"items": "
|
|
30
|
+
"items": "elementai",
|
|
31
31
|
"certificate": "sertifikatas",
|
|
32
32
|
"certification": "Sertifikavimas",
|
|
33
33
|
"certification_progress_wrapper_subtitle": "Norėdami atrakinti savo apdovanojimus, pasiekite šį tikslą",
|
|
@@ -74,16 +74,16 @@
|
|
|
74
74
|
"empty_search_result_description": "Pabandykite pakoreguoti paiešką, kad rastumėte tai, ko ieškote.",
|
|
75
75
|
"empty_search_result_clear_search": "Išvalyti paiešką",
|
|
76
76
|
"in_progress": "Vykdoma",
|
|
77
|
-
"keep_subscription": "
|
|
77
|
+
"keep_subscription": "Tęsti prenumeratą",
|
|
78
78
|
"learning_priorities": "Mokymosi prioritetai",
|
|
79
79
|
"learning_priorities_description": "Jūsų svarbiausios mokymosi prioritetų sritys, nustatytos Jūsų įmonės",
|
|
80
80
|
"learning_priorities_brand_description": "Apibrėžkite savo įmonės mokymosi prioritetus pasirinkdami įgūdžius, grojaraščius arba sertifikatus. Jie bus rodomi puslapyje „Mano mokymasis“.",
|
|
81
|
-
"media_stars_to_win_plural": "Pirmą kartą peržiūrėję pamoką,
|
|
82
|
-
"media_stars_to_win": "Pirmą kartą peržiūrėję pamoką,
|
|
81
|
+
"media_stars_to_win_plural": "Pirmą kartą peržiūrėję pamoką, laimėkite {{count}} papildomas (-a) žvaigždutes (-ę) šiame skyriuje !",
|
|
82
|
+
"media_stars_to_win": "Pirmą kartą peržiūrėję pamoką, laimėkite {{count}} papildomą žvaigždutę šiame skyriuje!",
|
|
83
83
|
"modules": "{{count}} modulis",
|
|
84
84
|
"modules_plural": "{{count}} moduliai",
|
|
85
|
-
"modules_completed_mandatory": "
|
|
86
|
-
"modules_completed_mandatory_plural": "
|
|
85
|
+
"modules_completed_mandatory": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}}/{{total}}</span> privalomas modulis užbaigtas",
|
|
86
|
+
"modules_completed_mandatory_plural": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}}/{{total}}</span> privalomi moduliai užbaigti",
|
|
87
87
|
"More": "Daugiau",
|
|
88
88
|
"More details": "Daugiau informacijos",
|
|
89
89
|
"New media": "Nauja pamoka",
|
|
@@ -94,14 +94,14 @@
|
|
|
94
94
|
"payment_form_submit": "Pradėti prenumeruoti „Coopacademy“ ",
|
|
95
95
|
"Post": "Įrašas",
|
|
96
96
|
"premium_unsubscribe_confirmation": "Patvirtiname jūsų prenumeratos atšaukimą, kuris įsigalios nuo kito mėnesio.\n\n Tuo tarpu galite ir toliau mėgautis mūsų turiniu „Coorpacademy“ platformoje.",
|
|
97
|
-
"close_tooltip_information": "Paspauskite „Escape“ klavišą, kad uždarytumėte
|
|
97
|
+
"close_tooltip_information": "Paspauskite „Escape“ klavišą, kad uždarytumėte informacinį tekstą",
|
|
98
98
|
"product_cancel": "Atšaukti bet kuriuo metu.",
|
|
99
99
|
"product_desc_battle": "Iššūkio režimas",
|
|
100
100
|
"product_desc_certificates": "„Coopacademy“ sertifikatai",
|
|
101
101
|
"product_desc_coach": "Internetiniai mentoriai",
|
|
102
102
|
"product_desc_culture": "Skaitmeninė kultūra: visi lygiai įveikti",
|
|
103
103
|
"product_desc_forum": "Forumas",
|
|
104
|
-
"product_desc_partnership": "Visi mūsų partnerių
|
|
104
|
+
"product_desc_partnership": "Visi mūsų partnerių mokymosi kursai",
|
|
105
105
|
"playlist": "Grojaraštis",
|
|
106
106
|
"progress": "Pažanga",
|
|
107
107
|
"your_progress": "Jūsų pažanga",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"Reject": "Atmesti",
|
|
110
110
|
"Reload": "Įkelti iš naujo",
|
|
111
111
|
"Review": "Apžvalga",
|
|
112
|
-
"Review lesson": "
|
|
112
|
+
"Review lesson": "Peržiūrėti pamoką",
|
|
113
113
|
"skill": "Įgūdis",
|
|
114
114
|
"search_place_holder": "Ieškoti...",
|
|
115
115
|
"search_priority_place_holder": "Ieškokite įgūdžio, grojaraščio, sertifikato...",
|
|
@@ -133,25 +133,25 @@
|
|
|
133
133
|
"skills_focus_description": "Susitelkite į įgūdžius, kuriuos norite tobulinti, ir stebėkite savo pažangą",
|
|
134
134
|
"skills_focus_empty_description": "Reguliariai praktikuokitės, stebėkite savo pažangą ir įvaldykite pasirinktus įgūdžius, kad atskleistumėte savo potencialą.",
|
|
135
135
|
"skill_focus_description": "Pasirinkite įgūdžius, į kuriuos norite sutelkti dėmesį",
|
|
136
|
-
"subscription_disclaimer": "Jūs sutinkate iš karto gauti prieigą prie „Coorpacademy Premium“
|
|
136
|
+
"subscription_disclaimer": "Jūs sutinkate iš karto gauti prieigą prie „Coorpacademy Premium“ “à la carte”. Taip pat sutinkate, kad pirmasis mokestis bus nuskaičiuotas nuo sandorio datos iki mėnesio pabaigos. Vėliau mokestis bus nuskaičiuojamas kiekvieno mėnesio pirmą dieną.",
|
|
137
137
|
"subscription_freemium_button": "Paleiskite „Coopacademy Premium“",
|
|
138
|
-
"subscription_freemium_description": "Šiuo metu naudojatės „Coorpacademy Freemium“. Mes siūlome
|
|
138
|
+
"subscription_freemium_description": "Šiuo metu naudojatės „Coorpacademy Freemium“. Mes siūlome žymiai aukštesnės kokybės paslaugą – „Coorpacademy Premium“. Su šia paslauga turėsite prieigą prie visų kursų ir visų lygių. Susidomėjote?",
|
|
139
139
|
"subscription_freemium_title": "Coopacademy Freemium",
|
|
140
140
|
"subscription_premium_description_part1": "Jūsų prenumerata bus automatiškai atnaujinta ",
|
|
141
141
|
"subscription_premium_description_part2": "Jums bus nuskaičiuota ši suma: ",
|
|
142
142
|
"subscription_premium_description_part3_with_link": "atšaukti prenumeratą?",
|
|
143
|
-
"subscription_premium_description_part3": "Ar norite
|
|
143
|
+
"subscription_premium_description_part3": "Ar norite",
|
|
144
144
|
"subscription_premium_title": "„Coopacademy Premium“",
|
|
145
145
|
"subscription_price": "$ {currency} $ {price} su mokesčiais per mėnesį",
|
|
146
146
|
"subscription_promo_code": "Dabar galite nemokamai ir neribotai naudotis mūsų katalogu iki {{date}} . Norėdami ir toliau juo naudotis po šios datos, užsiprenumeruokite",
|
|
147
|
-
"skill_focus": "Įgūdžių
|
|
148
|
-
"skills_focus": "Įgūdžių
|
|
149
|
-
"skill_focus_footer_description": "Pasirinkite bent {{skillNumber}}
|
|
150
|
-
"skill_focus_footer_error_description": "Atžymėkite bent {{skillNumber}}
|
|
151
|
-
"skill_chart_side_panel_content_completed": "
|
|
147
|
+
"skill_focus": "Įgūdžių kryptis",
|
|
148
|
+
"skills_focus": "Įgūdžių kryptis",
|
|
149
|
+
"skill_focus_footer_description": "Pasirinkite dar bent {{skillNumber}} įgūdžius (-į)",
|
|
150
|
+
"skill_focus_footer_error_description": "Atžymėkite dar bent {{skillNumber}} įgūdžius (-į)",
|
|
151
|
+
"skill_chart_side_panel_content_completed": "Medžiaga baigta",
|
|
152
152
|
"skill_chart_side_panel_questions_to_review": "Klausimai, kuriuos reikia peržiūrėti",
|
|
153
153
|
"skill_chart_side_panel_learning_hours": "Mokymosi laikas",
|
|
154
|
-
"skill_focused_chip_tooltip": "Šis įgūdis yra
|
|
154
|
+
"skill_focused_chip_tooltip": "Šis įgūdis yra dėmesio centre",
|
|
155
155
|
"selected": "pasirinktas",
|
|
156
156
|
"This message has been removed by its author": "Šią žinutę pašalino jos autorius.",
|
|
157
157
|
"unsubscribe": "Atsisakyti „Coopacademy“ prenumeratos",
|
|
@@ -160,37 +160,42 @@
|
|
|
160
160
|
"Wait_creation": "Platforma kuriama. Tai gali užtrukti kelias sekundes. Prašome palaukti...",
|
|
161
161
|
"comment_aria_label": "Pridėkite savo komentarą",
|
|
162
162
|
"zuora_discount_code_submit": "Taikyti",
|
|
163
|
-
"zuora_discount_code": "
|
|
163
|
+
"zuora_discount_code": "Nuolaidos kodas",
|
|
164
164
|
"mandatory_fields": "*Privalomi laukai",
|
|
165
165
|
"something_went_wrong": "Oi! Kažkas nutiko ne taip.",
|
|
166
166
|
"review_mode_tooltip_header": "Kas yra peržiūros režimas?",
|
|
167
|
-
"review_mode_tooltip_content": "Informacija dingsta iš jūsų atminties vos tik į ją patenka? Tai visiškai normalu: be kartojimo neįsiminsi! Kad žinios išliktų
|
|
167
|
+
"review_mode_tooltip_content": "Informacija dingsta iš jūsų atminties vos tik į ją patenka? Tai visiškai normalu: be kartojimo neįsiminsi! Kad žinios išliktų ilgam, naudokite Peržiūros režimą atminties atnaujinimui!",
|
|
168
168
|
"review_mode_tooltip_content_part1": "Pasirinkite 1 įgūdį",
|
|
169
169
|
"review_mode_tooltip_content_part2": "Atsakykite į 5 klausimus",
|
|
170
|
-
"review_mode_tooltip_content_part3": "Jūs turite
|
|
171
|
-
"review_mode_tooltip_content_part4": "
|
|
170
|
+
"review_mode_tooltip_content_part3": "Jūs turite begalines gyvybes",
|
|
171
|
+
"review_mode_tooltip_content_part4": "Atsakykite teisingai į visus klausimus",
|
|
172
172
|
"review_mode_available": "Galima peržiūrėti",
|
|
173
173
|
"review_header_step_item": {
|
|
174
|
-
"correct_question": "
|
|
174
|
+
"correct_question": " {{current}}klausimas {{headerStepValue}} yra teisingas",
|
|
175
175
|
"incorrect_question": "{{current}} klausimas {{headerStepValue}} yra neteisingas",
|
|
176
|
-
"not_answered_question": "
|
|
176
|
+
"not_answered_question": "{{current}} klausimas {{headerStepValue}} kol kas nėra atsakytas"
|
|
177
177
|
},
|
|
178
178
|
"bulk_import": {
|
|
179
|
-
"errors_number": "Masinio
|
|
180
|
-
"valid_scorm": "scorm failas
|
|
181
|
-
"invalid_scorm": "scorm failas
|
|
179
|
+
"errors_number": "Masinio importavimo klaidų skaičius yra {{bulkImportErrorsNumber}}",
|
|
180
|
+
"valid_scorm": "scorm failas yra tinkamas",
|
|
181
|
+
"invalid_scorm": "scorm failas nėra tinkamas",
|
|
182
182
|
"show_errors": "rodyti klaidas"
|
|
183
183
|
},
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
189
|
+
"review_this_skill": "Peržiūrėkite šį įgūdį",
|
|
190
|
+
"review_skill_empty": "Dar neturite įgūdžių, kuriuos reikėtų peržiūrėti",
|
|
191
|
+
"review_skill_empty_description": "Pirmiausia turite užbaigti kursus, kad galėtumėte peržiūrėti skirtingus įgūdžius.",
|
|
192
|
+
"close_button_ariaLabel": "Uždaryti peržiūros langa",
|
|
188
193
|
"post_comment_aria_label": "Paskelbkite savo komentarą",
|
|
189
194
|
"validate_aria_label": "Patvirtinkite savo atsakymą ir pereikite prie kito žingsnio",
|
|
190
195
|
"stars": "žvaigždės",
|
|
191
196
|
"questions": "Klausimai",
|
|
192
197
|
"skill_scope_specifier": "<b>{{focusedSkill}}</b>",
|
|
193
|
-
"focused_skills": "
|
|
198
|
+
"focused_skills": "pagrindiniai įgūdžiai",
|
|
194
199
|
"custom":{
|
|
195
200
|
"digitlearning": {
|
|
196
201
|
"comment_aria_label": "Įvertinkite šį kursą",
|
|
@@ -198,7 +203,7 @@
|
|
|
198
203
|
},
|
|
199
204
|
"esante-formation": {
|
|
200
205
|
"diploma": "Mokymosi kelias",
|
|
201
|
-
"rewards": "
|
|
206
|
+
"rewards": "Patvirtinimas"
|
|
202
207
|
},
|
|
203
208
|
"ehc-vd": {
|
|
204
209
|
"diploma": "sertifikatas"
|
|
@@ -221,8 +226,8 @@
|
|
|
221
226
|
"css": {
|
|
222
227
|
"modules": "{{count}} lygis",
|
|
223
228
|
"modules_plural": "{{count}} lygiai",
|
|
224
|
-
"modules_completed_mandatory": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}} / {{total}} lygis baigtas",
|
|
225
|
-
"modules_completed_mandatory_plural": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}} / {{total}}
|
|
229
|
+
"modules_completed_mandatory": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}} / {{total}} privalomas lygis baigtas",
|
|
230
|
+
"modules_completed_mandatory_plural": "<span data-name=\"progress-stats\" style=\"color=#515161;padding-right: 4px;\">{{count}} / {{total}} privalomi lygiai baigti ",
|
|
226
231
|
"certification_module": "lygis, kurį reikia užbaigti"
|
|
227
232
|
}
|
|
228
233
|
}
|
package/locales/nl/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm-bestand is niet geldig",
|
|
182
182
|
"show_errors": "fouten tonen"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Bekijk deze vaardigheid",
|
|
185
190
|
"review_skill_empty": "Je hebt nog geen vaardigheid om te herhalen",
|
|
186
191
|
"review_skill_empty_description": "Je moet eerst cursussen voltooien, voordat je verschillende vaardigheden kunt reviewen.",
|
package/locales/pl/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Plik scorm nie jest poprawny",
|
|
182
182
|
"show_errors": "pokaż błędy"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Przejrzyj tę umiejętność",
|
|
185
190
|
"review_skill_empty": "Nie masz jeszcze umiejętności do utrwalenia",
|
|
186
191
|
"review_skill_empty_description": "Aby utrwalać wybrane umiejętności, najpierw musisz ukończyć kursy.",
|
package/locales/pt/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "o ficheiro scorm não é válido ",
|
|
182
182
|
"show_errors": "mostrar erros"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Revise esta habilidade",
|
|
185
190
|
"review_skill_empty": "Ainda não tem competências para rever",
|
|
186
191
|
"review_skill_empty_description": "Antes de poder rever diferentes competências necessita, em primeiro lugar, de concluir cursos.",
|
package/locales/ro/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "fișierul scorm nu este valid",
|
|
182
182
|
"show_errors": "arata erori"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Examinați această abilitate",
|
|
185
190
|
"review_skill_empty": "Nu aveți nicio abilitate de recapitulat deocamdată",
|
|
186
191
|
"review_skill_empty_description": "Mai întâi trebuie să finalizați cursurile înainte de a putea recapitula diferite abilități.",
|
package/locales/ru/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "файл scorm недействителен",
|
|
182
182
|
"show_errors": "показать ошибки"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Повторить этот навык",
|
|
185
190
|
"review_skill_empty": "У вас еще нет навыков для повторения",
|
|
186
191
|
"review_skill_empty_description": "Сначала вам необходимо пройти курсы, прежде чем вы сможете проверить различные навыки.",
|
package/locales/sk/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm súbor je neplatný",
|
|
182
182
|
"show_errors": "zobraziť chyby"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Skontrolujte túto zručnosť",
|
|
185
190
|
"review_skill_empty": "Zatiaľ nemáte žiadne zručnosti na kontrolu",
|
|
186
191
|
"review_skill_empty_description": "Najprv musíte dokončiť kurzy, následne si môžete vyskúšať rôzne zručnosti.",
|
package/locales/sl/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "datoteka scorm ni veljavna",
|
|
182
182
|
"show_errors": "pokaži napake"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Preglejte to veščino",
|
|
185
190
|
"review_skill_empty": "Nimate še nobene veščine za preverjanje",
|
|
186
191
|
"review_skill_empty_description": "Najprej morate opraviti tečaje, preden lahko preverite različna znanja.",
|
package/locales/sv/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm-filen är ogiltig",
|
|
182
182
|
"show_errors": "visa fel"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Granska denna färdighet",
|
|
185
190
|
"review_skill_empty": "Du har ingen färdighet att repetera än",
|
|
186
191
|
"review_skill_empty_description": "Innan du kan repetera olika färdigheter måste du slutföra kurserna.",
|
package/locales/tl/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "Hindi balido ang scorm file",
|
|
182
182
|
"show_errors": "ipakita ang mga pagkakamali"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Suriin ang kasanayang ito",
|
|
185
190
|
"review_skill_empty": "Wala ka pang kasanayang rerepasuhin",
|
|
186
191
|
"review_skill_empty_description": "Una kailangan mong kumumpleto ng mga kurso bago ka makapagrepaso ng iba't-ibang kasanayan.",
|
package/locales/tr/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm dosyası geçersiz",
|
|
182
182
|
"show_errors": "hataları göster"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Bu beceriyi gözden geçirin",
|
|
185
190
|
"review_skill_empty": "Henüz revize etme beceriniz bulunmuyor",
|
|
186
191
|
"review_skill_empty_description": "Farklı becerileri tekrar etmeden önce kursları tamamlamanız gerekir.",
|
package/locales/uk/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "SCORM-файл є недійсним",
|
|
182
182
|
"show_errors": "показати помилки"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Перегляньте цей навик",
|
|
185
190
|
"review_skill_empty": "У вас ще немає навичок для перегляду",
|
|
186
191
|
"review_skill_empty_description": "Спочатку вам потрібно пройти курси, перш ніж ви зможете переглянути різні навички.",
|
package/locales/vi/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "tập tin scorm là không hợp lệ",
|
|
182
182
|
"show_errors": "hiển thị lỗi"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "Xem lại kỹ năng này",
|
|
185
190
|
"review_skill_empty": "Bạn chưa có kỹ năng nào để ôn tập",
|
|
186
191
|
"review_skill_empty_description": "Trước tiên, bạn cần phải hoàn thành các khóa học rồi mới có thể ôn tập các kỹ năng khác nhau.",
|
package/locales/zh/global.json
CHANGED
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm 文件无效",
|
|
182
182
|
"show_errors": "显示错误"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "回顾此技能",
|
|
185
190
|
"review_skill_empty": "您还没有要复习的技能",
|
|
186
191
|
"review_skill_empty_description": "首先您需要完成课程然后才能复习不同的技能。",
|
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm 檔無效",
|
|
182
182
|
"show_errors": "顯示錯誤"
|
|
183
183
|
},
|
|
184
|
+
"content_type_article": "Article",
|
|
185
|
+
"content_type_video": "Video",
|
|
186
|
+
"content_type_podcast": "Podcast",
|
|
187
|
+
"content_type_scorm": "Animated resource",
|
|
188
|
+
"content_type_course": "Course",
|
|
184
189
|
"review_this_skill": "複習一下這個技能",
|
|
185
190
|
"review_skill_empty": "目前還沒有可修改的技能",
|
|
186
191
|
"review_skill_empty_description": "在複習不同技能以前,必須先完成課程。",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.38.6
|
|
3
|
+
"version": "11.38.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "737a9d37dc0bba9d06ff592a563e2e9a353342cc"
|
|
170
170
|
}
|