@coorpacademy/components 11.32.27 → 11.32.28

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.
@@ -4,6 +4,10 @@ declare namespace ExternalCourse {
4
4
  namespace propTypes {
5
5
  const name: PropTypes.Requireable<string>;
6
6
  const type: PropTypes.Requireable<string>;
7
+ const onTop: PropTypes.Requireable<PropTypes.InferProps<{
8
+ header: PropTypes.Requireable<boolean>;
9
+ footer: PropTypes.Requireable<boolean>;
10
+ }>>;
7
11
  const url: PropTypes.Validator<string>;
8
12
  const quit: PropTypes.Requireable<PropTypes.InferProps<{
9
13
  label: PropTypes.Validator<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/external-course/index.js"],"names":[],"mappings":";AAoBA,uEAwIC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/external-course/index.js"],"names":[],"mappings":";AAoBA,uEA+IC"}
@@ -37,6 +37,7 @@ const ExternalCourse = (props, context) => {
37
37
  backgroundImageUrl,
38
38
  contentType,
39
39
  mode = 'default',
40
+ onTop = {},
40
41
  closePopin
41
42
  } = props;
42
43
  const {
@@ -136,13 +137,17 @@ const ExternalCourse = (props, context) => {
136
137
  return !_isNil(closePopin) ? /*#__PURE__*/React.createElement(CmPopin, closePopin) : null;
137
138
  }, [closePopin]);
138
139
  return /*#__PURE__*/React.createElement("div", {
139
- className: defaultWrapperStyle[mode]
140
+ className: classnames(defaultWrapperStyle[mode], onTop.header && style.onTopHeader, onTop.footer && style.onTopFooter)
140
141
  }, header, popin, mainContentSlot, footer);
141
142
  };
142
143
 
143
144
  ExternalCourse.propTypes = process.env.NODE_ENV !== "production" ? {
144
145
  name: PropTypes.string,
145
146
  type: PropTypes.oneOf(_keys(EXTERNAL_CONTENT_ICONS)),
147
+ onTop: PropTypes.shape({
148
+ header: PropTypes.bool,
149
+ footer: PropTypes.bool
150
+ }),
146
151
  url: PropTypes.string.isRequired,
147
152
  quit: PropTypes.shape({
148
153
  label: PropTypes.string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useMemo","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","convert","classnames","PropTypes","EXTERNAL_CONTENT_ICONS","Provider","Loader","Button","ExternalContentViewer","CmPopin","style","defaultWrapperStyle","default","cockpit","defaultCockpit","mobile","ExternalCourse","props","context","name","type","url","quit","complete","warning","loading","backgroundImageUrl","contentType","mode","closePopin","skin","primary","IconType","icon","IconColor","color","mainContentSlot","loader","handleOnClick","field","onClick","e","stopPropagation","preventDefault","completeButton","disabled","label","backgroundColor","cursor","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","innerHTML","__html","header","rightSection","footer","popin","propTypes","string","oneOf","isRequired","shape","func","bool","contextTypes","childContextTypes"],"sources":["../../../src/template/external-course/index.js"],"sourcesContent":["import React, {useCallback, useMemo} from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {noop, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport CmPopin from '../../molecule/cm-popin';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit,\n mobile: style.default\n};\n\nconst ExternalCourse = (props, context) => {\n const {\n name,\n type,\n url,\n quit,\n complete,\n warning,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default',\n closePopin\n } = props;\n const {skin} = context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = useMemo(() => {\n return loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n mode={mode}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n }, [loading, url, mode, contentType, backgroundImageUrl]);\n\n const handleOnClick = useCallback(field => {\n const onClick = getOr(noop, ['onClick'], field);\n return e => {\n e.stopPropagation();\n e.preventDefault();\n return onClick(e);\n };\n }, []);\n\n const completeButton = useMemo(() => {\n return !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n data-testid=\"complete-button\"\n />\n ) : null;\n }, [complete, loading, primary, handleOnClick]);\n\n const warningButton = useMemo(() => {\n return !isNil(warning) ? (\n <div className={style.leftSection}>\n <div onClick={handleOnClick(warning)} className={classnames(style.iconLabel, style.link)}>\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n }, [handleOnClick, warning]);\n\n const quitButton = useMemo(() => {\n return !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n }, [quit, loading, handleOnClick]);\n\n const titleSection = useMemo(() => {\n return !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n }, [name, IconColor]);\n\n const header = useMemo(() => {\n return !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [name, titleSection, quit, quitButton]);\n\n const footer = useMemo(() => {\n return !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [warning, warningButton, complete, completeButton]);\n\n const popin = useMemo(() => {\n return !isNil(closePopin) ? <CmPopin {...closePopin} /> : null;\n }, [closePopin]);\n\n return (\n <div className={defaultWrapperStyle[mode]}>\n {header}\n {popin}\n {mainContentSlot}\n {footer}\n </div>\n );\n};\n\nExternalCourse.propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string,\n closePopin: PropTypes.shape({...CmPopin.propTypes})\n};\n\nExternalCourse.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ExternalCourse;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useMemo","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","convert","classnames","PropTypes","EXTERNAL_CONTENT_ICONS","Provider","Loader","Button","ExternalContentViewer","CmPopin","style","defaultWrapperStyle","default","cockpit","defaultCockpit","mobile","ExternalCourse","props","context","name","type","url","quit","complete","warning","loading","backgroundImageUrl","contentType","mode","onTop","closePopin","skin","primary","IconType","icon","IconColor","color","mainContentSlot","loader","handleOnClick","field","onClick","e","stopPropagation","preventDefault","completeButton","disabled","label","backgroundColor","cursor","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","innerHTML","__html","header","rightSection","footer","popin","onTopHeader","onTopFooter","propTypes","string","oneOf","shape","bool","isRequired","func","contextTypes","childContextTypes"],"sources":["../../../src/template/external-course/index.js"],"sourcesContent":["import React, {useCallback, useMemo} from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {noop, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport CmPopin from '../../molecule/cm-popin';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit,\n mobile: style.default\n};\n\nconst ExternalCourse = (props, context) => {\n const {\n name,\n type,\n url,\n quit,\n complete,\n warning,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default',\n onTop = {},\n closePopin\n } = props;\n const {skin} = context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = useMemo(() => {\n return loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n mode={mode}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n }, [loading, url, mode, contentType, backgroundImageUrl]);\n\n const handleOnClick = useCallback(field => {\n const onClick = getOr(noop, ['onClick'], field);\n return e => {\n e.stopPropagation();\n e.preventDefault();\n return onClick(e);\n };\n }, []);\n\n const completeButton = useMemo(() => {\n return !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n data-testid=\"complete-button\"\n />\n ) : null;\n }, [complete, loading, primary, handleOnClick]);\n\n const warningButton = useMemo(() => {\n return !isNil(warning) ? (\n <div className={style.leftSection}>\n <div onClick={handleOnClick(warning)} className={classnames(style.iconLabel, style.link)}>\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n }, [handleOnClick, warning]);\n\n const quitButton = useMemo(() => {\n return !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n }, [quit, loading, handleOnClick]);\n\n const titleSection = useMemo(() => {\n return !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n }, [name, IconColor]);\n\n const header = useMemo(() => {\n return !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [name, titleSection, quit, quitButton]);\n\n const footer = useMemo(() => {\n return !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [warning, warningButton, complete, completeButton]);\n\n const popin = useMemo(() => {\n return !isNil(closePopin) ? <CmPopin {...closePopin} /> : null;\n }, [closePopin]);\n\n return (\n <div\n className={classnames(\n defaultWrapperStyle[mode],\n onTop.header && style.onTopHeader,\n onTop.footer && style.onTopFooter\n )}\n >\n {header}\n {popin}\n {mainContentSlot}\n {footer}\n </div>\n );\n};\n\nExternalCourse.propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n onTop: PropTypes.shape({\n header: PropTypes.bool,\n footer: PropTypes.bool\n }),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string,\n closePopin: PropTypes.shape({...CmPopin.propTypes})\n};\n\nExternalCourse.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ExternalCourse;\n"],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  display: flex;
22
22
  flex-direction: column;
23
23
  align-content: stretch;
24
+ position: relative;
24
25
  }
25
26
 
26
27
  .defaultCockpit{
@@ -43,7 +44,16 @@
43
44
  z-index: 1;
44
45
  overflow: hidden;
45
46
  }
46
-
47
+ .onTopHeader .header{
48
+ position: absolute;
49
+ top: 0;
50
+ left: 0;
51
+ }
52
+ .onTopFooter .footer{
53
+ position: absolute;
54
+ bottom: 0;
55
+ left: 0;
56
+ }
47
57
  .leftSection, .rightSection {
48
58
  align-self: center;
49
59
  flex: 1;
@@ -4,6 +4,10 @@ declare namespace ExternalCourse {
4
4
  namespace propTypes {
5
5
  const name: PropTypes.Requireable<string>;
6
6
  const type: PropTypes.Requireable<string>;
7
+ const onTop: PropTypes.Requireable<PropTypes.InferProps<{
8
+ header: PropTypes.Requireable<boolean>;
9
+ footer: PropTypes.Requireable<boolean>;
10
+ }>>;
7
11
  const url: PropTypes.Validator<string>;
8
12
  const quit: PropTypes.Requireable<PropTypes.InferProps<{
9
13
  label: PropTypes.Validator<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/external-course/index.js"],"names":[],"mappings":";AAoBA,uEAwIC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/external-course/index.js"],"names":[],"mappings":";AAoBA,uEA+IC"}
@@ -65,6 +65,7 @@ const ExternalCourse = (props, context) => {
65
65
  backgroundImageUrl,
66
66
  contentType,
67
67
  mode = 'default',
68
+ onTop = {},
68
69
  closePopin
69
70
  } = props;
70
71
  const {
@@ -161,13 +162,17 @@ const ExternalCourse = (props, context) => {
161
162
  return !(0, _isNil2.default)(closePopin) ? /*#__PURE__*/_react.default.createElement(_cmPopin.default, closePopin) : null;
162
163
  }, [closePopin]);
163
164
  return /*#__PURE__*/_react.default.createElement("div", {
164
- className: defaultWrapperStyle[mode]
165
+ className: (0, _classnames.default)(defaultWrapperStyle[mode], onTop.header && _style.default.onTopHeader, onTop.footer && _style.default.onTopFooter)
165
166
  }, header, popin, mainContentSlot, footer);
166
167
  };
167
168
 
168
169
  ExternalCourse.propTypes = process.env.NODE_ENV !== "production" ? {
169
170
  name: _propTypes.default.string,
170
171
  type: _propTypes.default.oneOf((0, _keys2.default)(_externalContent.EXTERNAL_CONTENT_ICONS)),
172
+ onTop: _propTypes.default.shape({
173
+ header: _propTypes.default.bool,
174
+ footer: _propTypes.default.bool
175
+ }),
171
176
  url: _propTypes.default.string.isRequired,
172
177
  quit: _propTypes.default.shape({
173
178
  label: _propTypes.default.string.isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["defaultWrapperStyle","default","style","cockpit","defaultCockpit","mobile","ExternalCourse","props","context","name","type","url","quit","complete","warning","loading","backgroundImageUrl","contentType","mode","closePopin","skin","primary","IconType","EXTERNAL_CONTENT_ICONS","icon","IconColor","color","mainContentSlot","useMemo","loader","handleOnClick","useCallback","field","onClick","e","stopPropagation","preventDefault","completeButton","disabled","label","backgroundColor","convert","cursor","classnames","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","innerHTML","__html","header","rightSection","footer","popin","propTypes","PropTypes","string","oneOf","isRequired","shape","func","bool","CmPopin","contextTypes","Provider","childContextTypes"],"sources":["../../../src/template/external-course/index.js"],"sourcesContent":["import React, {useCallback, useMemo} from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {noop, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport CmPopin from '../../molecule/cm-popin';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit,\n mobile: style.default\n};\n\nconst ExternalCourse = (props, context) => {\n const {\n name,\n type,\n url,\n quit,\n complete,\n warning,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default',\n closePopin\n } = props;\n const {skin} = context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = useMemo(() => {\n return loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n mode={mode}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n }, [loading, url, mode, contentType, backgroundImageUrl]);\n\n const handleOnClick = useCallback(field => {\n const onClick = getOr(noop, ['onClick'], field);\n return e => {\n e.stopPropagation();\n e.preventDefault();\n return onClick(e);\n };\n }, []);\n\n const completeButton = useMemo(() => {\n return !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n data-testid=\"complete-button\"\n />\n ) : null;\n }, [complete, loading, primary, handleOnClick]);\n\n const warningButton = useMemo(() => {\n return !isNil(warning) ? (\n <div className={style.leftSection}>\n <div onClick={handleOnClick(warning)} className={classnames(style.iconLabel, style.link)}>\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n }, [handleOnClick, warning]);\n\n const quitButton = useMemo(() => {\n return !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n }, [quit, loading, handleOnClick]);\n\n const titleSection = useMemo(() => {\n return !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n }, [name, IconColor]);\n\n const header = useMemo(() => {\n return !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [name, titleSection, quit, quitButton]);\n\n const footer = useMemo(() => {\n return !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [warning, warningButton, complete, completeButton]);\n\n const popin = useMemo(() => {\n return !isNil(closePopin) ? <CmPopin {...closePopin} /> : null;\n }, [closePopin]);\n\n return (\n <div className={defaultWrapperStyle[mode]}>\n {header}\n {popin}\n {mainContentSlot}\n {footer}\n </div>\n );\n};\n\nExternalCourse.propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string,\n closePopin: PropTypes.shape({...CmPopin.propTypes})\n};\n\nExternalCourse.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ExternalCourse;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["defaultWrapperStyle","default","style","cockpit","defaultCockpit","mobile","ExternalCourse","props","context","name","type","url","quit","complete","warning","loading","backgroundImageUrl","contentType","mode","onTop","closePopin","skin","primary","IconType","EXTERNAL_CONTENT_ICONS","icon","IconColor","color","mainContentSlot","useMemo","loader","handleOnClick","useCallback","field","onClick","e","stopPropagation","preventDefault","completeButton","disabled","label","backgroundColor","convert","cursor","classnames","completeCta","warningButton","leftSection","iconLabel","link","iconQuestion","quitButton","quitCta","titleSection","title","oval","iconHeader","innerHTML","__html","header","rightSection","footer","popin","onTopHeader","onTopFooter","propTypes","PropTypes","string","oneOf","shape","bool","isRequired","func","CmPopin","contextTypes","Provider","childContextTypes"],"sources":["../../../src/template/external-course/index.js"],"sourcesContent":["import React, {useCallback, useMemo} from 'react';\nimport {NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon} from '@coorpacademy/nova-icons';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {noop, getOr, keys, identity, isNil, isEmpty} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport Loader from '../../atom/loader';\nimport Button from '../../atom/button';\nimport ExternalContentViewer from '../../molecule/external-content-viewer';\nimport CmPopin from '../../molecule/cm-popin';\nimport style from './style.css';\n\nconst defaultWrapperStyle = {\n default: style.default,\n cockpit: style.defaultCockpit,\n mobile: style.default\n};\n\nconst ExternalCourse = (props, context) => {\n const {\n name,\n type,\n url,\n quit,\n complete,\n warning,\n loading,\n backgroundImageUrl,\n contentType,\n mode = 'default',\n onTop = {},\n closePopin\n } = props;\n const {skin} = context;\n const primary = getOr('#00B0FF', 'common.primary', skin);\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const IconColor = EXTERNAL_CONTENT_ICONS[type].color;\n\n const mainContentSlot = useMemo(() => {\n return loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : (\n <ExternalContentViewer\n url={url}\n mode={mode}\n backgroundImageUrl={backgroundImageUrl}\n contentType={contentType}\n />\n );\n }, [loading, url, mode, contentType, backgroundImageUrl]);\n\n const handleOnClick = useCallback(field => {\n const onClick = getOr(noop, ['onClick'], field);\n return e => {\n e.stopPropagation();\n e.preventDefault();\n return onClick(e);\n };\n }, []);\n\n const completeButton = useMemo(() => {\n return !isNil(complete) ? (\n <Button\n type=\"button\"\n disabled={loading ? true : complete.disabled}\n onClick={loading ? identity : handleOnClick(complete)}\n submitValue={complete.label}\n style={{\n backgroundColor:\n complete.disabled || loading ? convert(`color(${primary} a(-50%))`) : primary,\n cursor: loading ? 'progress' : 'pointer'\n }}\n className={classnames(\n style.completeCta,\n complete.disabled || loading ? style.disabled : null,\n loading ? style.loading : null\n )}\n data-testid=\"complete-button\"\n />\n ) : null;\n }, [complete, loading, primary, handleOnClick]);\n\n const warningButton = useMemo(() => {\n return !isNil(warning) ? (\n <div className={style.leftSection}>\n <div onClick={handleOnClick(warning)} className={classnames(style.iconLabel, style.link)}>\n <QuestionIcon className={style.iconQuestion} width={24} height={24} />\n <span>{warning.label}</span>\n </div>\n </div>\n ) : null;\n }, [handleOnClick, warning]);\n\n const quitButton = useMemo(() => {\n return !isNil(quit) ? (\n <div className={style.leftSection}>\n <span\n className={classnames(style.quitCta, loading ? style.loading : null)}\n onClick={loading ? identity : handleOnClick(quit)}\n >\n {quit.label}\n </span>\n </div>\n ) : null;\n }, [quit, loading, handleOnClick]);\n\n const titleSection = useMemo(() => {\n return !isNil(name) ? (\n <div className={classnames(style.iconLabel, style.title)}>\n <div className={style.oval} style={{backgroundColor: IconColor}}>\n <IconType className={style.iconHeader} />\n </div>\n <span\n className={style.innerHTML}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: name}}\n />\n </div>\n ) : null;\n }, [name, IconColor]);\n\n const header = useMemo(() => {\n return !isNil(quit) || !isEmpty(name) ? (\n <div className={style.header}>\n {quitButton}\n {titleSection}\n {isNil(quit) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [name, titleSection, quit, quitButton]);\n\n const footer = useMemo(() => {\n return !isNil(warning) || !isNil(complete) ? (\n <div className={style.footer}>\n {warningButton}\n {completeButton}\n {isNil(warning) ? null : <div className={style.rightSection} />}\n </div>\n ) : null;\n }, [warning, warningButton, complete, completeButton]);\n\n const popin = useMemo(() => {\n return !isNil(closePopin) ? <CmPopin {...closePopin} /> : null;\n }, [closePopin]);\n\n return (\n <div\n className={classnames(\n defaultWrapperStyle[mode],\n onTop.header && style.onTopHeader,\n onTop.footer && style.onTopFooter\n )}\n >\n {header}\n {popin}\n {mainContentSlot}\n {footer}\n </div>\n );\n};\n\nExternalCourse.propTypes = {\n name: PropTypes.string,\n type: PropTypes.oneOf(keys(EXTERNAL_CONTENT_ICONS)),\n onTop: PropTypes.shape({\n header: PropTypes.bool,\n footer: PropTypes.bool\n }),\n url: PropTypes.string.isRequired,\n quit: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n complete: PropTypes.shape({\n label: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n onClick: PropTypes.func\n }),\n warning: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n }),\n loading: PropTypes.bool,\n backgroundImageUrl: PropTypes.string,\n contentType: PropTypes.string,\n mode: PropTypes.string,\n closePopin: PropTypes.shape({...CmPopin.propTypes})\n};\n\nExternalCourse.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nexport default ExternalCourse;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,mBAAmB,GAAG;EAC1BC,OAAO,EAAEC,cAAA,CAAMD,OADW;EAE1BE,OAAO,EAAED,cAAA,CAAME,cAFW;EAG1BC,MAAM,EAAEH,cAAA,CAAMD;AAHY,CAA5B;;AAMA,MAAMK,cAAc,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACzC,MAAM;IACJC,IADI;IAEJC,IAFI;IAGJC,GAHI;IAIJC,IAJI;IAKJC,QALI;IAMJC,OANI;IAOJC,OAPI;IAQJC,kBARI;IASJC,WATI;IAUJC,IAAI,GAAG,SAVH;IAWJC,KAAK,GAAG,EAXJ;IAYJC;EAZI,IAaFb,KAbJ;EAcA,MAAM;IAACc;EAAD,IAASb,OAAf;EACA,MAAMc,OAAO,GAAG,qBAAM,SAAN,EAAiB,gBAAjB,EAAmCD,IAAnC,CAAhB;EACA,MAAME,QAAQ,GAAGC,uCAAA,CAAuBd,IAAvB,EAA6Be,IAA9C;EACA,MAAMC,SAAS,GAAGF,uCAAA,CAAuBd,IAAvB,EAA6BiB,KAA/C;EAEA,MAAMC,eAAe,GAAG,IAAAC,cAAA,EAAQ,MAAM;IACpC,OAAOd,OAAO,gBACZ;MAAK,SAAS,EAAEb,cAAA,CAAM4B;IAAtB,gBACE,6BAAC,eAAD,OADF,CADY,gBAKZ,6BAAC,8BAAD;MACE,GAAG,EAAEnB,GADP;MAEE,IAAI,EAAEO,IAFR;MAGE,kBAAkB,EAAEF,kBAHtB;MAIE,WAAW,EAAEC;IAJf,EALF;EAYD,CAbuB,EAarB,CAACF,OAAD,EAAUJ,GAAV,EAAeO,IAAf,EAAqBD,WAArB,EAAkCD,kBAAlC,CAbqB,CAAxB;EAeA,MAAMe,aAAa,GAAG,IAAAC,kBAAA,EAAYC,KAAK,IAAI;IACzC,MAAMC,OAAO,GAAG,qCAAY,CAAC,SAAD,CAAZ,EAAyBD,KAAzB,CAAhB;IACA,OAAOE,CAAC,IAAI;MACVA,CAAC,CAACC,eAAF;MACAD,CAAC,CAACE,cAAF;MACA,OAAOH,OAAO,CAACC,CAAD,CAAd;IACD,CAJD;EAKD,CAPqB,EAOnB,EAPmB,CAAtB;EASA,MAAMG,cAAc,GAAG,IAAAT,cAAA,EAAQ,MAAM;IACnC,OAAO,CAAC,qBAAMhB,QAAN,CAAD,gBACL,6BAAC,eAAD;MACE,IAAI,EAAC,QADP;MAEE,QAAQ,EAAEE,OAAO,GAAG,IAAH,GAAUF,QAAQ,CAAC0B,QAFtC;MAGE,OAAO,EAAExB,OAAO,wBAAcgB,aAAa,CAAClB,QAAD,CAH7C;MAIE,WAAW,EAAEA,QAAQ,CAAC2B,KAJxB;MAKE,KAAK,EAAE;QACLC,eAAe,EACb5B,QAAQ,CAAC0B,QAAT,IAAqBxB,OAArB,GAA+B,IAAA2B,yBAAA,EAAS,SAAQpB,OAAQ,WAAzB,CAA/B,GAAsEA,OAFnE;QAGLqB,MAAM,EAAE5B,OAAO,GAAG,UAAH,GAAgB;MAH1B,CALT;MAUE,SAAS,EAAE,IAAA6B,mBAAA,EACT1C,cAAA,CAAM2C,WADG,EAEThC,QAAQ,CAAC0B,QAAT,IAAqBxB,OAArB,GAA+Bb,cAAA,CAAMqC,QAArC,GAAgD,IAFvC,EAGTxB,OAAO,GAAGb,cAAA,CAAMa,OAAT,GAAmB,IAHjB,CAVb;MAeE,eAAY;IAfd,EADK,GAkBH,IAlBJ;EAmBD,CApBsB,EAoBpB,CAACF,QAAD,EAAWE,OAAX,EAAoBO,OAApB,EAA6BS,aAA7B,CApBoB,CAAvB;EAsBA,MAAMe,aAAa,GAAG,IAAAjB,cAAA,EAAQ,MAAM;IAClC,OAAO,CAAC,qBAAMf,OAAN,CAAD,gBACL;MAAK,SAAS,EAAEZ,cAAA,CAAM6C;IAAtB,gBACE;MAAK,OAAO,EAAEhB,aAAa,CAACjB,OAAD,CAA3B;MAAsC,SAAS,EAAE,IAAA8B,mBAAA,EAAW1C,cAAA,CAAM8C,SAAjB,EAA4B9C,cAAA,CAAM+C,IAAlC;IAAjD,gBACE,6BAAC,0DAAD;MAAc,SAAS,EAAE/C,cAAA,CAAMgD,YAA/B;MAA6C,KAAK,EAAE,EAApD;MAAwD,MAAM,EAAE;IAAhE,EADF,eAEE,2CAAOpC,OAAO,CAAC0B,KAAf,CAFF,CADF,CADK,GAOH,IAPJ;EAQD,CATqB,EASnB,CAACT,aAAD,EAAgBjB,OAAhB,CATmB,CAAtB;EAWA,MAAMqC,UAAU,GAAG,IAAAtB,cAAA,EAAQ,MAAM;IAC/B,OAAO,CAAC,qBAAMjB,IAAN,CAAD,gBACL;MAAK,SAAS,EAAEV,cAAA,CAAM6C;IAAtB,gBACE;MACE,SAAS,EAAE,IAAAH,mBAAA,EAAW1C,cAAA,CAAMkD,OAAjB,EAA0BrC,OAAO,GAAGb,cAAA,CAAMa,OAAT,GAAmB,IAApD,CADb;MAEE,OAAO,EAAEA,OAAO,wBAAcgB,aAAa,CAACnB,IAAD;IAF7C,GAIGA,IAAI,CAAC4B,KAJR,CADF,CADK,GASH,IATJ;EAUD,CAXkB,EAWhB,CAAC5B,IAAD,EAAOG,OAAP,EAAgBgB,aAAhB,CAXgB,CAAnB;EAaA,MAAMsB,YAAY,GAAG,IAAAxB,cAAA,EAAQ,MAAM;IACjC,OAAO,CAAC,qBAAMpB,IAAN,CAAD,gBACL;MAAK,SAAS,EAAE,IAAAmC,mBAAA,EAAW1C,cAAA,CAAM8C,SAAjB,EAA4B9C,cAAA,CAAMoD,KAAlC;IAAhB,gBACE;MAAK,SAAS,EAAEpD,cAAA,CAAMqD,IAAtB;MAA4B,KAAK,EAAE;QAACd,eAAe,EAAEf;MAAlB;IAAnC,gBACE,6BAAC,QAAD;MAAU,SAAS,EAAExB,cAAA,CAAMsD;IAA3B,EADF,CADF,eAIE;MACE,SAAS,EAAEtD,cAAA,CAAMuD,SADnB,CAEE;MAFF;MAGE,uBAAuB,EAAE;QAACC,MAAM,EAAEjD;MAAT;IAH3B,EAJF,CADK,GAWH,IAXJ;EAYD,CAboB,EAalB,CAACA,IAAD,EAAOiB,SAAP,CAbkB,CAArB;EAeA,MAAMiC,MAAM,GAAG,IAAA9B,cAAA,EAAQ,MAAM;IAC3B,OAAO,CAAC,qBAAMjB,IAAN,CAAD,IAAgB,CAAC,uBAAQH,IAAR,CAAjB,gBACL;MAAK,SAAS,EAAEP,cAAA,CAAMyD;IAAtB,GACGR,UADH,EAEGE,YAFH,EAGG,qBAAMzC,IAAN,IAAc,IAAd,gBAAqB;MAAK,SAAS,EAAEV,cAAA,CAAM0D;IAAtB,EAHxB,CADK,GAMH,IANJ;EAOD,CARc,EAQZ,CAACnD,IAAD,EAAO4C,YAAP,EAAqBzC,IAArB,EAA2BuC,UAA3B,CARY,CAAf;EAUA,MAAMU,MAAM,GAAG,IAAAhC,cAAA,EAAQ,MAAM;IAC3B,OAAO,CAAC,qBAAMf,OAAN,CAAD,IAAmB,CAAC,qBAAMD,QAAN,CAApB,gBACL;MAAK,SAAS,EAAEX,cAAA,CAAM2D;IAAtB,GACGf,aADH,EAEGR,cAFH,EAGG,qBAAMxB,OAAN,IAAiB,IAAjB,gBAAwB;MAAK,SAAS,EAAEZ,cAAA,CAAM0D;IAAtB,EAH3B,CADK,GAMH,IANJ;EAOD,CARc,EAQZ,CAAC9C,OAAD,EAAUgC,aAAV,EAAyBjC,QAAzB,EAAmCyB,cAAnC,CARY,CAAf;EAUA,MAAMwB,KAAK,GAAG,IAAAjC,cAAA,EAAQ,MAAM;IAC1B,OAAO,CAAC,qBAAMT,UAAN,CAAD,gBAAqB,6BAAC,gBAAD,EAAaA,UAAb,CAArB,GAAmD,IAA1D;EACD,CAFa,EAEX,CAACA,UAAD,CAFW,CAAd;EAIA,oBACE;IACE,SAAS,EAAE,IAAAwB,mBAAA,EACT5C,mBAAmB,CAACkB,IAAD,CADV,EAETC,KAAK,CAACwC,MAAN,IAAgBzD,cAAA,CAAM6D,WAFb,EAGT5C,KAAK,CAAC0C,MAAN,IAAgB3D,cAAA,CAAM8D,WAHb;EADb,GAOGL,MAPH,EAQGG,KARH,EASGlC,eATH,EAUGiC,MAVH,CADF;AAcD,CA/ID;;AAiJAvD,cAAc,CAAC2D,SAAf,2CAA2B;EACzBxD,IAAI,EAAEyD,kBAAA,CAAUC,MADS;EAEzBzD,IAAI,EAAEwD,kBAAA,CAAUE,KAAV,CAAgB,oBAAK5C,uCAAL,CAAhB,CAFmB;EAGzBL,KAAK,EAAE+C,kBAAA,CAAUG,KAAV,CAAgB;IACrBV,MAAM,EAAEO,kBAAA,CAAUI,IADG;IAErBT,MAAM,EAAEK,kBAAA,CAAUI;EAFG,CAAhB,CAHkB;EAOzB3D,GAAG,EAAEuD,kBAAA,CAAUC,MAAV,CAAiBI,UAPG;EAQzB3D,IAAI,EAAEsD,kBAAA,CAAUG,KAAV,CAAgB;IACpB7B,KAAK,EAAE0B,kBAAA,CAAUC,MAAV,CAAiBI,UADJ;IAEpBrC,OAAO,EAAEgC,kBAAA,CAAUM;EAFC,CAAhB,CARmB;EAYzB3D,QAAQ,EAAEqD,kBAAA,CAAUG,KAAV,CAAgB;IACxB7B,KAAK,EAAE0B,kBAAA,CAAUC,MAAV,CAAiBI,UADA;IAExBhC,QAAQ,EAAE2B,kBAAA,CAAUI,IAFI;IAGxBpC,OAAO,EAAEgC,kBAAA,CAAUM;EAHK,CAAhB,CAZe;EAiBzB1D,OAAO,EAAEoD,kBAAA,CAAUG,KAAV,CAAgB;IACvB7B,KAAK,EAAE0B,kBAAA,CAAUC,MAAV,CAAiBI,UADD;IAEvBrC,OAAO,EAAEgC,kBAAA,CAAUM;EAFI,CAAhB,CAjBgB;EAqBzBzD,OAAO,EAAEmD,kBAAA,CAAUI,IArBM;EAsBzBtD,kBAAkB,EAAEkD,kBAAA,CAAUC,MAtBL;EAuBzBlD,WAAW,EAAEiD,kBAAA,CAAUC,MAvBE;EAwBzBjD,IAAI,EAAEgD,kBAAA,CAAUC,MAxBS;EAyBzB/C,UAAU,EAAE8C,kBAAA,CAAUG,KAAV,cAAoBI,gBAAA,CAAQR,SAA5B;AAzBa,CAA3B;AA4BA3D,cAAc,CAACoE,YAAf,GAA8B;EAC5BrD,IAAI,EAAEsD,iBAAA,CAASC,iBAAT,CAA2BvD;AADL,CAA9B;eAIef,c"}
@@ -21,6 +21,7 @@
21
21
  display: flex;
22
22
  flex-direction: column;
23
23
  align-content: stretch;
24
+ position: relative;
24
25
  }
25
26
 
26
27
  .defaultCockpit{
@@ -43,7 +44,16 @@
43
44
  z-index: 1;
44
45
  overflow: hidden;
45
46
  }
46
-
47
+ .onTopHeader .header{
48
+ position: absolute;
49
+ top: 0;
50
+ left: 0;
51
+ }
52
+ .onTopFooter .footer{
53
+ position: absolute;
54
+ bottom: 0;
55
+ left: 0;
56
+ }
47
57
  .leftSection, .rightSection {
48
58
  align-self: center;
49
59
  flex: 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.32.27",
3
+ "version": "11.32.28",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -177,5 +177,5 @@
177
177
  "last 2 versions",
178
178
  "IE 11"
179
179
  ],
180
- "gitHead": "6d822555cf25665641a17e381be1c284e49cd74b"
180
+ "gitHead": "db50ee93e1f427ef1a18aa174826835ee0a64b1d"
181
181
  }