@coorpacademy/components 11.33.8 → 11.33.9-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ import keys from 'lodash/fp/keys';
9
9
  import { NovaCompositionCoorpacademyInformationIcon as InformationIcon } from '@coorpacademy/nova-icons';
10
10
  import style from './style.css';
11
11
  const FontSizes = {
12
- 12: style.tooltipContentFontSize12,
12
+ 12: style.tooltipContentFontSizeSmall,
13
13
  14: style.tooltipContentFontSize14
14
14
  };
15
15
  const IconSizes = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n return isComponent ? (\n <TooltipContent />\n ) : (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSizeSmall","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSizeSmall,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n return isComponent ? (\n <TooltipContent />\n ) : (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
@@ -79,7 +79,7 @@
79
79
  font-size: 14px;
80
80
  }
81
81
 
82
- .tooltipContentFontSize12 {
82
+ .tooltipContentFontSizeSmall {
83
83
  font-size: 12px;
84
84
  }
85
85
 
@@ -16,7 +16,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
16
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  const FontSizes = {
19
- 12: _style.default.tooltipContentFontSize12,
19
+ 12: _style.default.tooltipContentFontSizeSmall,
20
20
  14: _style.default.tooltipContentFontSize14
21
21
  };
22
22
  const IconSizes = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_propTypes","_reactTooltip","_isString","_has","_isNil","_keys","_novaIcons","_style","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FontSizes","style","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","classnames","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","PropTypes","bool","string","isRequired","node","func","oneOf","keys","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","exports","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","useMemo","isString","isValidElement","setToolTipIsVisible","useState","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","useCallback","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","NovaCompositionCoorpacademyInformationIcon","informationIcon","width","height","onMouseLeave","tooltipContainer","isNil","oneOfType","number","_default"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n return isComponent ? (\n <TooltipContent />\n ) : (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_propTypes","_reactTooltip","_isString","_has","_isNil","_keys","_novaIcons","_style","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FontSizes","style","tooltipContentFontSizeSmall","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","classnames","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","PropTypes","bool","string","isRequired","node","func","oneOf","keys","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","exports","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","useMemo","isString","isValidElement","setToolTipIsVisible","useState","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","useCallback","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","NovaCompositionCoorpacademyInformationIcon","informationIcon","width","height","onMouseLeave","tooltipContainer","isNil","oneOfType","number","_default"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSizeSmall,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n return isComponent ? (\n <TooltipContent />\n ) : (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
@@ -79,7 +79,7 @@
79
79
  font-size: 14px;
80
80
  }
81
81
 
82
- .tooltipContentFontSize12 {
82
+ .tooltipContentFontSizeSmall {
83
83
  font-size: 12px;
84
84
  }
85
85
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.33.8",
3
+ "version": "11.33.9-alpha.0+f26d2223d",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -165,5 +165,5 @@
165
165
  "last 2 versions",
166
166
  "IE 11"
167
167
  ],
168
- "gitHead": "c52a0df41cef0b5f8ee7df11b5d2a72dfe017549"
168
+ "gitHead": "f26d2223d2c0db58c212d8995e77c9855db113f7"
169
169
  }