@semcore/ellipsis 2.40.0-prerelease.5 → 2.40.0-prerelease.6
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/lib/cjs/Ellipsis.js +142 -75
- package/lib/cjs/Ellipsis.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/ellipsis.shadow.css +8 -8
- package/lib/cjs/useResizeObserver.js +5 -4
- package/lib/cjs/useResizeObserver.js.map +1 -1
- package/lib/es6/Ellipsis.js +136 -71
- package/lib/es6/Ellipsis.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/ellipsis.shadow.css +8 -8
- package/lib/es6/useResizeObserver.js +2 -2
- package/lib/es6/useResizeObserver.js.map +1 -1
- package/lib/esm/Ellipsis.mjs +135 -70
- package/lib/esm/style/ellipsis.shadow.css +8 -8
- package/lib/esm/useResizeObserver.mjs +2 -2
- package/lib/types/index.d.ts +9 -12
- package/package.json +5 -5
- package/lib/cjs/utils.js +0 -53
- package/lib/cjs/utils.js.map +0 -1
- package/lib/es6/utils.js +0 -46
- package/lib/es6/utils.js.map +0 -1
- package/lib/esm/utils.mjs +0 -47
package/lib/cjs/Ellipsis.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
@@ -11,63 +11,108 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
11
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
var
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
15
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
16
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var _assignProps3 = require("@semcore/core/lib/utils/assignProps");
|
|
20
|
-
var _findComponent = _interopRequireWildcard(require("@semcore/core/lib/utils/findComponent"));
|
|
21
|
-
var _getOriginChildren = _interopRequireDefault(require("@semcore/core/lib/utils/getOriginChildren"));
|
|
22
|
-
var _pick = _interopRequireDefault(require("@semcore/core/lib/utils/pick"));
|
|
23
|
-
var _reactToText = _interopRequireDefault(require("@semcore/core/lib/utils/reactToText"));
|
|
24
|
-
var _ref9 = require("@semcore/core/lib/utils/ref");
|
|
25
|
-
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
26
|
-
var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
|
|
18
|
+
var _index = require("@semcore/utils/lib/core/index");
|
|
19
|
+
var _core = _interopRequireWildcard(require("@semcore/core"));
|
|
27
20
|
var _react = _interopRequireDefault(require("react"));
|
|
21
|
+
var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
|
|
22
|
+
var _flexBox = require("@semcore/flex-box");
|
|
28
23
|
var _useResizeObserver = require("./useResizeObserver");
|
|
29
|
-
var
|
|
30
|
-
var
|
|
24
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/useEnhancedEffect"));
|
|
25
|
+
var _findComponent = _interopRequireWildcard(require("@semcore/utils/lib/findComponent"));
|
|
26
|
+
var _reactToText = _interopRequireDefault(require("@semcore/utils/lib/reactToText"));
|
|
27
|
+
var _getOriginChildren = _interopRequireDefault(require("@semcore/utils/lib/getOriginChildren"));
|
|
28
|
+
var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
|
|
29
|
+
var _ref11 = require("@semcore/utils/lib/ref");
|
|
30
|
+
var _assignProps3 = require("@semcore/utils/lib/assignProps");
|
|
31
|
+
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
|
|
32
|
+
_excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
|
|
31
33
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
32
|
-
var style = (/*__reshadow_css_start__*/
|
|
34
|
+
var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_vwpmx_gg_,.___SContainer_vwpmx_gg_,.___SEllipsis_vwpmx_gg_.__middle-mod_vwpmx_gg_,.___SNoTooltipContainer_vwpmx_gg_{display:flex;overflow:hidden}.___SBeginning_vwpmx_gg_,.___SEllipsis_vwpmx_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_vwpmx_gg_.__maxLine_vwpmx_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_vwpmx);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_vwpmx_gg_>:has(.___SBeginning_vwpmx_gg_),.___SContainerMiddle_vwpmx_gg_>:has(.___STail_vwpmx_gg_){display:flex;width:100%}.___STail_vwpmx_gg_{white-space:pre}", /*__inner_css_end__*/"vwpmx_gg_"),
|
|
33
35
|
/*__reshadow_css_end__*/
|
|
34
36
|
{
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"__STail": "
|
|
37
|
+
"__SContainer": "___SContainer_vwpmx_gg_",
|
|
38
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_vwpmx_gg_",
|
|
39
|
+
"__SContainerMiddle": "___SContainerMiddle_vwpmx_gg_",
|
|
40
|
+
"__SBeginning": "___SBeginning_vwpmx_gg_",
|
|
41
|
+
"__SEllipsis": "___SEllipsis_vwpmx_gg_",
|
|
42
|
+
"_middle-mod": "__middle-mod_vwpmx_gg_",
|
|
43
|
+
"_maxLine": "__maxLine_vwpmx_gg_",
|
|
44
|
+
"--maxLine": "--maxLine_vwpmx",
|
|
45
|
+
"__STail": "___STail_vwpmx_gg_"
|
|
44
46
|
});
|
|
45
47
|
var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
48
|
+
var createMeasurerElement = function createMeasurerElement(element, text) {
|
|
49
|
+
var styleElement = window.getComputedStyle(element, null);
|
|
50
|
+
var temporaryElement = document.createElement('temporary-block');
|
|
51
|
+
temporaryElement.style.display = styleElement.getPropertyValue('display');
|
|
52
|
+
temporaryElement.style.padding = styleElement.getPropertyValue('padding');
|
|
53
|
+
temporaryElement.style.position = 'absolute';
|
|
54
|
+
temporaryElement.style.right = '0%';
|
|
55
|
+
temporaryElement.style.bottom = '0%';
|
|
56
|
+
temporaryElement.style.visibility = 'hidden';
|
|
57
|
+
temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
58
|
+
temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
59
|
+
temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
60
|
+
temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
61
|
+
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
62
|
+
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
63
|
+
temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
64
|
+
temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
65
|
+
temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
|
|
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
|
+
}
|
|
46
90
|
var forcedAdvancedMode = {
|
|
47
91
|
forcedAdvancedMode: true
|
|
48
92
|
};
|
|
49
93
|
var noAdvancedMode = {};
|
|
50
94
|
var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
95
|
+
(0, _inherits2["default"])(RootEllipsis, _Component);
|
|
96
|
+
var _super = (0, _createSuper2["default"])(RootEllipsis);
|
|
51
97
|
function RootEllipsis() {
|
|
52
98
|
var _this;
|
|
53
99
|
(0, _classCallCheck2["default"])(this, RootEllipsis);
|
|
54
100
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
55
101
|
args[_key] = arguments[_key];
|
|
56
102
|
}
|
|
57
|
-
_this = (
|
|
58
|
-
(0, _defineProperty2["default"])(_this, "state", {
|
|
103
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
104
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
59
105
|
visible: false
|
|
60
106
|
});
|
|
61
|
-
(0, _defineProperty2["default"])(_this, "textRef", /*#__PURE__*/_react["default"].createRef());
|
|
62
|
-
(0, _defineProperty2["default"])(_this, "handlerVisibleChange", function (visible) {
|
|
107
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "textRef", /*#__PURE__*/_react["default"].createRef());
|
|
108
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handlerVisibleChange", function (visible) {
|
|
63
109
|
_this.setState({
|
|
64
110
|
visible: visible && _this.showTooltip()
|
|
65
111
|
});
|
|
66
112
|
});
|
|
67
113
|
return _this;
|
|
68
114
|
}
|
|
69
|
-
(0,
|
|
70
|
-
return (0, _createClass2["default"])(RootEllipsis, [{
|
|
115
|
+
(0, _createClass2["default"])(RootEllipsis, [{
|
|
71
116
|
key: "showTooltip",
|
|
72
117
|
value: function showTooltip() {
|
|
73
118
|
var _this$asProps = this.asProps,
|
|
@@ -75,7 +120,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
75
120
|
maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine,
|
|
76
121
|
Children = _this$asProps.Children;
|
|
77
122
|
var text = (0, _reactToText["default"])((0, _getOriginChildren["default"])(Children));
|
|
78
|
-
return
|
|
123
|
+
return isTextOverflowing(this.textRef.current, maxLine > 1, text);
|
|
79
124
|
}
|
|
80
125
|
}, {
|
|
81
126
|
key: "getContentProps",
|
|
@@ -100,9 +145,10 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
100
145
|
}, {
|
|
101
146
|
key: "render",
|
|
102
147
|
value: function render() {
|
|
103
|
-
var
|
|
148
|
+
var _ref4, _tooltipProps$visible;
|
|
104
149
|
var SEllipsis = this.Root;
|
|
105
150
|
var SContainer = _tooltip["default"];
|
|
151
|
+
var SNoTooltipContainer = _flexBox.Box;
|
|
106
152
|
var _this$asProps3 = this.asProps,
|
|
107
153
|
styles = _this$asProps3.styles,
|
|
108
154
|
Children = _this$asProps3.Children,
|
|
@@ -112,7 +158,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
112
158
|
containerRect = _this$asProps3.containerRect,
|
|
113
159
|
containerRef = _this$asProps3.containerRef,
|
|
114
160
|
includeTooltipProps = _this$asProps3.includeTooltipProps,
|
|
115
|
-
|
|
161
|
+
children = _this$asProps3.children,
|
|
116
162
|
other = (0, _objectWithoutProperties2["default"])(_this$asProps3, _excluded);
|
|
117
163
|
var visible = this.state.visible;
|
|
118
164
|
var advancedContent = (0, _findComponent["default"])(Children, [Ellipsis.Content.displayName]);
|
|
@@ -134,16 +180,25 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
134
180
|
"advanceMode": advanceMode
|
|
135
181
|
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {})));
|
|
136
182
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
183
|
+
if (tooltip) {
|
|
184
|
+
var _ref3;
|
|
185
|
+
return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainer, _ref3.cn("SContainer", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
|
|
186
|
+
"interaction": 'hover',
|
|
187
|
+
"title": !advanceMode ? text : undefined
|
|
188
|
+
}, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref3.cn("SEllipsis", (0, _objectSpread2["default"])({
|
|
189
|
+
"render": _flexBox.Box,
|
|
190
|
+
"ref": this.textRef,
|
|
191
|
+
"maxLine": maxLine
|
|
192
|
+
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {}))));
|
|
193
|
+
}
|
|
194
|
+
return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SNoTooltipContainer, _ref4.cn("SNoTooltipContainer", {}), advanceMode ? /*#__PURE__*/_react["default"].createElement(Children, _ref4.cn("Children", {})) : /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref4.cn("SEllipsis", (0, _objectSpread2["default"])({
|
|
195
|
+
"render": _flexBox.Box,
|
|
142
196
|
"ref": this.textRef,
|
|
143
197
|
"maxLine": maxLine
|
|
144
|
-
}, other)), /*#__PURE__*/_react["default"].createElement(Children,
|
|
198
|
+
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref4.cn("Children", {}))));
|
|
145
199
|
}
|
|
146
200
|
}]);
|
|
201
|
+
return RootEllipsis;
|
|
147
202
|
}(_core.Component);
|
|
148
203
|
(0, _defineProperty2["default"])(RootEllipsis, "displayName", 'Ellipsis');
|
|
149
204
|
(0, _defineProperty2["default"])(RootEllipsis, "style", style);
|
|
@@ -154,8 +209,8 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
154
209
|
__excludeProps: ['title']
|
|
155
210
|
});
|
|
156
211
|
var EllipsisMiddleContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
157
|
-
function EllipsisMiddle(props) {
|
|
158
|
-
var
|
|
212
|
+
var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
213
|
+
var _ref7;
|
|
159
214
|
var styles = props.styles,
|
|
160
215
|
text = props.text,
|
|
161
216
|
tooltip = props.tooltip,
|
|
@@ -165,33 +220,37 @@ function EllipsisMiddle(props) {
|
|
|
165
220
|
tooltipProps = props.tooltipProps,
|
|
166
221
|
children = props.children,
|
|
167
222
|
advanceMode = props.advanceMode,
|
|
168
|
-
|
|
223
|
+
otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded2);
|
|
169
224
|
var resizeElement = _react["default"].useRef(null);
|
|
170
|
-
var _React$useState = _react["default"].useState(
|
|
225
|
+
var _React$useState = _react["default"].useState({
|
|
226
|
+
fontSize: '14',
|
|
227
|
+
symbolWidth: 0
|
|
228
|
+
}),
|
|
171
229
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
172
|
-
|
|
173
|
-
|
|
230
|
+
dimension = _React$useState2[0],
|
|
231
|
+
setDimension = _React$useState2[1];
|
|
174
232
|
var blockWidth = (0, _useResizeObserver.useResizeObserver)(resizeElement, containerRect).width;
|
|
175
233
|
(0, _useEnhancedEffect["default"])(function () {
|
|
176
234
|
var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
|
|
177
235
|
if (!node) return;
|
|
178
|
-
var styleElement = window.getComputedStyle(node);
|
|
179
236
|
var dateSpan = document.createElement('temporary-block');
|
|
180
|
-
(
|
|
181
|
-
dateSpan.
|
|
237
|
+
dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
|
|
238
|
+
dateSpan.innerHTML = 'a';
|
|
182
239
|
document.body.appendChild(dateSpan);
|
|
183
240
|
var rect = dateSpan.getBoundingClientRect();
|
|
184
|
-
|
|
241
|
+
setDimension({
|
|
242
|
+
fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),
|
|
243
|
+
symbolWidth: rect.width
|
|
244
|
+
});
|
|
185
245
|
document.body.removeChild(dateSpan);
|
|
186
246
|
}, []);
|
|
187
247
|
var STail = 'span';
|
|
188
248
|
var SBeginning = 'span';
|
|
189
|
-
var SContainerMiddle =
|
|
249
|
+
var SContainerMiddle = props.tag || _flexBox.Box;
|
|
190
250
|
var SAdvancedModeContainerMiddle = _tooltip["default"];
|
|
191
251
|
var displayedSymbols = _react["default"].useMemo(function () {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}, [blockWidth, symbolWidth]);
|
|
252
|
+
return Math.round(blockWidth / dimension.symbolWidth);
|
|
253
|
+
}, [blockWidth, dimension.symbolWidth]);
|
|
195
254
|
var interaction = text.length > displayedSymbols ? 'hover' : 'none';
|
|
196
255
|
var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
|
|
197
256
|
var contextValue = _react["default"].useMemo(function () {
|
|
@@ -202,44 +261,52 @@ function EllipsisMiddle(props) {
|
|
|
202
261
|
};
|
|
203
262
|
}, [text, displayedSymbols]);
|
|
204
263
|
if (advanceMode) {
|
|
205
|
-
var
|
|
206
|
-
return
|
|
207
|
-
"interaction":
|
|
264
|
+
var _ref5;
|
|
265
|
+
return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
|
|
266
|
+
"interaction": interaction
|
|
208
267
|
}, tooltipProps), forcedAdvancedMode)), /*#__PURE__*/_react["default"].createElement(EllipsisMiddleContext.Provider, {
|
|
209
268
|
value: contextValue
|
|
210
269
|
}, children));
|
|
211
270
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
"
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
271
|
+
if (tooltip) {
|
|
272
|
+
var _ref6;
|
|
273
|
+
return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", (0, _objectSpread2["default"])({
|
|
274
|
+
"interaction": interaction,
|
|
275
|
+
"title": text,
|
|
276
|
+
"ref": (0, _ref11.forkRef)(ref, textRef),
|
|
277
|
+
"tag": _tooltip["default"],
|
|
278
|
+
"__excludeProps": ['title']
|
|
279
|
+
}, tooltipProps)), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
|
|
280
|
+
}
|
|
281
|
+
return _ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, otherProps), {}, {
|
|
282
|
+
"ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
|
|
283
|
+
})), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
|
|
284
|
+
};
|
|
285
|
+
var Content = function Content(_ref10) {
|
|
220
286
|
var _ref = arguments[0],
|
|
221
|
-
|
|
222
|
-
var styles =
|
|
223
|
-
Children =
|
|
287
|
+
_ref9;
|
|
288
|
+
var styles = _ref10.styles,
|
|
289
|
+
Children = _ref10.Children;
|
|
224
290
|
var SEllipsis = _tooltip["default"].Trigger;
|
|
225
291
|
var ellipsisMiddleContext = _react["default"].useContext(EllipsisMiddleContext);
|
|
226
292
|
var STail = 'span';
|
|
227
293
|
var SBeginning = 'span';
|
|
228
294
|
if (ellipsisMiddleContext) {
|
|
229
|
-
var
|
|
295
|
+
var _ref8;
|
|
230
296
|
var begining = ellipsisMiddleContext.begining,
|
|
231
297
|
tail = ellipsisMiddleContext.tail,
|
|
232
298
|
ref = ellipsisMiddleContext.ref;
|
|
233
|
-
return
|
|
299
|
+
return _ref8 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref8.cn("SEllipsis", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
234
300
|
"middle-mod": true,
|
|
235
301
|
"ref": ref
|
|
236
|
-
}, _ref))), /*#__PURE__*/_react["default"].createElement(SBeginning,
|
|
302
|
+
}, _ref))), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /*#__PURE__*/_react["default"].createElement(STail, _ref8.cn("STail", {}), tail));
|
|
237
303
|
}
|
|
238
|
-
return
|
|
239
|
-
}
|
|
240
|
-
var Ellipsis = (0, _core
|
|
304
|
+
return _ref9 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref9.cn("SEllipsis", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({}, _ref))), /*#__PURE__*/_react["default"].createElement(Children, _ref9.cn("Children", {})));
|
|
305
|
+
};
|
|
306
|
+
var Ellipsis = (0, _core["default"])(RootEllipsis, {
|
|
241
307
|
Content: Content,
|
|
242
308
|
Popper: _tooltip["default"].Popper
|
|
243
309
|
});
|
|
244
|
-
var _default =
|
|
310
|
+
var _default = Ellipsis;
|
|
311
|
+
exports["default"] = _default;
|
|
245
312
|
//# sourceMappingURL=Ellipsis.js.map
|
package/lib/cjs/Ellipsis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsis.js","names":["_core","require","_baseComponents","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref9","_useEnhancedEffect","_tooltip","_react","_useResizeObserver","_utils","_excluded","style","sstyled","insert","defaultTooltipProps","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","visible","React","createRef","setState","showTooltip","_inherits2","_createClass2","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","text","reactToText","getOriginChildren","isTextOverflowing","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","createElement","EllipsisMiddle","cn","undefined","Box","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","_React$useState","useState","_React$useState2","_slicedToArray2","symbolWidth","setSymbolWidth","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","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 { 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":[]}
|
|
1
|
+
{"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","_ref11","_assignProps3","_excluded","_excluded2","style","_index","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","_defineProperty2","_assertThisInitialized2","visible","React","createRef","setState","showTooltip","_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","_ref4","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","forkRef","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\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 // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\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 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.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\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 SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n 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 if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\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 ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.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={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\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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"}
|
package/lib/cjs/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\nimport { RefObject } from 'react';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type 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<HTMLElement | null>;\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\ndeclare const useResizeObserver: (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => { width: number };\n\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport { useResizeObserver };\nexport default Ellipsis;\n"],"mappings":""}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_Ellipsis","_interopRequireDefault","require","_useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_Ellipsis","_interopRequireDefault","require","_useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
SContainer,
|
|
2
|
+
SNoTooltipContainer,
|
|
3
|
+
SContainerMiddle {
|
|
4
|
+
display: flex;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
}
|
|
7
|
+
|
|
1
8
|
SBeginning,
|
|
2
9
|
SEllipsis {
|
|
3
10
|
overflow: hidden;
|
|
@@ -6,9 +13,7 @@ SEllipsis {
|
|
|
6
13
|
white-space: pre;
|
|
7
14
|
}
|
|
8
15
|
|
|
9
|
-
|
|
10
|
-
SNoTooltipContainer,
|
|
11
|
-
SContainerMiddle {
|
|
16
|
+
SEllipsis[middle-mod] {
|
|
12
17
|
display: flex;
|
|
13
18
|
overflow: hidden;
|
|
14
19
|
}
|
|
@@ -22,11 +27,6 @@ SEllipsis[maxLine] {
|
|
|
22
27
|
overflow-wrap: break-word;
|
|
23
28
|
}
|
|
24
29
|
|
|
25
|
-
SEllipsis[middle-mod] {
|
|
26
|
-
display: flex;
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
30
|
SContainerMiddle> :has(SBeginning),
|
|
31
31
|
SContainerMiddle> :has(STail) {
|
|
32
32
|
display: flex;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useResizeObserver = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
-
var _canUseDOM = _interopRequireDefault(require("@semcore/core/lib/utils/canUseDOM"));
|
|
10
|
-
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
11
9
|
var _react = _interopRequireDefault(require("react"));
|
|
12
|
-
var
|
|
10
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/useEnhancedEffect"));
|
|
11
|
+
var _canUseDOM = _interopRequireDefault(require("@semcore/utils/lib/canUseDOM"));
|
|
12
|
+
var useResizeObserver = function useResizeObserver(ref, hookOverride) {
|
|
13
13
|
var _React$useState = _react["default"].useState(0),
|
|
14
14
|
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
15
15
|
width = _React$useState2[0],
|
|
@@ -41,4 +41,5 @@ var useResizeObserver = exports.useResizeObserver = function useResizeObserver(r
|
|
|
41
41
|
width: width
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
|
+
exports.useResizeObserver = useResizeObserver;
|
|
44
45
|
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizeObserver.js","names":["
|
|
1
|
+
{"version":3,"file":"useResizeObserver.js","names":["_react","_interopRequireDefault","require","_useEnhancedEffect","_canUseDOM","useResizeObserver","ref","hookOverride","_React$useState","React","useState","_React$useState2","_slicedToArray2","width","setWidth","handleResize","useCallback","entries","contentRect","useEnhancedEffect","current","canUseDOM","ro","ResizeObserver","observe","disconnect","exports"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = React.useState<number>(0);\n\n const handleResize = React.useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,eAAA,GAA0BC,iBAAK,CAACC,QAAQ,CAAS,CAAC,CAAC;IAAAC,gBAAA,OAAAC,eAAA,aAAAJ,eAAA;IAA5CK,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAMI,YAAY,GAAGN,iBAAK,CAACO,WAAW,CAAC,UAACC,OAA8B,EAAK;IACzEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAM,6BAAiB,EAAC,YAAM;IACtB,IAAI,CAACb,GAAG,CAACc,OAAO,EAAE;MAChB;IACF;IAEA,IAAIb,YAAY,EAAE;MAChB;IACF;IACA,IAAI,IAAAc,qBAAS,GAAE,EAAE;MACf,IAAMC,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACN,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFK,EAAE,CAACE,OAAO,CAAClB,GAAG,CAACc,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXE,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAAClB,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEM,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC;AAACa,OAAA,CAAArB,iBAAA,GAAAA,iBAAA"}
|