@semcore/ellipsis 16.0.12-prerelease.0 → 16.0.12-prerelease.20
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/README.md +4 -4
- package/lib/cjs/Ellipsis.js +172 -224
- package/lib/cjs/Ellipsis.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/cjs/index.js +4 -4
- package/lib/cjs/useResizeObserver.js +10 -13
- package/lib/cjs/useResizeObserver.js.map +1 -1
- package/lib/cjs/utils.js +55 -0
- package/lib/cjs/utils.js.map +1 -0
- package/lib/es6/Ellipsis.js +161 -213
- package/lib/es6/Ellipsis.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/es6/useResizeObserver.js +7 -11
- package/lib/es6/useResizeObserver.js.map +1 -1
- package/lib/es6/utils.js +47 -0
- package/lib/es6/utils.js.map +1 -0
- package/lib/esm/Ellipsis.mjs +161 -183
- package/lib/esm/useResizeObserver.mjs +6 -7
- package/lib/esm/utils.mjs +50 -0
- package/lib/types/index.d.ts +6 -5
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/@semcore/ellipsis)
|
|
4
4
|
[](https://www.npmjs.com/package/@semcore/ellipsis)
|
|
5
|
-
[](https://github.com/semrush/intergalactic/blob/
|
|
5
|
+
[](https://github.com/semrush/intergalactic/blob/HEAD/LICENSE)
|
|
6
6
|
|
|
7
7
|
> This component is part of the Intergalactic Design System
|
|
8
8
|
|
|
@@ -20,13 +20,13 @@ npm install @semcore/ellipsis
|
|
|
20
20
|
|
|
21
21
|
## 👤 Author
|
|
22
22
|
|
|
23
|
-
[UI-kit team](https://github.com/semrush/intergalactic/blob/
|
|
23
|
+
[UI-kit team](https://github.com/semrush/intergalactic/blob/HEAD/MAINTAINERS) and [other ❤️](https://github.com/semrush/intergalactic/graphs/contributors)
|
|
24
24
|
|
|
25
25
|
## 🤝 Contributing
|
|
26
26
|
|
|
27
27
|
Contributions, issues and feature requests are welcome!
|
|
28
28
|
|
|
29
|
-
Feel free to check [issues page](https://github.com/semrush/intergalactic/issues). You can also take a look at the [contributing guide](https://github.com/semrush/intergalactic/blob/
|
|
29
|
+
Feel free to check [issues page](https://github.com/semrush/intergalactic/issues). You can also take a look at the [contributing guide](https://github.com/semrush/intergalactic/blob/HEAD/CONTRIBUTING.md).
|
|
30
30
|
|
|
31
31
|
## Show your support
|
|
32
32
|
|
|
@@ -34,4 +34,4 @@ Give a ⭐️ if this project helped you!
|
|
|
34
34
|
|
|
35
35
|
## 📝 License
|
|
36
36
|
|
|
37
|
-
This project is [MIT](https://github.com/semrush/intergalactic/blob/
|
|
37
|
+
This project is [MIT](https://github.com/semrush/intergalactic/blob/HEAD/LICENSE) licensed.
|
package/lib/cjs/Ellipsis.js
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
|
|
15
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
8
|
+
exports.default = void 0;
|
|
16
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
10
|
var _core = require("@semcore/core");
|
|
11
|
+
var _baseComponents = require("@semcore/base-components");
|
|
18
12
|
var _assignProps3 = require("@semcore/core/lib/utils/assignProps");
|
|
19
13
|
var _findComponent = _interopRequireWildcard(require("@semcore/core/lib/utils/findComponent"));
|
|
20
14
|
var _getOriginChildren = _interopRequireDefault(require("@semcore/core/lib/utils/getOriginChildren"));
|
|
21
15
|
var _pick = _interopRequireDefault(require("@semcore/core/lib/utils/pick"));
|
|
22
16
|
var _reactToText = _interopRequireDefault(require("@semcore/core/lib/utils/reactToText"));
|
|
23
|
-
var
|
|
17
|
+
var _ref8 = require("@semcore/core/lib/utils/ref");
|
|
24
18
|
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
25
|
-
var _flexBox = require("@semcore/flex-box");
|
|
26
19
|
var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
|
|
27
20
|
var _react = _interopRequireDefault(require("react"));
|
|
28
21
|
var _useResizeObserver = require("./useResizeObserver");
|
|
29
|
-
var
|
|
22
|
+
var _utils = require("./utils");
|
|
30
23
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
31
|
-
|
|
24
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SBeginning_4aonj_gg_,.___SEllipsis_4aonj_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_4aonj_gg_.__maxLine_4aonj_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_4aonj);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_4aonj_gg_,.___SContainer_4aonj_gg_,.___SEllipsis_4aonj_gg_.__middle-mod_4aonj_gg_,.___SNoTooltipContainer_4aonj_gg_{display:flex;overflow:hidden}.___SContainerMiddle_4aonj_gg_>:has(.___SBeginning_4aonj_gg_),.___SContainerMiddle_4aonj_gg_>:has(.___STail_4aonj_gg_){display:flex;width:100%}.___STail_4aonj_gg_{white-space:pre}", /*__inner_css_end__*/"4aonj_gg_"),
|
|
32
25
|
/*__reshadow_css_end__*/
|
|
33
26
|
{
|
|
34
27
|
"__SBeginning": "___SBeginning_4aonj_gg_",
|
|
@@ -41,249 +34,204 @@ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start_
|
|
|
41
34
|
"_middle-mod": "__middle-mod_4aonj_gg_",
|
|
42
35
|
"__STail": "___STail_4aonj_gg_"
|
|
43
36
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
element.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
47
|
-
element.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
48
|
-
element.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
49
|
-
element.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
50
|
-
element.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
51
|
-
element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
52
|
-
};
|
|
53
|
-
var createMeasurerElement = function createMeasurerElement(element, text) {
|
|
54
|
-
var styleElement = window.getComputedStyle(element, null);
|
|
55
|
-
var temporaryElement = document.createElement('temporary-block');
|
|
56
|
-
temporaryElement.style.display = styleElement.getPropertyValue('display');
|
|
57
|
-
temporaryElement.style.padding = styleElement.getPropertyValue('padding');
|
|
58
|
-
temporaryElement.style.position = 'absolute';
|
|
59
|
-
temporaryElement.style.right = '0%';
|
|
60
|
-
temporaryElement.style.bottom = '0%';
|
|
61
|
-
temporaryElement.style.visibility = 'hidden';
|
|
62
|
-
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
63
|
-
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
64
|
-
setFontSettings(temporaryElement, styleElement);
|
|
65
|
-
temporaryElement.textContent = text !== null && text !== void 0 ? text : element.textContent;
|
|
66
|
-
return temporaryElement;
|
|
67
|
-
};
|
|
68
|
-
function isTextOverflowing(element, multiline, text) {
|
|
69
|
-
if (!element) return false;
|
|
70
|
-
var _element$getBoundingC = element.getBoundingClientRect(),
|
|
71
|
-
currentHeight = _element$getBoundingC.height,
|
|
72
|
-
currentWidth = _element$getBoundingC.width;
|
|
73
|
-
var measuringElement = createMeasurerElement(element, text);
|
|
74
|
-
var isOverflowing = false;
|
|
75
|
-
document.body.appendChild(measuringElement);
|
|
76
|
-
if (multiline) {
|
|
77
|
-
measuringElement.style.width = "".concat(currentWidth, "px");
|
|
78
|
-
var width = measuringElement.scrollWidth;
|
|
79
|
-
var height = measuringElement.getBoundingClientRect().height;
|
|
80
|
-
if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
|
|
81
|
-
isOverflowing = true;
|
|
82
|
-
}
|
|
83
|
-
} else {
|
|
84
|
-
measuringElement.style.whiteSpace = 'nowrap';
|
|
85
|
-
isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
|
|
86
|
-
}
|
|
87
|
-
document.body.removeChild(measuringElement);
|
|
88
|
-
return isOverflowing;
|
|
89
|
-
}
|
|
90
|
-
var forcedAdvancedMode = {
|
|
37
|
+
const defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
38
|
+
const forcedAdvancedMode = {
|
|
91
39
|
forcedAdvancedMode: true
|
|
92
40
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
(0,
|
|
98
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
99
|
-
args[_key] = arguments[_key];
|
|
100
|
-
}
|
|
101
|
-
_this = (0, _callSuper2["default"])(this, RootEllipsis, [].concat(args));
|
|
102
|
-
(0, _defineProperty2["default"])(_this, "state", {
|
|
41
|
+
const noAdvancedMode = {};
|
|
42
|
+
class RootEllipsis extends _core.Component {
|
|
43
|
+
constructor(...args) {
|
|
44
|
+
super(...args);
|
|
45
|
+
(0, _defineProperty2.default)(this, "state", {
|
|
103
46
|
visible: false
|
|
104
47
|
});
|
|
105
|
-
(0, _defineProperty2
|
|
106
|
-
(0, _defineProperty2
|
|
107
|
-
|
|
108
|
-
visible: visible &&
|
|
48
|
+
(0, _defineProperty2.default)(this, "textRef", /*#__PURE__*/_react.default.createRef());
|
|
49
|
+
(0, _defineProperty2.default)(this, "handlerVisibleChange", visible => {
|
|
50
|
+
this.setState({
|
|
51
|
+
visible: visible && this.showTooltip()
|
|
109
52
|
});
|
|
110
53
|
});
|
|
111
|
-
return _this;
|
|
112
54
|
}
|
|
113
|
-
(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
"tooltipProps": tooltipProps,
|
|
178
|
-
"advanceMode": advanceMode
|
|
179
|
-
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {})));
|
|
180
|
-
}
|
|
181
|
-
return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainer, _ref3.cn("SContainer", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
|
|
182
|
-
"interaction": tooltip ? 'hover' : 'none',
|
|
183
|
-
"title": !advanceMode ? text : undefined
|
|
184
|
-
}, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref3.cn("SEllipsis", (0, _objectSpread2["default"])({
|
|
185
|
-
"render": _flexBox.Box,
|
|
186
|
-
"ref": this.textRef,
|
|
187
|
-
"maxLine": maxLine
|
|
188
|
-
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {}))));
|
|
55
|
+
showTooltip() {
|
|
56
|
+
const {
|
|
57
|
+
maxLine = 1,
|
|
58
|
+
Children
|
|
59
|
+
} = this.asProps;
|
|
60
|
+
const text = (0, _reactToText.default)((0, _getOriginChildren.default)(Children));
|
|
61
|
+
return (0, _utils.isTextOverflowing)(this.textRef.current, maxLine > 1, text);
|
|
62
|
+
}
|
|
63
|
+
getContentProps() {
|
|
64
|
+
return {
|
|
65
|
+
ref: this.textRef,
|
|
66
|
+
maxLine: this.asProps.maxLine
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
getPopperProps() {
|
|
70
|
+
const {
|
|
71
|
+
Children,
|
|
72
|
+
includeTooltipProps
|
|
73
|
+
} = this.asProps;
|
|
74
|
+
const text = (0, _reactToText.default)((0, _getOriginChildren.default)(Children));
|
|
75
|
+
const tooltipProps = (0, _pick.default)(this.asProps, includeTooltipProps);
|
|
76
|
+
return {
|
|
77
|
+
children: text,
|
|
78
|
+
...tooltipProps
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
render() {
|
|
82
|
+
var _ref3;
|
|
83
|
+
const SEllipsis = this.Root;
|
|
84
|
+
const SContainer = _tooltip.default;
|
|
85
|
+
const {
|
|
86
|
+
styles,
|
|
87
|
+
Children,
|
|
88
|
+
maxLine,
|
|
89
|
+
tooltip,
|
|
90
|
+
trim,
|
|
91
|
+
containerRect,
|
|
92
|
+
containerRef,
|
|
93
|
+
includeTooltipProps,
|
|
94
|
+
children: _children,
|
|
95
|
+
...other
|
|
96
|
+
} = this.asProps;
|
|
97
|
+
const {
|
|
98
|
+
visible
|
|
99
|
+
} = this.state;
|
|
100
|
+
const advancedContent = (0, _findComponent.default)(Children, [Ellipsis.Content.displayName]);
|
|
101
|
+
const text = (0, _reactToText.default)(advancedContent || (0, _getOriginChildren.default)(Children));
|
|
102
|
+
const advanceMode = (0, _findComponent.isAdvanceMode)(Children, [Ellipsis.Content.displayName, Ellipsis.Popper.displayName]);
|
|
103
|
+
const tooltipProps = (0, _pick.default)(this.asProps, includeTooltipProps);
|
|
104
|
+
tooltipProps.visible = tooltipProps.visible ?? visible;
|
|
105
|
+
tooltipProps.onVisibleChange = tooltipProps.onVisibleChange ? (0, _assignProps3.callAllEventHandlers)(tooltipProps.onVisibleChange, this.handlerVisibleChange) : this.handlerVisibleChange;
|
|
106
|
+
if (trim === 'middle') {
|
|
107
|
+
var _ref2;
|
|
108
|
+
return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(EllipsisMiddle, _ref2.cn("EllipsisMiddle", {
|
|
109
|
+
"text": text,
|
|
110
|
+
"styles": styles,
|
|
111
|
+
"tooltip": tooltip,
|
|
112
|
+
"containerRect": containerRect,
|
|
113
|
+
"containerRef": containerRef,
|
|
114
|
+
"textRef": this.textRef,
|
|
115
|
+
"tooltipProps": tooltipProps,
|
|
116
|
+
"advanceMode": advanceMode,
|
|
117
|
+
...other
|
|
118
|
+
}), /*#__PURE__*/_react.default.createElement(Children, _ref2.cn("Children", {})));
|
|
189
119
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
(
|
|
120
|
+
return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SContainer, _ref3.cn("SContainer", {
|
|
121
|
+
"interaction": tooltip ? 'hover' : 'none',
|
|
122
|
+
"title": !advanceMode ? text : undefined,
|
|
123
|
+
...tooltipProps,
|
|
124
|
+
...(advanceMode ? forcedAdvancedMode : noAdvancedMode)
|
|
125
|
+
}), advanceMode ? /*#__PURE__*/_react.default.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/_react.default.createElement(SEllipsis, _ref3.cn("SEllipsis", {
|
|
126
|
+
"render": _baseComponents.Box,
|
|
127
|
+
"ref": this.textRef,
|
|
128
|
+
"maxLine": maxLine,
|
|
129
|
+
...other
|
|
130
|
+
}), /*#__PURE__*/_react.default.createElement(Children, _ref3.cn("Children", {}))));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
(0, _defineProperty2.default)(RootEllipsis, "displayName", 'Ellipsis');
|
|
134
|
+
(0, _defineProperty2.default)(RootEllipsis, "style", style);
|
|
135
|
+
(0, _defineProperty2.default)(RootEllipsis, "defaultProps", {
|
|
195
136
|
trim: 'end',
|
|
196
137
|
tooltip: true,
|
|
197
138
|
includeTooltipProps: defaultTooltipProps,
|
|
198
139
|
__excludeProps: ['title']
|
|
199
140
|
});
|
|
200
|
-
|
|
201
|
-
|
|
141
|
+
const EllipsisMiddleContext = /*#__PURE__*/_react.default.createContext(null);
|
|
142
|
+
function EllipsisMiddle(props) {
|
|
202
143
|
var _ref5;
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
|
|
144
|
+
const {
|
|
145
|
+
styles,
|
|
146
|
+
text,
|
|
147
|
+
tooltip,
|
|
148
|
+
containerRect,
|
|
149
|
+
containerRef,
|
|
150
|
+
textRef,
|
|
151
|
+
tooltipProps,
|
|
152
|
+
children,
|
|
153
|
+
advanceMode,
|
|
154
|
+
tag
|
|
155
|
+
} = props;
|
|
156
|
+
const resizeElement = _react.default.useRef(null);
|
|
157
|
+
const [symbolWidth, setSymbolWidth] = _react.default.useState(0);
|
|
158
|
+
const blockWidth = (0, _useResizeObserver.useResizeObserver)(resizeElement, containerRect).width;
|
|
159
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
160
|
+
const node = containerRef?.current || resizeElement?.current;
|
|
221
161
|
if (!node) return;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
setFontSettings(dateSpan, styleElement);
|
|
162
|
+
const styleElement = window.getComputedStyle(node);
|
|
163
|
+
const dateSpan = document.createElement('temporary-block');
|
|
164
|
+
(0, _utils.setFontSettings)(dateSpan, styleElement);
|
|
225
165
|
dateSpan.textContent = 'a';
|
|
226
166
|
document.body.appendChild(dateSpan);
|
|
227
|
-
|
|
167
|
+
const rect = dateSpan.getBoundingClientRect();
|
|
228
168
|
setSymbolWidth(rect.width);
|
|
229
169
|
document.body.removeChild(dateSpan);
|
|
230
170
|
}, []);
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
171
|
+
const STail = 'span';
|
|
172
|
+
const SBeginning = 'span';
|
|
173
|
+
const SContainerMiddle = _tooltip.default;
|
|
174
|
+
const SAdvancedModeContainerMiddle = _tooltip.default;
|
|
175
|
+
const displayedSymbols = _react.default.useMemo(() => {
|
|
176
|
+
const displayedSymbols = Math.round(blockWidth / symbolWidth);
|
|
237
177
|
return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;
|
|
238
178
|
}, [blockWidth, symbolWidth]);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
};
|
|
247
|
-
}, [text, displayedSymbols]);
|
|
179
|
+
const interaction = text.length > displayedSymbols ? 'hover' : 'none';
|
|
180
|
+
const ref = containerRef ?? resizeElement;
|
|
181
|
+
const contextValue = _react.default.useMemo(() => ({
|
|
182
|
+
begining: text.substring(0, text.length - displayedSymbols / 2 - 1),
|
|
183
|
+
tail: text.substring(text.length - displayedSymbols / 2 - 1),
|
|
184
|
+
ref
|
|
185
|
+
}), [text, displayedSymbols]);
|
|
248
186
|
if (advanceMode) {
|
|
249
187
|
var _ref4;
|
|
250
|
-
return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react
|
|
251
|
-
"interaction": tooltip ? interaction : 'none'
|
|
252
|
-
|
|
188
|
+
return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", {
|
|
189
|
+
"interaction": tooltip ? interaction : 'none',
|
|
190
|
+
...tooltipProps,
|
|
191
|
+
...forcedAdvancedMode
|
|
192
|
+
}), /*#__PURE__*/_react.default.createElement(EllipsisMiddleContext.Provider, {
|
|
253
193
|
value: contextValue
|
|
254
194
|
}, children));
|
|
255
195
|
}
|
|
256
|
-
return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react
|
|
196
|
+
return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", {
|
|
257
197
|
"interaction": tooltip ? interaction : 'none',
|
|
258
198
|
"title": text,
|
|
259
|
-
"ref": (0,
|
|
260
|
-
"tag": tag
|
|
261
|
-
|
|
262
|
-
};
|
|
263
|
-
|
|
199
|
+
"ref": (0, _ref8.forkRef)(ref, textRef),
|
|
200
|
+
"tag": tag,
|
|
201
|
+
...tooltipProps
|
|
202
|
+
}), /*#__PURE__*/_react.default.createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react.default.createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
|
|
203
|
+
}
|
|
204
|
+
function Content({
|
|
205
|
+
styles,
|
|
206
|
+
Children
|
|
207
|
+
}) {
|
|
264
208
|
var _ref = arguments[0],
|
|
265
209
|
_ref7;
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
var STail = 'span';
|
|
271
|
-
var SBeginning = 'span';
|
|
210
|
+
const SEllipsis = _tooltip.default.Trigger;
|
|
211
|
+
const ellipsisMiddleContext = _react.default.useContext(EllipsisMiddleContext);
|
|
212
|
+
const STail = 'span';
|
|
213
|
+
const SBeginning = 'span';
|
|
272
214
|
if (ellipsisMiddleContext) {
|
|
273
215
|
var _ref6;
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
216
|
+
const {
|
|
217
|
+
begining,
|
|
218
|
+
tail,
|
|
219
|
+
ref
|
|
220
|
+
} = ellipsisMiddleContext;
|
|
221
|
+
return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SEllipsis, _ref6.cn("SEllipsis", {
|
|
222
|
+
...(0, _core.assignProps)({
|
|
223
|
+
"middle-mod": true,
|
|
224
|
+
"ref": ref
|
|
225
|
+
}, _ref)
|
|
226
|
+
}), /*#__PURE__*/_react.default.createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /*#__PURE__*/_react.default.createElement(STail, _ref6.cn("STail", {}), tail));
|
|
281
227
|
}
|
|
282
|
-
return _ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
228
|
+
return _ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SEllipsis, _ref7.cn("SEllipsis", {
|
|
229
|
+
...(0, _core.assignProps)({}, _ref)
|
|
230
|
+
}), /*#__PURE__*/_react.default.createElement(Children, _ref7.cn("Children", {})));
|
|
231
|
+
}
|
|
232
|
+
const Ellipsis = (0, _core.createComponent)(RootEllipsis, {
|
|
233
|
+
Content,
|
|
234
|
+
Popper: _tooltip.default.Popper
|
|
287
235
|
});
|
|
288
|
-
var _default = exports
|
|
236
|
+
var _default = exports.default = Ellipsis;
|
|
289
237
|
//# sourceMappingURL=Ellipsis.js.map
|
package/lib/cjs/Ellipsis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsis.js","names":["_core","require","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref9","_useEnhancedEffect","_flexBox","_tooltip","_react","_useResizeObserver","_excluded","style","sstyled","insert","defaultTooltipProps","setFontSettings","element","styleElement","fontFamily","getPropertyValue","fontSize","fontWeight","lineHeight","fontFeatureSettings","fontVariantNumeric","createMeasurerElement","text","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","whiteSpace","wordWrap","textContent","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","_defineProperty2","visible","React","createRef","setState","showTooltip","_inherits2","_createClass2","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","reactToText","getOriginChildren","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","pick","_objectSpread2","children","render","_ref3","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","EllipsisMiddle","cn","undefined","Box","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","_React$useState","useState","_React$useState2","_slicedToArray2","symbolWidth","setSymbolWidth","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","rect","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref4","Provider","forkRef","_ref8","_ref","arguments[0]","_ref7","Trigger","ellipsisMiddleContext","useContext","_ref6","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport { Box, type BoxProps } from '@semcore/flex-box';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst setFontSettings = (element: HTMLElement, styleElement: CSSStyleDeclaration): void => {\n element.style.fontFamily = styleElement.getPropertyValue('font-family');\n element.style.fontSize = styleElement.getPropertyValue('font-size');\n element.style.fontWeight = styleElement.getPropertyValue('font-weight');\n element.style.lineHeight = styleElement.getPropertyValue('line-height');\n element.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n};\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n setFontSettings(temporaryElement, styleElement);\n\n temporaryElement.textContent = text ?? element.textContent;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n\n return sstyled(styles)(\n <SContainer\n interaction={tooltip ? 'hover' : 'none'}\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n tag,\n } = props;\n\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [symbolWidth, setSymbolWidth] = React.useState(0);\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const styleElement = window.getComputedStyle(node);\n const dateSpan = document.createElement('temporary-block');\n\n setFontSettings(dateSpan, styleElement);\n dateSpan.textContent = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setSymbolWidth(rect.width);\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = Tooltip;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => {\n const displayedSymbols = Math.round(blockWidth / symbolWidth);\n\n return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;\n },\n [blockWidth, symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n );\n }\n return sstyled(styles)(\n <SContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n title={text}\n ref={forkRef(ref, textRef)}\n tag={tag}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n );\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Ellipsis.js","names":["_core","require","_baseComponents","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref8","_useEnhancedEffect","_tooltip","_react","_useResizeObserver","_utils","style","sstyled","insert","defaultTooltipProps","forcedAdvancedMode","noAdvancedMode","RootEllipsis","Component","constructor","args","_defineProperty2","default","visible","React","createRef","setState","showTooltip","maxLine","Children","asProps","text","reactToText","getOriginChildren","isTextOverflowing","textRef","current","getContentProps","ref","getPopperProps","includeTooltipProps","tooltipProps","pick","children","render","_ref3","SEllipsis","Root","SContainer","Tooltip","styles","tooltip","trim","containerRect","containerRef","_children","other","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","createElement","EllipsisMiddle","cn","undefined","Box","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","symbolWidth","setSymbolWidth","useState","blockWidth","useResizeObserver","width","useEnhancedEffect","node","styleElement","window","getComputedStyle","dateSpan","document","setFontSettings","textContent","body","appendChild","rect","getBoundingClientRect","removeChild","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","Math","round","interaction","length","contextValue","begining","substring","tail","_ref4","Provider","value","forkRef","_ref","arguments[0]","_ref7","Trigger","ellipsisMiddleContext","useContext","_ref6","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\nimport { isTextOverflowing, setFontSettings } from './utils';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n\n return sstyled(styles)(\n <SContainer\n interaction={tooltip ? 'hover' : 'none'}\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nfunction EllipsisMiddle(props: AsPropsMiddle) {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n tag,\n } = props;\n\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [symbolWidth, setSymbolWidth] = React.useState(0);\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const styleElement = window.getComputedStyle(node);\n const dateSpan = document.createElement('temporary-block');\n\n setFontSettings(dateSpan, styleElement);\n dateSpan.textContent = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setSymbolWidth(rect.width);\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = Tooltip;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => {\n const displayedSymbols = Math.round(blockWidth / symbolWidth);\n\n return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;\n },\n [blockWidth, symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n );\n }\n return sstyled(styles)(\n <SContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n title={text}\n ref={forkRef(ref, textRef)}\n tag={tag}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n );\n}\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nfunction Content({ styles, Children }: EllipsisContentAsProps) {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n}\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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","ignoreList":[]}
|