@coorpacademy/components 10.1.6 → 10.1.7
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 +8 -4
- package/es/atom/button-link/index.js.map +1 -1
- package/es/atom/button-link/style.css +4 -1
- package/es/atom/button-link/test/button-link.js +25 -0
- package/es/atom/button-link/test/button-link.js.map +1 -0
- package/es/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js +13 -0
- package/es/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js.map +1 -0
- package/es/atom/button-link/test/fixtures.js +2 -0
- package/es/atom/button-link/test/fixtures.js.map +1 -1
- package/es/atom/button-menu/index.js +66 -0
- package/es/atom/button-menu/index.js.map +1 -0
- package/es/atom/button-menu/style.css +51 -0
- package/es/atom/button-menu/test/fixtures/default.js +20 -0
- package/es/atom/button-menu/test/fixtures/default.js.map +1 -0
- package/es/atom/button-menu/test/fixtures/multiple-buttons.js +15 -0
- package/es/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
- package/es/atom/button-menu/test/fixtures.js +15 -0
- package/es/atom/button-menu/test/fixtures.js.map +1 -0
- package/es/atom/input-text/index.js.map +1 -1
- package/es/molecule/bullet-point-menu-button/index.js +54 -0
- package/es/molecule/bullet-point-menu-button/index.js.map +1 -0
- package/es/molecule/bullet-point-menu-button/style.css +52 -0
- package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +34 -0
- package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures/default.js +11 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +13 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures.js +15 -0
- package/es/molecule/bullet-point-menu-button/test/fixtures.js.map +1 -0
- package/es/molecule/vertical-tabs/index.js +8 -3
- package/es/molecule/vertical-tabs/index.js.map +1 -1
- package/es/molecule/vertical-tabs/test/fixtures/default.js +2 -1
- package/es/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
- package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
- package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
- package/es/organism/playlist-translation/index.js +63 -0
- package/es/organism/playlist-translation/index.js.map +1 -0
- package/es/organism/playlist-translation/style.css +45 -0
- package/es/organism/playlist-translation/test/fixtures/default.js +24 -0
- package/es/organism/playlist-translation/test/fixtures/default.js.map +1 -0
- package/es/organism/playlist-translation/test/fixtures/delete.js +18 -0
- package/es/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
- package/es/template/teams-dashboard/index.js +4 -3
- package/es/template/teams-dashboard/index.js.map +1 -1
- package/lib/atom/button-link/index.js +7 -2
- package/lib/atom/button-link/index.js.map +1 -1
- package/lib/atom/button-link/style.css +4 -1
- package/lib/atom/button-link/test/button-link.js +37 -0
- package/lib/atom/button-link/test/button-link.js.map +1 -0
- package/lib/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js +18 -0
- package/lib/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js.map +1 -0
- package/lib/atom/button-link/test/fixtures.js +3 -0
- package/lib/atom/button-link/test/fixtures.js.map +1 -1
- package/lib/atom/button-menu/index.js +82 -0
- package/lib/atom/button-menu/index.js.map +1 -0
- package/lib/atom/button-menu/style.css +51 -0
- package/lib/atom/button-menu/test/fixtures/default.js +27 -0
- package/lib/atom/button-menu/test/fixtures/default.js.map +1 -0
- package/lib/atom/button-menu/test/fixtures/multiple-buttons.js +23 -0
- package/lib/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
- package/lib/atom/button-menu/test/fixtures.js +25 -0
- package/lib/atom/button-menu/test/fixtures.js.map +1 -0
- package/lib/atom/input-text/index.js.map +1 -1
- package/lib/molecule/bullet-point-menu-button/index.js +72 -0
- package/lib/molecule/bullet-point-menu-button/index.js.map +1 -0
- package/lib/molecule/bullet-point-menu-button/style.css +52 -0
- package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +46 -0
- package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js +18 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +25 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures.js +25 -0
- package/lib/molecule/bullet-point-menu-button/test/fixtures.js.map +1 -0
- package/lib/molecule/vertical-tabs/index.js +8 -3
- package/lib/molecule/vertical-tabs/index.js.map +1 -1
- package/lib/molecule/vertical-tabs/test/fixtures/default.js +2 -1
- package/lib/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
- package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
- package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
- package/lib/organism/playlist-translation/index.js +78 -0
- package/lib/organism/playlist-translation/index.js.map +1 -0
- package/lib/organism/playlist-translation/style.css +45 -0
- package/lib/organism/playlist-translation/test/fixtures/default.js +35 -0
- package/lib/organism/playlist-translation/test/fixtures/default.js.map +1 -0
- package/lib/organism/playlist-translation/test/fixtures/delete.js +29 -0
- package/lib/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
- package/lib/template/teams-dashboard/index.js +3 -1
- package/lib/template/teams-dashboard/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import _keys from "lodash/fp/keys";
|
|
1
2
|
import _getOr from "lodash/fp/getOr";
|
|
2
3
|
|
|
3
4
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
5
|
|
|
5
|
-
import React, {
|
|
6
|
+
import React, { useCallback } from 'react';
|
|
6
7
|
import PropTypes from 'prop-types';
|
|
7
8
|
import classnames from 'classnames';
|
|
8
|
-
import { NovaSolidRemoveAddAddCircle1 as AddIcon,
|
|
9
|
+
import { NovaSolidRemoveAddAddCircle1 as AddIcon, NovaCompositionCoorpacademyAnalytics as AnalyticsIcon, NovaSolidContentEditionBin as BinIcon, NovaCompositionCoorpacademyBulletPoint as BulletPointIcon, NovaCompositionNavigationArrowLeft as ChevronLeftIcon, NovaCompositionNavigationArrowRight as ChevronRightIcon, NovaCompositionCoorpacademyNext as CloseIcon, NovaSolidContentEditionPencilWrite as EditIcon, NovaCompositionCoorpacademyEye as EyeIcon, NovaSolidComputersSdCard as SaveIcon } from '@coorpacademy/nova-icons';
|
|
9
10
|
import Link from '../link';
|
|
10
11
|
import style from './style.css';
|
|
11
12
|
const ICONS = {
|
|
12
13
|
add: AddIcon,
|
|
13
14
|
analytics: AnalyticsIcon,
|
|
15
|
+
bin: BinIcon,
|
|
16
|
+
'bullet-point': BulletPointIcon,
|
|
14
17
|
'chevron-left': ChevronLeftIcon,
|
|
15
18
|
'chevron-right': ChevronRightIcon,
|
|
16
19
|
close: CloseIcon,
|
|
@@ -77,11 +80,12 @@ const ButtonLink = props => {
|
|
|
77
80
|
}), contentView);
|
|
78
81
|
}
|
|
79
82
|
|
|
80
|
-
const handleOnClick =
|
|
83
|
+
const handleOnClick = useCallback(() => onClick(), [onClick]);
|
|
81
84
|
return /*#__PURE__*/React.createElement("button", {
|
|
82
85
|
type: "button",
|
|
83
86
|
"aria-label": ariaLabel || label,
|
|
84
87
|
title: ariaLabel || label,
|
|
88
|
+
"data-name": dataName,
|
|
85
89
|
className: styleButton,
|
|
86
90
|
onClick: handleOnClick
|
|
87
91
|
}, contentView);
|
|
@@ -94,7 +98,7 @@ ButtonLink.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
94
98
|
'data-name': PropTypes.string,
|
|
95
99
|
icon: PropTypes.shape({
|
|
96
100
|
position: PropTypes.oneOf(['right', 'left', 'center']),
|
|
97
|
-
type: PropTypes.
|
|
101
|
+
type: PropTypes.oneOf(_keys(ICONS))
|
|
98
102
|
}),
|
|
99
103
|
onClick: PropTypes.func,
|
|
100
104
|
link: PropTypes.shape({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/button-link/index.js"],"names":["React","
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/button-link/index.js"],"names":["React","useCallback","PropTypes","classnames","NovaSolidRemoveAddAddCircle1","AddIcon","NovaCompositionCoorpacademyAnalytics","AnalyticsIcon","NovaSolidContentEditionBin","BinIcon","NovaCompositionCoorpacademyBulletPoint","BulletPointIcon","NovaCompositionNavigationArrowLeft","ChevronLeftIcon","NovaCompositionNavigationArrowRight","ChevronRightIcon","NovaCompositionCoorpacademyNext","CloseIcon","NovaSolidContentEditionPencilWrite","EditIcon","NovaCompositionCoorpacademyEye","EyeIcon","NovaSolidComputersSdCard","SaveIcon","Link","style","ICONS","add","analytics","bin","close","edit","save","see","getButtonContent","icon","label","type","position","Icon","buttonContent","ButtonLink","props","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","button","primary","secondary","tertiary","text","dangerous","handleOnClick","propTypes","oneOf","string","shape","func","href","download","bool","target"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SACEC,4BAA4B,IAAIC,OADlC,EAEEC,oCAAoC,IAAIC,aAF1C,EAGEC,0BAA0B,IAAIC,OAHhC,EAIEC,sCAAsC,IAAIC,eAJ5C,EAKEC,kCAAkC,IAAIC,eALxC,EAMEC,mCAAmC,IAAIC,gBANzC,EAOEC,+BAA+B,IAAIC,SAPrC,EAQEC,kCAAkC,IAAIC,QARxC,EASEC,8BAA8B,IAAIC,OATpC,EAUEC,wBAAwB,IAAIC,QAV9B,QAWO,0BAXP;AAYA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,KAAK,GAAG;AACZC,EAAAA,GAAG,EAAEtB,OADO;AAEZuB,EAAAA,SAAS,EAAErB,aAFC;AAGZsB,EAAAA,GAAG,EAAEpB,OAHO;AAIZ,kBAAgBE,eAJJ;AAKZ,kBAAgBE,eALJ;AAMZ,mBAAiBE,gBANL;AAOZe,EAAAA,KAAK,EAAEb,SAPK;AAQZc,EAAAA,IAAI,EAAEZ,QARM;AASZa,EAAAA,IAAI,EAAET,QATM;AAUZU,EAAAA,GAAG,EAAEZ;AAVO,CAAd;;AAaA,MAAMa,gBAAgB,GAAG,CAACC,IAAD,EAAOC,KAAP,KAAiB;AACxC,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAmBH,IAAzB;;AACA,QAAMI,IAAI,GAAG,OAAM,IAAN,EAAYF,IAAZ,EAAkBX,KAAlB,CAAb;;AAEA,MAAI,CAACa,IAAL,EAAW;AACT,wBACE;AAAK,MAAA,SAAS,EAAEd,KAAK,CAACe;AAAtB,oBACE;AAAM,MAAA,SAAS,EAAEf,KAAK,CAACW;AAAvB,OAA+BA,KAA/B,CADF,CADF;AAKD;;AAED,MAAIE,QAAQ,KAAK,QAAb,IAAyBC,IAA7B,EAAmC;AACjC,wBACE;AAAK,MAAA,SAAS,EAAEd,KAAK,CAACe;AAAtB,oBACE,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAEf,KAAK,CAACU;AAAvB,MADF,CADF;AAKD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAEV,KAAK,CAACe;AAAtB,KACGF,QAAQ,KAAK,MAAb,gBAAsB,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEb,KAAK,CAACU;AAAvB,IAAtB,GAAwD,IAD3D,eAEE;AAAM,IAAA,SAAS,EAAEV,KAAK,CAACW;AAAvB,KAA+BA,KAA/B,CAFF,EAGGE,QAAQ,KAAK,OAAb,gBAAuB,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEb,KAAK,CAACU;AAAvB,IAAvB,GAAyD,IAH5D,CADF;AAOD,CA3BD;;AA6BA,MAAMM,UAAU,GAAGC,KAAK,IAAI;AAC1B,QAAM;AACJL,IAAAA,IADI;AAEJD,IAAAA,KAFI;AAGJO,IAAAA,QAHI;AAIJR,IAAAA,IAAI,GAAG,EAJH;AAKJ,iBAAaS,QALT;AAMJ,kBAAcC,SANV;AAOJC,IAAAA,IAPI;AAQJC,IAAAA;AARI,MASFL,KATJ;AAUA,QAAMM,WAAW,GAAGd,gBAAgB,CAACC,IAAD,EAAOC,KAAP,CAApC;AACA,QAAMa,WAAW,GAAG9C,UAAU,CAC5BsB,KAAK,CAACyB,MADsB,EAE5Bb,IAAI,KAAK,SAAT,IAAsBZ,KAAK,CAAC0B,OAFA,EAG5Bd,IAAI,KAAK,WAAT,IAAwBZ,KAAK,CAAC2B,SAHF,EAI5Bf,IAAI,KAAK,UAAT,IAAuBZ,KAAK,CAAC4B,QAJD,EAK5BhB,IAAI,KAAK,MAAT,IAAmBZ,KAAK,CAAC6B,IALG,EAM5BjB,IAAI,KAAK,WAAT,IAAwBZ,KAAK,CAAC8B,SANF,EAO5BT,IAAI,IAAIrB,KAAK,CAACqB,IAPc,EAQ5BH,QAAQ,IAAIlB,KAAK,CAACkB,QARU,CAA9B;;AAWA,MAAIG,IAAJ,EAAU;AACR,wBACE,oBAAC,IAAD,eACMA,IADN;AAEE,MAAA,SAAS,EAAEG,WAFb;AAGE,mBAAWL,QAHb;AAIE,oBAAYC,SAAS,IAAIT,KAJ3B;AAKE,MAAA,KAAK,EAAES,SAAS,IAAIT;AALtB,QAOGY,WAPH,CADF;AAWD;;AAED,QAAMQ,aAAa,GAAGvD,WAAW,CAAC,MAAM8C,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AACA,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYF,SAAS,IAAIT,KAF3B;AAGE,IAAA,KAAK,EAAES,SAAS,IAAIT,KAHtB;AAIE,iBAAWQ,QAJb;AAKE,IAAA,SAAS,EAAEK,WALb;AAME,IAAA,OAAO,EAAEO;AANX,KAQGR,WARH,CADF;AAYD,CAlDD;;AAoDAP,UAAU,CAACgB,SAAX,2CAAuB;AACrBpB,EAAAA,IAAI,EAAEnC,SAAS,CAACwD,KAAV,CAAgB,CAAC,SAAD,EAAY,WAAZ,EAAyB,UAAzB,EAAqC,MAArC,EAA6C,WAA7C,CAAhB,CADe;AAErBtB,EAAAA,KAAK,EAAElC,SAAS,CAACyD,MAFI;AAGrB,gBAAczD,SAAS,CAACyD,MAHH;AAIrB,eAAazD,SAAS,CAACyD,MAJF;AAKrBxB,EAAAA,IAAI,EAAEjC,SAAS,CAAC0D,KAAV,CAAgB;AACpBtB,IAAAA,QAAQ,EAAEpC,SAAS,CAACwD,KAAV,CAAgB,CAAC,OAAD,EAAU,MAAV,EAAkB,QAAlB,CAAhB,CADU;AAEpBrB,IAAAA,IAAI,EAAEnC,SAAS,CAACwD,KAAV,CAAgB,MAAKhC,KAAL,CAAhB;AAFc,GAAhB,CALe;AASrBqB,EAAAA,OAAO,EAAE7C,SAAS,CAAC2D,IATE;AAUrBf,EAAAA,IAAI,EAAE5C,SAAS,CAAC0D,KAAV,CAAgB;AACpBE,IAAAA,IAAI,EAAE5D,SAAS,CAACyD,MADI;AAEpBI,IAAAA,QAAQ,EAAE7D,SAAS,CAAC8D,IAFA;AAGpBC,IAAAA,MAAM,EAAE/D,SAAS,CAACwD,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CAVe;AAerBf,EAAAA,QAAQ,EAAEzC,SAAS,CAAC8D;AAfC,CAAvB;AAkBA,eAAevB,UAAf","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaSolidRemoveAddAddCircle1 as AddIcon,\n NovaCompositionCoorpacademyAnalytics as AnalyticsIcon,\n NovaSolidContentEditionBin as BinIcon,\n NovaCompositionCoorpacademyBulletPoint as BulletPointIcon,\n NovaCompositionNavigationArrowLeft as ChevronLeftIcon,\n NovaCompositionNavigationArrowRight as ChevronRightIcon,\n NovaCompositionCoorpacademyNext as CloseIcon,\n NovaSolidContentEditionPencilWrite as EditIcon,\n NovaCompositionCoorpacademyEye as EyeIcon,\n NovaSolidComputersSdCard as SaveIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../link';\nimport style from './style.css';\n\nconst ICONS = {\n add: AddIcon,\n analytics: AnalyticsIcon,\n bin: BinIcon,\n 'bullet-point': BulletPointIcon,\n 'chevron-left': ChevronLeftIcon,\n 'chevron-right': ChevronRightIcon,\n close: CloseIcon,\n edit: EditIcon,\n save: SaveIcon,\n see: EyeIcon\n};\n\nconst getButtonContent = (icon, label) => {\n const {type, position} = icon;\n const Icon = getOr(null, type, ICONS);\n\n if (!Icon) {\n return (\n <div className={style.buttonContent}>\n <span className={style.label}>{label}</span>\n </div>\n );\n }\n\n if (position === 'center' && Icon) {\n return (\n <div className={style.buttonContent}>\n <Icon className={style.icon} />\n </div>\n );\n }\n\n return (\n <div className={style.buttonContent}>\n {position === 'left' ? <Icon className={style.icon} /> : null}\n <span className={style.label}>{label}</span>\n {position === 'right' ? <Icon className={style.icon} /> : null}\n </div>\n );\n};\n\nconst ButtonLink = props => {\n const {\n type,\n label,\n disabled,\n icon = {},\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick\n } = props;\n const contentView = getButtonContent(icon, label);\n const styleButton = classnames(\n style.button,\n type === 'primary' && style.primary,\n type === 'secondary' && style.secondary,\n type === 'tertiary' && style.tertiary,\n type === 'text' && style.text,\n type === 'dangerous' && style.dangerous,\n link && style.link,\n disabled && style.disabled\n );\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n >\n {contentView}\n </Link>\n );\n }\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n data-name={dataName}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLink.propTypes = {\n type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),\n label: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.shape({\n position: PropTypes.oneOf(['right', 'left', 'center']),\n type: PropTypes.oneOf(keys(ICONS))\n }),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool\n};\n\nexport default ButtonLink;\n"],"file":"index.js"}
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
align-items: center;
|
|
22
22
|
cursor: pointer;
|
|
23
23
|
border: none;
|
|
24
|
+
/* prevents text selection when dragging
|
|
25
|
+
the mouse over the button */
|
|
26
|
+
user-select: none;
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
.disabled {
|
|
@@ -90,4 +93,4 @@
|
|
|
90
93
|
color: inherit;
|
|
91
94
|
border-radius: 0px;
|
|
92
95
|
height: auto;
|
|
93
|
-
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import _identity from "lodash/fp/identity";
|
|
2
|
+
import browserEnv from 'browser-env';
|
|
3
|
+
import test from 'ava';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { shallow, configure } from 'enzyme';
|
|
6
|
+
import Adapter from 'enzyme-adapter-react-16';
|
|
7
|
+
import ButtonLink from '..';
|
|
8
|
+
import defaultFixture from './fixtures/button-tertiary-icon-bullet';
|
|
9
|
+
browserEnv();
|
|
10
|
+
configure({
|
|
11
|
+
adapter: new Adapter()
|
|
12
|
+
});
|
|
13
|
+
const translate = _identity;
|
|
14
|
+
test('should launch onClick on click event', t => {
|
|
15
|
+
const wrapper = shallow( /*#__PURE__*/React.createElement(ButtonLink, defaultFixture.props), {
|
|
16
|
+
context: {
|
|
17
|
+
translate
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const button = wrapper.find('[data-name="bullet-button"]');
|
|
21
|
+
t.true(button.exists());
|
|
22
|
+
button.first().simulate('click', {});
|
|
23
|
+
t.pass();
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=button-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/atom/button-link/test/button-link.js"],"names":["browserEnv","test","React","shallow","configure","Adapter","ButtonLink","defaultFixture","adapter","translate","t","wrapper","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,OAAR,EAAiBC,SAAjB,QAAiC,QAAjC;AAEA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,UAAP,MAAuB,IAAvB;AACA,OAAOC,cAAP,MAA2B,wCAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AACA,MAAMI,SAAS,YAAf;AAEAR,IAAI,CAAC,sCAAD,EAAyCS,CAAC,IAAI;AAChD,QAAMC,OAAO,GAAGR,OAAO,eAAC,oBAAC,UAAD,EAAgBI,cAAc,CAACK,KAA/B,CAAD,EAA2C;AAChEC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AADuD,GAA3C,CAAvB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,6BAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAT,EAAAA,CAAC,CAACU,IAAF;AACD,CARG,CAAJ","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ButtonLink from '..';\nimport defaultFixture from './fixtures/button-tertiary-icon-bullet';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick on click event', t => {\n const wrapper = shallow(<ButtonLink {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n t.pass();\n});\n"],"file":"button-link.js"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
props: {
|
|
3
|
+
type: 'tertiary',
|
|
4
|
+
'aria-label': 'aria button',
|
|
5
|
+
'data-name': 'bullet-button',
|
|
6
|
+
icon: {
|
|
7
|
+
position: 'center',
|
|
8
|
+
type: 'bullet-point'
|
|
9
|
+
},
|
|
10
|
+
onClick: () => console.log('click')
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=button-tertiary-icon-bullet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/atom/button-link/test/fixtures/button-tertiary-icon-bullet.js"],"names":["props","type","icon","position","onClick","console","log"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,UADD;AAEL,kBAAc,aAFT;AAGL,iBAAa,eAHR;AAILC,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,QADN;AAEJF,MAAAA,IAAI,EAAE;AAFF,KAJD;AAQLG,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AARV;AADM,CAAf","sourcesContent":["export default {\n props: {\n type: 'tertiary',\n 'aria-label': 'aria button',\n 'data-name': 'bullet-button',\n icon: {\n position: 'center',\n type: 'bullet-point'\n },\n onClick: () => console.log('click')\n }\n};\n"],"file":"button-tertiary-icon-bullet.js"}
|
|
@@ -6,6 +6,7 @@ import fixtureButtonDangerousNoIcon from './fixtures/button-dangerous-no-icon';
|
|
|
6
6
|
import fixtureButtonPrimaryIconLeft from './fixtures/button-primary-icon-left';
|
|
7
7
|
import fixtureButtonPrimaryNoIcon from './fixtures/button-primary-no-icon';
|
|
8
8
|
import fixtureButtonSecondaryNoIconDisabled from './fixtures/button-secondary-no-icon-disabled';
|
|
9
|
+
import fixtureButtonTertiaryIconBullet from './fixtures/button-tertiary-icon-bullet';
|
|
9
10
|
import fixtureButtonTertiaryIconLeft from './fixtures/button-tertiary-icon-left';
|
|
10
11
|
import fixtureIconButton from './fixtures/icon-button';
|
|
11
12
|
import fixtureLinkPrimaryDisabledIconRight from './fixtures/link-primary-disabled-icon-right';
|
|
@@ -23,6 +24,7 @@ test('Atom › AtomButtonLink › ButtonDangerousNoIcon › should be rendered',
|
|
|
23
24
|
test('Atom › AtomButtonLink › ButtonPrimaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryIconLeft);
|
|
24
25
|
test('Atom › AtomButtonLink › ButtonPrimaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryNoIcon);
|
|
25
26
|
test('Atom › AtomButtonLink › ButtonSecondaryNoIconDisabled › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonSecondaryNoIconDisabled);
|
|
27
|
+
test('Atom › AtomButtonLink › ButtonTertiaryIconBullet › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconBullet);
|
|
26
28
|
test('Atom › AtomButtonLink › ButtonTertiaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconLeft);
|
|
27
29
|
test('Atom › AtomButtonLink › IconButton › should be rendered', renderComponentMacro, AtomButtonLink, fixtureIconButton);
|
|
28
30
|
test('Atom › AtomButtonLink › LinkPrimaryDisabledIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkPrimaryDisabledIconRight);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/atom/button-link/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","AtomButtonLink","fixtureButtonDangerousNoIcon","fixtureButtonPrimaryIconLeft","fixtureButtonPrimaryNoIcon","fixtureButtonSecondaryNoIconDisabled","fixtureButtonTertiaryIconLeft","fixtureIconButton","fixtureLinkPrimaryDisabledIconRight","fixtureLinkSecondaryIconRight","fixtureLinkTertiaryNoIcon","fixtureLinkTextIconRightTargetBlank","fixtureLinkTextNoIconDownload","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,0BAAP,MAAuC,mCAAvC;AACA,OAAOC,oCAAP,MAAiD,8CAAjD;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,mCAAP,MAAgD,6CAAhD;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,yBAAP,MAAsC,kCAAtC;AACA,OAAOC,mCAAP,MAAgD,8CAAhD;AACA,OAAOC,6BAAP,MAA0C,uCAA1C;
|
|
1
|
+
{"version":3,"sources":["../../../../src/atom/button-link/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","AtomButtonLink","fixtureButtonDangerousNoIcon","fixtureButtonPrimaryIconLeft","fixtureButtonPrimaryNoIcon","fixtureButtonSecondaryNoIconDisabled","fixtureButtonTertiaryIconBullet","fixtureButtonTertiaryIconLeft","fixtureIconButton","fixtureLinkPrimaryDisabledIconRight","fixtureLinkSecondaryIconRight","fixtureLinkTertiaryNoIcon","fixtureLinkTextIconRightTargetBlank","fixtureLinkTextNoIconDownload","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,0BAAP,MAAuC,mCAAvC;AACA,OAAOC,oCAAP,MAAiD,8CAAjD;AACA,OAAOC,+BAAP,MAA4C,wCAA5C;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,mCAAP,MAAgD,6CAAhD;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,yBAAP,MAAsC,kCAAtC;AACA,OAAOC,mCAAP,MAAgD,8CAAhD;AACA,OAAOC,6BAAP,MAA0C,uCAA1C;AAEAf,IAAI,CAAC,qDAAD,EAAwDgB,CAAC,IAAI;AAC/DA,EAAAA,CAAC,CAACC,IAAF;AACAhB,EAAAA,OAAO,CAACE,cAAc,CAACe,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,+CAA8CF,GAAI,mEAA3E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOApB,IAAI,CAAC,oEAAD,EAAuEE,oBAAvE,EAA6FC,cAA7F,EAA6GC,4BAA7G,CAAJ;AACAJ,IAAI,CAAC,oEAAD,EAAuEE,oBAAvE,EAA6FC,cAA7F,EAA6GE,4BAA7G,CAAJ;AACAL,IAAI,CAAC,kEAAD,EAAqEE,oBAArE,EAA2FC,cAA3F,EAA2GG,0BAA3G,CAAJ;AACAN,IAAI,CAAC,4EAAD,EAA+EE,oBAA/E,EAAqGC,cAArG,EAAqHI,oCAArH,CAAJ;AACAP,IAAI,CAAC,uEAAD,EAA0EE,oBAA1E,EAAgGC,cAAhG,EAAgHK,+BAAhH,CAAJ;AACAR,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GM,6BAA9G,CAAJ;AACAT,IAAI,CAAC,yDAAD,EAA4DE,oBAA5D,EAAkFC,cAAlF,EAAkGO,iBAAlG,CAAJ;AACAV,IAAI,CAAC,2EAAD,EAA8EE,oBAA9E,EAAoGC,cAApG,EAAoHQ,mCAApH,CAAJ;AACAX,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GS,6BAA9G,CAAJ;AACAZ,IAAI,CAAC,iEAAD,EAAoEE,oBAApE,EAA0FC,cAA1F,EAA0GU,yBAA1G,CAAJ;AACAb,IAAI,CAAC,2EAAD,EAA8EE,oBAA9E,EAAoGC,cAApG,EAAoHW,mCAApH,CAAJ;AACAd,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GY,6BAA9G,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport AtomButtonLink from '..';\nimport fixtureButtonDangerousNoIcon from './fixtures/button-dangerous-no-icon';\nimport fixtureButtonPrimaryIconLeft from './fixtures/button-primary-icon-left';\nimport fixtureButtonPrimaryNoIcon from './fixtures/button-primary-no-icon';\nimport fixtureButtonSecondaryNoIconDisabled from './fixtures/button-secondary-no-icon-disabled';\nimport fixtureButtonTertiaryIconBullet from './fixtures/button-tertiary-icon-bullet';\nimport fixtureButtonTertiaryIconLeft from './fixtures/button-tertiary-icon-left';\nimport fixtureIconButton from './fixtures/icon-button';\nimport fixtureLinkPrimaryDisabledIconRight from './fixtures/link-primary-disabled-icon-right';\nimport fixtureLinkSecondaryIconRight from './fixtures/link-secondary-icon-right';\nimport fixtureLinkTertiaryNoIcon from './fixtures/link-tertiary-no-icon';\nimport fixtureLinkTextIconRightTargetBlank from './fixtures/link-text-icon-right-target-blank';\nimport fixtureLinkTextNoIconDownload from './fixtures/link-text-no-icon-download';\n\ntest('Atom › AtomButtonLink > should have valid propTypes', t => {\n t.pass();\n forEach(AtomButtonLink.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Atom.AtomButtonLink.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Atom › AtomButtonLink › ButtonDangerousNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonDangerousNoIcon);\ntest('Atom › AtomButtonLink › ButtonPrimaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryIconLeft);\ntest('Atom › AtomButtonLink › ButtonPrimaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryNoIcon);\ntest('Atom › AtomButtonLink › ButtonSecondaryNoIconDisabled › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonSecondaryNoIconDisabled);\ntest('Atom › AtomButtonLink › ButtonTertiaryIconBullet › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconBullet);\ntest('Atom › AtomButtonLink › ButtonTertiaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconLeft);\ntest('Atom › AtomButtonLink › IconButton › should be rendered', renderComponentMacro, AtomButtonLink, fixtureIconButton);\ntest('Atom › AtomButtonLink › LinkPrimaryDisabledIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkPrimaryDisabledIconRight);\ntest('Atom › AtomButtonLink › LinkSecondaryIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkSecondaryIconRight);\ntest('Atom › AtomButtonLink › LinkTertiaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTertiaryNoIcon);\ntest('Atom › AtomButtonLink › LinkTextIconRightTargetBlank › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextIconRightTargetBlank);\ntest('Atom › AtomButtonLink › LinkTextNoIconDownload › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextNoIconDownload);\n"],"file":"fixtures.js"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import React, { useMemo, useCallback } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import map from 'lodash/fp/map';
|
|
6
|
+
import classnames from 'classnames';
|
|
7
|
+
import style from './style.css';
|
|
8
|
+
|
|
9
|
+
const Button = props => {
|
|
10
|
+
const {
|
|
11
|
+
'data-name': dataName,
|
|
12
|
+
disabled,
|
|
13
|
+
label,
|
|
14
|
+
onClick,
|
|
15
|
+
type = 'default'
|
|
16
|
+
} = props;
|
|
17
|
+
const styleButton = classnames(style.button, type === 'default' && style.default, type === 'dangerous' && style.dangerous, disabled && style.disabled);
|
|
18
|
+
const handleOnClick = useCallback(() => onClick(), [onClick]);
|
|
19
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
20
|
+
type: "button",
|
|
21
|
+
"aria-label": label,
|
|
22
|
+
title: label,
|
|
23
|
+
"data-name": dataName,
|
|
24
|
+
className: styleButton,
|
|
25
|
+
onClick: handleOnClick
|
|
26
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
className: style.buttonContent
|
|
28
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
29
|
+
className: style.label
|
|
30
|
+
}, label)));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
Button.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
34
|
+
'data-name': PropTypes.string,
|
|
35
|
+
disabled: PropTypes.bool,
|
|
36
|
+
label: PropTypes.string.isRequired,
|
|
37
|
+
onClick: PropTypes.func.isRequired,
|
|
38
|
+
type: PropTypes.oneOf(['default', 'dangerous'])
|
|
39
|
+
} : {};
|
|
40
|
+
|
|
41
|
+
const ButtonMenu = props => {
|
|
42
|
+
const {
|
|
43
|
+
buttons,
|
|
44
|
+
'data-name': dataName
|
|
45
|
+
} = props;
|
|
46
|
+
|
|
47
|
+
const buildButton = (button, index) => {
|
|
48
|
+
return /*#__PURE__*/React.createElement(Button, _extends({}, button, {
|
|
49
|
+
key: button.label + index
|
|
50
|
+
}));
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const buttonList = useMemo(() => map.convert({
|
|
54
|
+
cap: false
|
|
55
|
+
})(buildButton, buttons), [buttons, buildButton]);
|
|
56
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
57
|
+
"data-name": dataName
|
|
58
|
+
}, buttonList);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
ButtonMenu.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
62
|
+
buttons: PropTypes.arrayOf(PropTypes.shape(Button.propTypes)).isRequired,
|
|
63
|
+
'data-name': PropTypes.string
|
|
64
|
+
} : {};
|
|
65
|
+
export default ButtonMenu;
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/button-menu/index.js"],"names":["React","useMemo","useCallback","PropTypes","map","classnames","style","Button","props","dataName","disabled","label","onClick","type","styleButton","button","default","dangerous","handleOnClick","buttonContent","propTypes","string","bool","isRequired","func","oneOf","ButtonMenu","buttons","buildButton","index","buttonList","convert","cap","arrayOf","shape"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,OAAf,EAAwBC,WAAxB,QAA0C,OAA1C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AAAC,iBAAaC,QAAd;AAAwBC,IAAAA,QAAxB;AAAkCC,IAAAA,KAAlC;AAAyCC,IAAAA,OAAzC;AAAkDC,IAAAA,IAAI,GAAG;AAAzD,MAAsEL,KAA5E;AACA,QAAMM,WAAW,GAAGT,UAAU,CAC5BC,KAAK,CAACS,MADsB,EAE5BF,IAAI,KAAK,SAAT,IAAsBP,KAAK,CAACU,OAFA,EAG5BH,IAAI,KAAK,WAAT,IAAwBP,KAAK,CAACW,SAHF,EAI5BP,QAAQ,IAAIJ,KAAK,CAACI,QAJU,CAA9B;AAOA,QAAMQ,aAAa,GAAGhB,WAAW,CAAC,MAAMU,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AACA,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYD,KAFd;AAGE,IAAA,KAAK,EAAEA,KAHT;AAIE,iBAAWF,QAJb;AAKE,IAAA,SAAS,EAAEK,WALb;AAME,IAAA,OAAO,EAAEI;AANX,kBAQE;AAAK,IAAA,SAAS,EAAEZ,KAAK,CAACa;AAAtB,kBACE;AAAM,IAAA,SAAS,EAAEb,KAAK,CAACK;AAAvB,KAA+BA,KAA/B,CADF,CARF,CADF;AAcD,CAxBD;;AA0BAJ,MAAM,CAACa,SAAP,2CAAmB;AACjB,eAAajB,SAAS,CAACkB,MADN;AAEjBX,EAAAA,QAAQ,EAAEP,SAAS,CAACmB,IAFH;AAGjBX,EAAAA,KAAK,EAAER,SAAS,CAACkB,MAAV,CAAiBE,UAHP;AAIjBX,EAAAA,OAAO,EAAET,SAAS,CAACqB,IAAV,CAAeD,UAJP;AAKjBV,EAAAA,IAAI,EAAEV,SAAS,CAACsB,KAAV,CAAgB,CAAC,SAAD,EAAY,WAAZ,CAAhB;AALW,CAAnB;;AAQA,MAAMC,UAAU,GAAGlB,KAAK,IAAI;AAC1B,QAAM;AAACmB,IAAAA,OAAD;AAAU,iBAAalB;AAAvB,MAAmCD,KAAzC;;AACA,QAAMoB,WAAW,GAAG,CAACb,MAAD,EAASc,KAAT,KAAmB;AACrC,wBAAO,oBAAC,MAAD,eAAYd,MAAZ;AAAoB,MAAA,GAAG,EAAEA,MAAM,CAACJ,KAAP,GAAekB;AAAxC,OAAP;AACD,GAFD;;AAGA,QAAMC,UAAU,GAAG7B,OAAO,CAAC,MAAMG,GAAG,CAAC2B,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0BJ,WAA1B,EAAuCD,OAAvC,CAAP,EAAwD,CAChFA,OADgF,EAEhFC,WAFgF,CAAxD,CAA1B;AAIA,sBAAO;AAAK,iBAAWnB;AAAhB,KAA2BqB,UAA3B,CAAP;AACD,CAVD;;AAYAJ,UAAU,CAACN,SAAX,2CAAuB;AACrBO,EAAAA,OAAO,EAAExB,SAAS,CAAC8B,OAAV,CAAkB9B,SAAS,CAAC+B,KAAV,CAAgB3B,MAAM,CAACa,SAAvB,CAAlB,EAAqDG,UADzC;AAErB,eAAapB,SAAS,CAACkB;AAFF,CAAvB;AAKA,eAAeK,UAAf","sourcesContent":["import React, {useMemo, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport map from 'lodash/fp/map';\nimport classnames from 'classnames';\nimport style from './style.css';\n\nconst Button = props => {\n const {'data-name': dataName, disabled, label, onClick, type = 'default'} = props;\n const styleButton = classnames(\n style.button,\n type === 'default' && style.default,\n type === 'dangerous' && style.dangerous,\n disabled && style.disabled\n );\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={label}\n title={label}\n data-name={dataName}\n className={styleButton}\n onClick={handleOnClick}\n >\n <div className={style.buttonContent}>\n <span className={style.label}>{label}</span>\n </div>\n </button>\n );\n};\n\nButton.propTypes = {\n 'data-name': PropTypes.string,\n disabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['default', 'dangerous'])\n};\n\nconst ButtonMenu = props => {\n const {buttons, 'data-name': dataName} = props;\n const buildButton = (button, index) => {\n return <Button {...button} key={button.label + index} />;\n };\n const buttonList = useMemo(() => map.convert({cap: false})(buildButton, buttons), [\n buttons,\n buildButton\n ]);\n return <div data-name={dataName}>{buttonList}</div>;\n};\n\nButtonMenu.propTypes = {\n buttons: PropTypes.arrayOf(PropTypes.shape(Button.propTypes)).isRequired,\n 'data-name': PropTypes.string\n};\n\nexport default ButtonMenu;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@value colors: "../../variables/colors.css";
|
|
2
|
+
@value cm_grey_100 from colors;
|
|
3
|
+
@value cm_grey_200 from colors;
|
|
4
|
+
@value cm_grey_900 from colors;
|
|
5
|
+
@value cm_negative_100 from colors;
|
|
6
|
+
|
|
7
|
+
.button {
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 40px;
|
|
10
|
+
font-family: Gilroy;
|
|
11
|
+
font-size: 14px;
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
align-items: center;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
border: none;
|
|
17
|
+
pointer-events: auto;
|
|
18
|
+
/* prevents text selection when dragging
|
|
19
|
+
the mouse over the button */
|
|
20
|
+
user-select: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.disabled {
|
|
24
|
+
opacity: 0.1;
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.buttonContent {
|
|
29
|
+
display: flex;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
align-items: center;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.label {
|
|
35
|
+
margin: 0 8px 0 8px;
|
|
36
|
+
display: block;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.default {
|
|
40
|
+
background-color: cm_grey_100;
|
|
41
|
+
color: cm_grey_900;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.default:hover {
|
|
45
|
+
background-color: cm_grey_200;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.dangerous {
|
|
49
|
+
composes: default;
|
|
50
|
+
color: cm_negative_100;
|
|
51
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const actionButtonProps = {
|
|
2
|
+
'data-name': 'menu-publish-button',
|
|
3
|
+
label: 'Publish',
|
|
4
|
+
onClick: () => console.log('Publish'),
|
|
5
|
+
type: 'default'
|
|
6
|
+
};
|
|
7
|
+
export const deleteButtonProps = {
|
|
8
|
+
'data-name': 'menu-delete-button',
|
|
9
|
+
label: 'Delete',
|
|
10
|
+
onClick: () => console.log('Delete'),
|
|
11
|
+
type: 'dangerous'
|
|
12
|
+
};
|
|
13
|
+
export default {
|
|
14
|
+
props: {
|
|
15
|
+
buttons: [actionButtonProps, deleteButtonProps],
|
|
16
|
+
'aria-label': 'aria button',
|
|
17
|
+
'data-name': 'default-menu'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/atom/button-menu/test/fixtures/default.js"],"names":["actionButtonProps","label","onClick","console","log","type","deleteButtonProps","props","buttons"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG;AAC/B,eAAa,qBADkB;AAE/BC,EAAAA,KAAK,EAAE,SAFwB;AAG/BC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,SAAZ,CAHgB;AAI/BC,EAAAA,IAAI,EAAE;AAJyB,CAA1B;AAOP,OAAO,MAAMC,iBAAiB,GAAG;AAC/B,eAAa,oBADkB;AAE/BL,EAAAA,KAAK,EAAE,QAFwB;AAG/BC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,QAAZ,CAHgB;AAI/BC,EAAAA,IAAI,EAAE;AAJyB,CAA1B;AAOP,eAAe;AACbE,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CAACR,iBAAD,EAAoBM,iBAApB,CADJ;AAEL,kBAAc,aAFT;AAGL,iBAAa;AAHR;AADM,CAAf","sourcesContent":["export const actionButtonProps = {\n 'data-name': 'menu-publish-button',\n label: 'Publish',\n onClick: () => console.log('Publish'),\n type: 'default'\n};\n\nexport const deleteButtonProps = {\n 'data-name': 'menu-delete-button',\n label: 'Delete',\n onClick: () => console.log('Delete'),\n type: 'dangerous'\n};\n\nexport default {\n props: {\n buttons: [actionButtonProps, deleteButtonProps],\n 'aria-label': 'aria button',\n 'data-name': 'default-menu'\n }\n};\n"],"file":"default.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { actionButtonProps, deleteButtonProps } from './default';
|
|
2
|
+
export const disabledButtonProps = {
|
|
3
|
+
'data-name': 'menu-disabled-button',
|
|
4
|
+
label: 'Disabled',
|
|
5
|
+
onClick: () => console.log('Disabled'),
|
|
6
|
+
disabled: true
|
|
7
|
+
};
|
|
8
|
+
export default {
|
|
9
|
+
props: {
|
|
10
|
+
buttons: [actionButtonProps, disabledButtonProps, deleteButtonProps],
|
|
11
|
+
'aria-label': 'aria button 2',
|
|
12
|
+
'data-name': 'default-menu-2'
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=multiple-buttons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/atom/button-menu/test/fixtures/multiple-buttons.js"],"names":["actionButtonProps","deleteButtonProps","disabledButtonProps","label","onClick","console","log","disabled","props","buttons"],"mappings":"AAAA,SAAQA,iBAAR,EAA2BC,iBAA3B,QAAmD,WAAnD;AAEA,OAAO,MAAMC,mBAAmB,GAAG;AACjC,eAAa,sBADoB;AAEjCC,EAAAA,KAAK,EAAE,UAF0B;AAGjCC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,UAAZ,CAHkB;AAIjCC,EAAAA,QAAQ,EAAE;AAJuB,CAA5B;AAOP,eAAe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CAACT,iBAAD,EAAoBE,mBAApB,EAAyCD,iBAAzC,CADJ;AAEL,kBAAc,eAFT;AAGL,iBAAa;AAHR;AADM,CAAf","sourcesContent":["import {actionButtonProps, deleteButtonProps} from './default';\n\nexport const disabledButtonProps = {\n 'data-name': 'menu-disabled-button',\n label: 'Disabled',\n onClick: () => console.log('Disabled'),\n disabled: true\n};\n\nexport default {\n props: {\n buttons: [actionButtonProps, disabledButtonProps, deleteButtonProps],\n 'aria-label': 'aria button 2',\n 'data-name': 'default-menu-2'\n }\n};\n"],"file":"multiple-buttons.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import test from 'ava';
|
|
2
|
+
import forEach from 'lodash/forEach';
|
|
3
|
+
import renderComponentMacro from '../../../test/helpers/render-component';
|
|
4
|
+
import AtomButtonMenu from '..';
|
|
5
|
+
import fixtureDefault from './fixtures/default';
|
|
6
|
+
import fixtureMultipleButtons from './fixtures/multiple-buttons';
|
|
7
|
+
test('Atom › AtomButtonMenu > should have valid propTypes', t => {
|
|
8
|
+
t.pass();
|
|
9
|
+
forEach(AtomButtonMenu.propTypes, (value, key) => {
|
|
10
|
+
t.not(value, undefined, `PropType for "Atom.AtomButtonMenu.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
test('Atom › AtomButtonMenu › Default › should be rendered', renderComponentMacro, AtomButtonMenu, fixtureDefault);
|
|
14
|
+
test('Atom › AtomButtonMenu › MultipleButtons › should be rendered', renderComponentMacro, AtomButtonMenu, fixtureMultipleButtons);
|
|
15
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/atom/button-menu/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","AtomButtonMenu","fixtureDefault","fixtureMultipleButtons","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AAEAL,IAAI,CAAC,qDAAD,EAAwDM,CAAC,IAAI;AAC/DA,EAAAA,CAAC,CAACC,IAAF;AACAN,EAAAA,OAAO,CAACE,cAAc,CAACK,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,+CAA8CF,GAAI,mEAA3E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAV,IAAI,CAAC,sDAAD,EAAyDE,oBAAzD,EAA+EC,cAA/E,EAA+FC,cAA/F,CAAJ;AACAJ,IAAI,CAAC,8DAAD,EAAiEE,oBAAjE,EAAuFC,cAAvF,EAAuGE,sBAAvG,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport AtomButtonMenu from '..';\nimport fixtureDefault from './fixtures/default';\nimport fixtureMultipleButtons from './fixtures/multiple-buttons';\n\ntest('Atom › AtomButtonMenu > should have valid propTypes', t => {\n t.pass();\n forEach(AtomButtonMenu.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Atom.AtomButtonMenu.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Atom › AtomButtonMenu › Default › should be rendered', renderComponentMacro, AtomButtonMenu, fixtureDefault);\ntest('Atom › AtomButtonMenu › MultipleButtons › should be rendered', renderComponentMacro, AtomButtonMenu, fixtureMultipleButtons);\n"],"file":"fixtures.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/atom/input-text/index.js"],"names":["React","useMemo","PropTypes","NovaSolidStatusCheckCircle2","CheckIcon","NovaSolidStatusClose","ErrorIcon","NovaCompositionCoorpacademyInformationIcon","InfoIcon","classnames","getClassState","style","themeStyle","setup","coorpmanager","cockpit","default","InputText","props","autoFocus","placeholder","value","hint","defaultValue","onChange","error","valid","theme","description","disabled","required","modified","title","propsTitle","handleChange","e","target","mainClass","className","descriptionView","toolTipView","infoIconWrapper","infoIcon","descriptionLabel","hintView","__html","errorIconView","leftIcon","validIconView","isNoTitle","noValue","input","propTypes","bool","string","oneOf","func"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SACEC,2BAA2B,IAAIC,SADjC,EAEEC,oBAAoB,IAAIC,SAF1B,EAGEC,0CAA0C,IAAIC,QAHhD,QAIO,0BAJP;AAKA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,aAAP,MAA0B,4BAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,UAAU,GAAG;AACjBC,EAAAA,KAAK,EAAEF,KAAK,CAACE,KADI;AAEjBC,EAAAA,YAAY,EAAEH,KAAK,CAACG,YAFH;AAGjBC,EAAAA,OAAO,EAAEJ,KAAK,CAACI,OAHE;AAIjBC,EAAAA,OAAO,EAAEL,KAAK,CAACK;AAJE,CAAnB;;AAMA,MAAMC,SAAS,GAAGC,KAAK,IAAI;AACzB,QAAM;AACJC,IAAAA,SAAS,GAAG,KADR;AAEJC,IAAAA,WAAW,GAAG,EAFV;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,IAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,QAAQ,QANJ;AAOJC,IAAAA,KAPI;AAQJC,IAAAA,KARI;AASJC,IAAAA,KAAK,GAAG,SATJ;AAUJC,IAAAA,WAVI;AAWJC,IAAAA,QAXI;AAYJC,IAAAA,QAZI;AAaJC,IAAAA,QAAQ,GAAG,KAbP;AAcJC,IAAAA,KAAK,EAAEC;AAdH,MAeFf,KAfJ;AAiBA,QAAMc,KAAK,GAAI,GAAEC,UAAW,GAAEH,QAAQ,GAAG,GAAH,GAAS,EAAG,EAAlD;AACA,QAAMI,YAAY,GAAGjC,OAAO,CAAC,MAAMkC,CAAC,IAAIX,QAAQ,CAACW,CAAC,CAACC,MAAF,CAASf,KAAV,CAApB,EAAsC,CAACG,QAAD,CAAtC,CAA5B;AACA,QAAMa,SAAS,GAAGzB,UAAU,CAACe,KAAD,CAA5B;AACA,QAAMW,SAAS,GAAG5B,aAAa,CAACC,KAAK,CAACK,OAAP,EAAgBL,KAAK,CAACoB,QAAtB,EAAgCpB,KAAK,CAACc,KAAtC,EAA6CM,QAA7C,EAAuDN,KAAvD,CAA/B;AACA,QAAMc,eAAe,GACnBX,WAAW,IAAID,KAAK,KAAK,cAAzB,gBACE;AAAK,IAAA,SAAS,EAAEhB,KAAK,CAACiB;AAAtB,KAAoCA,WAApC,CADF,GAEI,IAHN;AAIA,QAAMY,WAAW,GACfZ,WAAW,IAAID,KAAK,KAAK,cAAzB,gBACE;AAAK,IAAA,SAAS,EAAEhB,KAAK,CAAC8B;AAAtB,kBACE,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAE9B,KAAK,CAAC+B;AAA3B,IADF,eAEE;AAAK,IAAA,SAAS,EAAE/B,KAAK,CAACgC;AAAtB,KAAyCf,WAAzC,CAFF,CADF,GAKI,IANN;AAOA,QAAMgB,QAAQ,GACZjB,KAAK,KAAK,cAAV,gBACE;AACE,IAAA,SAAS,EAAEhB,KAAK,CAACW,IADnB,CAEE;AAFF;AAGE,IAAA,uBAAuB,EAAE;AAACuB,MAAAA,MAAM,EAAEpB,KAAK,IAAIH;AAAlB;AAH3B,IADF,GAMI,IAPN;AAQA,QAAMwB,aAAa,GAAGrB,KAAK,gBAAG,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAEd,KAAK,CAACoC;AAA5B,IAAH,GAA8C,IAAzE;AACA,QAAMC,aAAa,GAAGtB,KAAK,gBAAG,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAEf,KAAK,CAACoC;AAA5B,IAAH,GAA8C,IAAzE;
|
|
1
|
+
{"version":3,"sources":["../../../src/atom/input-text/index.js"],"names":["React","useMemo","PropTypes","NovaSolidStatusCheckCircle2","CheckIcon","NovaSolidStatusClose","ErrorIcon","NovaCompositionCoorpacademyInformationIcon","InfoIcon","classnames","getClassState","style","themeStyle","setup","coorpmanager","cockpit","default","InputText","props","autoFocus","placeholder","value","hint","defaultValue","onChange","error","valid","theme","description","disabled","required","modified","title","propsTitle","handleChange","e","target","mainClass","className","descriptionView","toolTipView","infoIconWrapper","infoIcon","descriptionLabel","hintView","__html","errorIconView","leftIcon","validIconView","isNoTitle","noValue","input","propTypes","bool","string","oneOf","func"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, isNil, keys, isEmpty} from 'lodash/fp';\nimport {\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaSolidStatusClose as ErrorIcon,\n NovaCompositionCoorpacademyInformationIcon as InfoIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport getClassState from '../../util/get-class-state';\nimport style from './style.css';\n\nconst themeStyle = {\n setup: style.setup,\n coorpmanager: style.coorpmanager,\n cockpit: style.cockpit,\n default: style.default\n};\nconst InputText = props => {\n const {\n autoFocus = false,\n placeholder = '',\n value,\n hint,\n defaultValue,\n onChange = noop,\n error,\n valid,\n theme = 'default',\n description,\n disabled,\n required,\n modified = false,\n title: propsTitle\n } = props;\n\n const title = `${propsTitle}${required ? '*' : ''}`;\n const handleChange = useMemo(() => e => onChange(e.target.value), [onChange]);\n const mainClass = themeStyle[theme];\n const className = getClassState(style.default, style.modified, style.error, modified, error);\n const descriptionView =\n description && theme !== 'coorpmanager' ? (\n <div className={style.description}>{description}</div>\n ) : null;\n const toolTipView =\n description && theme === 'coorpmanager' ? (\n <div className={style.infoIconWrapper}>\n <InfoIcon className={style.infoIcon} />\n <div className={style.descriptionLabel}>{description}</div>\n </div>\n ) : null;\n const hintView =\n theme === 'coorpmanager' ? (\n <div\n className={style.hint}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: error || hint}}\n />\n ) : null;\n const errorIconView = error ? <ErrorIcon className={style.leftIcon} /> : null;\n const validIconView = valid ? <CheckIcon className={style.leftIcon} /> : null;\n\n return (\n <div\n className={classnames(\n mainClass,\n className,\n disabled && style.disabled,\n isNil(propsTitle) && style.isNoTitle\n )}\n >\n <label>\n <span className={classnames(style.title, isEmpty(value) && style.noValue)}>\n {title}\n {toolTipView}\n </span>\n\n <input\n autoFocus={autoFocus}\n type=\"text\"\n name={title}\n className={style.input}\n placeholder={placeholder}\n defaultValue={defaultValue}\n autoComplete={'off'}\n value={value}\n onInput={handleChange}\n disabled={disabled}\n onChange={noop}\n />\n {errorIconView}\n {validIconView}\n {hintView}\n </label>\n {descriptionView}\n </div>\n );\n};\n\nInputText.propTypes = {\n autoFocus: PropTypes.bool,\n title: PropTypes.string,\n placeholder: PropTypes.string,\n defaultValue: PropTypes.string,\n theme: PropTypes.oneOf(keys(themeStyle)),\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n value: PropTypes.string,\n hint: PropTypes.string,\n error: PropTypes.string,\n onChange: PropTypes.func,\n description: PropTypes.string,\n modified: PropTypes.bool,\n valid: PropTypes.bool\n};\nexport default InputText;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
|
|
3
|
+
import React, { useCallback } from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import ButtonLink from '../../atom/button-link';
|
|
6
|
+
import ButtonMenu from '../../atom/button-menu';
|
|
7
|
+
import style from './style.css';
|
|
8
|
+
|
|
9
|
+
const BulletPointMenuButton = props => {
|
|
10
|
+
const {
|
|
11
|
+
disabled = false,
|
|
12
|
+
buttonAriaLabel,
|
|
13
|
+
menuAriaLabel,
|
|
14
|
+
onClick,
|
|
15
|
+
buttons
|
|
16
|
+
} = props;
|
|
17
|
+
const handleOnClick = useCallback(() => onClick(), [onClick]);
|
|
18
|
+
const menuProps = {
|
|
19
|
+
'data-name': 'button-menu',
|
|
20
|
+
buttons
|
|
21
|
+
};
|
|
22
|
+
const menu = /*#__PURE__*/React.createElement("div", {
|
|
23
|
+
className: style.bulletPointMenu,
|
|
24
|
+
"data-name": "menu-wrapper",
|
|
25
|
+
"aria-label": menuAriaLabel
|
|
26
|
+
}, /*#__PURE__*/React.createElement(ButtonMenu, menuProps));
|
|
27
|
+
const bulletPointButtonProps = {
|
|
28
|
+
type: 'secondary',
|
|
29
|
+
'aria-label': buttonAriaLabel,
|
|
30
|
+
'data-name': 'bullet-point-button',
|
|
31
|
+
icon: {
|
|
32
|
+
position: 'center',
|
|
33
|
+
type: 'bullet-point'
|
|
34
|
+
},
|
|
35
|
+
onClick: handleOnClick,
|
|
36
|
+
disabled
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: style.bulletPointWrapper,
|
|
40
|
+
"data-name": "bullet-point-wrapper"
|
|
41
|
+
}, /*#__PURE__*/React.createElement(ButtonLink, _extends({}, bulletPointButtonProps, {
|
|
42
|
+
className: style.bulletPointButton
|
|
43
|
+
})), menu);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
BulletPointMenuButton.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
47
|
+
disabled: PropTypes.bool,
|
|
48
|
+
buttonAriaLabel: PropTypes.string,
|
|
49
|
+
menuAriaLabel: PropTypes.string,
|
|
50
|
+
buttons: ButtonMenu.propTypes.buttons,
|
|
51
|
+
onClick: PropTypes.func
|
|
52
|
+
} : {};
|
|
53
|
+
export default BulletPointMenuButton;
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/bullet-point-menu-button/index.js"],"names":["React","useCallback","PropTypes","ButtonLink","ButtonMenu","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","handleOnClick","menuProps","menu","bulletPointMenu","bulletPointButtonProps","type","icon","position","bulletPointWrapper","bulletPointButton","propTypes","bool","string","func"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,qBAAqB,GAAGC,KAAK,IAAI;AACrC,QAAM;AAACC,IAAAA,QAAQ,GAAG,KAAZ;AAAmBC,IAAAA,eAAnB;AAAoCC,IAAAA,aAApC;AAAmDC,IAAAA,OAAnD;AAA4DC,IAAAA;AAA5D,MAAuEL,KAA7E;AACA,QAAMM,aAAa,GAAGZ,WAAW,CAAC,MAAMU,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AAEA,QAAMG,SAAS,GAAG;AAChB,iBAAa,aADG;AAEhBF,IAAAA;AAFgB,GAAlB;AAKA,QAAMG,IAAI,gBACR;AAAK,IAAA,SAAS,EAAEV,KAAK,CAACW,eAAtB;AAAuC,iBAAU,cAAjD;AAAgE,kBAAYN;AAA5E,kBACE,oBAAC,UAAD,EAAgBI,SAAhB,CADF,CADF;AAKA,QAAMG,sBAAsB,GAAG;AAC7BC,IAAAA,IAAI,EAAE,WADuB;AAE7B,kBAAcT,eAFe;AAG7B,iBAAa,qBAHgB;AAI7BU,IAAAA,IAAI,EAAE;AACJC,MAAAA,QAAQ,EAAE,QADN;AAEJF,MAAAA,IAAI,EAAE;AAFF,KAJuB;AAQ7BP,IAAAA,OAAO,EAAEE,aARoB;AAS7BL,IAAAA;AAT6B,GAA/B;AAYA,sBACE;AAAK,IAAA,SAAS,EAAEH,KAAK,CAACgB,kBAAtB;AAA0C,iBAAU;AAApD,kBACE,oBAAC,UAAD,eAAgBJ,sBAAhB;AAAwC,IAAA,SAAS,EAAEZ,KAAK,CAACiB;AAAzD,KADF,EAEGP,IAFH,CADF;AAMD,CAhCD;;AAkCAT,qBAAqB,CAACiB,SAAtB,2CAAkC;AAChCf,EAAAA,QAAQ,EAAEN,SAAS,CAACsB,IADY;AAEhCf,EAAAA,eAAe,EAAEP,SAAS,CAACuB,MAFK;AAGhCf,EAAAA,aAAa,EAAER,SAAS,CAACuB,MAHO;AAIhCb,EAAAA,OAAO,EAAER,UAAU,CAACmB,SAAX,CAAqBX,OAJE;AAKhCD,EAAAA,OAAO,EAAET,SAAS,CAACwB;AALa,CAAlC;AAQA,eAAepB,qBAAf","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLink from '../../atom/button-link';\nimport ButtonMenu from '../../atom/button-menu';\nimport style from './style.css';\n\nconst BulletPointMenuButton = props => {\n const {disabled = false, buttonAriaLabel, menuAriaLabel, onClick, buttons} = props;\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menu = (\n <div className={style.bulletPointMenu} data-name=\"menu-wrapper\" aria-label={menuAriaLabel}>\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n type: 'secondary',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: {\n position: 'center',\n type: 'bullet-point'\n },\n onClick: handleOnClick,\n disabled\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLink {...bulletPointButtonProps} className={style.bulletPointButton} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = {\n disabled: PropTypes.bool,\n buttonAriaLabel: PropTypes.string,\n menuAriaLabel: PropTypes.string,\n buttons: ButtonMenu.propTypes.buttons,\n onClick: PropTypes.func\n};\n\nexport default BulletPointMenuButton;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
@value colors: "../../variables/colors.css";
|
|
2
|
+
@value transparent from colors;
|
|
3
|
+
@value cm_grey_100 from colors;
|
|
4
|
+
|
|
5
|
+
.bulletPointWrapper {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column-reverse;
|
|
8
|
+
justify-content: flex-end;
|
|
9
|
+
width: 44px;
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.bulletPointButton {
|
|
14
|
+
position: relative;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.bulletPointMenu {
|
|
19
|
+
min-width: 80px;
|
|
20
|
+
/* positioning */
|
|
21
|
+
position: absolute;
|
|
22
|
+
align-self: flex-end;
|
|
23
|
+
bottom: 54px;
|
|
24
|
+
right: 0px;
|
|
25
|
+
/* elevation shadow */
|
|
26
|
+
box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 28px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px, rgba(255, 255, 255, 0.05) 0px 0px 0px 1px inset;
|
|
27
|
+
z-index: 1;
|
|
28
|
+
/* round corners */
|
|
29
|
+
border-radius: 7px;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
background-color: cm_grey_100;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Fade-in - Fade-out */
|
|
35
|
+
.bulletPointButton,button + .bulletPointMenu {
|
|
36
|
+
max-height: 0;
|
|
37
|
+
/* fade out combo */
|
|
38
|
+
visibility: hidden;
|
|
39
|
+
opacity:0;
|
|
40
|
+
transition:visibility 0.5s ease,opacity 0.5s ease;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.bulletPointButton,button:focus + .bulletPointMenu {
|
|
44
|
+
/* fade in combo */
|
|
45
|
+
max-height: max-content;
|
|
46
|
+
visibility:visible;
|
|
47
|
+
opacity:1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Recover - unset pointer-events */
|
|
51
|
+
.bulletPointButton,button:focus { pointer-events: none; }
|
|
52
|
+
.bulletPointButton,button:not(:focus) { pointer-events: auto; }
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import _identity from "lodash/fp/identity";
|
|
2
|
+
import browserEnv from 'browser-env';
|
|
3
|
+
import test from 'ava';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { mount, configure } from 'enzyme';
|
|
6
|
+
import Adapter from 'enzyme-adapter-react-16';
|
|
7
|
+
import BulletPointMenuButton from '..';
|
|
8
|
+
import defaultFixture from './fixtures/default';
|
|
9
|
+
browserEnv();
|
|
10
|
+
configure({
|
|
11
|
+
adapter: new Adapter()
|
|
12
|
+
});
|
|
13
|
+
const translate = _identity;
|
|
14
|
+
test('should launch onClick, should find the button menu and have clickable buttons', t => {
|
|
15
|
+
const wrapper = mount( /*#__PURE__*/React.createElement(BulletPointMenuButton, defaultFixture.props), {
|
|
16
|
+
context: {
|
|
17
|
+
translate
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const button = wrapper.find('[data-name="bullet-point-button"]');
|
|
21
|
+
t.true(button.exists());
|
|
22
|
+
button.first().simulate('click', {});
|
|
23
|
+
const menu = wrapper.find('[data-name="button-menu"]').children().first();
|
|
24
|
+
t.true(menu.exists());
|
|
25
|
+
t.is(menu.children().length, 2);
|
|
26
|
+
const publishButton = menu.find('[data-name="menu-publish-button"]');
|
|
27
|
+
t.true(publishButton.exists());
|
|
28
|
+
publishButton.first().simulate('click', {});
|
|
29
|
+
const deleteButton = menu.find('[data-name="menu-delete-button"]');
|
|
30
|
+
t.true(deleteButton.exists());
|
|
31
|
+
deleteButton.first().simulate('click', {});
|
|
32
|
+
t.pass();
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=bullet-point-menu-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js"],"names":["browserEnv","test","React","mount","configure","Adapter","BulletPointMenuButton","defaultFixture","adapter","translate","t","wrapper","props","context","button","find","true","exists","first","simulate","menu","children","is","length","publishButton","deleteButton","pass"],"mappings":";AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,KAAR,EAAeC,SAAf,QAA+B,QAA/B;AAEA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,qBAAP,MAAkC,IAAlC;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AACA,MAAMI,SAAS,YAAf;AAEAR,IAAI,CAAC,+EAAD,EAAkFS,CAAC,IAAI;AACzF,QAAMC,OAAO,GAAGR,KAAK,eAAC,oBAAC,qBAAD,EAA2BI,cAAc,CAACK,KAA1C,CAAD,EAAsD;AACzEC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AADgE,GAAtD,CAArB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,mCAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACA,QAAMC,IAAI,GAAGT,OAAO,CAACI,IAAR,CAAa,2BAAb,EAA0CM,QAA1C,GAAqDH,KAArD,EAAb;AACAR,EAAAA,CAAC,CAACM,IAAF,CAAOI,IAAI,CAACH,MAAL,EAAP;AACAP,EAAAA,CAAC,CAACY,EAAF,CAAKF,IAAI,CAACC,QAAL,GAAgBE,MAArB,EAA6B,CAA7B;AACA,QAAMC,aAAa,GAAGJ,IAAI,CAACL,IAAL,CAAU,mCAAV,CAAtB;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOQ,aAAa,CAACP,MAAd,EAAP;AACAO,EAAAA,aAAa,CAACN,KAAd,GAAsBC,QAAtB,CAA+B,OAA/B,EAAwC,EAAxC;AACA,QAAMM,YAAY,GAAGL,IAAI,CAACL,IAAL,CAAU,kCAAV,CAArB;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOS,YAAY,CAACR,MAAb,EAAP;AACAQ,EAAAA,YAAY,CAACP,KAAb,GAAqBC,QAArB,CAA8B,OAA9B,EAAuC,EAAvC;AACAT,EAAAA,CAAC,CAACgB,IAAF;AACD,CAjBG,CAAJ","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {mount, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport BulletPointMenuButton from '..';\nimport defaultFixture from './fixtures/default';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick, should find the button menu and have clickable buttons', t => {\n const wrapper = mount(<BulletPointMenuButton {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-point-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n const menu = wrapper.find('[data-name=\"button-menu\"]').children().first();\n t.true(menu.exists());\n t.is(menu.children().length, 2);\n const publishButton = menu.find('[data-name=\"menu-publish-button\"]');\n t.true(publishButton.exists());\n publishButton.first().simulate('click', {});\n const deleteButton = menu.find('[data-name=\"menu-delete-button\"]');\n t.true(deleteButton.exists());\n deleteButton.first().simulate('click', {});\n t.pass();\n});\n"],"file":"bullet-point-menu-button.js"}
|