@coorpacademy/components 11.38.6 → 11.38.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/tooltip/index.d.ts.map +1 -1
- package/es/atom/tooltip/index.js +10 -2
- package/es/atom/tooltip/index.js.map +1 -1
- package/es/atom/tooltip/style.css +7 -0
- package/es/molecule/card/favorite.d.ts.map +1 -1
- package/es/molecule/card/favorite.js +12 -1
- package/es/molecule/card/favorite.js.map +1 -1
- package/lib/atom/tooltip/index.d.ts.map +1 -1
- package/lib/atom/tooltip/index.js +10 -2
- package/lib/atom/tooltip/index.js.map +1 -1
- package/lib/atom/tooltip/style.css +7 -0
- package/lib/molecule/card/favorite.d.ts.map +1 -1
- package/lib/molecule/card/favorite.js +11 -0
- package/lib/molecule/card/favorite.js.map +1 -1
- package/locales/lt/global.json +6 -6
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA6EO,iGAUN;;AAED;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA6EO,iGAUN;;AAED;;;;;;;;;;;;;;gBAgHC"}
|
package/es/atom/tooltip/index.js
CHANGED
|
@@ -101,10 +101,18 @@ const ToolTip = ({
|
|
|
101
101
|
setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));
|
|
102
102
|
}, [delayHide]);
|
|
103
103
|
const content = useMemo(() => {
|
|
104
|
-
|
|
104
|
+
if (isComponent) {
|
|
105
|
+
return /*#__PURE__*/React.createElement(TooltipContent, null);
|
|
106
|
+
}
|
|
107
|
+
// For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding
|
|
108
|
+
if (anchorId) {
|
|
109
|
+
return TooltipContent;
|
|
110
|
+
}
|
|
111
|
+
// For regular tooltip, keep the <p> wrapper with padding
|
|
112
|
+
return /*#__PURE__*/React.createElement("p", {
|
|
105
113
|
className: classnames([style.tooltipContent, FontSizes[fontSize]])
|
|
106
114
|
}, TooltipContent);
|
|
107
|
-
}, [TooltipContent, fontSize, isComponent]);
|
|
115
|
+
}, [TooltipContent, fontSize, isComponent, anchorId]);
|
|
108
116
|
const anchorElement = useMemo(() => AnchorElement ? /*#__PURE__*/React.createElement(AnchorElement, {
|
|
109
117
|
onKeyDown: handleKeyPress
|
|
110
118
|
}) : /*#__PURE__*/React.createElement("button", {
|
|
@@ -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","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 if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\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":[]}
|
|
@@ -98,6 +98,13 @@
|
|
|
98
98
|
left: 5px;
|
|
99
99
|
max-width: 400px;
|
|
100
100
|
padding: 8px 12px !important;
|
|
101
|
+
/* Text styling when content is not wrapped in <p> */
|
|
102
|
+
font-family: "Gilroy";
|
|
103
|
+
font-style: normal;
|
|
104
|
+
font-weight: 500;
|
|
105
|
+
font-size: 12px;
|
|
106
|
+
color: white;
|
|
107
|
+
text-align: center;
|
|
101
108
|
}
|
|
102
109
|
|
|
103
110
|
/* for keyboard navigation, the position can't be obtained from the mouse */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;oCAkJC"}
|
|
@@ -2,7 +2,7 @@ import _noop from "lodash/fp/noop";
|
|
|
2
2
|
import _isEmpty from "lodash/fp/isEmpty";
|
|
3
3
|
import _has from "lodash/fp/has";
|
|
4
4
|
import _get from "lodash/fp/get";
|
|
5
|
-
import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
5
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import classnames from 'classnames';
|
|
8
8
|
import { v5 as uuidV5 } from 'uuid';
|
|
@@ -54,6 +54,17 @@ const Favorite = ({
|
|
|
54
54
|
_has(['current', 'blur'], buttonRef) && buttonRef.current.blur();
|
|
55
55
|
}, 500));
|
|
56
56
|
}, []);
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (!toolTipIsVisible) return;
|
|
59
|
+
const hide = () => setToolTipIsVisible(false);
|
|
60
|
+
if (typeof window === 'undefined') {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
window.addEventListener('scroll', hide, {
|
|
64
|
+
passive: true
|
|
65
|
+
});
|
|
66
|
+
return () => window.removeEventListener('scroll', hide);
|
|
67
|
+
}, [toolTipIsVisible]);
|
|
57
68
|
const handleKeyPress = useCallback(event => {
|
|
58
69
|
toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
|
|
59
70
|
}, [toolTipIsVisible]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorite.js","names":["React","useCallback","useMemo","useRef","useState","PropTypes","classnames","v5","uuidV5","NovaCompositionNavigationMore","MoreIcon","NovaCompositionCoorpacademyCheck","CheckIcon","Provider","GetSkinFromContext","GetTranslateFromContext","ToolTip","toggleStateOnKeyPress","Button","style","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop","disabled","legacyContext","skin","translate","handleFavoriteClick","e","stopPropagation","preventDefault","primaryColor","_get","darkColor","brandColor","buttonRef","allowToolTip","_isEmpty","favoriteButtonAnchorId","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has","current","focus","handleMouseLeave","setTimeout","blur","handleKeyPress","event","iconWrapperClassName","selected","icon","createElement","checkIcon","color","width","height","removeFromFavorite","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","string","bool","func","shape","contextTypes","childContextTypes"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"favorite.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","PropTypes","classnames","v5","uuidV5","NovaCompositionNavigationMore","MoreIcon","NovaCompositionCoorpacademyCheck","CheckIcon","Provider","GetSkinFromContext","GetTranslateFromContext","ToolTip","toggleStateOnKeyPress","Button","style","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop","disabled","legacyContext","skin","translate","handleFavoriteClick","e","stopPropagation","preventDefault","primaryColor","_get","darkColor","brandColor","buttonRef","allowToolTip","_isEmpty","favoriteButtonAnchorId","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has","current","focus","handleMouseLeave","setTimeout","blur","hide","window","addEventListener","passive","removeEventListener","handleKeyPress","event","iconWrapperClassName","selected","icon","createElement","checkIcon","color","width","height","removeFromFavorite","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","string","bool","func","shape","contextTypes","childContextTypes"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n useEffect(() => {\n if (!toolTipIsVisible) return;\n const hide = () => setToolTipIsVisible(false);\n if (typeof window === 'undefined') {\n return;\n }\n window.addEventListener('scroll', hide, {passive: true});\n return () => window.removeEventListener('scroll', hide);\n }, [toolTipIsVisible]);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA6EO,iGAUN;;AAED;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA6EO,iGAUN;;AAED;;;;;;;;;;;;;;gBAgHC"}
|
|
@@ -109,10 +109,18 @@ const ToolTip = ({
|
|
|
109
109
|
setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));
|
|
110
110
|
}, [delayHide]);
|
|
111
111
|
const content = (0, _react.useMemo)(() => {
|
|
112
|
-
|
|
112
|
+
if (isComponent) {
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement(TooltipContent, null);
|
|
114
|
+
}
|
|
115
|
+
// For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding
|
|
116
|
+
if (anchorId) {
|
|
117
|
+
return TooltipContent;
|
|
118
|
+
}
|
|
119
|
+
// For regular tooltip, keep the <p> wrapper with padding
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement("p", {
|
|
113
121
|
className: (0, _classnames.default)([_style.default.tooltipContent, FontSizes[fontSize]])
|
|
114
122
|
}, TooltipContent);
|
|
115
|
-
}, [TooltipContent, fontSize, isComponent]);
|
|
123
|
+
}, [TooltipContent, fontSize, isComponent, anchorId]);
|
|
116
124
|
const anchorElement = (0, _react.useMemo)(() => AnchorElement ? /*#__PURE__*/_react.default.createElement(AnchorElement, {
|
|
117
125
|
onKeyDown: handleKeyPress
|
|
118
126
|
}) : /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -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","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 if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\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":[]}
|
|
@@ -98,6 +98,13 @@
|
|
|
98
98
|
left: 5px;
|
|
99
99
|
max-width: 400px;
|
|
100
100
|
padding: 8px 12px !important;
|
|
101
|
+
/* Text styling when content is not wrapped in <p> */
|
|
102
|
+
font-family: "Gilroy";
|
|
103
|
+
font-style: normal;
|
|
104
|
+
font-weight: 500;
|
|
105
|
+
font-size: 12px;
|
|
106
|
+
color: white;
|
|
107
|
+
text-align: center;
|
|
101
108
|
}
|
|
102
109
|
|
|
103
110
|
/* for keyboard navigation, the position can't be obtained from the mouse */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;
|
|
1
|
+
{"version":3,"file":"favorite.d.ts","sourceRoot":"","sources":["../../../src/molecule/card/favorite.js"],"names":[],"mappings":";AAcA;;;;;;;;oCAkJC"}
|
|
@@ -61,6 +61,17 @@ const Favorite = ({
|
|
|
61
61
|
(0, _has2.default)(['current', 'blur'], buttonRef) && buttonRef.current.blur();
|
|
62
62
|
}, 500));
|
|
63
63
|
}, []);
|
|
64
|
+
(0, _react.useEffect)(() => {
|
|
65
|
+
if (!toolTipIsVisible) return;
|
|
66
|
+
const hide = () => setToolTipIsVisible(false);
|
|
67
|
+
if (typeof window === 'undefined') {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
window.addEventListener('scroll', hide, {
|
|
71
|
+
passive: true
|
|
72
|
+
});
|
|
73
|
+
return () => window.removeEventListener('scroll', hide);
|
|
74
|
+
}, [toolTipIsVisible]);
|
|
64
75
|
const handleKeyPress = (0, _react.useCallback)(event => {
|
|
65
76
|
(0, _tooltip.toggleStateOnKeyPress)(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
|
|
66
77
|
}, [toolTipIsVisible]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorite.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_uuid","_novaIcons","_provider","_tooltip","_button","_favorite","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop2","disabled","legacyContext","skin","GetSkinFromContext","translate","GetTranslateFromContext","handleFavoriteClick","useCallback","stopPropagation","preventDefault","primaryColor","_get2","darkColor","brandColor","buttonRef","useRef","allowToolTip","useMemo","_isEmpty2","favoriteButtonAnchorId","useState","uuidV5","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has2","current","focus","handleMouseLeave","setTimeout","blur","handleKeyPress","event","toggleStateOnKeyPress","iconWrapperClassName","classnames","style","selected","icon","createElement","NovaCompositionCoorpacademyCheck","checkIcon","color","width","height","removeFromFavorite","NovaCompositionNavigationMore","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","PropTypes","string","bool","func","shape","contextTypes","Provider","childContextTypes","_default","exports"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"favorite.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_uuid","_novaIcons","_provider","_tooltip","_button","_favorite","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Favorite","favorite","addFavoriteToolTip","removeFavoriteToolTip","className","ariaLabel","onFavoriteClick","_noop2","disabled","legacyContext","skin","GetSkinFromContext","translate","GetTranslateFromContext","handleFavoriteClick","useCallback","stopPropagation","preventDefault","primaryColor","_get2","darkColor","brandColor","buttonRef","useRef","allowToolTip","useMemo","_isEmpty2","favoriteButtonAnchorId","useState","uuidV5","URL","undefined","toolTipContent","mouseLeaveTimer","setMouseLeaveTimer","toolTipIsVisible","setToolTipIsVisible","handleMouseOver","clearTimeout","_has2","current","focus","handleMouseLeave","setTimeout","blur","useEffect","hide","window","addEventListener","passive","removeEventListener","handleKeyPress","event","toggleStateOnKeyPress","iconWrapperClassName","classnames","style","selected","icon","createElement","NovaCompositionCoorpacademyCheck","checkIcon","color","width","height","removeFromFavorite","NovaCompositionNavigationMore","moreIcon","addToFavorite","favoriteWrapper","type","buttonContentClassName","onClick","onKeyDown","onMouseLeave","onMouseOver","tabIndex","useButtonTag","useWrapper","fontSize","anchorId","TooltipContent","closeToolTipInformationTextAriaLabel","stickyOnKeyboardNavigation","propTypes","process","env","NODE_ENV","PropTypes","string","bool","func","shape","contextTypes","Provider","childContextTypes","_default","exports"],"sources":["../../../src/molecule/card/favorite.js"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport {get, has, isEmpty, noop} from 'lodash/fp';\nimport {\n NovaCompositionNavigationMore as MoreIcon,\n NovaCompositionCoorpacademyCheck as CheckIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetSkinFromContext, GetTranslateFromContext} from '../../atom/provider';\nimport ToolTip, {toggleStateOnKeyPress} from '../../atom/tooltip';\nimport Button from '../../atom/button';\nimport style from './favorite.css';\n\nconst Favorite = (\n {\n favorite,\n addFavoriteToolTip,\n removeFavoriteToolTip,\n className,\n 'aria-label': ariaLabel = {},\n onFavoriteClick = noop,\n disabled\n },\n legacyContext\n) => {\n const skin = GetSkinFromContext(legacyContext);\n const translate = GetTranslateFromContext(legacyContext);\n const handleFavoriteClick = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (!disabled) onFavoriteClick(e);\n },\n [disabled, onFavoriteClick]\n );\n\n const primaryColor = get('common.primary', skin);\n const darkColor = get('common.dark', skin);\n const brandColor = get('common.brand', skin);\n\n const buttonRef = useRef(null);\n\n const allowToolTip = useMemo(\n () => !isEmpty(removeFavoriteToolTip) && !isEmpty(addFavoriteToolTip),\n [addFavoriteToolTip, removeFavoriteToolTip]\n );\n\n // to be replaced by useId when React17 is bumped to React18\n const [favoriteButtonAnchorId] = useState(\n allowToolTip ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const toolTipContent = useMemo(\n // eslint-disable-next-line no-nested-ternary\n () => (allowToolTip ? (favorite ? removeFavoriteToolTip : addFavoriteToolTip) : null),\n [addFavoriteToolTip, favorite, removeFavoriteToolTip, allowToolTip]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500)\n );\n }, []);\n\n useEffect(() => {\n if (!toolTipIsVisible) return;\n const hide = () => setToolTipIsVisible(false);\n if (typeof window === 'undefined') {\n return;\n }\n window.addEventListener('scroll', hide, {passive: true});\n return () => window.removeEventListener('scroll', hide);\n }, [toolTipIsVisible]);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const iconWrapperClassName = useMemo(\n () => classnames(style.favorite, className, favorite && style.selected),\n [className, favorite]\n );\n const icon = useMemo(\n () =>\n favorite ? (\n <CheckIcon\n // eslint-disable-next-line css-modules/no-undef-class\n className={style.checkIcon}\n style={{color: brandColor}}\n width={13}\n height={13}\n data-testid=\"favorite-check-icon\"\n aria-label={ariaLabel.removeFromFavorite}\n />\n ) : (\n <MoreIcon\n className={style.moreIcon}\n style={{color: darkColor}}\n width={13}\n height={13}\n data-testid=\"favorite-add-icon\"\n aria-label={ariaLabel.addToFavorite}\n />\n ),\n [ariaLabel.addToFavorite, ariaLabel.removeFromFavorite, brandColor, darkColor, favorite]\n );\n\n return (\n <div className={style.favoriteWrapper} data-testid=\"favorite-wrapper\">\n <Button\n buttonRef={buttonRef}\n type=\"button\"\n data-for={favoriteButtonAnchorId}\n data-tooltip-place=\"left\"\n data-tip={allowToolTip}\n data-name=\"favorite\"\n data-testid=\"favorite-button\"\n aria-label={ariaLabel.favorite}\n buttonContentClassName={iconWrapperClassName}\n onClick={handleFavoriteClick}\n style={{\n color: primaryColor\n }}\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n tabIndex={0}\n useButtonTag\n useWrapper={false}\n >\n {icon}\n </Button>\n <ToolTip\n fontSize={12}\n anchorId={favoriteButtonAnchorId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={toolTipContent}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n stickyOnKeyboardNavigation\n />\n </div>\n );\n};\n\nFavorite.propTypes = {\n className: PropTypes.string,\n favorite: PropTypes.bool,\n disabled: PropTypes.bool,\n addFavoriteToolTip: PropTypes.string,\n removeFavoriteToolTip: PropTypes.string,\n onFavoriteClick: PropTypes.func,\n 'aria-label': PropTypes.shape({\n favorite: PropTypes.string,\n addToFavorite: PropTypes.string,\n removeFromFavorite: PropTypes.string\n })\n};\n\nFavorite.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nexport default Favorite;\n"],"mappings":"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","ignoreList":[]}
|
package/locales/lt/global.json
CHANGED
|
@@ -164,10 +164,10 @@
|
|
|
164
164
|
"mandatory_fields": "*Privalomi laukai",
|
|
165
165
|
"something_went_wrong": "Oi! Kažkas nutiko ne taip.",
|
|
166
166
|
"review_mode_tooltip_header": "Kas yra peržiūros režimas?",
|
|
167
|
-
"review_mode_tooltip_content": "Informacija
|
|
167
|
+
"review_mode_tooltip_content": "Informacija pranyksta iš atminties vos tik į ją išmokstate? Tai visiškai normalu: be kartojimo nėra ir įsiminimo! Kad žinios išliktų ilgam, naudokite Peržiūros režimą ir atgaivinkite atmintį!",
|
|
168
168
|
"review_mode_tooltip_content_part1": "Pasirinkite 1 įgūdį",
|
|
169
169
|
"review_mode_tooltip_content_part2": "Atsakykite į 5 klausimus",
|
|
170
|
-
"review_mode_tooltip_content_part3": "Jūs turite
|
|
170
|
+
"review_mode_tooltip_content_part3": "Jūs turite neribotą skaičių gyvybių.",
|
|
171
171
|
"review_mode_tooltip_content_part4": "Atsakykite teisingai į visus klausimus",
|
|
172
172
|
"review_mode_available": "Galima peržiūrėti",
|
|
173
173
|
"review_header_step_item": {
|
|
@@ -181,11 +181,11 @@
|
|
|
181
181
|
"invalid_scorm": "scorm failas nėra tinkamas",
|
|
182
182
|
"show_errors": "rodyti klaidas"
|
|
183
183
|
},
|
|
184
|
-
"content_type_article": "
|
|
184
|
+
"content_type_article": "Straipsnis",
|
|
185
185
|
"content_type_video": "Video",
|
|
186
|
-
"content_type_podcast": "
|
|
187
|
-
"content_type_scorm": "
|
|
188
|
-
"content_type_course": "
|
|
186
|
+
"content_type_podcast": "Tinklalaidė",
|
|
187
|
+
"content_type_scorm": "Animuota mokomoji medžiaga",
|
|
188
|
+
"content_type_course": "Kursas",
|
|
189
189
|
"review_this_skill": "Peržiūrėkite šį įgūdį",
|
|
190
190
|
"review_skill_empty": "Dar neturite įgūdžių, kuriuos reikėtų peržiūrėti",
|
|
191
191
|
"review_skill_empty_description": "Pirmiausia turite užbaigti kursus, kad galėtumėte peržiūrėti skirtingus įgūdžius.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.38.
|
|
3
|
+
"version": "11.38.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "8a3959555b57d23603cc35b16cc049f5811fc713"
|
|
170
170
|
}
|