@coorpacademy/components 10.1.15 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/atom/button-link/index.js +1 -1
- package/es/atom/button-link/index.js.map +1 -1
- package/es/atom/button-link-icon-only/index.js +1 -1
- package/es/atom/button-link-icon-only/index.js.map +1 -1
- package/es/atom/button-menu/index.js +2 -4
- package/es/atom/button-menu/index.js.map +1 -1
- package/es/atom/chips/style.css +1 -2
- package/es/atom/image-upload/index.js +5 -3
- package/es/atom/image-upload/index.js.map +1 -1
- package/es/atom/input-color/style.css +1 -1
- package/es/hoc/transition/index.js +10 -3
- package/es/hoc/transition/index.js.map +1 -1
- package/es/molecule/banner/test/fixtures.js +8 -0
- package/es/molecule/banner/test/fixtures.js.map +1 -1
- package/es/molecule/brand-create-form/index.js +4 -1
- package/es/molecule/brand-create-form/index.js.map +1 -1
- package/es/molecule/card/index.js +1 -1
- package/es/molecule/card/index.js.map +1 -1
- package/es/molecule/cockpit-popin/test/fixtures.js +17 -0
- package/es/molecule/cockpit-popin/test/fixtures.js.map +1 -0
- package/es/molecule/select-multiple/index.js +1 -1
- package/es/molecule/select-multiple/index.js.map +1 -1
- package/es/molecule/select-multiple/test/fixtures.js +8 -0
- package/es/molecule/select-multiple/test/fixtures.js.map +1 -1
- package/es/molecule/share/index.js +3 -2
- package/es/molecule/share/index.js.map +1 -1
- package/es/molecule/wizard-summary/index.js +16 -10
- package/es/molecule/wizard-summary/index.js.map +1 -1
- package/es/organism/accordion/container/index.js +1 -1
- package/es/organism/accordion/container/index.js.map +1 -1
- package/es/organism/accordion/coorp-manager/index.js +1 -1
- package/es/organism/accordion/coorp-manager/index.js.map +1 -1
- package/es/organism/list-item/test/fixtures.js +19 -0
- package/es/organism/list-item/test/fixtures.js.map +1 -0
- package/es/organism/list-items/index.js +40 -0
- package/es/organism/list-items/index.js.map +1 -0
- package/es/organism/list-items/style.css +39 -0
- package/es/organism/list-items/test/fixtures/archived.js +24 -0
- package/es/organism/list-items/test/fixtures/archived.js.map +1 -0
- package/es/organism/list-items/test/fixtures/draft.js +24 -0
- package/es/organism/list-items/test/fixtures/draft.js.map +1 -0
- package/es/organism/list-items/test/fixtures/published.js +26 -0
- package/es/organism/list-items/test/fixtures/published.js.map +1 -0
- package/es/template/back-office/brand-update/index.js +13 -6
- package/es/template/back-office/brand-update/index.js.map +1 -1
- package/es/template/back-office/brand-update/style.css +57 -13
- package/es/template/back-office/brand-update/test/fixtures.js +0 -2
- package/es/template/back-office/brand-update/test/fixtures.js.map +1 -1
- package/es/template/teams-dashboard/index.js +4 -6
- package/es/template/teams-dashboard/index.js.map +1 -1
- package/lib/atom/button-link/index.js +1 -1
- package/lib/atom/button-link/index.js.map +1 -1
- package/lib/atom/button-link-icon-only/index.js +1 -1
- package/lib/atom/button-link-icon-only/index.js.map +1 -1
- package/lib/atom/button-menu/index.js +2 -4
- package/lib/atom/button-menu/index.js.map +1 -1
- package/lib/atom/chips/style.css +1 -2
- package/lib/atom/image-upload/index.js +5 -2
- package/lib/atom/image-upload/index.js.map +1 -1
- package/lib/atom/input-color/style.css +1 -1
- package/lib/hoc/transition/index.js +10 -3
- package/lib/hoc/transition/index.js.map +1 -1
- package/lib/molecule/banner/test/fixtures.js +12 -0
- package/lib/molecule/banner/test/fixtures.js.map +1 -1
- package/lib/molecule/brand-create-form/index.js +4 -1
- package/lib/molecule/brand-create-form/index.js.map +1 -1
- package/lib/molecule/card/index.js +1 -1
- package/lib/molecule/card/index.js.map +1 -1
- package/lib/molecule/cockpit-popin/test/fixtures.js +28 -0
- package/lib/molecule/cockpit-popin/test/fixtures.js.map +1 -0
- package/lib/molecule/select-multiple/index.js +1 -1
- package/lib/molecule/select-multiple/index.js.map +1 -1
- package/lib/molecule/select-multiple/test/fixtures.js +12 -0
- package/lib/molecule/select-multiple/test/fixtures.js.map +1 -1
- package/lib/molecule/share/index.js +2 -1
- package/lib/molecule/share/index.js.map +1 -1
- package/lib/molecule/wizard-summary/index.js +16 -10
- package/lib/molecule/wizard-summary/index.js.map +1 -1
- package/lib/organism/accordion/container/index.js +1 -1
- package/lib/organism/accordion/container/index.js.map +1 -1
- package/lib/organism/accordion/coorp-manager/index.js +1 -1
- package/lib/organism/accordion/coorp-manager/index.js.map +1 -1
- package/lib/organism/list-item/test/fixtures.js +31 -0
- package/lib/organism/list-item/test/fixtures.js.map +1 -0
- package/lib/organism/list-items/index.js +53 -0
- package/lib/organism/list-items/index.js.map +1 -0
- package/lib/organism/list-items/style.css +39 -0
- package/lib/organism/list-items/test/fixtures/archived.js +33 -0
- package/lib/organism/list-items/test/fixtures/archived.js.map +1 -0
- package/lib/organism/list-items/test/fixtures/draft.js +33 -0
- package/lib/organism/list-items/test/fixtures/draft.js.map +1 -0
- package/lib/organism/list-items/test/fixtures/published.js +36 -0
- package/lib/organism/list-items/test/fixtures/published.js.map +1 -0
- package/lib/template/back-office/brand-update/index.js +14 -6
- package/lib/template/back-office/brand-update/index.js.map +1 -1
- package/lib/template/back-office/brand-update/style.css +57 -13
- package/lib/template/back-office/brand-update/test/fixtures.js +0 -3
- package/lib/template/back-office/brand-update/test/fixtures.js.map +1 -1
- package/lib/template/teams-dashboard/index.js +4 -6
- package/lib/template/teams-dashboard/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -39,7 +39,10 @@ const BrandCreateForm = (props, context) => {
|
|
|
39
39
|
const wrapperClass = isModified || isPending || field.error ? _style.default.modifiedWrapper : _style.default.wrapper;
|
|
40
40
|
const fieldClass = field.error ? _style.default.error : _style.default.default;
|
|
41
41
|
const disabled = isPending || !isModified;
|
|
42
|
-
const
|
|
42
|
+
const {
|
|
43
|
+
onChange
|
|
44
|
+
} = field;
|
|
45
|
+
const handleChange = (0, _react.useMemo)(() => e => onChange(e.target.value), [onChange]);
|
|
43
46
|
const actionView = isPending ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
44
47
|
className: _style.default.wait
|
|
45
48
|
}, waitMessage), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","style","modifiedWrapper","wrapper","fieldClass","default","disabled","
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","style","modifiedWrapper","wrapper","fieldClass","default","disabled","onChange","handleChange","e","target","value","actionView","wait","loading","header","content","placeholder","label","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../atom/button';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst BrandCreateForm = (props, context) => {\n const {title, subtitle, description, field, onSubmit, submitValue, isPending, isModified} = props;\n const {translate} = context;\n const waitMessage = translate('Wait_creation');\n\n const wrapperClass =\n isModified || isPending || field.error ? style.modifiedWrapper : style.wrapper;\n const fieldClass = field.error ? style.error : style.default;\n const disabled = isPending || !isModified;\n const {onChange} = field;\n const handleChange = useMemo(() => e => onChange(e.target.value), [onChange]);\n\n const actionView = isPending ? (\n <div>\n <div className={style.wait}>{waitMessage}</div>\n <div className={style.loading}>\n <Loader />\n </div>\n </div>\n ) : (\n <div>\n <Button\n data-name=\"brand_create_submit_button\"\n type=\"submit\"\n disabled={disabled}\n submitValue={submitValue}\n />\n </div>\n );\n\n return (\n <div className={wrapperClass}>\n <div className={style.header}>\n <h1>{title}</h1>\n </div>\n <form className={style.content} onSubmit={onSubmit}>\n <h2>{subtitle}</h2>\n <div className={style.description}>{description}</div>\n <div className={fieldClass}>\n <label>\n <input\n type=\"text\"\n data-name=\"brand_create_text_input\"\n placeholder={field.placeholder}\n defaultValue={field.value}\n onInput={handleChange}\n />\n {field.label}\n </label>\n </div>\n {actionView}\n </form>\n </div>\n );\n};\n\nBrandCreateForm.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nBrandCreateForm.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n field: PropTypes.shape({\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n value: PropTypes.string\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitValue: PropTypes.string.isRequired,\n isPending: PropTypes.bool,\n isModified: PropTypes.bool\n};\n\nexport default BrandCreateForm;\n"],"file":"index.js"}
|
|
@@ -150,7 +150,7 @@ const Card = (0, _react.memo)(function Card(props, context) {
|
|
|
150
150
|
const primaryColor = (0, _get2.default)('common.primary', skin);
|
|
151
151
|
const whiteColor = (0, _get2.default)('common.white', skin);
|
|
152
152
|
const cardStyle = (0, _classnames.default)(type === 'chapter' ? _style.default.chapter : _style.default.course, title ? null : _style.default.lazy, _style.default.grid, empty ? _style.default.empty : null);
|
|
153
|
-
const handleClick = (0, _react.useMemo)(() => e => !disabled && onClick(e), [onClick]);
|
|
153
|
+
const handleClick = (0, _react.useMemo)(() => e => !disabled && onClick(e), [disabled, onClick]);
|
|
154
154
|
const lock = disabled ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidLoginLocked, {
|
|
155
155
|
className: _style.default.lockIcon,
|
|
156
156
|
color: whiteColor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["CardBackground","type","image","empty","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","style","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","chapterCustomer","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nconst CardBackground = ({type, image, empty}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n >\n <CardBackground type={type} image={image} empty={empty} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n />\n ) : null}\n <Selectable isSelected={isSelected} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n className={classnames(style.customer, type === 'chapter' ? style.chapterCustomer : null)}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle}>\n {badge}\n </div>\n ) : null}\n {disabled ? <div className={style.lockWrapper}>{lock}</div> : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel\n};\nexport default Card;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/card/index.js"],"names":["CardBackground","type","image","empty","skin","externalContent","primaryColor","whiteColor","EXTERNAL_CONTENT_ICONS","IconType","icon","iconColor","color","backgroundIcon","style","externalIconCircleWrapper","externalIcon","_backgroundIcon","externalIconCircleWithImageWrapper","backgroundColor","externalIconWithImage","imageWrapper","backgroundImage","externalContentHeader","externalBackground","emptyIcon","chapterImageWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","Card","props","context","badge","adaptiv","disabled","title","author","customer","certifiedAuthor","progress","favorite","addFavoriteToolTip","removeFavoriteToolTip","onClick","onFavoriteClick","isSelected","notification","badgeCategory","badgeLabel","cardStyle","chapter","course","lazy","grid","handleClick","e","lock","lockIcon","inlineBadgeStyle","getType","contentType","chapterCustomer","MODES","CARD","lockWrapper","shape","Customer","number","func","Notification","CardContentInfo"],"mappings":"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","sourcesContent":["import React, {useMemo, memo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isEmpty, isUndefined, pick} from 'lodash/fp';\nimport {\n NovaSolidLoginLocked as LockIcon,\n NovaCompositionCoorpacademyPictures as PicturesIcon\n} from '@coorpacademy/nova-icons';\nimport {isExternalContent, EXTERNAL_CONTENT_ICONS} from '../../util/external-content';\nimport Provider from '../../atom/provider';\nimport CardContentInfo, {MODES} from '../card-content';\nimport Customer from './customer';\nimport Favorite from './favorite';\nimport Selectable from './selectable';\nimport Notification from './notification';\nimport style from './style.css';\n\nconst CardBackground = ({type, image, empty}, {skin}) => {\n const externalContent = isExternalContent(type);\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n\n if (externalContent && EXTERNAL_CONTENT_ICONS[type]) {\n const IconType = EXTERNAL_CONTENT_ICONS[type].icon;\n const iconColor = EXTERNAL_CONTENT_ICONS[type].color;\n const backgroundIcon = (\n <div className={style.externalIconCircleWrapper}>\n <IconType className={style.externalIcon} />\n </div>\n );\n\n if (image) {\n const _backgroundIcon = (\n <div\n className={classnames(\n style.externalIconCircleWrapper,\n style.externalIconCircleWithImageWrapper\n )}\n style={{\n backgroundColor: iconColor\n }}\n >\n <IconType className={style.externalIconWithImage} />\n </div>\n );\n\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor,\n backgroundImage: `url('${image}')`\n }}\n className={classnames(style.externalContentHeader, style.externalBackground)}\n >\n {_backgroundIcon}\n </div>\n </div>\n );\n }\n return (\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n style={{\n backgroundColor: iconColor\n }}\n className={style.externalContentHeader}\n >\n {backgroundIcon}\n </div>\n </div>\n );\n }\n\n const emptyIcon = empty ? <PicturesIcon className={style.emptyIcon} color={whiteColor} /> : null;\n return (\n <div\n className={classnames(\n style.imageWrapper,\n type === 'chapter' ? style.chapterImageWrapper : null\n )}\n >\n <div\n data-name=\"cover\"\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n >\n {emptyIcon}\n </div>\n </div>\n );\n};\n\nCardBackground.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCardBackground.propTypes = {\n type: PropTypes.string,\n image: PropTypes.string,\n empty: PropTypes.bool\n};\n\nconst Card = memo(function Card(props, context) {\n const {skin} = context;\n const {\n image,\n badge,\n adaptiv,\n disabled = false,\n type = 'course',\n title,\n author,\n customer,\n certifiedAuthor,\n progress,\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n onClick,\n onFavoriteClick,\n isSelected,\n notification,\n badgeCategory,\n badgeLabel\n } = props;\n const empty = isEmpty(pick(['title', 'type', 'author', 'image'], props));\n const primaryColor = get('common.primary', skin);\n const whiteColor = get('common.white', skin);\n const cardStyle = classnames(\n type === 'chapter' ? style.chapter : style.course,\n title ? null : style.lazy,\n style.grid,\n empty ? style.empty : null\n );\n const handleClick = useMemo(() => e => !disabled && onClick(e), [disabled, onClick]);\n const lock = disabled ? (\n <LockIcon className={style.lockIcon} color={whiteColor} height={40} />\n ) : null;\n const inlineBadgeStyle = {color: primaryColor};\n const getType = contentType => {\n switch (contentType) {\n case 'chapter':\n return 'microlearning';\n case 'course':\n return 'learner';\n default:\n return contentType;\n }\n };\n\n return (\n <div\n className={cardStyle}\n data-name=\"card\"\n data-lock={disabled}\n data-type={getType(type)}\n disabled={disabled}\n onClick={handleClick}\n >\n <CardBackground type={type} image={image} empty={empty} />\n {isUndefined(isSelected) && !isUndefined(favorite) ? (\n <Favorite\n className={style.favorite}\n favorite={favorite}\n disabled={disabled}\n onFavoriteClick={onFavoriteClick}\n addFavoriteToolTip={addFavoriteToolTip}\n removeFavoriteToolTip={removeFavoriteToolTip}\n />\n ) : null}\n <Selectable isSelected={isSelected} />\n {notification ? <Notification {...notification} /> : null}\n {customer ? (\n <Customer\n {...customer}\n className={classnames(style.customer, type === 'chapter' ? style.chapterCustomer : null)}\n />\n ) : null}\n <CardContentInfo\n mode={MODES.CARD}\n adaptiv={adaptiv}\n author={author}\n certifiedAuthor={certifiedAuthor}\n disabled={disabled}\n empty={empty}\n progress={progress}\n title={title}\n type={type}\n badgeCategory={badgeCategory}\n badgeLabel={badgeLabel}\n />\n {badge ? (\n <div className={style.badge} style={inlineBadgeStyle}>\n {badge}\n </div>\n ) : null}\n {disabled ? <div className={style.lockWrapper}>{lock}</div> : null}\n </div>\n );\n});\n\nCard.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCard.propTypes = {\n badge: PropTypes.string,\n image: PropTypes.string,\n disabled: PropTypes.bool,\n adaptiv: PropTypes.bool,\n type: PropTypes.string,\n title: PropTypes.string,\n author: PropTypes.string,\n certifiedAuthor: PropTypes.bool,\n customer: PropTypes.shape(Customer.propTypes),\n progress: PropTypes.number,\n favorite: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onClick: PropTypes.func,\n onFavoriteClick: PropTypes.func,\n isSelected: PropTypes.bool,\n notification: PropTypes.shape(Notification.propTypes),\n badgeCategory: CardContentInfo.propTypes.badgeCategory,\n badgeLabel: CardContentInfo.propTypes.badgeLabel\n};\nexport default Card;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ava = _interopRequireDefault(require("ava"));
|
|
4
|
+
|
|
5
|
+
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
6
|
+
|
|
7
|
+
var _renderComponent = _interopRequireDefault(require("../../../test/helpers/render-component"));
|
|
8
|
+
|
|
9
|
+
var _ = _interopRequireDefault(require(".."));
|
|
10
|
+
|
|
11
|
+
var _default = _interopRequireDefault(require("./fixtures/default"));
|
|
12
|
+
|
|
13
|
+
var _loading = _interopRequireDefault(require("./fixtures/loading"));
|
|
14
|
+
|
|
15
|
+
var _videoTranslate = _interopRequireDefault(require("./fixtures/video-translate"));
|
|
16
|
+
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
|
|
19
|
+
(0, _ava.default)('Molecule › MoleculeCockpitPopin > should have valid propTypes', t => {
|
|
20
|
+
t.pass();
|
|
21
|
+
(0, _forEach.default)(_.default.propTypes, (value, key) => {
|
|
22
|
+
t.not(value, undefined, `PropType for "Molecule.MoleculeCockpitPopin.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
(0, _ava.default)('Molecule › MoleculeCockpitPopin › Default › should be rendered', _renderComponent.default, _.default, _default.default);
|
|
26
|
+
(0, _ava.default)('Molecule › MoleculeCockpitPopin › Loading › should be rendered', _renderComponent.default, _.default, _loading.default);
|
|
27
|
+
(0, _ava.default)('Molecule › MoleculeCockpitPopin › VideoTranslate › should be rendered', _renderComponent.default, _.default, _videoTranslate.default);
|
|
28
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/cockpit-popin/test/fixtures.js"],"names":["t","pass","MoleculeCockpitPopin","propTypes","value","key","not","undefined","renderComponentMacro","fixtureDefault","fixtureLoading","fixtureVideoTranslate"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,+DAAL,EAAsEA,CAAC,IAAI;AACzEA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAqBC,SAA7B,EAAwC,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACtDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,yDAAwDF,GAAI,mEAArF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,gEAAL,EAAuEG,wBAAvE,EAA6FN,SAA7F,EAAmHO,gBAAnH;AACA,kBAAK,gEAAL,EAAuED,wBAAvE,EAA6FN,SAA7F,EAAmHQ,gBAAnH;AACA,kBAAK,uEAAL,EAA8EF,wBAA9E,EAAoGN,SAApG,EAA0HS,uBAA1H","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeCockpitPopin from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureLoading from './fixtures/loading';\nimport fixtureVideoTranslate from './fixtures/video-translate';\n\ntest('Molecule › MoleculeCockpitPopin > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeCockpitPopin.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeCockpitPopin.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeCockpitPopin › Default › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureDefault);\ntest('Molecule › MoleculeCockpitPopin › Loading › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureLoading);\ntest('Molecule › MoleculeCockpitPopin › VideoTranslate › should be rendered', renderComponentMacro, MoleculeCockpitPopin, fixtureVideoTranslate);\n"],"file":"fixtures.js"}
|
|
@@ -140,7 +140,7 @@ const SelectMultiple = ({
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
return onChange(choice);
|
|
143
|
-
}, [
|
|
143
|
+
}, [multiple, onChange, setChoices, getChoices]);
|
|
144
144
|
(0, _react.useEffect)(() => {
|
|
145
145
|
document.addEventListener('click', closeHandle);
|
|
146
146
|
document.addEventListener('touchstart', closeHandle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["themeStyle","setup","style","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","getChoices","current","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","required","error","disabled","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","_title","isActive","titleView","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","__html","mainClass","default","showPlaceholder","behaviourClassName","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","TitledCheckbox","func","string","arrayOf","oneOf"],"mappings":"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","sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = useRef(options);\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n if (!multiple) {\n return onChange(choice);\n }\n return onChange({...choice, selected: checked});\n },\n [onChange, choice, multiple]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span className={style.item} onClick={handleChange} title={choice.name}>\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n required = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n\n return onChange(choice);\n },\n [setChoices, multiple, onChange]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {_title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView =\n isCMTheme && !isActive ? (\n <div\n className={style.hint}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div className={style.select} title={selection || placeholder} onClick={handleOnClick}>\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/select-multiple/index.js"],"names":["themeStyle","setup","style","cockpit","sidebar","coorpmanager","useChoices","options","choicesRef","getChoices","current","setChoices","choice","choices","i","selected","filter","c","CMMultipleView","multiple","onChange","handleChange","checked","item","name","SelectMultiple","title","theme","placeholder","description","hint","onError","modified","required","error","disabled","skin","isOpened","updateIsOpened","nodeRef","defaultColor","black","handleOnClick","e","preventDefault","stopPropagation","prev","closeHandle","contains","target","document","addEventListener","removeEventListener","isCMTheme","lines","convert","cap","selection","_title","isActive","titleView","titleWithSelection","noValue","active","infoIconWrapper","infoIcon","descriptionLabel","hintView","__html","mainClass","default","showPlaceholder","behaviourClassName","errorIconView","errorIcon","select","noselection","iconsWrapper","flex","clicked","arrow","down","activeChoices","list","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","TitledCheckbox","func","string","arrayOf","oneOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,KAAK,EAAEC,eAAMD,KADI;AAEjBE,EAAAA,OAAO,EAAED,eAAMC,OAFE;AAGjBC,EAAAA,OAAO,EAAEF,eAAME,OAHE;AAIjBC,EAAAA,YAAY,EAAEH,eAAMG;AAJH,CAAnB;;AAOO,MAAMC,UAAU,GAAGC,OAAO,IAAI;AACnC,QAAMC,UAAU,GAAG,mBAAOD,OAAP,CAAnB;;AAEA,QAAME,UAAU,GAAG,MAAM;AACvB,WAAOD,UAAU,CAACE,OAAlB;AACD,GAFD;;AAIA,QAAMC,UAAU,GAAGC,MAAM,IAAI;AAC3B,UAAMC,OAAO,GAAG,mBAAK,IAAGD,MAAM,CAACE,CAAE,YAAjB,EAA8B,CAACF,MAAM,CAACG,QAAtC,EAAgDN,UAAU,EAA1D,CAAhB;AAEAD,IAAAA,UAAU,CAACE,OAAX,GAAqBG,OAAO,CAACG,MAAR,CAAeC,CAAC,IAAIA,CAAC,CAACF,QAAtB,CAArB;AACD,GAJD;;AAMA,SAAO,CAACN,UAAD,EAAaE,UAAb,CAAP;AACD,CAdM;;;;AAgBP,MAAMO,cAAc,GAAG,CAAC;AAACC,EAAAA,QAAD;AAAWP,EAAAA,MAAX;AAAmBQ,EAAAA;AAAnB,CAAD,KAAkC;AACvD,QAAMC,YAAY,GAAG,wBACnBC,OAAO,IAAI;AACT,QAAI,CAACH,QAAL,EAAe;AACb,aAAOC,QAAQ,CAACR,MAAD,CAAf;AACD;;AACD,WAAOQ,QAAQ,uBAAKR,MAAL;AAAaG,MAAAA,QAAQ,EAAEO;AAAvB,OAAf;AACD,GANkB,EAOnB,CAACF,QAAD,EAAWR,MAAX,EAAmBO,QAAnB,CAPmB,CAArB;AAUA,SAAOA,QAAQ,gBACb;AAAK,IAAA,SAAS,EAAEjB,eAAMqB;AAAtB,kBACE,6BAAC,sBAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,OAAO,EAAEX,MAAM,CAACG,QAFlB;AAGE,IAAA,QAAQ,EAAEM,YAHZ;AAIE,IAAA,cAAc,MAJhB;AAKE,IAAA,KAAK,EAAET,MAAM,CAACY;AALhB,IADF,CADa,gBAWb;AAAM,IAAA,SAAS,EAAEtB,eAAMqB,IAAvB;AAA6B,IAAA,OAAO,EAAEF,YAAtC;AAAoD,IAAA,KAAK,EAAET,MAAM,CAACY;AAAlE,KACGZ,MAAM,CAACY,IADV,CAXF;AAeD,CA1BD;;AA4BA,MAAMC,cAAc,GAAG,CACrB;AACEC,EAAAA,KADF;AAEEnB,EAAAA,OAFF;AAGEoB,EAAAA,KAHF;AAIEC,EAAAA,WAJF;AAKEC,EAAAA,WALF;AAMEC,EAAAA,IANF;AAOEX,EAAAA,QAPF;AAQEC,EAAAA,QARF;AASEW,EAAAA,OATF;AAUEC,EAAAA,QAAQ,GAAG,KAVb;AAWEC,EAAAA,QAAQ,GAAG,KAXb;AAYEC,EAAAA,KAAK,GAAG,EAZV;AAaEC,EAAAA,QAAQ,GAAG;AAbb,CADqB,EAgBrB;AAACC,EAAAA;AAAD,CAhBqB,KAiBlB;AACH,QAAM,CAACC,QAAD,EAAWC,cAAX,IAA6B,qBAAS,KAAT,CAAnC;AACA,QAAM,CAAC7B,UAAD,EAAaE,UAAb,IAA2BL,UAAU,CAACC,OAAD,CAA3C;AACA,QAAMgC,OAAO,GAAG,mBAAO,IAAP,CAAhB;AAEA,QAAMC,YAAY,GAAG,mBAAI,gBAAJ,EAAsBJ,IAAtB,CAArB;AACA,QAAMK,KAAK,GAAG,mBAAI,cAAJ,EAAoBL,IAApB,CAAd;AAEA,QAAMM,aAAa,GAAG,wBACpBC,CAAC,IAAI;AACH,QAAIR,QAAJ,EAAc;AAEdQ,IAAAA,CAAC,CAACC,cAAF;AACAD,IAAAA,CAAC,CAACE,eAAF;AAEAP,IAAAA,cAAc,CAACQ,IAAI,IAAI,CAACA,IAAV,CAAd;AACD,GARmB,EASpB,CAACX,QAAD,CAToB,CAAtB;AAYA,QAAMY,WAAW,GAAG,wBAAYJ,CAAC,IAAI;AACnC,QAAIJ,OAAO,IAAIA,OAAO,CAAC7B,OAAnB,IAA8B,CAAC6B,OAAO,CAAC7B,OAAR,CAAgBsC,QAAhB,CAAyBL,CAAC,CAACM,MAA3B,CAAnC,EAAuE;AACrEX,MAAAA,cAAc,CAAC,KAAD,CAAd;AACD;AACF,GAJmB,EAIjB,EAJiB,CAApB;AAMA,QAAMjB,YAAY,GAAG,wBACnBT,MAAM,IAAI;AACR;AACA;AACA,QAAIO,QAAJ,EAAc;AACZR,MAAAA,UAAU,CAACC,MAAD,CAAV;AAEA,aAAOQ,QAAQ,CAACX,UAAU,EAAX,CAAf;AACD;;AAED,WAAOW,QAAQ,CAACR,MAAD,CAAf;AACD,GAXkB,EAYnB,CAACO,QAAD,EAAWC,QAAX,EAAqBT,UAArB,EAAiCF,UAAjC,CAZmB,CAArB;AAeA,wBAAU,MAAM;AACdyC,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,EAAmCJ,WAAnC;AACAG,IAAAA,QAAQ,CAACC,gBAAT,CAA0B,YAA1B,EAAwCJ,WAAxC;AAEA,WAAO,MAAM;AACXG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,OAA7B,EAAsCL,WAAtC;AACAG,MAAAA,QAAQ,CAACE,mBAAT,CAA6B,YAA7B,EAA2CL,WAA3C;AACD,KAHD;AAID,GARD,EAQG,CAACA,WAAD,CARH;AAUA,QAAMM,SAAS,GAAG1B,KAAK,KAAK,cAA5B;;AAEA,QAAM2B,KAAK,GAAG,cAAIC,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0B,CAAC5C,MAAD,EAASE,CAAT,KAAe;AACrD,wBACE;AAAI,MAAA,GAAG,EAAEA,CAAT;AAAY,MAAA,SAAS,EAAEZ,eAAMU;AAA7B,OACGyC,SAAS,gBACR,6BAAC,cAAD;AAAgB,MAAA,QAAQ,EAAElC,QAA1B;AAAoC,MAAA,MAAM,wBAAMP,MAAN;AAAcE,QAAAA;AAAd,QAA1C;AAA4D,MAAA,QAAQ,EAAEO;AAAtE,MADQ,gBAGR,6BAAC,uBAAD;AACE,MAAA,QAAQ,EAAEA,YADZ;AAEE,MAAA,MAAM,wBAAMT,MAAN;AAAcE,QAAAA;AAAd,QAFR;AAGE,MAAA,UAAU,EAAE0B;AAHd,MAJJ,CADF;AAaD,GAda,EAcXjC,OAdW,CAAd;;AAgBA,QAAMkD,SAAS,GAAG,oBAAK,sBAAO;AAAC1C,IAAAA,QAAQ,EAAE;AAAX,GAAP,CAAL,EAA+B,mBAAI,MAAJ,CAA/B,EAA4C,oBAAK,IAAL,CAA5C,EAAwDR,OAAxD,CAAlB;;AAEA,QAAMmD,MAAM,GAAGhC,KAAK,IAAK,GAAEA,KAAM,GAAEO,QAAQ,GAAG,IAAH,GAAU,EAAG,EAAxD;;AAEA,QAAM0B,QAAQ,GAAGtB,QAAQ,KAAK,IAA9B;AAEA,QAAMuB,SAAS,GAAGlC,KAAK,gBACrB;AACE,IAAA,SAAS,EAAE,yBACTxB,eAAMwB,KADG,EAET2B,SAAS,IAAII,SAAb,IAA0BvD,eAAM2D,kBAFvB,EAGTR,SAAS,IAAI,uBAAQI,SAAR,CAAb,IAAmCvD,eAAM4D,OAHhC,EAITH,QAAQ,IAAIzD,eAAM6D,MAJT;AADb,KAQGL,MARH,EASGL,SAAS,gBACR;AAAK,IAAA,SAAS,EAAEnD,eAAM8D;AAAtB,kBACE,6BAAC,qDAAD;AAAU,IAAA,SAAS,EAAE9D,eAAM+D;AAA3B,IADF,eAEE;AAAK,IAAA,SAAS,EAAE/D,eAAMgE;AAAtB,KAAyCrC,WAAzC,CAFF,CADQ,GAKN,IAdN,CADqB,GAiBnB,IAjBJ;AAmBA,QAAMsC,QAAQ,GACZd,SAAS,IAAI,CAACM,QAAd,gBACE;AACE,IAAA,SAAS,EAAEzD,eAAM4B,IADnB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACsC,MAAAA,MAAM,EAAElC,KAAK,IAAIJ;AAAlB;AAH3B,IADF,GAMI,IAPN;AASA,QAAMuC,SAAS,GAAG1C,KAAK,GAAG3B,UAAU,CAAC2B,KAAD,CAAb,GAAuBzB,eAAMoE,OAApD;AACA,QAAMC,eAAe,GAAGlB,SAAS,IAAIM,QAArC;AACA,QAAMa,kBAAkB,GAAG,4BACzBtE,eAAMoE,OADmB,EAEzBpE,eAAM8B,QAFmB,EAGzB9B,eAAMgC,KAHmB,EAIzBF,QAJyB,EAKzBE,KALyB,CAA3B;AAQA,QAAMuC,aAAa,GAAGvC,KAAK,gBAAG,6BAAC,+BAAD;AAAW,IAAA,OAAO,EAAEH,OAApB;AAA6B,IAAA,SAAS,EAAE7B,eAAMwE;AAA9C,IAAH,GAAiE,IAA5F;AAEA,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWL,SAAX,EAAsBG,kBAAtB,EAA0CrC,QAAQ,IAAIjC,eAAMiC,QAA5D,CADb;AAEE,IAAA,GAAG,EAAEI;AAFP,kBAIE,4CACG,CAACc,SAAD,IAAcO,SADjB,eAEE;AAAK,IAAA,SAAS,EAAE1D,eAAMyE,MAAtB;AAA8B,IAAA,KAAK,EAAElB,SAAS,IAAI7B,WAAlD;AAA+D,IAAA,OAAO,EAAEc;AAAxE,KACGW,SAAS,IAAIO,SADhB,eAEE;AACE,IAAA,SAAS,EAAE,yBACT1D,eAAMuD,SADG,EAETJ,SAAS,IAAI,uBAAQI,SAAR,CAAb,IAAmCvD,eAAM0E,WAFhC;AADb,KAMGnB,SAAS,IAAI,CAACJ,SAAd,IAA4BkB,eAAe,IAAI3C,WAA/C,IAA+D,IANlE,CAFF,EAUGyB,SAAS,gBACR;AAAK,IAAA,SAAS,EAAEnD,eAAM2E;AAAtB,kBACE;AAAK,IAAA,SAAS,EAAE3E,eAAM4E;AAAtB,KAA6BL,aAA7B,CADF,eAEE;AAAK,IAAA,SAAS,EAAE,yBAAWvE,eAAM4E,IAAjB,EAAuBnB,QAAQ,IAAIzD,eAAM6E,OAAzC;AAAhB,kBACE,6BAAC,6CAAD;AACE,IAAA,KAAK,EAAEtC,KADT;AAEE,IAAA,SAAS,EAAE,yBAAWvC,eAAM8E,KAAjB,EAAwB;AAAC,OAAC9E,eAAM+E,IAAP,GAActB;AAAf,KAAxB;AAFb,IADF,CAFF,CADQ,gBAWR,6BAAC,6CAAD;AACE,IAAA,KAAK,EAAElB,KADT;AAEE,IAAA,SAAS,EAAE,yBAAWvC,eAAM8E,KAAjB,EAAwB;AAAC,OAAC9E,eAAM+E,IAAP,GAActB;AAAf,KAAxB;AAFb,IArBJ,CAFF,eA6BE;AAAK,IAAA,SAAS,EAAE,yBAAWzD,eAAMW,OAAjB,EAA0B8C,QAAQ,IAAIzD,eAAMgF,aAA5C;AAAhB,kBACE;AAAI,IAAA,SAAS,EAAEhF,eAAMiF;AAArB,KAA4B7B,KAA5B,CADF,CA7BF,CAJF,EAqCG,CAACD,SAAD,gBAAa;AAAK,IAAA,SAAS,EAAEnD,eAAM2B;AAAtB,KAAoCA,WAApC,CAAb,GAAsE,IArCzE,EAsCGsC,QAtCH,CADF;AA0CD,CA9KD;;AAgLA1C,cAAc,CAAC2D,YAAf,GAA8B;AAC5BhD,EAAAA,IAAI,EAAEiD,kBAASC,iBAAT,CAA2BlD;AADL,CAA9B;AAIAlB,cAAc,CAACqE,SAAf,2CAA2B;AACzBpE,EAAAA,QAAQ,EAAEqE,mBAAUC,IADK;AAEzB7E,EAAAA,MAAM,EAAE8E,wBAAeH,SAAf,CAAyB3E,MAFR;AAGzBQ,EAAAA,QAAQ,EAAEoE,mBAAUG;AAHK,CAA3B;AAMAlE,cAAc,CAAC8D,SAAf,2CAA2B;AACzB7D,EAAAA,KAAK,EAAE8D,mBAAUI,MADQ;AAEzBhE,EAAAA,WAAW,EAAE4D,mBAAUI,MAFE;AAGzB/D,EAAAA,WAAW,EAAE2D,mBAAUI,MAHE;AAIzB9D,EAAAA,IAAI,EAAE0D,mBAAUI,MAJS;AAKzBrF,EAAAA,OAAO,EAAEiF,mBAAUK,OAAV,CAAkBH,wBAAeH,SAAf,CAAyB3E,MAA3C,CALgB;AAMzBQ,EAAAA,QAAQ,EAAEoE,mBAAUG,IANK;AAOzB5D,EAAAA,OAAO,EAAEyD,mBAAUG,IAPM;AAQzBxE,EAAAA,QAAQ,EAAEqE,mBAAUC,IARK;AASzBzD,EAAAA,QAAQ,EAAEwD,mBAAUC,IATK;AAUzBtD,EAAAA,QAAQ,EAAEqD,mBAAUC,IAVK;AAWzBxD,EAAAA,QAAQ,EAAEuD,mBAAUC,IAXK;AAYzBvD,EAAAA,KAAK,EAAEsD,mBAAUI,MAZQ;AAazBjE,EAAAA,KAAK,EAAE6D,mBAAUM,KAAV,CAAgB,oBAAK9F,UAAL,CAAhB;AAbkB,CAA3B;eAgBeyB,c","sourcesContent":["import React, {useState, useEffect, useRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {map, pipe, join, filter, get, set, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaCompositionNavigationArrowDown as ArrowDown,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport TitledCheckbox from '../titled-checkbox';\nimport Provider from '../../atom/provider';\nimport Checkbox from '../../atom/input-checkbox';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n cockpit: style.cockpit,\n sidebar: style.sidebar,\n coorpmanager: style.coorpmanager\n};\n\nexport const useChoices = options => {\n const choicesRef = useRef(options);\n\n const getChoices = () => {\n return choicesRef.current;\n };\n\n const setChoices = choice => {\n const choices = set(`[${choice.i}].selected`, !choice.selected, getChoices());\n\n choicesRef.current = choices.filter(c => c.selected);\n };\n\n return [getChoices, setChoices];\n};\n\nconst CMMultipleView = ({multiple, choice, onChange}) => {\n const handleChange = useCallback(\n checked => {\n if (!multiple) {\n return onChange(choice);\n }\n return onChange({...choice, selected: checked});\n },\n [onChange, choice, multiple]\n );\n\n return multiple ? (\n <div className={style.item}>\n <Checkbox\n titleStyle=\"inherit\"\n checked={choice.selected}\n onChange={handleChange}\n noLabelMargins\n title={choice.name}\n />\n </div>\n ) : (\n <span className={style.item} onClick={handleChange} title={choice.name}>\n {choice.name}\n </span>\n );\n};\n\nconst SelectMultiple = (\n {\n title,\n options,\n theme,\n placeholder,\n description,\n hint,\n multiple,\n onChange,\n onError,\n modified = false,\n required = false,\n error = '',\n disabled = false\n },\n {skin}\n) => {\n const [isOpened, updateIsOpened] = useState(false);\n const [getChoices, setChoices] = useChoices(options);\n const nodeRef = useRef(null);\n\n const defaultColor = get('common.primary', skin);\n const black = get('common.black', skin);\n\n const handleOnClick = useCallback(\n e => {\n if (disabled) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n updateIsOpened(prev => !prev);\n },\n [disabled]\n );\n\n const closeHandle = useCallback(e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n updateIsOpened(false);\n }\n }, []);\n\n const handleChange = useCallback(\n choice => {\n // if multiple prop is turned on\n // we return all selected choices\n if (multiple) {\n setChoices(choice);\n\n return onChange(getChoices());\n }\n\n return onChange(choice);\n },\n [multiple, onChange, setChoices, getChoices]\n );\n\n useEffect(() => {\n document.addEventListener('click', closeHandle);\n document.addEventListener('touchstart', closeHandle);\n\n return () => {\n document.removeEventListener('click', closeHandle);\n document.removeEventListener('touchstart', closeHandle);\n };\n }, [closeHandle]);\n\n const isCMTheme = theme === 'coorpmanager';\n\n const lines = map.convert({cap: false})((choice, i) => {\n return (\n <li key={i} className={style.choice}>\n {isCMTheme ? (\n <CMMultipleView multiple={multiple} choice={{...choice, i}} onChange={handleChange} />\n ) : (\n <TitledCheckbox\n onToggle={handleChange}\n choice={{...choice, i}}\n background={defaultColor}\n />\n )}\n </li>\n );\n }, options);\n\n const selection = pipe(filter({selected: true}), map('name'), join(', '))(options);\n\n const _title = title && `${title}${required ? ' *' : ''}`;\n\n const isActive = isOpened === true;\n\n const titleView = title ? (\n <span\n className={classnames(\n style.title,\n isCMTheme && selection && style.titleWithSelection,\n isCMTheme && isEmpty(selection) && style.noValue,\n isActive && style.active\n )}\n >\n {_title}\n {isCMTheme ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null}\n </span>\n ) : null;\n\n const hintView =\n isCMTheme && !isActive ? (\n <div\n className={style.hint}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n\n const mainClass = theme ? themeStyle[theme] : style.default;\n const showPlaceholder = isCMTheme && isActive;\n const behaviourClassName = getClassState(\n style.default,\n style.modified,\n style.error,\n modified,\n error\n );\n\n const errorIconView = error ? <ErrorIcon onClick={onError} className={style.errorIcon} /> : null;\n\n return (\n <div\n className={classnames(mainClass, behaviourClassName, disabled && style.disabled)}\n ref={nodeRef}\n >\n <label>\n {!isCMTheme && titleView}\n <div className={style.select} title={selection || placeholder} onClick={handleOnClick}>\n {isCMTheme && titleView}\n <span\n className={classnames(\n style.selection,\n isCMTheme && isEmpty(selection) && style.noselection\n )}\n >\n {selection || !isCMTheme || (showPlaceholder && placeholder) || null}\n </span>\n {isCMTheme ? (\n <div className={style.iconsWrapper}>\n <div className={style.flex}>{errorIconView}</div>\n <div className={classnames(style.flex, isActive && style.clicked)}>\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n </div>\n </div>\n ) : (\n <ArrowDown\n color={black}\n className={classnames(style.arrow, {[style.down]: isActive})}\n />\n )}\n </div>\n <div className={classnames(style.choices, isActive && style.activeChoices)}>\n <ul className={style.list}>{lines}</ul>\n </div>\n </label>\n {!isCMTheme ? <div className={style.description}>{description}</div> : null}\n {hintView}\n </div>\n );\n};\n\nSelectMultiple.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nCMMultipleView.propTypes = {\n multiple: PropTypes.bool,\n choice: TitledCheckbox.propTypes.choice,\n onChange: PropTypes.func\n};\n\nSelectMultiple.propTypes = {\n title: PropTypes.string,\n placeholder: PropTypes.string,\n description: PropTypes.string,\n hint: PropTypes.string,\n options: PropTypes.arrayOf(TitledCheckbox.propTypes.choice),\n onChange: PropTypes.func,\n onError: PropTypes.func,\n multiple: PropTypes.bool,\n modified: PropTypes.bool,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n error: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle))\n};\n\nexport default SelectMultiple;\n"],"file":"index.js"}
|
|
@@ -8,6 +8,14 @@ var _renderComponent = _interopRequireDefault(require("../../../test/helpers/ren
|
|
|
8
8
|
|
|
9
9
|
var _ = _interopRequireDefault(require(".."));
|
|
10
10
|
|
|
11
|
+
var _checkedCmThemeDisabled = _interopRequireDefault(require("./fixtures/checked-cm-theme-disabled"));
|
|
12
|
+
|
|
13
|
+
var _checkedCmThemeError = _interopRequireDefault(require("./fixtures/checked-cm-theme-error"));
|
|
14
|
+
|
|
15
|
+
var _checkedCmThemeMultiple = _interopRequireDefault(require("./fixtures/checked-cm-theme-multiple"));
|
|
16
|
+
|
|
17
|
+
var _checkedCmTheme = _interopRequireDefault(require("./fixtures/checked-cm-theme"));
|
|
18
|
+
|
|
11
19
|
var _checkedCockpitTheme = _interopRequireDefault(require("./fixtures/checked-cockpit-theme"));
|
|
12
20
|
|
|
13
21
|
var _checkedSetupTheme = _interopRequireDefault(require("./fixtures/checked-setup-theme"));
|
|
@@ -28,6 +36,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
28
36
|
t.not(value, undefined, `PropType for "Molecule.MoleculeSelectMultiple.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
|
|
29
37
|
});
|
|
30
38
|
});
|
|
39
|
+
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedCmThemeDisabled › should be rendered', _renderComponent.default, _.default, _checkedCmThemeDisabled.default);
|
|
40
|
+
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedCmThemeError › should be rendered', _renderComponent.default, _.default, _checkedCmThemeError.default);
|
|
41
|
+
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedCmThemeMultiple › should be rendered', _renderComponent.default, _.default, _checkedCmThemeMultiple.default);
|
|
42
|
+
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedCmTheme › should be rendered', _renderComponent.default, _.default, _checkedCmTheme.default);
|
|
31
43
|
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedCockpitTheme › should be rendered', _renderComponent.default, _.default, _checkedCockpitTheme.default);
|
|
32
44
|
(0, _ava.default)('Molecule › MoleculeSelectMultiple › CheckedSetupTheme › should be rendered', _renderComponent.default, _.default, _checkedSetupTheme.default);
|
|
33
45
|
(0, _ava.default)('Molecule › MoleculeSelectMultiple › Checked › should be rendered', _renderComponent.default, _.default, _checked.default);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecule/select-multiple/test/fixtures.js"],"names":["t","pass","MoleculeSelectMultiple","propTypes","value","key","not","undefined","renderComponentMacro","fixtureCheckedCockpitTheme","fixtureCheckedSetupTheme","fixtureChecked","fixtureDefault","fixtureSetupThemeError","fixtureSetupTheme"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,iEAAL,EAAwEA,CAAC,IAAI;AAC3EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAuBC,SAA/B,EAA0C,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACxDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,2DAA0DF,GAAI,mEAAvF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,8EAAL,
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/select-multiple/test/fixtures.js"],"names":["t","pass","MoleculeSelectMultiple","propTypes","value","key","not","undefined","renderComponentMacro","fixtureCheckedCmThemeDisabled","fixtureCheckedCmThemeError","fixtureCheckedCmThemeMultiple","fixtureCheckedCmTheme","fixtureCheckedCockpitTheme","fixtureCheckedSetupTheme","fixtureChecked","fixtureDefault","fixtureSetupThemeError","fixtureSetupTheme"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,iEAAL,EAAwEA,CAAC,IAAI;AAC3EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAAuBC,SAA/B,EAA0C,CAACC,KAAD,EAAQC,GAAR,KAAgB;AACxDL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,2DAA0DF,GAAI,mEAAvF;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,iFAAL,EAAwFG,wBAAxF,EAA8GN,SAA9G,EAAsIO,+BAAtI;AACA,kBAAK,8EAAL,EAAqFD,wBAArF,EAA2GN,SAA3G,EAAmIQ,4BAAnI;AACA,kBAAK,iFAAL,EAAwFF,wBAAxF,EAA8GN,SAA9G,EAAsIS,+BAAtI;AACA,kBAAK,yEAAL,EAAgFH,wBAAhF,EAAsGN,SAAtG,EAA8HU,uBAA9H;AACA,kBAAK,8EAAL,EAAqFJ,wBAArF,EAA2GN,SAA3G,EAAmIW,4BAAnI;AACA,kBAAK,4EAAL,EAAmFL,wBAAnF,EAAyGN,SAAzG,EAAiIY,0BAAjI;AACA,kBAAK,kEAAL,EAAyEN,wBAAzE,EAA+FN,SAA/F,EAAuHa,gBAAvH;AACA,kBAAK,kEAAL,EAAyEP,wBAAzE,EAA+FN,SAA/F,EAAuHc,gBAAvH;AACA,kBAAK,0EAAL,EAAiFR,wBAAjF,EAAuGN,SAAvG,EAA+He,wBAA/H;AACA,kBAAK,qEAAL,EAA4ET,wBAA5E,EAAkGN,SAAlG,EAA0HgB,mBAA1H","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeSelectMultiple from '..';\nimport fixtureCheckedCmThemeDisabled from './fixtures/checked-cm-theme-disabled';\nimport fixtureCheckedCmThemeError from './fixtures/checked-cm-theme-error';\nimport fixtureCheckedCmThemeMultiple from './fixtures/checked-cm-theme-multiple';\nimport fixtureCheckedCmTheme from './fixtures/checked-cm-theme';\nimport fixtureCheckedCockpitTheme from './fixtures/checked-cockpit-theme';\nimport fixtureCheckedSetupTheme from './fixtures/checked-setup-theme';\nimport fixtureChecked from './fixtures/checked';\nimport fixtureDefault from './fixtures/default';\nimport fixtureSetupThemeError from './fixtures/setup-theme-error';\nimport fixtureSetupTheme from './fixtures/setup-theme';\n\ntest('Molecule › MoleculeSelectMultiple > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeSelectMultiple.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeSelectMultiple.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeSelectMultiple › CheckedCmThemeDisabled › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedCmThemeDisabled);\ntest('Molecule › MoleculeSelectMultiple › CheckedCmThemeError › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedCmThemeError);\ntest('Molecule › MoleculeSelectMultiple › CheckedCmThemeMultiple › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedCmThemeMultiple);\ntest('Molecule › MoleculeSelectMultiple › CheckedCmTheme › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedCmTheme);\ntest('Molecule › MoleculeSelectMultiple › CheckedCockpitTheme › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedCockpitTheme);\ntest('Molecule › MoleculeSelectMultiple › CheckedSetupTheme › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureCheckedSetupTheme);\ntest('Molecule › MoleculeSelectMultiple › Checked › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureChecked);\ntest('Molecule › MoleculeSelectMultiple › Default › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureDefault);\ntest('Molecule › MoleculeSelectMultiple › SetupThemeError › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureSetupThemeError);\ntest('Molecule › MoleculeSelectMultiple › SetupTheme › should be rendered', renderComponentMacro, MoleculeSelectMultiple, fixtureSetupTheme);\n"],"file":"fixtures.js"}
|
|
@@ -71,8 +71,9 @@ const ShareStatusProvider = ({
|
|
|
71
71
|
|
|
72
72
|
return () => clearTimeout(timeoutId);
|
|
73
73
|
}, [status]);
|
|
74
|
+
const value = (0, _react.useMemo)(() => [status, setStatus], [status]);
|
|
74
75
|
return /*#__PURE__*/_react.default.createElement(StatusContext.Provider, {
|
|
75
|
-
value:
|
|
76
|
+
value: value
|
|
76
77
|
}, children);
|
|
77
78
|
};
|
|
78
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/share/index.js"],"names":["SHARE_STATUS","IDLE","ERROR","SUCCESS","copyTextViaExecCommand","text","textarea","document","createElement","style","border","padding","visibility","position","setAttribute","value","body","appendChild","status","select","setSelectionRange","length","execCommand","error","removeChild","StatusContext","React","createContext","ShareStatusProvider","children","setStatus","timeoutId","DURATION","setTimeout","clearTimeout","ShareFeedback","successWording","errorWording","styles","feedback","errorFeedback","checkIcon","Share","wording","onClick","browserSupportsClipboardWriteText","navigator","clipboard","writeText","copyStatus","container","cta","wrapper","shareIcon","propTypes","PropTypes","node","string"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;;;;;AAEA,MAAMA,YAAY,GAAG;AACnBC,EAAAA,IAAI,EAAE,MADa;AAEnBC,EAAAA,KAAK,EAAE,OAFY;AAGnBC,EAAAA,OAAO,EAAE;AAHU,CAArB;;AAMA,MAAMC,sBAAsB,GAAGC,IAAI,IAAI;AACrC,QAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,UAAvB,CAAjB;AAEAF,EAAAA,QAAQ,CAACG,KAAT,CAAeC,MAAf,GAAwB,GAAxB;AACAJ,EAAAA,QAAQ,CAACG,KAAT,CAAeE,OAAf,GAAyB,GAAzB;AACAL,EAAAA,QAAQ,CAACG,KAAT,CAAeG,UAAf,GAA4B,QAA5B;AACAN,EAAAA,QAAQ,CAACG,KAAT,CAAeI,QAAf,GAA0B,UAA1B;AACAP,EAAAA,QAAQ,CAACQ,YAAT,CAAsB,UAAtB,EAAkC,EAAlC;AACAR,EAAAA,QAAQ,CAACS,KAAT,GAAiBV,IAAjB,CARqC,CAUrC;AACA;;AACAE,EAAAA,QAAQ,CAACS,IAAT,CAAcC,WAAd,CAA0BX,QAA1B;AACA,MAAIY,MAAM,GAAGlB,YAAY,CAACC,IAA1B;;AAEA,MAAI;AACFK,IAAAA,QAAQ,CAACa,MAAT;AACAb,IAAAA,QAAQ,CAACc,iBAAT,CAA2B,CAA3B,EAA8Bd,QAAQ,CAACS,KAAT,CAAeM,MAA7C;AACAd,IAAAA,QAAQ,CAACe,WAAT,CAAqB,MAArB;AACAJ,IAAAA,MAAM,GAAGlB,YAAY,CAACG,OAAtB;AACD,GALD,CAKE,OAAOoB,KAAP,EAAc;AACdL,IAAAA,MAAM,GAAGlB,YAAY,CAACE,KAAtB;AACD,GAtBoC,CAwBrC;AACA;;;AACAK,EAAAA,QAAQ,CAACS,IAAT,CAAcQ,WAAd,CAA0BlB,QAA1B;AAEA,SAAOY,MAAP;AACD,CA7BD;;AA+BA,MAAMO,aAAa,GAAGC,eAAMC,aAAN,CAAoB3B,YAAY,CAACC,IAAjC,CAAtB;;AAEO,MAAM2B,mBAAmB,GAAG,CAAC;AAACC,EAAAA;AAAD,CAAD,KAAgB;AACjD,QAAM,CAACX,MAAD,EAASY,SAAT,IAAsB,qBAAS9B,YAAY,CAACC,IAAtB,CAA5B;AACA,wBAAU,MAAM;AACd,QAAI8B,SAAJ;AACA,UAAMC,QAAQ,GAAG,IAAjB;;AACA,QAAId,MAAM,KAAKlB,YAAY,CAACC,IAA5B,EAAkC;AAChC8B,MAAAA,SAAS,GAAGE,UAAU,CAAC,MAAMH,SAAS,CAAC9B,YAAY,CAACC,IAAd,CAAhB,EAAqC+B,QAArC,CAAtB;AACD;;AACD,WAAO,MAAME,YAAY,CAACH,SAAD,CAAzB;AACD,GAPD,EAOG,CAACb,MAAD,CAPH;
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/share/index.js"],"names":["SHARE_STATUS","IDLE","ERROR","SUCCESS","copyTextViaExecCommand","text","textarea","document","createElement","style","border","padding","visibility","position","setAttribute","value","body","appendChild","status","select","setSelectionRange","length","execCommand","error","removeChild","StatusContext","React","createContext","ShareStatusProvider","children","setStatus","timeoutId","DURATION","setTimeout","clearTimeout","ShareFeedback","successWording","errorWording","styles","feedback","errorFeedback","checkIcon","Share","wording","onClick","browserSupportsClipboardWriteText","navigator","clipboard","writeText","copyStatus","container","cta","wrapper","shareIcon","propTypes","PropTypes","node","string"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;;;;;AAEA,MAAMA,YAAY,GAAG;AACnBC,EAAAA,IAAI,EAAE,MADa;AAEnBC,EAAAA,KAAK,EAAE,OAFY;AAGnBC,EAAAA,OAAO,EAAE;AAHU,CAArB;;AAMA,MAAMC,sBAAsB,GAAGC,IAAI,IAAI;AACrC,QAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,UAAvB,CAAjB;AAEAF,EAAAA,QAAQ,CAACG,KAAT,CAAeC,MAAf,GAAwB,GAAxB;AACAJ,EAAAA,QAAQ,CAACG,KAAT,CAAeE,OAAf,GAAyB,GAAzB;AACAL,EAAAA,QAAQ,CAACG,KAAT,CAAeG,UAAf,GAA4B,QAA5B;AACAN,EAAAA,QAAQ,CAACG,KAAT,CAAeI,QAAf,GAA0B,UAA1B;AACAP,EAAAA,QAAQ,CAACQ,YAAT,CAAsB,UAAtB,EAAkC,EAAlC;AACAR,EAAAA,QAAQ,CAACS,KAAT,GAAiBV,IAAjB,CARqC,CAUrC;AACA;;AACAE,EAAAA,QAAQ,CAACS,IAAT,CAAcC,WAAd,CAA0BX,QAA1B;AACA,MAAIY,MAAM,GAAGlB,YAAY,CAACC,IAA1B;;AAEA,MAAI;AACFK,IAAAA,QAAQ,CAACa,MAAT;AACAb,IAAAA,QAAQ,CAACc,iBAAT,CAA2B,CAA3B,EAA8Bd,QAAQ,CAACS,KAAT,CAAeM,MAA7C;AACAd,IAAAA,QAAQ,CAACe,WAAT,CAAqB,MAArB;AACAJ,IAAAA,MAAM,GAAGlB,YAAY,CAACG,OAAtB;AACD,GALD,CAKE,OAAOoB,KAAP,EAAc;AACdL,IAAAA,MAAM,GAAGlB,YAAY,CAACE,KAAtB;AACD,GAtBoC,CAwBrC;AACA;;;AACAK,EAAAA,QAAQ,CAACS,IAAT,CAAcQ,WAAd,CAA0BlB,QAA1B;AAEA,SAAOY,MAAP;AACD,CA7BD;;AA+BA,MAAMO,aAAa,GAAGC,eAAMC,aAAN,CAAoB3B,YAAY,CAACC,IAAjC,CAAtB;;AAEO,MAAM2B,mBAAmB,GAAG,CAAC;AAACC,EAAAA;AAAD,CAAD,KAAgB;AACjD,QAAM,CAACX,MAAD,EAASY,SAAT,IAAsB,qBAAS9B,YAAY,CAACC,IAAtB,CAA5B;AACA,wBAAU,MAAM;AACd,QAAI8B,SAAJ;AACA,UAAMC,QAAQ,GAAG,IAAjB;;AACA,QAAId,MAAM,KAAKlB,YAAY,CAACC,IAA5B,EAAkC;AAChC8B,MAAAA,SAAS,GAAGE,UAAU,CAAC,MAAMH,SAAS,CAAC9B,YAAY,CAACC,IAAd,CAAhB,EAAqC+B,QAArC,CAAtB;AACD;;AACD,WAAO,MAAME,YAAY,CAACH,SAAD,CAAzB;AACD,GAPD,EAOG,CAACb,MAAD,CAPH;AASA,QAAMH,KAAK,GAAG,oBAAQ,MAAM,CAACG,MAAD,EAASY,SAAT,CAAd,EAAmC,CAACZ,MAAD,CAAnC,CAAd;AAEA,sBAAO,6BAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEH;AAA/B,KAAuCc,QAAvC,CAAP;AACD,CAdM;;;;AAgBA,MAAMM,aAAa,GAAG,CAAC;AAACC,EAAAA,cAAD;AAAiBC,EAAAA;AAAjB,CAAD,KAAoC;AAC/D,QAAM,CAACnB,MAAD,IAAW,uBAAWO,aAAX,CAAjB;AACA,MAAIP,MAAM,KAAKlB,YAAY,CAACC,IAA5B,EAAkC,OAAO,IAAP;AAElC,sBACE;AACE,IAAA,SAAS,EAAE,yBAAWqC,eAAOC,QAAlB,EAA4BrB,MAAM,KAAKlB,YAAY,CAACE,KAAxB,IAAiCoC,eAAOE,aAApE;AADb,KAGGtB,MAAM,KAAKlB,YAAY,CAACG,OAAxB,gBACC,6BAAC,2CAAD;AAAW,IAAA,SAAS,EAAEmC,eAAOG,SAA7B;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAmD,IAAA,MAAM,EAAE;AAA3D,IADD,gBAGC,6BAAC,+CAAD;AAAe,IAAA,SAAS,EAAEH,eAAOG,SAAjC;AAA4C,IAAA,KAAK,EAAE,EAAnD;AAAuD,IAAA,MAAM,EAAE;AAA/D,IANJ,eAQE,wCAAIvB,MAAM,KAAKlB,YAAY,CAACG,OAAxB,GAAkCiC,cAAlC,GAAmDC,YAAvD,CARF,CADF;AAYD,CAhBM;;;;AAkBP,MAAMK,KAAK,GAAG,CAAC;AAACjC,EAAAA,KAAD;AAAQJ,EAAAA,IAAR;AAAcsC,EAAAA;AAAd,CAAD,KAA4B;AACxC,QAAM,GAAGb,SAAH,IAAgB,uBAAWL,aAAX,CAAtB;AACA,QAAMmB,OAAO,GAAG,wBAAY,YAAY;AACtC,UAAMC,iCAAiC,GACrC,eAAeC,SAAf,IAA4B,eAAeA,SAAS,CAACC,SADvD;;AAEA,QAAIF,iCAAJ,EAAuC;AACrC,UAAI;AACF,cAAMC,SAAS,CAACC,SAAV,CAAoBC,SAApB,CAA8B3C,IAA9B,CAAN;AACAyB,QAAAA,SAAS,CAAC9B,YAAY,CAACG,OAAd,CAAT;AACD,OAHD,CAGE,OAAOoB,KAAP,EAAc;AACdO,QAAAA,SAAS,CAAC9B,YAAY,CAACE,KAAd,CAAT;AACD;;AACD;AACD,KARD,MAQO;AACL,YAAM+C,UAAU,GAAG7C,sBAAsB,CAACC,IAAD,CAAzC;AACAyB,MAAAA,SAAS,CAACmB,UAAD,CAAT;AACD;;AACD;AACD,GAhBe,EAgBb,CAACnB,SAAD,CAhBa,CAAhB;AAkBA,sBACE;AAAK,IAAA,SAAS,GAAGQ,eAAOY,SAAP,EAAkBzC,KAArB;AAAd,kBACE,6BAAC,aAAD;AAAM,IAAA,OAAO,EAAEmC,OAAf;AAAwB,IAAA,SAAS,EAAEN,eAAOa,GAA1C;AAA+C,iBAAW;AAA1D,kBACE;AAAK,IAAA,SAAS,EAAEb,eAAOc;AAAvB,kBACE,6BAAC,2CAAD;AAAW,IAAA,SAAS,EAAEd,eAAOe,SAA7B;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAmD,IAAA,MAAM,EAAE;AAA3D,IADF,eAEE,wCAAIV,OAAJ,CAFF,CADF,CADF,CADF;AAUD,CA9BD;;AAgCAf,mBAAmB,CAAC0B,SAApB,2CAAgC;AAC9BzB,EAAAA,QAAQ,EAAE0B,mBAAUC;AADU,CAAhC;AAIArB,aAAa,CAACmB,SAAd,2CAA0B;AACxBlB,EAAAA,cAAc,EAAEmB,mBAAUE,MADF;AAExBpB,EAAAA,YAAY,EAAEkB,mBAAUE;AAFA,CAA1B;AAKAf,KAAK,CAACY,SAAN,2CAAkB;AAChB7C,EAAAA,KAAK,EAAE8C,mBAAUE,MADD;AAEhBpD,EAAAA,IAAI,EAAEkD,mBAAUE,MAFA;AAGhBd,EAAAA,OAAO,EAAEY,mBAAUE;AAHH,CAAlB;eAMef,K","sourcesContent":["import React, {useState, useMemo, useCallback, useContext, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {\n NovaCompositionCoorpacademyCheck as CheckIcon,\n NovaCompositionCoorpacademyShare as ShareIcon,\n NovaCompositionCoorpacademyAttention as AttentionIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../../atom/link';\nimport styles from './style.css';\n\nconst SHARE_STATUS = {\n IDLE: 'IDLE',\n ERROR: 'ERROR',\n SUCCESS: 'SUCCESS'\n};\n\nconst copyTextViaExecCommand = text => {\n const textarea = document.createElement('textarea');\n\n textarea.style.border = '0';\n textarea.style.padding = '0';\n textarea.style.visibility = 'hidden';\n textarea.style.position = 'absolute';\n textarea.setAttribute('readonly', '');\n textarea.value = text;\n\n // Element.append is not supported on IE11 :/\n // eslint-disable-next-line unicorn/prefer-node-append\n document.body.appendChild(textarea);\n let status = SHARE_STATUS.IDLE;\n\n try {\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n document.execCommand('copy');\n status = SHARE_STATUS.SUCCESS;\n } catch (error) {\n status = SHARE_STATUS.ERROR;\n }\n\n // Element.remove is not supported on IE11 :/\n // eslint-disable-next-line unicorn/prefer-node-remove\n document.body.removeChild(textarea);\n\n return status;\n};\n\nconst StatusContext = React.createContext(SHARE_STATUS.IDLE);\n\nexport const ShareStatusProvider = ({children}) => {\n const [status, setStatus] = useState(SHARE_STATUS.IDLE);\n useEffect(() => {\n let timeoutId;\n const DURATION = 3000;\n if (status !== SHARE_STATUS.IDLE) {\n timeoutId = setTimeout(() => setStatus(SHARE_STATUS.IDLE), DURATION);\n }\n return () => clearTimeout(timeoutId);\n }, [status]);\n\n const value = useMemo(() => [status, setStatus], [status]);\n\n return <StatusContext.Provider value={value}>{children}</StatusContext.Provider>;\n};\n\nexport const ShareFeedback = ({successWording, errorWording}) => {\n const [status] = useContext(StatusContext);\n if (status === SHARE_STATUS.IDLE) return null;\n\n return (\n <div\n className={classnames(styles.feedback, status === SHARE_STATUS.ERROR && styles.errorFeedback)}\n >\n {status === SHARE_STATUS.SUCCESS ? (\n <CheckIcon className={styles.checkIcon} width={13} height={13} />\n ) : (\n <AttentionIcon className={styles.checkIcon} width={13} height={13} />\n )}\n <p>{status === SHARE_STATUS.SUCCESS ? successWording : errorWording}</p>\n </div>\n );\n};\n\nconst Share = ({style, text, wording}) => {\n const [, setStatus] = useContext(StatusContext);\n const onClick = useCallback(async () => {\n const browserSupportsClipboardWriteText =\n 'clipboard' in navigator && 'writeText' in navigator.clipboard;\n if (browserSupportsClipboardWriteText) {\n try {\n await navigator.clipboard.writeText(text);\n setStatus(SHARE_STATUS.SUCCESS);\n } catch (error) {\n setStatus(SHARE_STATUS.ERROR);\n }\n return;\n } else {\n const copyStatus = copyTextViaExecCommand(text);\n setStatus(copyStatus);\n }\n return;\n }, [setStatus]);\n\n return (\n <div className={(styles.container, style)}>\n <Link onClick={onClick} className={styles.cta} data-name={'share-button'}>\n <div className={styles.wrapper}>\n <ShareIcon className={styles.shareIcon} width={18} height={18} />\n <p>{wording}</p>\n </div>\n </Link>\n </div>\n );\n};\n\nShareStatusProvider.propTypes = {\n children: PropTypes.node\n};\n\nShareFeedback.propTypes = {\n successWording: PropTypes.string,\n errorWording: PropTypes.string\n};\n\nShare.propTypes = {\n style: PropTypes.string,\n text: PropTypes.string,\n wording: PropTypes.string\n};\n\nexport default Share;\n"],"file":"index.js"}
|
|
@@ -120,8 +120,9 @@ const buildSections = sections => {
|
|
|
120
120
|
});
|
|
121
121
|
};
|
|
122
122
|
|
|
123
|
-
const
|
|
124
|
-
|
|
123
|
+
const BuildAction = ({
|
|
124
|
+
action
|
|
125
|
+
}) => {
|
|
125
126
|
const {
|
|
126
127
|
onClick,
|
|
127
128
|
text,
|
|
@@ -129,6 +130,7 @@ const buildAction = action => {
|
|
|
129
130
|
'aria-label': ariaLabel
|
|
130
131
|
} = action;
|
|
131
132
|
const handleClick = (0, _react.useMemo)(() => () => onClick(), [onClick]);
|
|
133
|
+
if (!action) return null;
|
|
132
134
|
const buttonProps = {
|
|
133
135
|
type: 'text',
|
|
134
136
|
label: text,
|
|
@@ -152,7 +154,6 @@ const WizardSummary = props => {
|
|
|
152
154
|
action
|
|
153
155
|
} = props;
|
|
154
156
|
const sectionsView = buildSections(sections);
|
|
155
|
-
const actionView = buildAction(action);
|
|
156
157
|
const idSwitch = 'open-summary-wizard';
|
|
157
158
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
158
159
|
className: _style.default.container
|
|
@@ -178,9 +179,19 @@ const WizardSummary = props => {
|
|
|
178
179
|
className: _style.default.summarySections
|
|
179
180
|
}, sectionsView)), /*#__PURE__*/_react.default.createElement("div", {
|
|
180
181
|
className: _style.default.actionZone
|
|
181
|
-
},
|
|
182
|
+
}, /*#__PURE__*/_react.default.createElement(BuildAction, {
|
|
183
|
+
action: action
|
|
184
|
+
})));
|
|
182
185
|
};
|
|
183
186
|
|
|
187
|
+
BuildAction.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
188
|
+
action: _propTypes.default.shape({
|
|
189
|
+
icon: _propTypes.default.string,
|
|
190
|
+
text: _propTypes.default.string,
|
|
191
|
+
onClick: _propTypes.default.func,
|
|
192
|
+
'aria-label': _propTypes.default.string
|
|
193
|
+
})
|
|
194
|
+
} : {};
|
|
184
195
|
WizardSummary.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
185
196
|
title: _propTypes.default.string,
|
|
186
197
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
@@ -203,12 +214,7 @@ WizardSummary.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
203
214
|
})])),
|
|
204
215
|
counterText: _propTypes.default.string
|
|
205
216
|
})),
|
|
206
|
-
action:
|
|
207
|
-
icon: _propTypes.default.string,
|
|
208
|
-
text: _propTypes.default.string,
|
|
209
|
-
onClick: _propTypes.default.func,
|
|
210
|
-
'aria-label': _propTypes.default.string
|
|
211
|
-
})
|
|
217
|
+
action: BuildAction.propTypes.action
|
|
212
218
|
} : {};
|
|
213
219
|
var _default = WizardSummary;
|
|
214
220
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/wizard-summary/index.js"],"names":["buildItemsOfSection","items","map","item","index","type","title","style","value","category","label","author","unsaved","contentWrapper","contentCounter","contentItem","content","contentTitle","__html","text","valueSimpleText","buildSectionHeader","section","counterText","sectionHeader","buildSections","sections","itemsView","sectionWrapper","buildAction","action","onClick","icon","ariaLabel","handleClick","buttonProps","position","button","WizardSummary","props","sectionsView","actionView","idSwitch","container","desktopSummaryTitle","checkbox","summary","tabletSummaryHeader","tabletSummaryTitle","tabletSummaryIcon","summarySections","actionZone","propTypes","PropTypes","string","arrayOf","shape","oneOfType","bool","oneOf","func"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaCompositionNavigationArrowDown as ArrowDownIcon} from '@coorpacademy/nova-icons';\nimport ContentBadge from '../../atom/content-badge';\nimport ButtonLink from '../../atom/button-link';\nimport style from './style.css';\n\nconst buildItemsOfSection = items => {\n return items.map((item, index) => {\n const {type} = item;\n switch (type) {\n case 'mainElement':\n return (\n <li key={`${item.title}-${index}`}>\n <span className={style.title}>{item.title}</span>\n <span className={style.value}>{item.value}</span>\n </li>\n );\n case 'content': {\n const {category, label, title, author, unsaved = false} = item;\n return (\n <li className={style.contentWrapper} key={`${title}-${index}`}>\n <span className={style.contentCounter}>{index + 1}</span>\n <div className={style.contentItem}>\n <div className={style.content}>\n <ContentBadge category={category} label={label} />\n <span\n className={classnames(style.contentTitle, unsaved && style.unsaved)}\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n {author ? <span className={style.author}>{author}</span> : null}\n </div>\n </li>\n );\n }\n case 'text':\n default: {\n const {text, unsaved = false} = item;\n return (\n <li key={`${item.text}-${index}`}>\n <span className={classnames(style.valueSimpleText, unsaved && style.unsaved)}>\n {text}\n </span>\n </li>\n );\n }\n }\n });\n};\n\nconst buildSectionHeader = section => {\n const {title, counterText} = section;\n if (!title) {\n return null;\n }\n return (\n <div className={style.sectionHeader}>\n <span className={style.title}>{title}</span>\n {counterText ? <span className={style.counterText}>{counterText}</span> : null}\n </div>\n );\n};\n\nconst buildSections = sections => {\n return sections.map((section, index) => {\n const sectionHeader = buildSectionHeader(section);\n const itemsView = buildItemsOfSection(section.items);\n return (\n <div key={`summary-section-${index}`} data-step={index} className={style.sectionWrapper}>\n {sectionHeader}\n <ul>{itemsView}</ul>\n </div>\n );\n });\n};\n\nconst buildAction = action => {\n if (!action) return null;\n\n const {onClick, text, icon, 'aria-label': ariaLabel} = action;\n const handleClick = useMemo(() => () => onClick(), [onClick]);\n const buttonProps = {\n type: 'text',\n label: text,\n 'aria-label': ariaLabel,\n 'data-name': `${icon}-button`,\n onClick: handleClick,\n icon: {\n position: 'left',\n type: icon\n }\n };\n\n return (\n <div className={style.button}>\n <ButtonLink {...buttonProps} />\n </div>\n );\n};\n\nconst WizardSummary = props => {\n const {title, sections, action} = props;\n const sectionsView = buildSections(sections);\n const actionView = buildAction(action);\n const idSwitch = 'open-summary-wizard';\n\n return (\n <div className={style.container}>\n <span className={style.desktopSummaryTitle}>{title}</span>\n <input\n type=\"checkbox\"\n id={idSwitch}\n name=\"toogle\"\n title={idSwitch}\n className={style.checkbox}\n />\n <div className={style.summary}>\n <div className={style.tabletSummaryHeader}>\n <label htmlFor={idSwitch}>\n <span className={style.tabletSummaryTitle}>{title}</span>\n <ArrowDownIcon className={style.tabletSummaryIcon} />\n </label>\n </div>\n <div className={style.summarySections}>{sectionsView}</div>\n </div>\n <div className={style.actionZone}>{actionView}</div>\n </div>\n );\n};\n\nWizardSummary.propTypes = {\n title: PropTypes.string,\n sections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n type: PropTypes.string,\n title: PropTypes.string,\n value: PropTypes.string\n }),\n PropTypes.shape({\n type: PropTypes.string,\n text: PropTypes.string,\n unsaved: PropTypes.bool\n }),\n PropTypes.shape({\n type: PropTypes.string,\n category: PropTypes.oneOf([\n 'base',\n 'advanced',\n 'coach',\n 'chapter',\n 'scorm',\n 'video',\n 'article',\n 'podcast'\n ]),\n title: PropTypes.string,\n label: PropTypes.string,\n author: PropTypes.string,\n unsaved: PropTypes.bool\n })\n ])\n ),\n counterText: PropTypes.string\n })\n ),\n action: PropTypes.shape({\n icon: PropTypes.string,\n text: PropTypes.string,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n};\n\nexport default WizardSummary;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/wizard-summary/index.js"],"names":["buildItemsOfSection","items","map","item","index","type","title","style","value","category","label","author","unsaved","contentWrapper","contentCounter","contentItem","content","contentTitle","__html","text","valueSimpleText","buildSectionHeader","section","counterText","sectionHeader","buildSections","sections","itemsView","sectionWrapper","BuildAction","action","onClick","icon","ariaLabel","handleClick","buttonProps","position","button","WizardSummary","props","sectionsView","idSwitch","container","desktopSummaryTitle","checkbox","summary","tabletSummaryHeader","tabletSummaryTitle","tabletSummaryIcon","summarySections","actionZone","propTypes","PropTypes","shape","string","func","arrayOf","oneOfType","bool","oneOf"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {NovaCompositionNavigationArrowDown as ArrowDownIcon} from '@coorpacademy/nova-icons';\nimport ContentBadge from '../../atom/content-badge';\nimport ButtonLink from '../../atom/button-link';\nimport style from './style.css';\n\nconst buildItemsOfSection = items => {\n return items.map((item, index) => {\n const {type} = item;\n switch (type) {\n case 'mainElement':\n return (\n <li key={`${item.title}-${index}`}>\n <span className={style.title}>{item.title}</span>\n <span className={style.value}>{item.value}</span>\n </li>\n );\n case 'content': {\n const {category, label, title, author, unsaved = false} = item;\n return (\n <li className={style.contentWrapper} key={`${title}-${index}`}>\n <span className={style.contentCounter}>{index + 1}</span>\n <div className={style.contentItem}>\n <div className={style.content}>\n <ContentBadge category={category} label={label} />\n <span\n className={classnames(style.contentTitle, unsaved && style.unsaved)}\n title={title}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n </div>\n {author ? <span className={style.author}>{author}</span> : null}\n </div>\n </li>\n );\n }\n case 'text':\n default: {\n const {text, unsaved = false} = item;\n return (\n <li key={`${item.text}-${index}`}>\n <span className={classnames(style.valueSimpleText, unsaved && style.unsaved)}>\n {text}\n </span>\n </li>\n );\n }\n }\n });\n};\n\nconst buildSectionHeader = section => {\n const {title, counterText} = section;\n if (!title) {\n return null;\n }\n return (\n <div className={style.sectionHeader}>\n <span className={style.title}>{title}</span>\n {counterText ? <span className={style.counterText}>{counterText}</span> : null}\n </div>\n );\n};\n\nconst buildSections = sections => {\n return sections.map((section, index) => {\n const sectionHeader = buildSectionHeader(section);\n const itemsView = buildItemsOfSection(section.items);\n return (\n <div key={`summary-section-${index}`} data-step={index} className={style.sectionWrapper}>\n {sectionHeader}\n <ul>{itemsView}</ul>\n </div>\n );\n });\n};\n\nconst BuildAction = ({action}) => {\n const {onClick, text, icon, 'aria-label': ariaLabel} = action;\n const handleClick = useMemo(() => () => onClick(), [onClick]);\n\n if (!action) return null;\n\n const buttonProps = {\n type: 'text',\n label: text,\n 'aria-label': ariaLabel,\n 'data-name': `${icon}-button`,\n onClick: handleClick,\n icon: {\n position: 'left',\n type: icon\n }\n };\n\n return (\n <div className={style.button}>\n <ButtonLink {...buttonProps} />\n </div>\n );\n};\n\nconst WizardSummary = props => {\n const {title, sections, action} = props;\n const sectionsView = buildSections(sections);\n const idSwitch = 'open-summary-wizard';\n\n return (\n <div className={style.container}>\n <span className={style.desktopSummaryTitle}>{title}</span>\n <input\n type=\"checkbox\"\n id={idSwitch}\n name=\"toogle\"\n title={idSwitch}\n className={style.checkbox}\n />\n <div className={style.summary}>\n <div className={style.tabletSummaryHeader}>\n <label htmlFor={idSwitch}>\n <span className={style.tabletSummaryTitle}>{title}</span>\n <ArrowDownIcon className={style.tabletSummaryIcon} />\n </label>\n </div>\n <div className={style.summarySections}>{sectionsView}</div>\n </div>\n <div className={style.actionZone}>\n <BuildAction action={action} />\n </div>\n </div>\n );\n};\n\nBuildAction.propTypes = {\n action: PropTypes.shape({\n icon: PropTypes.string,\n text: PropTypes.string,\n onClick: PropTypes.func,\n 'aria-label': PropTypes.string\n })\n};\n\nWizardSummary.propTypes = {\n title: PropTypes.string,\n sections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n items: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n type: PropTypes.string,\n title: PropTypes.string,\n value: PropTypes.string\n }),\n PropTypes.shape({\n type: PropTypes.string,\n text: PropTypes.string,\n unsaved: PropTypes.bool\n }),\n PropTypes.shape({\n type: PropTypes.string,\n category: PropTypes.oneOf([\n 'base',\n 'advanced',\n 'coach',\n 'chapter',\n 'scorm',\n 'video',\n 'article',\n 'podcast'\n ]),\n title: PropTypes.string,\n label: PropTypes.string,\n author: PropTypes.string,\n unsaved: PropTypes.bool\n })\n ])\n ),\n counterText: PropTypes.string\n })\n ),\n action: BuildAction.propTypes.action\n};\n\nexport default WizardSummary;\n"],"file":"index.js"}
|
|
@@ -39,7 +39,7 @@ const Tab = ({
|
|
|
39
39
|
onClick,
|
|
40
40
|
theme
|
|
41
41
|
}) => {
|
|
42
|
-
const handleOnClick = (0, _react.useMemo)(() => evt => onClick(index, evt), [onClick]);
|
|
42
|
+
const handleOnClick = (0, _react.useMemo)(() => evt => onClick(index, evt), [index, onClick]);
|
|
43
43
|
return children ? /*#__PURE__*/_react.default.createElement("div", {
|
|
44
44
|
"data-name": "accordion",
|
|
45
45
|
className: themeStyle[theme]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/organism/accordion/container/index.js"],"names":["themeStyle","setup","style","setupWrapper","default","wrapper","Tab","children","index","title","isOpen","iconType","onClick","theme","handleOnClick","evt","wrapperHidden","propTypes","Part","content","PropTypes","number","Accordion","props","tabProps","accordion","convert","cap","child","tabProps_","defaultProps","arrayOf","shape"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,KAAK,EAAEC,eAAMC,YADI;AAEjBC,EAAAA,OAAO,EAAEF,eAAMG;AAFE,CAAnB;;AAKA,MAAMC,GAAG,GAAG,CAAC;AAACC,EAAAA,QAAD;AAAWC,EAAAA,KAAX;AAAkBC,EAAAA,KAAlB;AAAyBC,EAAAA,MAAzB;AAAiCC,EAAAA,QAAjC;AAA2CC,EAAAA,OAA3C;AAAoDC,EAAAA;AAApD,CAAD,KAAgE;AAC1E,QAAMC,aAAa,GAAG,oBAAQ,MAAMC,GAAG,IAAIH,OAAO,CAACJ,KAAD,EAAQO,GAAR,CAA5B,EAA0C,
|
|
1
|
+
{"version":3,"sources":["../../../../src/organism/accordion/container/index.js"],"names":["themeStyle","setup","style","setupWrapper","default","wrapper","Tab","children","index","title","isOpen","iconType","onClick","theme","handleOnClick","evt","wrapperHidden","propTypes","Part","content","PropTypes","number","Accordion","props","tabProps","accordion","convert","cap","child","tabProps_","defaultProps","arrayOf","shape"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {get, map, noop} from 'lodash/fp';\nimport Part from '../part';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setupWrapper,\n default: style.wrapper\n};\n\nconst Tab = ({children, index, title, isOpen, iconType, onClick, theme}) => {\n const handleOnClick = useMemo(() => evt => onClick(index, evt), [index, onClick]);\n\n return children ? (\n <div data-name=\"accordion\" className={themeStyle[theme]}>\n <Part\n iconType={iconType}\n title={title}\n content={children}\n isOpen={isOpen}\n theme={theme}\n onClick={handleOnClick}\n />\n </div>\n ) : (\n <div data-name=\"accordion\" className={style.wrapperHidden} />\n );\n};\n\nTab.propTypes = {\n children: Part.propTypes.content,\n index: PropTypes.number,\n title: Part.propTypes.title,\n iconType: Part.propTypes.iconType,\n isOpen: Part.propTypes.isOpen,\n theme: Part.propTypes.theme,\n onClick: Part.propTypes.onClick\n};\n\nconst Accordion = props => {\n const {tabProps, children, theme = 'default', onClick = noop} = props;\n const accordion = map.convert({cap: false})((child, index) => {\n const tabProps_ = get(index, tabProps);\n return (\n <Tab {...tabProps_} key={index} index={index} theme={theme} onClick={onClick}>\n {child}\n </Tab>\n );\n }, children);\n\n return <div>{accordion}</div>;\n};\n\nAccordion.defaultProps = {\n children: []\n};\n\nAccordion.propTypes = {\n children: PropTypes.arrayOf(Tab.propTypes.children),\n tabProps: PropTypes.arrayOf(\n PropTypes.shape({\n title: Tab.propTypes.title,\n iconType: Tab.propTypes.iconType,\n isOpen: Tab.propTypes.isOpen\n })\n ),\n onClick: Tab.propTypes.onClick,\n theme: Tab.propTypes.theme\n};\n\nexport default Accordion;\n"],"file":"index.js"}
|
|
@@ -43,7 +43,7 @@ const Tab = ({
|
|
|
43
43
|
isOpen,
|
|
44
44
|
onUpdateOpenedTab
|
|
45
45
|
}) => {
|
|
46
|
-
const handleOnClick = (0, _react.useMemo)(() => evt => onClick(index, evt), [onClick]);
|
|
46
|
+
const handleOnClick = (0, _react.useMemo)(() => evt => onClick(index, evt), [index, onClick]);
|
|
47
47
|
return children ? /*#__PURE__*/_react.default.createElement("div", {
|
|
48
48
|
"data-name": "accordion",
|
|
49
49
|
className: themeStyle[theme]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/organism/accordion/coorp-manager/index.js"],"names":["themeStyle","setup","style","setupWrapper","default","wrapper","Tab","children","index","title","selected","iconType","onClick","href","type","theme","isOpen","onUpdateOpenedTab","handleOnClick","evt","wrapperHidden","propTypes","Part","content","PropTypes","number","Accordion","props","tabProps","selectedIndex","item","openedTab","updateOpenedTab","tabs","convert","cap","tab","child","undefined","accordion","defaultProps","arrayOf","shape","oneOf"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,UAAU,GAAG;AACjBC,EAAAA,KAAK,EAAEC,eAAMC,YADI;AAEjBC,EAAAA,OAAO,EAAEF,eAAMG;AAFE,CAAnB;;AAKA,MAAMC,GAAG,GAAG,CAAC;AACXC,EAAAA,QADW;AAEXC,EAAAA,KAFW;AAGXC,EAAAA,KAHW;AAIXC,EAAAA,QAJW;AAKXC,EAAAA,QALW;AAMXC,EAAAA,OANW;AAOXC,EAAAA,IAPW;AAQXC,EAAAA,IARW;AASXC,EAAAA,KATW;AAUXC,EAAAA,MAVW;AAWXC,EAAAA;AAXW,CAAD,KAYN;AACJ,QAAMC,aAAa,GAAG,oBAAQ,MAAMC,GAAG,IAAIP,OAAO,CAACJ,KAAD,EAAQW,GAAR,CAA5B,EAA0C,
|
|
1
|
+
{"version":3,"sources":["../../../../src/organism/accordion/coorp-manager/index.js"],"names":["themeStyle","setup","style","setupWrapper","default","wrapper","Tab","children","index","title","selected","iconType","onClick","href","type","theme","isOpen","onUpdateOpenedTab","handleOnClick","evt","wrapperHidden","propTypes","Part","content","PropTypes","number","Accordion","props","tabProps","selectedIndex","item","openedTab","updateOpenedTab","tabs","convert","cap","tab","child","undefined","accordion","defaultProps","arrayOf","shape","oneOf"],"mappings":"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","sourcesContent":["import React, {useMemo, useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {map, noop, findIndex} from 'lodash/fp';\nimport Part from './part';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setupWrapper,\n default: style.wrapper\n};\n\nconst Tab = ({\n children,\n index,\n title,\n selected,\n iconType,\n onClick,\n href,\n type,\n theme,\n isOpen,\n onUpdateOpenedTab\n}) => {\n const handleOnClick = useMemo(() => evt => onClick(index, evt), [index, onClick]);\n return children ? (\n <div data-name=\"accordion\" className={themeStyle[theme]}>\n <Part\n iconType={iconType}\n title={title}\n content={children}\n selected={selected}\n theme={theme}\n href={href}\n type={type}\n onClick={handleOnClick}\n onUpdateOpenedTab={onUpdateOpenedTab}\n isOpen={isOpen}\n />\n </div>\n ) : (\n <div data-name=\"accordion\" className={style.wrapperHidden} />\n );\n};\n\nTab.propTypes = {\n children: Part.propTypes.content,\n index: PropTypes.number,\n title: Part.propTypes.title,\n iconType: Part.propTypes.iconType,\n theme: Part.propTypes.theme,\n onClick: Part.propTypes.onClick,\n selected: Part.propTypes.selected,\n type: Part.propTypes.type,\n href: Part.propTypes.href,\n isOpen: Part.propTypes.isOpen,\n onUpdateOpenedTab: Part.propTypes.onUpdateOpenedTab\n};\n\nconst Accordion = props => {\n const {tabProps, children, theme = 'default', onClick = noop} = props;\n const selectedIndex = findIndex(item => item.selected, tabProps);\n\n const [openedTab, updateOpenedTab] = useState(selectedIndex);\n useEffect(() => {\n updateOpenedTab(selectedIndex);\n }, [selectedIndex]);\n\n const tabs = map.convert({cap: false})((tab, index) => ({\n ...tab,\n child: children[index],\n children: undefined\n }))(tabProps);\n\n const accordion = map.convert({cap: false})((tab, index) => {\n const isOpen = openedTab === index;\n function onUpdateOpenedTab() {\n updateOpenedTab(isOpen ? -1 : index);\n }\n return (\n <Tab\n {...tab}\n key={index}\n index={index}\n theme={theme}\n onClick={onClick}\n onUpdateOpenedTab={onUpdateOpenedTab}\n isOpen={isOpen}\n >\n {tab.child}\n </Tab>\n );\n }, tabs);\n\n return <div>{accordion}</div>;\n};\n\nAccordion.defaultProps = {\n children: []\n};\n\nAccordion.propTypes = {\n children: PropTypes.arrayOf(Tab.propTypes.children),\n tabProps: PropTypes.arrayOf(\n PropTypes.shape({\n title: Tab.propTypes.title,\n iconType: Tab.propTypes.iconType,\n selected: Tab.propTypes.selected,\n type: Tab.propTypes.type,\n href: Tab.propTypes.href,\n index: Tab.propTypes.index,\n children: Tab.propTypes.children\n })\n ),\n onClick: Tab.propTypes.onClick,\n theme: PropTypes.oneOf(['setup', 'default'])\n};\n\nexport default Accordion;\n"],"file":"index.js"}
|