@hitachivantara/uikit-react-core 3.56.1 → 3.56.2
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/CHANGELOG.md +12 -0
- package/dist/OverflowTooltip/OverflowTooltip.d.ts +26 -6
- package/dist/OverflowTooltip/OverflowTooltip.js +46 -9
- package/dist/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/Tooltip/Tooltip.js +1 -1
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/legacy/OverflowTooltip/OverflowTooltip.d.ts +26 -6
- package/dist/legacy/OverflowTooltip/OverflowTooltip.js +30 -9
- package/dist/legacy/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/legacy/Tooltip/Tooltip.js +1 -1
- package/dist/legacy/Tooltip/Tooltip.js.map +1 -1
- package/dist/modern/OverflowTooltip/OverflowTooltip.d.ts +26 -6
- package/dist/modern/OverflowTooltip/OverflowTooltip.js +25 -9
- package/dist/modern/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/modern/Tooltip/Tooltip.js +1 -1
- package/dist/modern/Tooltip/Tooltip.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.56.2](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.1...@hitachivantara/uikit-react-core@3.56.2) (2022-02-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **overflow-tooltip:** tooltip is appearing when not needed ([9c92d8d](https://github.com/lumada-design/hv-uikit-react/commit/9c92d8d26ddbda7742c531d9977a25b8be91028d))
|
|
12
|
+
* **tooltip:** proptype is node when should be enum of strings ([a7139ea](https://github.com/lumada-design/hv-uikit-react/commit/a7139ea2a35d5d4acd93a787ba237f06eb7b478e))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
## [3.56.1](https://github.com/lumada-design/hv-uikit-react/compare/@hitachivantara/uikit-react-core@3.56.0...@hitachivantara/uikit-react-core@3.56.1) (2022-02-17)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -4,9 +4,9 @@ export type HvOverflowTooltipKey = "tooltipData" | "tooltipAnchor" | "tooltipAnc
|
|
|
4
4
|
|
|
5
5
|
export interface HvOverflowTooltipProps
|
|
6
6
|
extends StandardProps<React.HTMLAttributes<HTMLElement>, HvOverflowTooltipKey> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Id to be applied to the tooltip.
|
|
9
|
+
*/
|
|
10
10
|
id?: string;
|
|
11
11
|
/**
|
|
12
12
|
* The node that will be rendered inside the tooltip.
|
|
@@ -20,9 +20,29 @@ export interface HvOverflowTooltipProps
|
|
|
20
20
|
* If `true` the overflow tooltip will always use the paragraph overflow style.
|
|
21
21
|
*/
|
|
22
22
|
paragraphOverflow?: boolean;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
/**
|
|
24
|
+
* If true, the tooltip is shown.
|
|
25
|
+
*/
|
|
26
|
+
open?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Tooltip placement.
|
|
29
|
+
*/
|
|
30
|
+
placement?:
|
|
31
|
+
| 'bottom-end'
|
|
32
|
+
| 'bottom-start'
|
|
33
|
+
| 'bottom'
|
|
34
|
+
| 'left-end'
|
|
35
|
+
| 'left-start'
|
|
36
|
+
| 'left'
|
|
37
|
+
| 'right-end'
|
|
38
|
+
| 'right-start'
|
|
39
|
+
| 'right'
|
|
40
|
+
| 'top-end'
|
|
41
|
+
| 'top-start'
|
|
42
|
+
| 'top';
|
|
43
|
+
/**
|
|
44
|
+
* Extra properties to add to the tooltip.
|
|
45
|
+
*/
|
|
26
46
|
tooltipsProps?: TooltipProps;
|
|
27
47
|
}
|
|
28
48
|
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.string.iterator.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.weak-map.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
12
|
+
|
|
3
13
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
14
|
|
|
15
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
16
|
+
|
|
5
17
|
Object.defineProperty(exports, "__esModule", {
|
|
6
18
|
value: true
|
|
7
19
|
});
|
|
@@ -15,7 +27,7 @@ require("core-js/modules/es.object.to-string.js");
|
|
|
15
27
|
|
|
16
28
|
require("core-js/modules/es.regexp.to-string.js");
|
|
17
29
|
|
|
18
|
-
var _react =
|
|
30
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
31
|
|
|
20
32
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
21
33
|
|
|
@@ -27,6 +39,10 @@ var _core = require("@material-ui/core");
|
|
|
27
39
|
|
|
28
40
|
var _ = require("..");
|
|
29
41
|
|
|
42
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
|
+
|
|
44
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
45
|
+
|
|
30
46
|
var styles = (0, _core.createStyles)({
|
|
31
47
|
tooltipData: {},
|
|
32
48
|
tooltipAnchor: {
|
|
@@ -57,7 +73,10 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
|
|
|
57
73
|
className = _ref.className,
|
|
58
74
|
classes = _ref.classes,
|
|
59
75
|
data = _ref.data,
|
|
76
|
+
open = _ref.open,
|
|
60
77
|
paragraphOverflow = _ref.paragraphOverflow,
|
|
78
|
+
_ref$placement = _ref.placement,
|
|
79
|
+
placement = _ref$placement === void 0 ? "top-start" : _ref$placement,
|
|
61
80
|
tooltipsProps = _ref.tooltipsProps;
|
|
62
81
|
|
|
63
82
|
var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)({
|
|
@@ -71,20 +90,28 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
|
|
|
71
90
|
width = _useResizeDetector$wi === void 0 ? 0 : _useResizeDetector$wi,
|
|
72
91
|
ref = _useResizeDetector.ref;
|
|
73
92
|
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
var scrollWidth = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) || 0; // The difference should be higher than a pixel to be considered as overflowing
|
|
94
|
+
|
|
95
|
+
var isOverflowing = scrollWidth - width >= 1;
|
|
96
|
+
var isParag = (0, _react.useMemo)(function () {
|
|
97
|
+
return paragraphOverflow && isParagraph(data.toString());
|
|
98
|
+
}, [data, paragraphOverflow]);
|
|
99
|
+
var content = (0, _react.useMemo)(function () {
|
|
100
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
101
|
+
ref: ref,
|
|
102
|
+
className: (0, _clsx.default)(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
103
|
+
}, data);
|
|
104
|
+
}, [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]);
|
|
105
|
+
return open || isOverflowing ? /*#__PURE__*/_react.default.createElement(_.HvTooltip, (0, _extends2.default)({
|
|
77
106
|
id: id,
|
|
78
107
|
disableHoverListener: !isOverflowing,
|
|
79
|
-
|
|
108
|
+
open: open,
|
|
109
|
+
placement: placement,
|
|
80
110
|
title: /*#__PURE__*/_react.default.createElement(_.HvTypography, {
|
|
81
111
|
className: classes.tooltipData,
|
|
82
112
|
variant: "normalText"
|
|
83
113
|
}, data)
|
|
84
|
-
}, tooltipsProps),
|
|
85
|
-
ref: ref,
|
|
86
|
-
className: (0, _clsx.default)(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
87
|
-
}, data));
|
|
114
|
+
}, tooltipsProps), content) : content;
|
|
88
115
|
};
|
|
89
116
|
|
|
90
117
|
exports.RawOverflowTooltip = HvOverflowTooltip;
|
|
@@ -134,6 +161,16 @@ process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
|
|
|
134
161
|
*/
|
|
135
162
|
paragraphOverflow: _propTypes.default.bool,
|
|
136
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Tooltip placement.
|
|
166
|
+
*/
|
|
167
|
+
placement: _propTypes.default.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* If true, the tooltip is shown.
|
|
171
|
+
*/
|
|
172
|
+
open: _propTypes.default.bool,
|
|
173
|
+
|
|
137
174
|
/**
|
|
138
175
|
* Extra properties to add to the tooltip.
|
|
139
176
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/OverflowTooltip/OverflowTooltip.js"],"names":["styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","paragraphOverflow","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","
|
|
1
|
+
{"version":3,"sources":["../../src/OverflowTooltip/OverflowTooltip.js"],"names":["styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","scrollWidth","current","isOverflowing","isParag","toString","content","propTypes","PropTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","React","memo"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"file":"OverflowTooltip.js"}
|
package/dist/Tooltip/Tooltip.js
CHANGED
|
@@ -133,7 +133,7 @@ process.env.NODE_ENV !== "production" ? HvTooltip.propTypes = {
|
|
|
133
133
|
/**
|
|
134
134
|
* Tooltip placement.
|
|
135
135
|
*/
|
|
136
|
-
placement: _propTypes.default.
|
|
136
|
+
placement: _propTypes.default.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
137
137
|
|
|
138
138
|
/**
|
|
139
139
|
* The number of milliseconds to wait before showing the tooltip.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Tooltip/Tooltip.js"],"names":["HvTooltip","React","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","Fade","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","PropTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","
|
|
1
|
+
{"version":3,"sources":["../../src/Tooltip/Tooltip.js"],"names":["HvTooltip","React","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","Fade","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","PropTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","oneOf","number","node","any","object","styles","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Fade, Tooltip, withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n */\n\nconst HvTooltip = React.forwardRef((props, ref) => {\n const {\n className,\n classes,\n open,\n enterDelay = 300,\n placement = \"top\",\n useSingle = true,\n children,\n title,\n TransitionComponent = Fade,\n TransitionProps = { timeout: 400 },\n ...others\n } = props;\n\n return (\n <Tooltip\n ref={ref}\n open={open ?? undefined}\n enterDelay={enterDelay}\n placement={placement}\n TransitionComponent={TransitionComponent}\n TransitionProps={TransitionProps}\n className={className}\n classes={{\n tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,\n popper: classes.popper,\n }}\n title={title}\n {...others}\n >\n {children}\n </Tooltip>\n );\n});\n\nHvTooltip.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the tooltip root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is single\n * */\n tooltip: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is multi\n * */\n tooltipMulti: PropTypes.string,\n /**\n * Styles applied to the popper component\n * */\n popper: PropTypes.string,\n /**\n * Styles applied to the title.\n */\n title: PropTypes.string,\n /**\n * Styles applied to the values container.\n */\n valuesContainer: PropTypes.string,\n /**\n * Styles applied to the values.\n */\n values: PropTypes.string,\n /**\n * Styles applied to the color.\n */\n color: PropTypes.string,\n /**\n * Styles applied to the separator between color and title.\n */\n separatorColor: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the values wrapper.\n */\n valueWrapper: PropTypes.string,\n }).isRequired,\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This property won't impact the enter touch delay (enterTouchDelay).\n */\n enterDelay: PropTypes.number,\n /**\n * Tooltip title. Zero-length titles string are never displayed.\n */\n title: PropTypes.node.isRequired,\n /**\n * The component used for the transition\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionComponent: PropTypes.any,\n /**\n * Properties applied to the Transition element.\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionProps: PropTypes.object,\n /**\n * Defines if should use a single or multiline tooltip.\n */\n useSingle: PropTypes.bool,\n /**\n * Node to apply the tooltip.\n */\n children: PropTypes.node.isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvTooltip\" })(HvTooltip);\n"],"file":"Tooltip.js"}
|
|
@@ -4,9 +4,9 @@ export type HvOverflowTooltipKey = "tooltipData" | "tooltipAnchor" | "tooltipAnc
|
|
|
4
4
|
|
|
5
5
|
export interface HvOverflowTooltipProps
|
|
6
6
|
extends StandardProps<React.HTMLAttributes<HTMLElement>, HvOverflowTooltipKey> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Id to be applied to the tooltip.
|
|
9
|
+
*/
|
|
10
10
|
id?: string;
|
|
11
11
|
/**
|
|
12
12
|
* The node that will be rendered inside the tooltip.
|
|
@@ -20,9 +20,29 @@ export interface HvOverflowTooltipProps
|
|
|
20
20
|
* If `true` the overflow tooltip will always use the paragraph overflow style.
|
|
21
21
|
*/
|
|
22
22
|
paragraphOverflow?: boolean;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
/**
|
|
24
|
+
* If true, the tooltip is shown.
|
|
25
|
+
*/
|
|
26
|
+
open?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Tooltip placement.
|
|
29
|
+
*/
|
|
30
|
+
placement?:
|
|
31
|
+
| 'bottom-end'
|
|
32
|
+
| 'bottom-start'
|
|
33
|
+
| 'bottom'
|
|
34
|
+
| 'left-end'
|
|
35
|
+
| 'left-start'
|
|
36
|
+
| 'left'
|
|
37
|
+
| 'right-end'
|
|
38
|
+
| 'right-start'
|
|
39
|
+
| 'right'
|
|
40
|
+
| 'top-end'
|
|
41
|
+
| 'top-start'
|
|
42
|
+
| 'top';
|
|
43
|
+
/**
|
|
44
|
+
* Extra properties to add to the tooltip.
|
|
45
|
+
*/
|
|
26
46
|
tooltipsProps?: TooltipProps;
|
|
27
47
|
}
|
|
28
48
|
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import "core-js/modules/es.regexp.exec.js";
|
|
3
3
|
import "core-js/modules/es.object.to-string.js";
|
|
4
4
|
import "core-js/modules/es.regexp.to-string.js";
|
|
5
|
-
import React from "react";
|
|
5
|
+
import React, { useMemo } from "react";
|
|
6
6
|
import clsx from "clsx";
|
|
7
7
|
import PropTypes from "prop-types";
|
|
8
8
|
import { useResizeDetector } from "react-resize-detector";
|
|
@@ -38,7 +38,10 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
|
|
|
38
38
|
className = _ref.className,
|
|
39
39
|
classes = _ref.classes,
|
|
40
40
|
data = _ref.data,
|
|
41
|
+
open = _ref.open,
|
|
41
42
|
paragraphOverflow = _ref.paragraphOverflow,
|
|
43
|
+
_ref$placement = _ref.placement,
|
|
44
|
+
placement = _ref$placement === void 0 ? "top-start" : _ref$placement,
|
|
42
45
|
tooltipsProps = _ref.tooltipsProps;
|
|
43
46
|
|
|
44
47
|
var _useResizeDetector = useResizeDetector({
|
|
@@ -52,20 +55,28 @@ var HvOverflowTooltip = function HvOverflowTooltip(_ref) {
|
|
|
52
55
|
width = _useResizeDetector$wi === void 0 ? 0 : _useResizeDetector$wi,
|
|
53
56
|
ref = _useResizeDetector.ref;
|
|
54
57
|
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
var scrollWidth = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) || 0; // The difference should be higher than a pixel to be considered as overflowing
|
|
59
|
+
|
|
60
|
+
var isOverflowing = scrollWidth - width >= 1;
|
|
61
|
+
var isParag = useMemo(function () {
|
|
62
|
+
return paragraphOverflow && isParagraph(data.toString());
|
|
63
|
+
}, [data, paragraphOverflow]);
|
|
64
|
+
var content = useMemo(function () {
|
|
65
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
66
|
+
ref: ref,
|
|
67
|
+
className: clsx(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
68
|
+
}, data);
|
|
69
|
+
}, [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]);
|
|
70
|
+
return open || isOverflowing ? /*#__PURE__*/React.createElement(HvTooltip, _extends({
|
|
58
71
|
id: id,
|
|
59
72
|
disableHoverListener: !isOverflowing,
|
|
60
|
-
|
|
73
|
+
open: open,
|
|
74
|
+
placement: placement,
|
|
61
75
|
title: /*#__PURE__*/React.createElement(HvTypography, {
|
|
62
76
|
className: classes.tooltipData,
|
|
63
77
|
variant: "normalText"
|
|
64
78
|
}, data)
|
|
65
|
-
}, tooltipsProps),
|
|
66
|
-
ref: ref,
|
|
67
|
-
className: clsx(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
68
|
-
}, data));
|
|
79
|
+
}, tooltipsProps), content) : content;
|
|
69
80
|
};
|
|
70
81
|
|
|
71
82
|
process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
|
|
@@ -114,6 +125,16 @@ process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
|
|
|
114
125
|
*/
|
|
115
126
|
paragraphOverflow: PropTypes.bool,
|
|
116
127
|
|
|
128
|
+
/**
|
|
129
|
+
* Tooltip placement.
|
|
130
|
+
*/
|
|
131
|
+
placement: PropTypes.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* If true, the tooltip is shown.
|
|
135
|
+
*/
|
|
136
|
+
open: PropTypes.bool,
|
|
137
|
+
|
|
117
138
|
/**
|
|
118
139
|
* Extra properties to add to the tooltip.
|
|
119
140
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"names":["React","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","paragraphOverflow","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","
|
|
1
|
+
{"version":3,"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"names":["React","useMemo","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","refreshMode","refreshOptions","trailing","handleHeight","width","ref","scrollWidth","current","isOverflowing","isParag","toString","content","propTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","memo","RawOverflowTooltip"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"file":"OverflowTooltip.js"}
|
|
@@ -118,7 +118,7 @@ process.env.NODE_ENV !== "production" ? HvTooltip.propTypes = {
|
|
|
118
118
|
/**
|
|
119
119
|
* Tooltip placement.
|
|
120
120
|
*/
|
|
121
|
-
placement: PropTypes.
|
|
121
|
+
placement: PropTypes.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
122
122
|
|
|
123
123
|
/**
|
|
124
124
|
* The number of milliseconds to wait before showing the tooltip.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Tooltip/Tooltip.js"],"names":["React","PropTypes","Fade","Tooltip","withStyles","styles","HvTooltip","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","
|
|
1
|
+
{"version":3,"sources":["../../../src/Tooltip/Tooltip.js"],"names":["React","PropTypes","Fade","Tooltip","withStyles","styles","HvTooltip","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","oneOf","number","node","any","object","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Fade, Tooltip, withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n */\n\nconst HvTooltip = React.forwardRef((props, ref) => {\n const {\n className,\n classes,\n open,\n enterDelay = 300,\n placement = \"top\",\n useSingle = true,\n children,\n title,\n TransitionComponent = Fade,\n TransitionProps = { timeout: 400 },\n ...others\n } = props;\n\n return (\n <Tooltip\n ref={ref}\n open={open ?? undefined}\n enterDelay={enterDelay}\n placement={placement}\n TransitionComponent={TransitionComponent}\n TransitionProps={TransitionProps}\n className={className}\n classes={{\n tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,\n popper: classes.popper,\n }}\n title={title}\n {...others}\n >\n {children}\n </Tooltip>\n );\n});\n\nHvTooltip.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the tooltip root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is single\n * */\n tooltip: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is multi\n * */\n tooltipMulti: PropTypes.string,\n /**\n * Styles applied to the popper component\n * */\n popper: PropTypes.string,\n /**\n * Styles applied to the title.\n */\n title: PropTypes.string,\n /**\n * Styles applied to the values container.\n */\n valuesContainer: PropTypes.string,\n /**\n * Styles applied to the values.\n */\n values: PropTypes.string,\n /**\n * Styles applied to the color.\n */\n color: PropTypes.string,\n /**\n * Styles applied to the separator between color and title.\n */\n separatorColor: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the values wrapper.\n */\n valueWrapper: PropTypes.string,\n }).isRequired,\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This property won't impact the enter touch delay (enterTouchDelay).\n */\n enterDelay: PropTypes.number,\n /**\n * Tooltip title. Zero-length titles string are never displayed.\n */\n title: PropTypes.node.isRequired,\n /**\n * The component used for the transition\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionComponent: PropTypes.any,\n /**\n * Properties applied to the Transition element.\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionProps: PropTypes.object,\n /**\n * Defines if should use a single or multiline tooltip.\n */\n useSingle: PropTypes.bool,\n /**\n * Node to apply the tooltip.\n */\n children: PropTypes.node.isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvTooltip\" })(HvTooltip);\n"],"file":"Tooltip.js"}
|
|
@@ -4,9 +4,9 @@ export type HvOverflowTooltipKey = "tooltipData" | "tooltipAnchor" | "tooltipAnc
|
|
|
4
4
|
|
|
5
5
|
export interface HvOverflowTooltipProps
|
|
6
6
|
extends StandardProps<React.HTMLAttributes<HTMLElement>, HvOverflowTooltipKey> {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Id to be applied to the tooltip.
|
|
9
|
+
*/
|
|
10
10
|
id?: string;
|
|
11
11
|
/**
|
|
12
12
|
* The node that will be rendered inside the tooltip.
|
|
@@ -20,9 +20,29 @@ export interface HvOverflowTooltipProps
|
|
|
20
20
|
* If `true` the overflow tooltip will always use the paragraph overflow style.
|
|
21
21
|
*/
|
|
22
22
|
paragraphOverflow?: boolean;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
/**
|
|
24
|
+
* If true, the tooltip is shown.
|
|
25
|
+
*/
|
|
26
|
+
open?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Tooltip placement.
|
|
29
|
+
*/
|
|
30
|
+
placement?:
|
|
31
|
+
| 'bottom-end'
|
|
32
|
+
| 'bottom-start'
|
|
33
|
+
| 'bottom'
|
|
34
|
+
| 'left-end'
|
|
35
|
+
| 'left-start'
|
|
36
|
+
| 'left'
|
|
37
|
+
| 'right-end'
|
|
38
|
+
| 'right-start'
|
|
39
|
+
| 'right'
|
|
40
|
+
| 'top-end'
|
|
41
|
+
| 'top-start'
|
|
42
|
+
| 'top';
|
|
43
|
+
/**
|
|
44
|
+
* Extra properties to add to the tooltip.
|
|
45
|
+
*/
|
|
26
46
|
tooltipsProps?: TooltipProps;
|
|
27
47
|
}
|
|
28
48
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import React from "react";
|
|
2
|
+
import React, { useMemo } from "react";
|
|
3
3
|
import clsx from "clsx";
|
|
4
4
|
import PropTypes from "prop-types";
|
|
5
5
|
import { useResizeDetector } from "react-resize-detector";
|
|
@@ -31,7 +31,9 @@ const HvOverflowTooltip = ({
|
|
|
31
31
|
className,
|
|
32
32
|
classes,
|
|
33
33
|
data,
|
|
34
|
+
open,
|
|
34
35
|
paragraphOverflow,
|
|
36
|
+
placement = "top-start",
|
|
35
37
|
tooltipsProps
|
|
36
38
|
}) => {
|
|
37
39
|
var _ref$current;
|
|
@@ -46,20 +48,24 @@ const HvOverflowTooltip = ({
|
|
|
46
48
|
},
|
|
47
49
|
handleHeight: false
|
|
48
50
|
});
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
const scrollWidth = ((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollWidth) || 0; // The difference should be higher than a pixel to be considered as overflowing
|
|
52
|
+
|
|
53
|
+
const isOverflowing = scrollWidth - width >= 1;
|
|
54
|
+
const isParag = useMemo(() => paragraphOverflow && isParagraph(data.toString()), [data, paragraphOverflow]);
|
|
55
|
+
const content = useMemo(() => /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
ref: ref,
|
|
57
|
+
className: clsx(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
58
|
+
}, data), [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]);
|
|
59
|
+
return open || isOverflowing ? /*#__PURE__*/React.createElement(HvTooltip, _extends({
|
|
52
60
|
id: id,
|
|
53
61
|
disableHoverListener: !isOverflowing,
|
|
54
|
-
|
|
62
|
+
open: open,
|
|
63
|
+
placement: placement,
|
|
55
64
|
title: /*#__PURE__*/React.createElement(HvTypography, {
|
|
56
65
|
className: classes.tooltipData,
|
|
57
66
|
variant: "normalText"
|
|
58
67
|
}, data)
|
|
59
|
-
}, tooltipsProps),
|
|
60
|
-
ref: ref,
|
|
61
|
-
className: clsx(className, isParag ? classes.tooltipAnchorParagraph : classes.tooltipAnchor)
|
|
62
|
-
}, data));
|
|
68
|
+
}, tooltipsProps), content) : content;
|
|
63
69
|
};
|
|
64
70
|
|
|
65
71
|
process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
|
|
@@ -108,6 +114,16 @@ process.env.NODE_ENV !== "production" ? HvOverflowTooltip.propTypes = {
|
|
|
108
114
|
*/
|
|
109
115
|
paragraphOverflow: PropTypes.bool,
|
|
110
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Tooltip placement.
|
|
119
|
+
*/
|
|
120
|
+
placement: PropTypes.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* If true, the tooltip is shown.
|
|
124
|
+
*/
|
|
125
|
+
open: PropTypes.bool,
|
|
126
|
+
|
|
111
127
|
/**
|
|
112
128
|
* Extra properties to add to the tooltip.
|
|
113
129
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"names":["React","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","paragraphOverflow","tooltipsProps","width","ref","refreshMode","refreshOptions","trailing","handleHeight","
|
|
1
|
+
{"version":3,"sources":["../../../src/OverflowTooltip/OverflowTooltip.js"],"names":["React","useMemo","clsx","PropTypes","useResizeDetector","createStyles","withStyles","HvTooltip","HvTypography","styles","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","isParagraph","children","test","HvOverflowTooltip","id","className","classes","data","open","paragraphOverflow","placement","tooltipsProps","width","ref","refreshMode","refreshOptions","trailing","handleHeight","scrollWidth","current","isOverflowing","isParag","toString","content","propTypes","string","node","shape","root","isRequired","bool","oneOf","instanceOf","Object","name","memo","RawOverflowTooltip"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { createStyles, withStyles } from \"@material-ui/core\";\n\nimport { HvTooltip, HvTypography } from \"..\";\n\nconst styles = createStyles({\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n \"-webkit-line-clamp\": 2,\n \"-webkit-box-orient\": \"vertical\",\n },\n});\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nconst HvOverflowTooltip = ({\n id,\n className,\n classes,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={clsx(className, {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n })}\n >\n {data}\n </div>\n ),\n [className, classes.tooltipAnchor, classes.tooltipAnchorParagraph, data, isParag, ref]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"normalText\">\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n\nHvOverflowTooltip.propTypes = {\n /**\n * Id to be applied to the tooltip.\n */\n id: PropTypes.string,\n /**\n * The node that will be rendered inside the tooltip.\n */\n data: PropTypes.node,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the data container in the tooltip.\n */\n tooltipData: PropTypes.string,\n /**\n * Styles applied to the anchor of the tooltip.\n */\n tooltipAnchor: PropTypes.string,\n /**\n * Styles applied to the anchor of the when it is a paragraph.\n */\n tooltipAnchorParagraph: PropTypes.string,\n }).isRequired,\n /**\n * If `true` the overflow tooltip will always use the paragraph overflow style.\n */\n paragraphOverflow: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Extra properties to add to the tooltip.\n */\n tooltipsProps: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, {\n name: \"HvOverflowTooltip\",\n})(React.memo(HvOverflowTooltip));\n\nexport { HvOverflowTooltip as RawOverflowTooltip };\n"],"file":"OverflowTooltip.js"}
|
|
@@ -115,7 +115,7 @@ process.env.NODE_ENV !== "production" ? HvTooltip.propTypes = {
|
|
|
115
115
|
/**
|
|
116
116
|
* Tooltip placement.
|
|
117
117
|
*/
|
|
118
|
-
placement: PropTypes.
|
|
118
|
+
placement: PropTypes.oneOf(["bottom-end", "bottom-start", "bottom", "left-end", "left-start", "left", "right-end", "right-start", "right", "top-end", "top-start", "top"]),
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
121
|
* The number of milliseconds to wait before showing the tooltip.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Tooltip/Tooltip.js"],"names":["React","PropTypes","Fade","Tooltip","withStyles","styles","HvTooltip","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","
|
|
1
|
+
{"version":3,"sources":["../../../src/Tooltip/Tooltip.js"],"names":["React","PropTypes","Fade","Tooltip","withStyles","styles","HvTooltip","forwardRef","props","ref","className","classes","open","enterDelay","placement","useSingle","children","title","TransitionComponent","TransitionProps","timeout","others","undefined","tooltip","tooltipMulti","popper","propTypes","string","shape","root","valuesContainer","values","color","separatorColor","separator","valueWrapper","isRequired","bool","oneOf","number","node","any","object","name"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Fade, Tooltip, withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n */\n\nconst HvTooltip = React.forwardRef((props, ref) => {\n const {\n className,\n classes,\n open,\n enterDelay = 300,\n placement = \"top\",\n useSingle = true,\n children,\n title,\n TransitionComponent = Fade,\n TransitionProps = { timeout: 400 },\n ...others\n } = props;\n\n return (\n <Tooltip\n ref={ref}\n open={open ?? undefined}\n enterDelay={enterDelay}\n placement={placement}\n TransitionComponent={TransitionComponent}\n TransitionProps={TransitionProps}\n className={className}\n classes={{\n tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,\n popper: classes.popper,\n }}\n title={title}\n {...others}\n >\n {children}\n </Tooltip>\n );\n});\n\nHvTooltip.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the tooltip root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is single\n * */\n tooltip: PropTypes.string,\n /**\n * Styles applied to the tooltip class when it is multi\n * */\n tooltipMulti: PropTypes.string,\n /**\n * Styles applied to the popper component\n * */\n popper: PropTypes.string,\n /**\n * Styles applied to the title.\n */\n title: PropTypes.string,\n /**\n * Styles applied to the values container.\n */\n valuesContainer: PropTypes.string,\n /**\n * Styles applied to the values.\n */\n values: PropTypes.string,\n /**\n * Styles applied to the color.\n */\n color: PropTypes.string,\n /**\n * Styles applied to the separator between color and title.\n */\n separatorColor: PropTypes.string,\n /**\n * Styles applied to the separator.\n */\n separator: PropTypes.string,\n /**\n * Styles applied to the values wrapper.\n */\n valueWrapper: PropTypes.string,\n }).isRequired,\n /**\n * If true, the tooltip is shown.\n */\n open: PropTypes.bool,\n /**\n * Tooltip placement.\n */\n placement: PropTypes.oneOf([\n \"bottom-end\",\n \"bottom-start\",\n \"bottom\",\n \"left-end\",\n \"left-start\",\n \"left\",\n \"right-end\",\n \"right-start\",\n \"right\",\n \"top-end\",\n \"top-start\",\n \"top\",\n ]),\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This property won't impact the enter touch delay (enterTouchDelay).\n */\n enterDelay: PropTypes.number,\n /**\n * Tooltip title. Zero-length titles string are never displayed.\n */\n title: PropTypes.node.isRequired,\n /**\n * The component used for the transition\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionComponent: PropTypes.any,\n /**\n * Properties applied to the Transition element.\n */\n // eslint-disable-next-line react/forbid-prop-types\n TransitionProps: PropTypes.object,\n /**\n * Defines if should use a single or multiline tooltip.\n */\n useSingle: PropTypes.bool,\n /**\n * Node to apply the tooltip.\n */\n children: PropTypes.node.isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvTooltip\" })(HvTooltip);\n"],"file":"Tooltip.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/uikit-react-core",
|
|
3
|
-
"version": "3.56.
|
|
3
|
+
"version": "3.56.2",
|
|
4
4
|
"description": "A collection of React components for the Hitachi Vantara's Design System.",
|
|
5
5
|
"homepage": "https://github.com/lumada-design/hv-uikit-react",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -104,5 +104,5 @@
|
|
|
104
104
|
"publishConfig": {
|
|
105
105
|
"access": "public"
|
|
106
106
|
},
|
|
107
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "457e24072340a316789a0cc391835ab73917b7ed"
|
|
108
108
|
}
|