@coorpacademy/components 11.32.30 → 11.32.32

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.
@@ -3,7 +3,7 @@ import _getOr from "lodash/fp/getOr";
3
3
 
4
4
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
5
 
6
- import React, { useMemo, useState, useCallback, useRef } from 'react';
6
+ import React, { useState, useCallback, useRef } from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import classnames from 'classnames';
9
9
  import { ICONS } from '../../util/button-icons';
@@ -61,7 +61,7 @@ const ButtonLinkIcon = props => {
61
61
  const timer = useRef();
62
62
  const contentView = getButtonContent(icon, faIcon);
63
63
  const styleButton = classnames(getSizeStyle(size), link && style.link, disabled && style.disabled, className);
64
- const handleOnClick = useMemo(() => () => onClick(), [onClick]);
64
+ const handleOnClick = useCallback(() => onClick(), [onClick]);
65
65
  const handleMouseOver = useCallback(() => {
66
66
  timer.current && clearTimeout(timer.current);
67
67
  timer.current = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","useRef","PropTypes","classnames","ICONS","FaIcon","Link","ToolTip","style","getButtonContent","icon","faIcon","Icon","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIcon","props","disabled","dataName","ariaLabel","link","onClick","className","tooltipPlacement","toolTipIsVisible","setToolTipIsVisible","timer","contentView","styleButton","handleOnClick","handleMouseOver","current","clearTimeout","setTimeout","undefined","handleMouseLeave","TooltipContent","tooltipContentWrapper","Button","propTypes","oneOf","string","func","shape","href","download","bool","target"],"sources":["../../../src/atom/button-link-icon/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport FaIcon from '../icon';\nimport Link from '../link';\nimport ToolTip from '../tooltip';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst getButtonContent = (icon, faIcon) => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon && !faIcon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n {faIcon ? <FaIcon iconName={faIcon} /> : <Icon className={style.icon} />}\n </div>\n );\n};\n\nconst getSizeStyle = size => {\n switch (size) {\n case 'small':\n return style.small;\n case 'responsive':\n return style.responsive;\n default:\n return style.default;\n }\n};\n\nconst ButtonLinkIcon = props => {\n const {\n size = 'default',\n disabled,\n icon,\n faIcon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick,\n className,\n tooltipPlacement = 'left'\n } = props;\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n const timer = useRef();\n\n const contentView = getButtonContent(icon, faIcon);\n const styleButton = classnames(\n getSizeStyle(size),\n link && style.link,\n disabled && style.disabled,\n className\n );\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n\n const handleMouseOver = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setToolTipIsVisible(true);\n timer.current = undefined;\n }, 300);\n }, [timer, setToolTipIsVisible]);\n\n const handleMouseLeave = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n setToolTipIsVisible(false);\n }, [timer, setToolTipIsVisible]);\n\n const TooltipContent = useCallback(\n () => <span className={style.tooltipContentWrapper}>{ariaLabel}</span>,\n [ariaLabel]\n );\n\n const Button = useCallback(\n () =>\n link ? (\n <Link\n {...link}\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {contentView}\n </Link>\n ) : (\n <button\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}-${className}`}\n className={styleButton}\n onClick={handleOnClick}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n disabled={disabled}\n >\n {contentView}\n </button>\n ),\n [\n link,\n ariaLabel,\n className,\n contentView,\n dataName,\n disabled,\n handleMouseLeave,\n handleMouseOver,\n handleOnClick,\n styleButton,\n toolTipIsVisible\n ]\n );\n\n return (\n <>\n <Button />\n {ariaLabel ? (\n <ToolTip\n fontSize={12}\n anchorId=\"button-icon\"\n toolTipIsVisible={toolTipIsVisible}\n placement={tooltipPlacement}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={ariaLabel}\n />\n ) : null}\n </>\n );\n};\n\nButtonLinkIcon.propTypes = {\n size: PropTypes.oneOf(['default', 'small', 'responsive']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.string,\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 className: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ButtonLinkIcon;\n"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAeC,OAAf,EAAwBC,QAAxB,EAAkCC,WAAlC,EAA+CC,MAA/C,QAA4D,OAA5D;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,KAAR,QAAoB,yBAApB;AACA,OAAOC,MAAP,MAAmB,SAAnB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,OAAP,MAAoB,YAApB,C,CACA;;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,gBAAgB,GAAG,CAACC,IAAD,EAAOC,MAAP,KAAkB;EACzC,MAAMC,IAAI,GAAG,OAAM,IAAN,EAAYF,IAAZ,EAAkBN,KAAlB,CAAb;;EAEA,IAAI,CAACQ,IAAD,IAAS,CAACD,MAAd,EAAsB;IACpB,oBAAO;MAAK,SAAS,EAAEH,KAAK,CAACK;IAAtB,EAAP;EACD;;EAED,oBACE;IAAK,SAAS,EAAEL,KAAK,CAACK;EAAtB,GACGF,MAAM,gBAAG,oBAAC,MAAD;IAAQ,QAAQ,EAAEA;EAAlB,EAAH,gBAAkC,oBAAC,IAAD;IAAM,SAAS,EAAEH,KAAK,CAACE;EAAvB,EAD3C,CADF;AAKD,CAZD;;AAcA,MAAMI,YAAY,GAAGC,IAAI,IAAI;EAC3B,QAAQA,IAAR;IACE,KAAK,OAAL;MACE,OAAOP,KAAK,CAACQ,KAAb;;IACF,KAAK,YAAL;MACE,OAAOR,KAAK,CAACS,UAAb;;IACF;MACE,OAAOT,KAAK,CAACU,OAAb;EANJ;AAQD,CATD;;AAWA,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJL,IAAI,GAAG,SADH;IAEJM,QAFI;IAGJX,IAHI;IAIJC,MAJI;IAKJ,aAAaW,QALT;IAMJ,cAAcC,SANV;IAOJC,IAPI;IAQJC,OARI;IASJC,SATI;IAUJC,gBAAgB,GAAG;EAVf,IAWFP,KAXJ;EAYA,MAAM,CAACQ,gBAAD,EAAmBC,mBAAnB,IAA0C9B,QAAQ,CAAC,KAAD,CAAxD;EACA,MAAM+B,KAAK,GAAG7B,MAAM,EAApB;EAEA,MAAM8B,WAAW,GAAGtB,gBAAgB,CAACC,IAAD,EAAOC,MAAP,CAApC;EACA,MAAMqB,WAAW,GAAG7B,UAAU,CAC5BW,YAAY,CAACC,IAAD,CADgB,EAE5BS,IAAI,IAAIhB,KAAK,CAACgB,IAFc,EAG5BH,QAAQ,IAAIb,KAAK,CAACa,QAHU,EAI5BK,SAJ4B,CAA9B;EAOA,MAAMO,aAAa,GAAGnC,OAAO,CAAC,MAAM,MAAM2B,OAAO,EAApB,EAAwB,CAACA,OAAD,CAAxB,CAA7B;EAEA,MAAMS,eAAe,GAAGlC,WAAW,CAAC,MAAM;IACxC8B,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;IACAL,KAAK,CAACK,OAAN,GAAgBE,UAAU,CAAC,MAAM;MAC/BR,mBAAmB,CAAC,IAAD,CAAnB;MACAC,KAAK,CAACK,OAAN,GAAgBG,SAAhB;IACD,CAHyB,EAGvB,GAHuB,CAA1B;EAID,CANkC,EAMhC,CAACR,KAAD,EAAQD,mBAAR,CANgC,CAAnC;EAQA,MAAMU,gBAAgB,GAAGvC,WAAW,CAAC,MAAM;IACzC8B,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;IACAN,mBAAmB,CAAC,KAAD,CAAnB;EACD,CAHmC,EAGjC,CAACC,KAAD,EAAQD,mBAAR,CAHiC,CAApC;EAKA,MAAMW,cAAc,GAAGxC,WAAW,CAChC,mBAAM;IAAM,SAAS,EAAEQ,KAAK,CAACiC;EAAvB,GAA+ClB,SAA/C,CAD0B,EAEhC,CAACA,SAAD,CAFgC,CAAlC;EAKA,MAAMmB,MAAM,GAAG1C,WAAW,CACxB,MACEwB,IAAI,gBACF,oBAAC,IAAD,eACMA,IADN,EAEOD,SAAS,GACV;IACE,YAAY,aADd;IAEE,YAAYK;EAFd,CADU,GAKV,EAPN;IAQE,SAAS,EAAEI,WARb;IASE,aAAWV,QATb;IAUE,cAAYC,SAVd;IAWE,YAAY,EAAEgB,gBAXhB;IAYE,WAAW,EAAEL;EAZf,IAcGH,WAdH,CADE,gBAkBF,2CACOR,SAAS,GACV;IACE,YAAY,aADd;IAEE,YAAYK;EAFd,CADU,GAKV,EANN;IAOE,IAAI,EAAC,QAPP;IAQE,cAAYL,SARd;IASE,aAAWD,QATb;IAUE,eAAc,UAASA,QAAS,IAAGI,SAAU,EAV/C;IAWE,SAAS,EAAEM,WAXb;IAYE,OAAO,EAAEC,aAZX;IAaE,YAAY,EAAEM,gBAbhB;IAcE,WAAW,EAAEL,eAdf;IAeE,QAAQ,EAAEb;EAfZ,IAiBGU,WAjBH,CApBoB,EAwCxB,CACEP,IADF,EAEED,SAFF,EAGEG,SAHF,EAIEK,WAJF,EAKET,QALF,EAMED,QANF,EAOEkB,gBAPF,EAQEL,eARF,EASED,aATF,EAUED,WAVF,EAWEJ,gBAXF,CAxCwB,CAA1B;EAuDA,oBACE,uDACE,oBAAC,MAAD,OADF,EAEGL,SAAS,gBACR,oBAAC,OAAD;IACE,QAAQ,EAAE,EADZ;IAEE,QAAQ,EAAC,aAFX;IAGE,gBAAgB,EAAEK,gBAHpB;IAIE,SAAS,EAAED,gBAJb;IAKE,cAAc,EAAEa,cALlB;IAME,oCAAoC,EAAEjB;EANxC,EADQ,GASN,IAXN,CADF;AAeD,CAlHD;;AAoHAJ,cAAc,CAACwB,SAAf,2CAA2B;EACzB5B,IAAI,EAAEb,SAAS,CAAC0C,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAAhB,CADmB;EAEzB,cAAc1C,SAAS,CAAC2C,MAFC;EAGzB,aAAa3C,SAAS,CAAC2C,MAHE;EAIzBnC,IAAI,EAAER,SAAS,CAAC0C,KAAV,CAAgB,MAAKxC,KAAL,CAAhB,CAJmB;EAKzBO,MAAM,EAAET,SAAS,CAAC2C,MALO;EAMzBpB,OAAO,EAAEvB,SAAS,CAAC4C,IANM;EAOzBtB,IAAI,EAAEtB,SAAS,CAAC6C,KAAV,CAAgB;IACpBC,IAAI,EAAE9C,SAAS,CAAC2C,MADI;IAEpBI,QAAQ,EAAE/C,SAAS,CAACgD,IAFA;IAGpBC,MAAM,EAAEjD,SAAS,CAAC0C,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;EAHY,CAAhB,CAPmB;EAYzBvB,QAAQ,EAAEnB,SAAS,CAACgD,IAZK;EAazBxB,SAAS,EAAExB,SAAS,CAAC2C,MAbI;EAczBlB,gBAAgB,EAAEzB,SAAS,CAAC0C,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,QAAzB,CAAhB;AAdO,CAA3B;AAiBA,eAAezB,cAAf"}
1
+ {"version":3,"file":"index.js","names":["React","useState","useCallback","useRef","PropTypes","classnames","ICONS","FaIcon","Link","ToolTip","style","getButtonContent","icon","faIcon","Icon","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIcon","props","disabled","dataName","ariaLabel","link","onClick","className","tooltipPlacement","toolTipIsVisible","setToolTipIsVisible","timer","contentView","styleButton","handleOnClick","handleMouseOver","current","clearTimeout","setTimeout","undefined","handleMouseLeave","TooltipContent","tooltipContentWrapper","Button","propTypes","oneOf","string","func","shape","href","download","bool","target"],"sources":["../../../src/atom/button-link-icon/index.js"],"sourcesContent":["import React, {useState, useCallback, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport FaIcon from '../icon';\nimport Link from '../link';\nimport ToolTip from '../tooltip';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst getButtonContent = (icon, faIcon) => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon && !faIcon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n {faIcon ? <FaIcon iconName={faIcon} /> : <Icon className={style.icon} />}\n </div>\n );\n};\n\nconst getSizeStyle = size => {\n switch (size) {\n case 'small':\n return style.small;\n case 'responsive':\n return style.responsive;\n default:\n return style.default;\n }\n};\n\nconst ButtonLinkIcon = props => {\n const {\n size = 'default',\n disabled,\n icon,\n faIcon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick,\n className,\n tooltipPlacement = 'left'\n } = props;\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n const timer = useRef();\n\n const contentView = getButtonContent(icon, faIcon);\n const styleButton = classnames(\n getSizeStyle(size),\n link && style.link,\n disabled && style.disabled,\n className\n );\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const handleMouseOver = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setToolTipIsVisible(true);\n timer.current = undefined;\n }, 300);\n }, [timer, setToolTipIsVisible]);\n\n const handleMouseLeave = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n setToolTipIsVisible(false);\n }, [timer, setToolTipIsVisible]);\n\n const TooltipContent = useCallback(\n () => <span className={style.tooltipContentWrapper}>{ariaLabel}</span>,\n [ariaLabel]\n );\n\n const Button = useCallback(\n () =>\n link ? (\n <Link\n {...link}\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {contentView}\n </Link>\n ) : (\n <button\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}-${className}`}\n className={styleButton}\n onClick={handleOnClick}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n disabled={disabled}\n >\n {contentView}\n </button>\n ),\n [\n link,\n ariaLabel,\n className,\n contentView,\n dataName,\n disabled,\n handleMouseLeave,\n handleMouseOver,\n handleOnClick,\n styleButton,\n toolTipIsVisible\n ]\n );\n\n return (\n <>\n <Button />\n {ariaLabel ? (\n <ToolTip\n fontSize={12}\n anchorId=\"button-icon\"\n toolTipIsVisible={toolTipIsVisible}\n placement={tooltipPlacement}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={ariaLabel}\n />\n ) : null}\n </>\n );\n};\n\nButtonLinkIcon.propTypes = {\n size: PropTypes.oneOf(['default', 'small', 'responsive']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.string,\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 className: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ButtonLinkIcon;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAG9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;CA0C/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAG9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;CA2D/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
@@ -1,4 +1,5 @@
1
- import React, { useCallback } from 'react';
1
+ import _noop from "lodash/fp/noop";
2
+ import React, { useCallback, useState, useEffect } from 'react';
2
3
  import classnames from 'classnames';
3
4
  import ButtonLinkIcon from '../../atom/button-link-icon';
4
5
  import ButtonMenu from '../../atom/button-menu';
@@ -10,18 +11,30 @@ const BulletPointMenuButton = props => {
10
11
  disabled = false,
11
12
  buttonAriaLabel,
12
13
  menuAriaLabel,
13
- onClick,
14
+ onClick = _noop,
14
15
  buttons,
15
16
  menuButtonClassName,
16
17
  isBulkMenu
17
18
  } = props;
18
- const handleOnClick = useCallback(() => onClick(), [onClick]);
19
+ const [visible, setVisible] = useState(false);
20
+ const handleOnClick = useCallback(() => {
21
+ onClick();
22
+ setVisible(true);
23
+ }, [onClick]);
24
+ useEffect(() => {
25
+ const handleMouseDown = () => setVisible(false);
26
+
27
+ document.addEventListener('mousedown', handleMouseDown);
28
+ return () => {
29
+ document.removeEventListener('mousedown', handleMouseDown);
30
+ };
31
+ }, []);
19
32
  const menuProps = {
20
33
  'data-name': 'button-menu',
21
34
  buttons
22
35
  };
23
36
  const menu = /*#__PURE__*/React.createElement("div", {
24
- className: classnames(style.bulletPointMenu, isBulkMenu && style.bulkBulletPointMenu),
37
+ className: classnames(style.bulletPointMenu, isBulkMenu && style.bulkBulletPointMenu, visible && style.visible),
25
38
  "data-name": "menu-wrapper",
26
39
  "aria-label": menuAriaLabel
27
40
  }, /*#__PURE__*/React.createElement(ButtonMenu, menuProps));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","menuButtonClassName","isBulkMenu","handleOnClick","menuProps","menu","bulletPointMenu","bulkBulletPointMenu","bulletPointButtonProps","size","icon","className","bulletPointWrapper"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick,\n buttons,\n menuButtonClassName,\n isBulkMenu\n } = 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\n className={classnames(style.bulletPointMenu, isBulkMenu && style.bulkBulletPointMenu)}\n data-name=\"menu-wrapper\"\n aria-label={menuAriaLabel}\n >\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,WAAf,QAAiC,OAAjC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,cAAP,MAA2B,6BAA3B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,SAAP,MAAoD,SAApD;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,qBAAqB,GAAIC,KAAD,IAAuC;EACnE,MAAM;IACJC,QAAQ,GAAG,KADP;IAEJC,eAFI;IAGJC,aAHI;IAIJC,OAJI;IAKJC,OALI;IAMJC,mBANI;IAOJC;EAPI,IAQFP,KARJ;EASA,MAAMQ,aAAa,GAAGf,WAAW,CAAC,MAAMW,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;EAEA,MAAMK,SAAS,GAAG;IAChB,aAAa,aADG;IAEhBJ;EAFgB,CAAlB;EAKA,MAAMK,IAAI,gBACR;IACE,SAAS,EAAEhB,UAAU,CAACI,KAAK,CAACa,eAAP,EAAwBJ,UAAU,IAAIT,KAAK,CAACc,mBAA5C,CADvB;IAEE,aAAU,cAFZ;IAGE,cAAYT;EAHd,gBAKE,oBAAC,UAAD,EAAgBM,SAAhB,CALF,CADF;EASA,MAAMI,sBAAsB,GAAG;IAC7BC,IAAI,EAAE,SADuB;IAE7B,cAAcZ,eAFe;IAG7B,aAAa,qBAHgB;IAI7Ba,IAAI,EAAE,cAJuB;IAK7BX,OAAO,EAAEI,aALoB;IAM7BP,QAN6B;IAO7Be,SAAS,EAAEV;EAPkB,CAA/B;EAUA,oBACE;IAAK,SAAS,EAAER,KAAK,CAACmB,kBAAtB;IAA0C,aAAU;EAApD,gBACE,oBAAC,cAAD,EAAoBJ,sBAApB,CADF,EAEGH,IAFH,CADF;AAMD,CA1CD;;AA4CAX,qBAAqB,CAACF,SAAtB,2CAAkCA,SAAlC;AAEA,eAAeE,qBAAf"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","useEffect","classnames","ButtonLinkIcon","ButtonMenu","propTypes","style","BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","menuButtonClassName","isBulkMenu","visible","setVisible","handleOnClick","handleMouseDown","document","addEventListener","removeEventListener","menuProps","menu","bulletPointMenu","bulkBulletPointMenu","bulletPointButtonProps","size","icon","className","bulletPointWrapper"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu\n } = props;\n const [visible, setVisible] = useState(false);\n\n const handleOnClick = useCallback(() => {\n onClick();\n setVisible(true);\n }, [onClick]);\n\n useEffect(() => {\n const handleMouseDown = () => setVisible(false);\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, []);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menu = (\n <div\n className={classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n visible && style.visible\n )}\n data-name=\"menu-wrapper\"\n aria-label={menuAriaLabel}\n >\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":";AAAA,OAAOA,KAAP,IAAeC,WAAf,EAA4BC,QAA5B,EAAsCC,SAAtC,QAAsD,OAAtD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,OAAOC,cAAP,MAA2B,6BAA3B;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AACA,OAAOC,SAAP,MAAoD,SAApD;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,qBAAqB,GAAIC,KAAD,IAAuC;EACnE,MAAM;IACJC,QAAQ,GAAG,KADP;IAEJC,eAFI;IAGJC,aAHI;IAIJC,OAAO,QAJH;IAKJC,OALI;IAMJC,mBANI;IAOJC;EAPI,IAQFP,KARJ;EASA,MAAM,CAACQ,OAAD,EAAUC,UAAV,IAAwBjB,QAAQ,CAAC,KAAD,CAAtC;EAEA,MAAMkB,aAAa,GAAGnB,WAAW,CAAC,MAAM;IACtCa,OAAO;IACPK,UAAU,CAAC,IAAD,CAAV;EACD,CAHgC,EAG9B,CAACL,OAAD,CAH8B,CAAjC;EAKAX,SAAS,CAAC,MAAM;IACd,MAAMkB,eAAe,GAAG,MAAMF,UAAU,CAAC,KAAD,CAAxC;;IACAG,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCF,eAAvC;IACA,OAAO,MAAM;MACXC,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0CH,eAA1C;IACD,CAFD;EAGD,CANQ,EAMN,EANM,CAAT;EAQA,MAAMI,SAAS,GAAG;IAChB,aAAa,aADG;IAEhBV;EAFgB,CAAlB;EAKA,MAAMW,IAAI,gBACR;IACE,SAAS,EAAEtB,UAAU,CACnBI,KAAK,CAACmB,eADa,EAEnBV,UAAU,IAAIT,KAAK,CAACoB,mBAFD,EAGnBV,OAAO,IAAIV,KAAK,CAACU,OAHE,CADvB;IAME,aAAU,cANZ;IAOE,cAAYL;EAPd,gBASE,oBAAC,UAAD,EAAgBY,SAAhB,CATF,CADF;EAaA,MAAMI,sBAAsB,GAAG;IAC7BC,IAAI,EAAE,SADuB;IAE7B,cAAclB,eAFe;IAG7B,aAAa,qBAHgB;IAI7BmB,IAAI,EAAE,cAJuB;IAK7BjB,OAAO,EAAEM,aALoB;IAM7BT,QAN6B;IAO7BqB,SAAS,EAAEhB;EAPkB,CAA/B;EAUA,oBACE;IAAK,SAAS,EAAER,KAAK,CAACyB,kBAAtB;IAA0C,aAAU;EAApD,gBACE,oBAAC,cAAD,EAAoBJ,sBAApB,CADF,EAEGH,IAFH,CADF;AAMD,CA3DD;;AA6DAjB,qBAAqB,CAACF,SAAtB,2CAAkCA,SAAlC;AAEA,eAAeE,qBAAf"}
@@ -29,31 +29,18 @@
29
29
  border-radius: 7px;
30
30
  overflow: hidden;
31
31
  background-color: cm_grey_100;
32
- }
33
-
34
- /* Fade-in - Fade-out, does target button class but bulletPointMenu only */
35
- button + .bulletPointMenu {
36
- /* fade out combo */
37
32
  visibility: hidden;
38
33
  opacity:0;
39
34
  transition:visibility 0.5s ease,opacity 0.5s ease;
40
35
  }
41
36
 
42
- /* Does target button class but bulletPointMenu only */
43
- button:focus + .bulletPointMenu {
37
+ .visible {
44
38
  /* fade in combo */
45
39
  max-height: max-content;
46
- visibility:visible;
40
+ visibility: visible;
47
41
  opacity:1;
48
42
  }
49
43
 
50
- /*
51
- Recover - unset pointer-events,
52
- to be able to click on the button when the menu is open to close it
53
- */
54
- .bulletPointWrapper > button:focus { pointer-events: none; }
55
- .bulletPointWrapper > button:not(:focus) { pointer-events: auto; }
56
-
57
44
  /*
58
45
  bulk theme
59
46
  */
@@ -79,7 +79,7 @@ const ButtonLinkIcon = props => {
79
79
  const timer = (0, _react.useRef)();
80
80
  const contentView = getButtonContent(icon, faIcon);
81
81
  const styleButton = (0, _classnames.default)(getSizeStyle(size), link && _style.default.link, disabled && _style.default.disabled, className);
82
- const handleOnClick = (0, _react.useMemo)(() => () => onClick(), [onClick]);
82
+ const handleOnClick = (0, _react.useCallback)(() => onClick(), [onClick]);
83
83
  const handleMouseOver = (0, _react.useCallback)(() => {
84
84
  timer.current && clearTimeout(timer.current);
85
85
  timer.current = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getButtonContent","icon","faIcon","Icon","ICONS","style","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIcon","props","disabled","dataName","ariaLabel","link","onClick","className","tooltipPlacement","toolTipIsVisible","setToolTipIsVisible","useState","timer","useRef","contentView","styleButton","classnames","handleOnClick","useMemo","handleMouseOver","useCallback","current","clearTimeout","setTimeout","undefined","handleMouseLeave","TooltipContent","tooltipContentWrapper","Button","propTypes","PropTypes","oneOf","string","func","shape","href","download","bool","target"],"sources":["../../../src/atom/button-link-icon/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport FaIcon from '../icon';\nimport Link from '../link';\nimport ToolTip from '../tooltip';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst getButtonContent = (icon, faIcon) => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon && !faIcon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n {faIcon ? <FaIcon iconName={faIcon} /> : <Icon className={style.icon} />}\n </div>\n );\n};\n\nconst getSizeStyle = size => {\n switch (size) {\n case 'small':\n return style.small;\n case 'responsive':\n return style.responsive;\n default:\n return style.default;\n }\n};\n\nconst ButtonLinkIcon = props => {\n const {\n size = 'default',\n disabled,\n icon,\n faIcon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick,\n className,\n tooltipPlacement = 'left'\n } = props;\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n const timer = useRef();\n\n const contentView = getButtonContent(icon, faIcon);\n const styleButton = classnames(\n getSizeStyle(size),\n link && style.link,\n disabled && style.disabled,\n className\n );\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n\n const handleMouseOver = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setToolTipIsVisible(true);\n timer.current = undefined;\n }, 300);\n }, [timer, setToolTipIsVisible]);\n\n const handleMouseLeave = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n setToolTipIsVisible(false);\n }, [timer, setToolTipIsVisible]);\n\n const TooltipContent = useCallback(\n () => <span className={style.tooltipContentWrapper}>{ariaLabel}</span>,\n [ariaLabel]\n );\n\n const Button = useCallback(\n () =>\n link ? (\n <Link\n {...link}\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {contentView}\n </Link>\n ) : (\n <button\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}-${className}`}\n className={styleButton}\n onClick={handleOnClick}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n disabled={disabled}\n >\n {contentView}\n </button>\n ),\n [\n link,\n ariaLabel,\n className,\n contentView,\n dataName,\n disabled,\n handleMouseLeave,\n handleMouseOver,\n handleOnClick,\n styleButton,\n toolTipIsVisible\n ]\n );\n\n return (\n <>\n <Button />\n {ariaLabel ? (\n <ToolTip\n fontSize={12}\n anchorId=\"button-icon\"\n toolTipIsVisible={toolTipIsVisible}\n placement={tooltipPlacement}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={ariaLabel}\n />\n ) : null}\n </>\n );\n};\n\nButtonLinkIcon.propTypes = {\n size: PropTypes.oneOf(['default', 'small', 'responsive']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.string,\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 className: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ButtonLinkIcon;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["getButtonContent","icon","faIcon","Icon","ICONS","style","buttonContent","getSizeStyle","size","small","responsive","default","ButtonLinkIcon","props","disabled","dataName","ariaLabel","link","onClick","className","tooltipPlacement","toolTipIsVisible","setToolTipIsVisible","useState","timer","useRef","contentView","styleButton","classnames","handleOnClick","useCallback","handleMouseOver","current","clearTimeout","setTimeout","undefined","handleMouseLeave","TooltipContent","tooltipContentWrapper","Button","propTypes","PropTypes","oneOf","string","func","shape","href","download","bool","target"],"sources":["../../../src/atom/button-link-icon/index.js"],"sourcesContent":["import React, {useState, useCallback, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport FaIcon from '../icon';\nimport Link from '../link';\nimport ToolTip from '../tooltip';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst getButtonContent = (icon, faIcon) => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon && !faIcon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n {faIcon ? <FaIcon iconName={faIcon} /> : <Icon className={style.icon} />}\n </div>\n );\n};\n\nconst getSizeStyle = size => {\n switch (size) {\n case 'small':\n return style.small;\n case 'responsive':\n return style.responsive;\n default:\n return style.default;\n }\n};\n\nconst ButtonLinkIcon = props => {\n const {\n size = 'default',\n disabled,\n icon,\n faIcon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick,\n className,\n tooltipPlacement = 'left'\n } = props;\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n const timer = useRef();\n\n const contentView = getButtonContent(icon, faIcon);\n const styleButton = classnames(\n getSizeStyle(size),\n link && style.link,\n disabled && style.disabled,\n className\n );\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const handleMouseOver = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setToolTipIsVisible(true);\n timer.current = undefined;\n }, 300);\n }, [timer, setToolTipIsVisible]);\n\n const handleMouseLeave = useCallback(() => {\n timer.current && clearTimeout(timer.current);\n setToolTipIsVisible(false);\n }, [timer, setToolTipIsVisible]);\n\n const TooltipContent = useCallback(\n () => <span className={style.tooltipContentWrapper}>{ariaLabel}</span>,\n [ariaLabel]\n );\n\n const Button = useCallback(\n () =>\n link ? (\n <Link\n {...link}\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {contentView}\n </Link>\n ) : (\n <button\n {...(ariaLabel\n ? {\n 'data-for': 'button-icon',\n 'data-tip': toolTipIsVisible\n }\n : {})}\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}-${className}`}\n className={styleButton}\n onClick={handleOnClick}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n disabled={disabled}\n >\n {contentView}\n </button>\n ),\n [\n link,\n ariaLabel,\n className,\n contentView,\n dataName,\n disabled,\n handleMouseLeave,\n handleMouseOver,\n handleOnClick,\n styleButton,\n toolTipIsVisible\n ]\n );\n\n return (\n <>\n <Button />\n {ariaLabel ? (\n <ToolTip\n fontSize={12}\n anchorId=\"button-icon\"\n toolTipIsVisible={toolTipIsVisible}\n placement={tooltipPlacement}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={ariaLabel}\n />\n ) : null}\n </>\n );\n};\n\nButtonLinkIcon.propTypes = {\n size: PropTypes.oneOf(['default', 'small', 'responsive']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.string,\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 className: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ButtonLinkIcon;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;AAEA,MAAMA,gBAAgB,GAAG,CAACC,IAAD,EAAOC,MAAP,KAAkB;EACzC,MAAMC,IAAI,GAAG,qBAAM,IAAN,EAAYF,IAAZ,EAAkBG,kBAAlB,CAAb;;EAEA,IAAI,CAACD,IAAD,IAAS,CAACD,MAAd,EAAsB;IACpB,oBAAO;MAAK,SAAS,EAAEG,cAAA,CAAMC;IAAtB,EAAP;EACD;;EAED,oBACE;IAAK,SAAS,EAAED,cAAA,CAAMC;EAAtB,GACGJ,MAAM,gBAAG,6BAAC,aAAD;IAAQ,QAAQ,EAAEA;EAAlB,EAAH,gBAAkC,6BAAC,IAAD;IAAM,SAAS,EAAEG,cAAA,CAAMJ;EAAvB,EAD3C,CADF;AAKD,CAZD;;AAcA,MAAMM,YAAY,GAAGC,IAAI,IAAI;EAC3B,QAAQA,IAAR;IACE,KAAK,OAAL;MACE,OAAOH,cAAA,CAAMI,KAAb;;IACF,KAAK,YAAL;MACE,OAAOJ,cAAA,CAAMK,UAAb;;IACF;MACE,OAAOL,cAAA,CAAMM,OAAb;EANJ;AAQD,CATD;;AAWA,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJL,IAAI,GAAG,SADH;IAEJM,QAFI;IAGJb,IAHI;IAIJC,MAJI;IAKJ,aAAaa,QALT;IAMJ,cAAcC,SANV;IAOJC,IAPI;IAQJC,OARI;IASJC,SATI;IAUJC,gBAAgB,GAAG;EAVf,IAWFP,KAXJ;EAYA,MAAM,CAACQ,gBAAD,EAAmBC,mBAAnB,IAA0C,IAAAC,eAAA,EAAS,KAAT,CAAhD;EACA,MAAMC,KAAK,GAAG,IAAAC,aAAA,GAAd;EAEA,MAAMC,WAAW,GAAG1B,gBAAgB,CAACC,IAAD,EAAOC,MAAP,CAApC;EACA,MAAMyB,WAAW,GAAG,IAAAC,mBAAA,EAClBrB,YAAY,CAACC,IAAD,CADM,EAElBS,IAAI,IAAIZ,cAAA,CAAMY,IAFI,EAGlBH,QAAQ,IAAIT,cAAA,CAAMS,QAHA,EAIlBK,SAJkB,CAApB;EAOA,MAAMU,aAAa,GAAG,IAAAC,kBAAA,EAAY,MAAMZ,OAAO,EAAzB,EAA6B,CAACA,OAAD,CAA7B,CAAtB;EAEA,MAAMa,eAAe,GAAG,IAAAD,kBAAA,EAAY,MAAM;IACxCN,KAAK,CAACQ,OAAN,IAAiBC,YAAY,CAACT,KAAK,CAACQ,OAAP,CAA7B;IACAR,KAAK,CAACQ,OAAN,GAAgBE,UAAU,CAAC,MAAM;MAC/BZ,mBAAmB,CAAC,IAAD,CAAnB;MACAE,KAAK,CAACQ,OAAN,GAAgBG,SAAhB;IACD,CAHyB,EAGvB,GAHuB,CAA1B;EAID,CANuB,EAMrB,CAACX,KAAD,EAAQF,mBAAR,CANqB,CAAxB;EAQA,MAAMc,gBAAgB,GAAG,IAAAN,kBAAA,EAAY,MAAM;IACzCN,KAAK,CAACQ,OAAN,IAAiBC,YAAY,CAACT,KAAK,CAACQ,OAAP,CAA7B;IACAV,mBAAmB,CAAC,KAAD,CAAnB;EACD,CAHwB,EAGtB,CAACE,KAAD,EAAQF,mBAAR,CAHsB,CAAzB;EAKA,MAAMe,cAAc,GAAG,IAAAP,kBAAA,EACrB,mBAAM;IAAM,SAAS,EAAEzB,cAAA,CAAMiC;EAAvB,GAA+CtB,SAA/C,CADe,EAErB,CAACA,SAAD,CAFqB,CAAvB;EAKA,MAAMuB,MAAM,GAAG,IAAAT,kBAAA,EACb,MACEb,IAAI,gBACF,6BAAC,aAAD,eACMA,IADN,EAEOD,SAAS,GACV;IACE,YAAY,aADd;IAEE,YAAYK;EAFd,CADU,GAKV,EAPN;IAQE,SAAS,EAAEM,WARb;IASE,aAAWZ,QATb;IAUE,cAAYC,SAVd;IAWE,YAAY,EAAEoB,gBAXhB;IAYE,WAAW,EAAEL;EAZf,IAcGL,WAdH,CADE,gBAkBF,oDACOV,SAAS,GACV;IACE,YAAY,aADd;IAEE,YAAYK;EAFd,CADU,GAKV,EANN;IAOE,IAAI,EAAC,QAPP;IAQE,cAAYL,SARd;IASE,aAAWD,QATb;IAUE,eAAc,UAASA,QAAS,IAAGI,SAAU,EAV/C;IAWE,SAAS,EAAEQ,WAXb;IAYE,OAAO,EAAEE,aAZX;IAaE,YAAY,EAAEO,gBAbhB;IAcE,WAAW,EAAEL,eAdf;IAeE,QAAQ,EAAEjB;EAfZ,IAiBGY,WAjBH,CApBS,EAwCb,CACET,IADF,EAEED,SAFF,EAGEG,SAHF,EAIEO,WAJF,EAKEX,QALF,EAMED,QANF,EAOEsB,gBAPF,EAQEL,eARF,EASEF,aATF,EAUEF,WAVF,EAWEN,gBAXF,CAxCa,CAAf;EAuDA,oBACE,yEACE,6BAAC,MAAD,OADF,EAEGL,SAAS,gBACR,6BAAC,gBAAD;IACE,QAAQ,EAAE,EADZ;IAEE,QAAQ,EAAC,aAFX;IAGE,gBAAgB,EAAEK,gBAHpB;IAIE,SAAS,EAAED,gBAJb;IAKE,cAAc,EAAEiB,cALlB;IAME,oCAAoC,EAAErB;EANxC,EADQ,GASN,IAXN,CADF;AAeD,CAlHD;;AAoHAJ,cAAc,CAAC4B,SAAf,2CAA2B;EACzBhC,IAAI,EAAEiC,kBAAA,CAAUC,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,EAAqB,YAArB,CAAhB,CADmB;EAEzB,cAAcD,kBAAA,CAAUE,MAFC;EAGzB,aAAaF,kBAAA,CAAUE,MAHE;EAIzB1C,IAAI,EAAEwC,kBAAA,CAAUC,KAAV,CAAgB,oBAAKtC,kBAAL,CAAhB,CAJmB;EAKzBF,MAAM,EAAEuC,kBAAA,CAAUE,MALO;EAMzBzB,OAAO,EAAEuB,kBAAA,CAAUG,IANM;EAOzB3B,IAAI,EAAEwB,kBAAA,CAAUI,KAAV,CAAgB;IACpBC,IAAI,EAAEL,kBAAA,CAAUE,MADI;IAEpBI,QAAQ,EAAEN,kBAAA,CAAUO,IAFA;IAGpBC,MAAM,EAAER,kBAAA,CAAUC,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;EAHY,CAAhB,CAPmB;EAYzB5B,QAAQ,EAAE2B,kBAAA,CAAUO,IAZK;EAazB7B,SAAS,EAAEsB,kBAAA,CAAUE,MAbI;EAczBvB,gBAAgB,EAAEqB,kBAAA,CAAUC,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,QAAzB,CAAhB;AAdO,CAA3B;eAiBe9B,c"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAG9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;CA0C/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"names":[],"mappings":";AAKA,OAAkB,EAAC,0BAA0B,EAAC,MAAM,SAAS,CAAC;AAG9D,QAAA,MAAM,qBAAqB;YAAW,0BAA0B;;;;;;;;;;;;;;;;CA2D/D,CAAC;AAIF,eAAe,qBAAqB,CAAC"}
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
+ var _noop2 = _interopRequireDefault(require("lodash/fp/noop"));
7
+
6
8
  var _react = _interopRequireWildcard(require("react"));
7
9
 
8
10
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -15,30 +17,42 @@ var _types = _interopRequireDefault(require("./types"));
15
17
 
16
18
  var _style = _interopRequireDefault(require("./style.css"));
17
19
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
 
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
 
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
24
26
  const BulletPointMenuButton = props => {
25
27
  const {
26
28
  disabled = false,
27
29
  buttonAriaLabel,
28
30
  menuAriaLabel,
29
- onClick,
31
+ onClick = _noop2.default,
30
32
  buttons,
31
33
  menuButtonClassName,
32
34
  isBulkMenu
33
35
  } = props;
34
- const handleOnClick = (0, _react.useCallback)(() => onClick(), [onClick]);
36
+ const [visible, setVisible] = (0, _react.useState)(false);
37
+ const handleOnClick = (0, _react.useCallback)(() => {
38
+ onClick();
39
+ setVisible(true);
40
+ }, [onClick]);
41
+ (0, _react.useEffect)(() => {
42
+ const handleMouseDown = () => setVisible(false);
43
+
44
+ document.addEventListener('mousedown', handleMouseDown);
45
+ return () => {
46
+ document.removeEventListener('mousedown', handleMouseDown);
47
+ };
48
+ }, []);
35
49
  const menuProps = {
36
50
  'data-name': 'button-menu',
37
51
  buttons
38
52
  };
39
53
 
40
54
  const menu = /*#__PURE__*/_react.default.createElement("div", {
41
- className: (0, _classnames.default)(_style.default.bulletPointMenu, isBulkMenu && _style.default.bulkBulletPointMenu),
55
+ className: (0, _classnames.default)(_style.default.bulletPointMenu, isBulkMenu && _style.default.bulkBulletPointMenu, visible && _style.default.visible),
42
56
  "data-name": "menu-wrapper",
43
57
  "aria-label": menuAriaLabel
44
58
  }, /*#__PURE__*/_react.default.createElement(_buttonMenu.default, menuProps));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","menuButtonClassName","isBulkMenu","handleOnClick","useCallback","menuProps","menu","classnames","style","bulletPointMenu","bulkBulletPointMenu","bulletPointButtonProps","size","icon","className","bulletPointWrapper","propTypes"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick,\n buttons,\n menuButtonClassName,\n isBulkMenu\n } = 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\n className={classnames(style.bulletPointMenu, isBulkMenu && style.bulkBulletPointMenu)}\n data-name=\"menu-wrapper\"\n aria-label={menuAriaLabel}\n >\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAIC,KAAD,IAAuC;EACnE,MAAM;IACJC,QAAQ,GAAG,KADP;IAEJC,eAFI;IAGJC,aAHI;IAIJC,OAJI;IAKJC,OALI;IAMJC,mBANI;IAOJC;EAPI,IAQFP,KARJ;EASA,MAAMQ,aAAa,GAAG,IAAAC,kBAAA,EAAY,MAAML,OAAO,EAAzB,EAA6B,CAACA,OAAD,CAA7B,CAAtB;EAEA,MAAMM,SAAS,GAAG;IAChB,aAAa,aADG;IAEhBL;EAFgB,CAAlB;;EAKA,MAAMM,IAAI,gBACR;IACE,SAAS,EAAE,IAAAC,mBAAA,EAAWC,cAAA,CAAMC,eAAjB,EAAkCP,UAAU,IAAIM,cAAA,CAAME,mBAAtD,CADb;IAEE,aAAU,cAFZ;IAGE,cAAYZ;EAHd,gBAKE,6BAAC,mBAAD,EAAgBO,SAAhB,CALF,CADF;;EASA,MAAMM,sBAAsB,GAAG;IAC7BC,IAAI,EAAE,SADuB;IAE7B,cAAcf,eAFe;IAG7B,aAAa,qBAHgB;IAI7BgB,IAAI,EAAE,cAJuB;IAK7Bd,OAAO,EAAEI,aALoB;IAM7BP,QAN6B;IAO7BkB,SAAS,EAAEb;EAPkB,CAA/B;EAUA,oBACE;IAAK,SAAS,EAAEO,cAAA,CAAMO,kBAAtB;IAA0C,aAAU;EAApD,gBACE,6BAAC,uBAAD,EAAoBJ,sBAApB,CADF,EAEGL,IAFH,CADF;AAMD,CA1CD;;AA4CAZ,qBAAqB,CAACsB,SAAtB,2CAAkCA,cAAlC;eAEetB,qB"}
1
+ {"version":3,"file":"index.js","names":["BulletPointMenuButton","props","disabled","buttonAriaLabel","menuAriaLabel","onClick","buttons","menuButtonClassName","isBulkMenu","visible","setVisible","useState","handleOnClick","useCallback","useEffect","handleMouseDown","document","addEventListener","removeEventListener","menuProps","menu","classnames","style","bulletPointMenu","bulkBulletPointMenu","bulletPointButtonProps","size","icon","className","bulletPointWrapper","propTypes"],"sources":["../../../src/molecule/bullet-point-menu-button/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useEffect} from 'react';\nimport classnames from 'classnames';\nimport {noop} from 'lodash/fp';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport ButtonMenu from '../../atom/button-menu';\nimport propTypes, {BulletPointMenuButtonProps} from './types';\nimport style from './style.css';\n\nconst BulletPointMenuButton = (props: BulletPointMenuButtonProps) => {\n const {\n disabled = false,\n buttonAriaLabel,\n menuAriaLabel,\n onClick = noop,\n buttons,\n menuButtonClassName,\n isBulkMenu\n } = props;\n const [visible, setVisible] = useState(false);\n\n const handleOnClick = useCallback(() => {\n onClick();\n setVisible(true);\n }, [onClick]);\n\n useEffect(() => {\n const handleMouseDown = () => setVisible(false);\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, []);\n\n const menuProps = {\n 'data-name': 'button-menu',\n buttons\n };\n\n const menu = (\n <div\n className={classnames(\n style.bulletPointMenu,\n isBulkMenu && style.bulkBulletPointMenu,\n visible && style.visible\n )}\n data-name=\"menu-wrapper\"\n aria-label={menuAriaLabel}\n >\n <ButtonMenu {...menuProps} />\n </div>\n );\n const bulletPointButtonProps = {\n size: 'default',\n 'aria-label': buttonAriaLabel,\n 'data-name': 'bullet-point-button',\n icon: 'bullet-point',\n onClick: handleOnClick,\n disabled,\n className: menuButtonClassName\n };\n\n return (\n <div className={style.bulletPointWrapper} data-name=\"bullet-point-wrapper\">\n <ButtonLinkIcon {...bulletPointButtonProps} />\n {menu}\n </div>\n );\n};\n\nBulletPointMenuButton.propTypes = propTypes;\n\nexport default BulletPointMenuButton;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,qBAAqB,GAAIC,KAAD,IAAuC;EACnE,MAAM;IACJC,QAAQ,GAAG,KADP;IAEJC,eAFI;IAGJC,aAHI;IAIJC,OAAO,iBAJH;IAKJC,OALI;IAMJC,mBANI;IAOJC;EAPI,IAQFP,KARJ;EASA,MAAM,CAACQ,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,EAAS,KAAT,CAA9B;EAEA,MAAMC,aAAa,GAAG,IAAAC,kBAAA,EAAY,MAAM;IACtCR,OAAO;IACPK,UAAU,CAAC,IAAD,CAAV;EACD,CAHqB,EAGnB,CAACL,OAAD,CAHmB,CAAtB;EAKA,IAAAS,gBAAA,EAAU,MAAM;IACd,MAAMC,eAAe,GAAG,MAAML,UAAU,CAAC,KAAD,CAAxC;;IACAM,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,EAAuCF,eAAvC;IACA,OAAO,MAAM;MACXC,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,EAA0CH,eAA1C;IACD,CAFD;EAGD,CAND,EAMG,EANH;EAQA,MAAMI,SAAS,GAAG;IAChB,aAAa,aADG;IAEhBb;EAFgB,CAAlB;;EAKA,MAAMc,IAAI,gBACR;IACE,SAAS,EAAE,IAAAC,mBAAA,EACTC,cAAA,CAAMC,eADG,EAETf,UAAU,IAAIc,cAAA,CAAME,mBAFX,EAGTf,OAAO,IAAIa,cAAA,CAAMb,OAHR,CADb;IAME,aAAU,cANZ;IAOE,cAAYL;EAPd,gBASE,6BAAC,mBAAD,EAAgBe,SAAhB,CATF,CADF;;EAaA,MAAMM,sBAAsB,GAAG;IAC7BC,IAAI,EAAE,SADuB;IAE7B,cAAcvB,eAFe;IAG7B,aAAa,qBAHgB;IAI7BwB,IAAI,EAAE,cAJuB;IAK7BtB,OAAO,EAAEO,aALoB;IAM7BV,QAN6B;IAO7B0B,SAAS,EAAErB;EAPkB,CAA/B;EAUA,oBACE;IAAK,SAAS,EAAEe,cAAA,CAAMO,kBAAtB;IAA0C,aAAU;EAApD,gBACE,6BAAC,uBAAD,EAAoBJ,sBAApB,CADF,EAEGL,IAFH,CADF;AAMD,CA3DD;;AA6DApB,qBAAqB,CAAC8B,SAAtB,2CAAkCA,cAAlC;eAEe9B,qB"}
@@ -29,31 +29,18 @@
29
29
  border-radius: 7px;
30
30
  overflow: hidden;
31
31
  background-color: cm_grey_100;
32
- }
33
-
34
- /* Fade-in - Fade-out, does target button class but bulletPointMenu only */
35
- button + .bulletPointMenu {
36
- /* fade out combo */
37
32
  visibility: hidden;
38
33
  opacity:0;
39
34
  transition:visibility 0.5s ease,opacity 0.5s ease;
40
35
  }
41
36
 
42
- /* Does target button class but bulletPointMenu only */
43
- button:focus + .bulletPointMenu {
37
+ .visible {
44
38
  /* fade in combo */
45
39
  max-height: max-content;
46
- visibility:visible;
40
+ visibility: visible;
47
41
  opacity:1;
48
42
  }
49
43
 
50
- /*
51
- Recover - unset pointer-events,
52
- to be able to click on the button when the menu is open to close it
53
- */
54
- .bulletPointWrapper > button:focus { pointer-events: none; }
55
- .bulletPointWrapper > button:not(:focus) { pointer-events: auto; }
56
-
57
44
  /*
58
45
  bulk theme
59
46
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.32.30",
3
+ "version": "11.32.32",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -114,7 +114,7 @@
114
114
  "@coorpacademy/eslint-plugin-coorpacademy": "^10.0.0",
115
115
  "@coorpacademy/react-native-mock-render": "^0.2.9",
116
116
  "@coorpacademy/react-native-slider": "^0.11.1",
117
- "@coorpacademy/translate": "6.2.0",
117
+ "@coorpacademy/translate": "6.2.1",
118
118
  "@coorpacademy/webpack-config": "13.0.0",
119
119
  "@react-native-community/blur": "^4.2.0",
120
120
  "@storybook/addon-actions": "^6.5.12",
@@ -177,5 +177,5 @@
177
177
  "last 2 versions",
178
178
  "IE 11"
179
179
  ],
180
- "gitHead": "0cf16f47f7093251aba48dad2b106e6e66b6ad7f"
180
+ "gitHead": "4771daf0fb930ab8a5aea4c9491560a15e4196e2"
181
181
  }