@semcore/ellipsis 16.0.5 → 16.0.6-prerelease.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [16.0.6] - 2025-08-08
6
+
7
+ ### Fixed
8
+
9
+ - Ellipsis with `trim=middle` cut off text at the end.
10
+ - Incorrect cropping with different font-size.
11
+
5
12
  ## [16.0.5] - 2025-07-23
6
13
 
7
14
  ### Changed
@@ -22,30 +22,37 @@ var _findComponent = _interopRequireWildcard(require("@semcore/core/lib/utils/fi
22
22
  var _getOriginChildren = _interopRequireDefault(require("@semcore/core/lib/utils/getOriginChildren"));
23
23
  var _pick = _interopRequireDefault(require("@semcore/core/lib/utils/pick"));
24
24
  var _reactToText = _interopRequireDefault(require("@semcore/core/lib/utils/reactToText"));
25
- var _ref1 = require("@semcore/core/lib/utils/ref");
25
+ var _ref9 = require("@semcore/core/lib/utils/ref");
26
26
  var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
27
27
  var _flexBox = require("@semcore/flex-box");
28
28
  var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
29
29
  var _react = _interopRequireDefault(require("react"));
30
30
  var _useResizeObserver = require("./useResizeObserver");
31
- var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
32
- _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
31
+ var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"];
33
32
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, (0, _isNativeReflectConstruct2["default"])() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
34
33
  /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
35
- var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SContainerMiddle_1hp0v_gg_,.___SContainer_1hp0v_gg_,.___SEllipsis_1hp0v_gg_.__middle-mod_1hp0v_gg_,.___SNoTooltipContainer_1hp0v_gg_{display:flex;overflow:hidden}.___SBeginning_1hp0v_gg_,.___SEllipsis_1hp0v_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1hp0v_gg_.__maxLine_1hp0v_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1hp0v);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1hp0v_gg_>:has(.___SBeginning_1hp0v_gg_),.___SContainerMiddle_1hp0v_gg_>:has(.___STail_1hp0v_gg_){display:flex;width:100%}.___STail_1hp0v_gg_{white-space:pre}", /*__inner_css_end__*/"1hp0v_gg_"),
34
+ var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SBeginning_yog1u_gg_,.___SEllipsis_yog1u_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_yog1u_gg_.__maxLine_yog1u_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_yog1u);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_yog1u_gg_,.___SContainer_yog1u_gg_,.___SEllipsis_yog1u_gg_.__middle-mod_yog1u_gg_,.___SNoTooltipContainer_yog1u_gg_{display:flex;overflow:hidden}.___SContainerMiddle_yog1u_gg_>:has(.___SBeginning_yog1u_gg_),.___SContainerMiddle_yog1u_gg_>:has(.___STail_yog1u_gg_){display:flex;width:100%}.___STail_yog1u_gg_{white-space:pre}", /*__inner_css_end__*/"yog1u_gg_"),
36
35
  /*__reshadow_css_end__*/
37
36
  {
38
- "__SContainer": "___SContainer_1hp0v_gg_",
39
- "__SNoTooltipContainer": "___SNoTooltipContainer_1hp0v_gg_",
40
- "__SContainerMiddle": "___SContainerMiddle_1hp0v_gg_",
41
- "__SBeginning": "___SBeginning_1hp0v_gg_",
42
- "__SEllipsis": "___SEllipsis_1hp0v_gg_",
43
- "_middle-mod": "__middle-mod_1hp0v_gg_",
44
- "_maxLine": "__maxLine_1hp0v_gg_",
45
- "--maxLine": "--maxLine_1hp0v",
46
- "__STail": "___STail_1hp0v_gg_"
37
+ "__SBeginning": "___SBeginning_yog1u_gg_",
38
+ "__SEllipsis": "___SEllipsis_yog1u_gg_",
39
+ "__SContainer": "___SContainer_yog1u_gg_",
40
+ "__SNoTooltipContainer": "___SNoTooltipContainer_yog1u_gg_",
41
+ "__SContainerMiddle": "___SContainerMiddle_yog1u_gg_",
42
+ "_maxLine": "__maxLine_yog1u_gg_",
43
+ "--maxLine": "--maxLine_yog1u",
44
+ "_middle-mod": "__middle-mod_yog1u_gg_",
45
+ "__STail": "___STail_yog1u_gg_"
47
46
  });
48
47
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
48
+ var setFontSettings = function setFontSettings(element, styleElement) {
49
+ element.style.fontFamily = styleElement.getPropertyValue('font-family');
50
+ element.style.fontSize = styleElement.getPropertyValue('font-size');
51
+ element.style.fontWeight = styleElement.getPropertyValue('font-weight');
52
+ element.style.lineHeight = styleElement.getPropertyValue('line-height');
53
+ element.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
54
+ element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
55
+ };
49
56
  var createMeasurerElement = function createMeasurerElement(element, text) {
50
57
  var styleElement = window.getComputedStyle(element, null);
51
58
  var temporaryElement = document.createElement('temporary-block');
@@ -55,14 +62,9 @@ var createMeasurerElement = function createMeasurerElement(element, text) {
55
62
  temporaryElement.style.right = '0%';
56
63
  temporaryElement.style.bottom = '0%';
57
64
  temporaryElement.style.visibility = 'hidden';
58
- temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
59
- temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
60
- temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
61
- temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
62
65
  temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
63
66
  temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
64
- temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
65
- temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
67
+ setFontSettings(temporaryElement, styleElement);
66
68
  temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
67
69
  return temporaryElement;
68
70
  };
@@ -145,10 +147,9 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
145
147
  }, {
146
148
  key: "render",
147
149
  value: function render() {
148
- var _ref4, _tooltipProps$visible;
150
+ var _ref3, _tooltipProps$visible;
149
151
  var SEllipsis = this.Root;
150
152
  var SContainer = _tooltip["default"];
151
- var SNoTooltipContainer = _flexBox.Box;
152
153
  var _this$asProps3 = this.asProps,
153
154
  styles = _this$asProps3.styles,
154
155
  Children = _this$asProps3.Children,
@@ -180,22 +181,14 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
180
181
  "advanceMode": advanceMode
181
182
  }, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {})));
182
183
  }
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"])({
184
+ return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainer, _ref3.cn("SContainer", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
185
+ "interaction": tooltip ? 'hover' : 'none',
186
+ "title": !advanceMode ? text : undefined
187
+ }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref3.cn("SEllipsis", (0, _objectSpread2["default"])({
195
188
  "render": _flexBox.Box,
196
189
  "ref": this.textRef,
197
190
  "maxLine": maxLine
198
- }, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref4.cn("Children", {}))));
191
+ }, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref3.cn("Children", {}))));
199
192
  }
200
193
  }]);
201
194
  }(_core.Component);
@@ -209,7 +202,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
209
202
  });
210
203
  var EllipsisMiddleContext = /*#__PURE__*/_react["default"].createContext(null);
211
204
  var EllipsisMiddle = function EllipsisMiddle(props) {
212
- var _ref7;
205
+ var _ref5;
213
206
  var styles = props.styles,
214
207
  text = props.text,
215
208
  tooltip = props.tooltip,
@@ -219,37 +212,33 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
219
212
  tooltipProps = props.tooltipProps,
220
213
  children = props.children,
221
214
  advanceMode = props.advanceMode,
222
- otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded2);
215
+ tag = props.tag;
223
216
  var resizeElement = _react["default"].useRef(null);
224
- var _React$useState = _react["default"].useState({
225
- fontSize: '14',
226
- symbolWidth: 0
227
- }),
217
+ var _React$useState = _react["default"].useState(0),
228
218
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
229
- dimension = _React$useState2[0],
230
- setDimension = _React$useState2[1];
219
+ symbolWidth = _React$useState2[0],
220
+ setSymbolWidth = _React$useState2[1];
231
221
  var blockWidth = (0, _useResizeObserver.useResizeObserver)(resizeElement, containerRect).width;
232
222
  (0, _useEnhancedEffect["default"])(function () {
233
223
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
234
224
  if (!node) return;
225
+ var styleElement = window.getComputedStyle(node);
235
226
  var dateSpan = document.createElement('temporary-block');
236
- dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
227
+ setFontSettings(dateSpan, styleElement);
237
228
  dateSpan.innerHTML = 'a';
238
229
  document.body.appendChild(dateSpan);
239
230
  var rect = dateSpan.getBoundingClientRect();
240
- setDimension({
241
- fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),
242
- symbolWidth: rect.width
243
- });
231
+ setSymbolWidth(rect.width);
244
232
  document.body.removeChild(dateSpan);
245
233
  }, []);
246
234
  var STail = 'span';
247
235
  var SBeginning = 'span';
248
- var SContainerMiddle = props.tag || _flexBox.Box;
236
+ var SContainerMiddle = _tooltip["default"];
249
237
  var SAdvancedModeContainerMiddle = _tooltip["default"];
250
238
  var displayedSymbols = _react["default"].useMemo(function () {
251
- return Math.round(blockWidth / dimension.symbolWidth);
252
- }, [blockWidth, dimension.symbolWidth]);
239
+ var displayedSymbols = Math.round(blockWidth / symbolWidth);
240
+ return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;
241
+ }, [blockWidth, symbolWidth]);
253
242
  var interaction = text.length > displayedSymbols ? 'hover' : 'none';
254
243
  var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
255
244
  var contextValue = _react["default"].useMemo(function () {
@@ -260,47 +249,40 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
260
249
  };
261
250
  }, [text, displayedSymbols]);
262
251
  if (advanceMode) {
263
- var _ref5;
264
- return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
265
- "interaction": interaction
252
+ var _ref4;
253
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
254
+ "interaction": tooltip ? interaction : 'none'
266
255
  }, tooltipProps), forcedAdvancedMode)), /*#__PURE__*/_react["default"].createElement(EllipsisMiddleContext.Provider, {
267
256
  value: contextValue
268
257
  }, children));
269
258
  }
270
- if (tooltip) {
271
- var _ref6;
272
- return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", (0, _objectSpread2["default"])({
273
- "interaction": interaction,
274
- "title": text,
275
- "ref": (0, _ref1.forkRef)(ref, textRef),
276
- "tag": _tooltip["default"],
277
- "__excludeProps": ['title']
278
- }, tooltipProps)), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
279
- }
280
- return _ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, otherProps), {}, {
281
- "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
282
- })), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
259
+ return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", (0, _objectSpread2["default"])({
260
+ "interaction": tooltip ? interaction : 'none',
261
+ "title": text,
262
+ "ref": (0, _ref9.forkRef)(ref, textRef),
263
+ "tag": tag
264
+ }, tooltipProps)), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
283
265
  };
284
- var Content = function Content(_ref0) {
266
+ var Content = function Content(_ref8) {
285
267
  var _ref = arguments[0],
286
- _ref9;
287
- var styles = _ref0.styles,
288
- Children = _ref0.Children;
268
+ _ref7;
269
+ var styles = _ref8.styles,
270
+ Children = _ref8.Children;
289
271
  var SEllipsis = _tooltip["default"].Trigger;
290
272
  var ellipsisMiddleContext = _react["default"].useContext(EllipsisMiddleContext);
291
273
  var STail = 'span';
292
274
  var SBeginning = 'span';
293
275
  if (ellipsisMiddleContext) {
294
- var _ref8;
276
+ var _ref6;
295
277
  var begining = ellipsisMiddleContext.begining,
296
278
  tail = ellipsisMiddleContext.tail,
297
279
  ref = ellipsisMiddleContext.ref;
298
- return _ref8 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref8.cn("SEllipsis", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
280
+ return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref6.cn("SEllipsis", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
299
281
  "middle-mod": true,
300
282
  "ref": ref
301
- }, _ref))), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /*#__PURE__*/_react["default"].createElement(STail, _ref8.cn("STail", {}), tail));
283
+ }, _ref))), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /*#__PURE__*/_react["default"].createElement(STail, _ref6.cn("STail", {}), tail));
302
284
  }
303
- 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", {})));
285
+ return _ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref7.cn("SEllipsis", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({}, _ref))), /*#__PURE__*/_react["default"].createElement(Children, _ref7.cn("Children", {})));
304
286
  };
305
287
  var Ellipsis = (0, _core.createComponent)(RootEllipsis, {
306
288
  Content: Content,
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["_core","require","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref1","_useEnhancedEffect","_flexBox","_tooltip","_react","_useResizeObserver","_excluded","_excluded2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct2","Reflect","construct","constructor","apply","style","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","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_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","_ref4","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_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","_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","_ref0","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","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 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: _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 ? (\n <Children />\n )\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 ? (\n <Children />\n )\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":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,KAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,YAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAN,sBAAA,CAAAL,OAAA;AACA,IAAAY,MAAA,GAAAP,sBAAA,CAAAL,OAAA;AAGA,IAAAa,kBAAA,GAAAb,OAAA;AAAwD,IAAAc,SAAA;EAAAC,UAAA;AAAA,SAAAC,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,aAAAF,CAAA,OAAAG,2BAAA,aAAAJ,CAAA,MAAAK,0BAAA,iBAAAC,OAAA,CAAAC,SAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,aAAAH,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA;AAAA,IAAAQ,KAAA,8BAAA5B,KAAA,CAAA6B,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AA2DxD,IAAMC,mBAAmB,GAAG,CAC1B,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,CAClB;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,OAAuB,EAAEC,IAAa,EAAK;EACxE,IAAMC,YAAY,GAAGC,MAAM,CAACC,gBAAgB,CAACJ,OAAO,EAAE,IAAI,CAAC;EAC3D,IAAMK,gBAAgB,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;EAClEF,gBAAgB,CAACV,KAAK,CAACa,OAAO,GAAGN,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACV,KAAK,CAACe,OAAO,GAAGR,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACV,KAAK,CAACgB,QAAQ,GAAG,UAAU;EAC5CN,gBAAgB,CAACV,KAAK,CAACiB,KAAK,GAAG,IAAI;EACnCP,gBAAgB,CAACV,KAAK,CAACkB,MAAM,GAAG,IAAI;EACpCR,gBAAgB,CAACV,KAAK,CAACmB,UAAU,GAAG,QAAQ;EAC5CT,gBAAgB,CAACV,KAAK,CAACoB,UAAU,GAAGb,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACV,KAAK,CAACqB,QAAQ,GAAGd,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAC5EJ,gBAAgB,CAACV,KAAK,CAACsB,UAAU,GAAGf,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACV,KAAK,CAACuB,UAAU,GAAGhB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACV,KAAK,CAACwB,UAAU,GAAGjB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACV,KAAK,CAACyB,QAAQ,GAAGlB,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAE5EJ,gBAAgB,CAACV,KAAK,CAAC0B,mBAAmB,GACxCnB,YAAY,CAACO,gBAAgB,CAAC,uBAAuB,CAAC;EACxDJ,gBAAgB,CAACV,KAAK,CAAC2B,kBAAkB,GAAGpB,YAAY,CAACO,gBAAgB,CAAC,sBAAsB,CAAC;EAEjGJ,gBAAgB,CAACkB,SAAS,GAAGtB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAID,OAAO,CAACuB,SAAS;EACtD,OAAOlB,gBAAgB;AACzB,CAAC;AAED,SAASmB,iBAAiBA,CAACxB,OAAuB,EAAEyB,SAAkB,EAAExB,IAAa,EAAW;EAC9F,IAAI,CAACD,OAAO,EAAE,OAAO,KAAK;EAE1B,IAAA0B,qBAAA,GAAuD1B,OAAO,CAAC2B,qBAAqB,CAAC,CAAC;IAAtEC,aAAa,GAAAF,qBAAA,CAArBG,MAAM;IAAwBC,YAAY,GAAAJ,qBAAA,CAAnBK,KAAK;EACpC,IAAMC,gBAAgB,GAAGjC,qBAAqB,CAACC,OAAO,EAAEC,IAAI,CAAC;EAC7D,IAAIgC,aAAa,GAAG,KAAK;EAEzB3B,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAACH,gBAAgB,CAAC;EAC3C,IAAIP,SAAS,EAAE;IACbO,gBAAgB,CAACrC,KAAK,CAACoC,KAAK,MAAAK,MAAA,CAAMN,YAAY,OAAI;IAElD,IAAMC,KAAK,GAAGC,gBAAgB,CAACK,WAAW;IAC1C,IAAMR,MAAM,GAAGG,gBAAgB,CAACL,qBAAqB,CAAC,CAAC,CAACE,MAAM;IAE9D,IAAIS,IAAI,CAACC,IAAI,CAACX,aAAa,CAAC,GAAGC,MAAM,IAAIS,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGC,KAAK,EAAE;MACxEE,aAAa,GAAG,IAAI;IACtB;EACF,CAAC,MAAM;IACLD,gBAAgB,CAACrC,KAAK,CAACwB,UAAU,GAAG,QAAQ;IAC5Cc,aAAa,GAAGK,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGE,gBAAgB,CAACL,qBAAqB,CAAC,CAAC,CAACI,KAAK;EAC1F;EAEAzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACR,gBAAgB,CAAC;EAE3C,OAAOC,aAAa;AACtB;AAEA,IAAMQ,kBAAkB,GAAG;EAAEA,kBAAkB,EAAE;AAAK,CAAQ;AAC9D,IAAMC,cAAc,GAAG,CAAC,CAAQ;AAAC,IAE3BC,YAAY,0BAAAC,UAAA;EAAA,SAAAD,aAAA;IAAA,IAAAE,KAAA;IAAA,IAAAC,gBAAA,mBAAAH,YAAA;IAAA,SAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAA7D,UAAA,OAAA2D,YAAA,KAAAP,MAAA,CAAAc,IAAA;IAAA,IAAAG,gBAAA,aAAAR,KAAA,WAUR;MACNS,OAAO,EAAE;IACX,CAAC;IAAA,IAAAD,gBAAA,aAAAR,KAAA,0BAESU,iBAAK,CAACC,SAAS,CAAiB,CAAC;IAAA,IAAAH,gBAAA,aAAAR,KAAA,0BAQpB,UAACS,OAAgB,EAAK;MAC3CT,KAAA,CAAKY,QAAQ,CAAC;QAAEH,OAAO,EAAEA,OAAO,IAAIT,KAAA,CAAKa,WAAW,CAAC;MAAE,CAAC,CAAC;IAC3D,CAAC;IAAA,OAAAb,KAAA;EAAA;EAAA,IAAAc,UAAA,aAAAhB,YAAA,EAAAC,UAAA;EAAA,WAAAgB,aAAA,aAAAjB,YAAA;IAAAkB,GAAA;IAAAC,KAAA,EARD,SAAAJ,WAAWA,CAAA,EAAG;MACZ,IAAAK,aAAA,GAAkC,IAAI,CAACC,OAAO;QAAAC,qBAAA,GAAAF,aAAA,CAAtCG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;QAAEE,QAAQ,GAAAJ,aAAA,CAARI,QAAQ;MAC7B,IAAMlE,IAAI,GAAG,IAAAmE,uBAAW,EAAC,IAAAC,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACrD,OAAO3C,iBAAiB,CAAC,IAAI,CAAC8C,OAAO,CAACC,OAAO,EAAGL,OAAO,GAAG,CAAC,EAAEjE,IAAI,CAAC;IACpE;EAAC;IAAA4D,GAAA;IAAAC,KAAA,EAMD,SAAAU,eAAeA,CAAA,EAAG;MAChB,OAAO;QACLC,GAAG,EAAE,IAAI,CAACH,OAAO;QACjBJ,OAAO,EAAE,IAAI,CAACF,OAAO,CAACE;MACxB,CAAC;IACH;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAY,cAAcA,CAAA,EAAG;MACf,IAAAC,cAAA,GAA0C,IAAI,CAACX,OAAO;QAA9CG,QAAQ,GAAAQ,cAAA,CAARR,QAAQ;QAAES,mBAAmB,GAAAD,cAAA,CAAnBC,mBAAmB;MACrC,IAAM3E,IAAI,GAAG,IAAAmE,uBAAW,EAAC,IAAAC,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACrD,IAAMU,YAAY,GAAG,IAAAC,gBAAI,EAAC,IAAI,CAACd,OAAO,EAAEY,mBAA0B,CAAiB;MACnF,WAAAG,cAAA;QAASC,QAAQ,EAAE/E;MAAI,GAAK4E,YAAY;IAC1C;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAAmB,MAAMA,CAAA,EAAG;MAAA,IAAAC,KAAA,EAAAC,qBAAA;MACP,IAAMC,SAAS,GAAG,IAAI,CAACC,IAAI;MAC3B,IAAMC,UAAU,GAAGC,mBAAO;MAC1B,IAAMC,mBAAmB,GAAGC,YAAG;MAC/B,IAAAC,cAAA,GAWI,IAAI,CAAC1B,OAAO;QAVd2B,MAAM,GAAAD,cAAA,CAANC,MAAM;QACNxB,QAAQ,GAAAuB,cAAA,CAARvB,QAAQ;QACRD,OAAO,GAAAwB,cAAA,CAAPxB,OAAO;QACP0B,OAAO,GAAAF,cAAA,CAAPE,OAAO;QACPC,IAAI,GAAAH,cAAA,CAAJG,IAAI;QACJC,aAAa,GAAAJ,cAAA,CAAbI,aAAa;QACbC,YAAY,GAAAL,cAAA,CAAZK,YAAY;QACZnB,mBAAmB,GAAAc,cAAA,CAAnBd,mBAAmB;QACToB,SAAS,GAAAN,cAAA,CAAnBV,QAAQ;QACLiB,KAAK,OAAAC,yBAAA,aAAAR,cAAA,EAAA5G,SAAA;MAEV,IAAQwE,OAAO,GAAK,IAAI,CAAC6C,KAAK,CAAtB7C,OAAO;MACf,IAAM8C,eAAe,GAAG,IAAAC,yBAAa,EAAClC,QAAQ,EAAE,CAAEmC,QAAQ,CAASC,OAAO,CAACC,WAAW,CAAC,CAAC;MACxF,IAAMvG,IAAI,GAAG,IAAAmE,uBAAW,EAACgC,eAAe,IAAI,IAAA/B,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACxE,IAAMsC,WAAW,GAAG,IAAAC,4BAAa,EAACvC,QAAQ,EAAE,CACzCmC,QAAQ,CAASC,OAAO,CAACC,WAAW,EACpCF,QAAQ,CAASK,MAAM,CAACH,WAAW,CACrC,CAAC;MACF,IAAM3B,YAAY,GAAG,IAAAC,gBAAI,EAAC,IAAI,CAACd,OAAO,EAAEY,mBAA0B,CAAiB;MAEnFC,YAAY,CAACvB,OAAO,IAAA6B,qBAAA,GAAGN,YAAY,CAACvB,OAAO,cAAA6B,qBAAA,cAAAA,qBAAA,GAAI7B,OAAO;MACtDuB,YAAY,CAAC+B,eAAe,GAAG/B,YAAY,CAAC+B,eAAe,GACvD,IAAAC,kCAAoB,EAAChC,YAAY,CAAC+B,eAAe,EAAE,IAAI,CAACE,oBAAoB,CAAC,GAC7E,IAAI,CAACA,oBAAoB;MAE7B,IAAIjB,IAAI,KAAK,QAAQ,EAAE;QAAA,IAAAkB,KAAA;QACrB,OAAAA,KAAA,GAAO,IAAAnH,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAACyG,cAAc,EAAAD,KAAA,CAAAE,EAAA,uBAAAlC,cAAA;UAAA,QACP9E,IAAI;UAAA,UACF0F,MAAM;UAAA,WACLC,OAAO;UAAA,iBACDE,aAAa;UAAA,gBACdC,YAAY;UAAA,WACjB,IAAI,CAACzB,OAAO;UAAA,gBACPO,YAAY;UAAA,eACb4B;QAAW,GACpBR,KAAK,iBAETrH,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAA4C,KAAA,CAAAE,EAAA,gBAAE,CACG,CAAC;MAErB;MACA,IAAIrB,OAAO,EAAE;QAAA,IAAAsB,KAAA;QACX,OAAAA,KAAA,GAAO,IAAAtH,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAAC+E,UAAU,EAAA4B,KAAA,CAAAD,EAAA,mBAAAlC,cAAA,iBAAAA,cAAA;UAAA,eACG,OAAO;UAAA,SACZ,CAAC0B,WAAW,GAAGxG,IAAI,GAAGkH;QAAS,GAClCtC,YAAY,GACX4B,WAAW,GAAGhE,kBAAkB,GAAGC,cAAc,IAErD+D,WAAW,gBAEN7H,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAA+C,KAAA,CAAAD,EAAA,gBAAE,CAAC,gBAGZrI,MAAA,YAAA2B,aAAA,CAAC6E,SAAS,EAAA8B,KAAA,CAAAD,EAAA,kBAAAlC,cAAA;UAAA,UAASU,YAAG;UAAA,OAAO,IAAI,CAACnB,OAAO;UAAA,WAAWJ;QAAO,GAAM+B,KAAK,iBACpErH,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAA+C,KAAA,CAAAD,EAAA,gBAAE,CACF,CAEP,CAAC;MAEjB;MACA,OAAA/B,KAAA,GAAO,IAAAtF,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAACiF,mBAAmB,EAAAN,KAAA,CAAA+B,EAAA,6BACjBR,WAAW,gBAEN7H,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAAe,KAAA,CAAA+B,EAAA,gBAAE,CAAC,gBAGZrI,MAAA,YAAA2B,aAAA,CAAC6E,SAAS,EAAAF,KAAA,CAAA+B,EAAA,kBAAAlC,cAAA;QAAA,UAASU,YAAG;QAAA,OAAO,IAAI,CAACnB,OAAO;QAAA,WAAWJ;MAAO,GAAM+B,KAAK,iBACpErH,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAAe,KAAA,CAAA+B,EAAA,gBAAE,CACF,CAEE,CAAC;IAE1B;EAAC;AAAA,EAxHwBG,eAAS;AAAA,IAAA/D,gBAAA,aAA9BV,YAAY,iBACK,UAAU;AAAA,IAAAU,gBAAA,aAD3BV,YAAY,WAEDhD,KAAK;AAAA,IAAA0D,gBAAA,aAFhBV,YAAY,kBAGe;EAC7BkD,IAAI,EAAE,KAAK;EACXD,OAAO,EAAE,IAAI;EACbhB,mBAAmB,EAAE9E,mBAAmB;EACxCuH,cAAc,EAAE,CAAC,OAAO;AAC1B,CAAC;AAmHH,IAAMC,qBAAqB,gBAAG/D,iBAAK,CAACgE,aAAa,CAI9C,IAAI,CAAC;AAER,IAAMP,cAAuC,GAAG,SAA1CA,cAAuCA,CAAIQ,KAAK,EAAK;EAAA,IAAAC,KAAA;EACzD,IACE9B,MAAM,GAUJ6B,KAAK,CAVP7B,MAAM;IACN1F,IAAI,GASFuH,KAAK,CATPvH,IAAI;IACJ2F,OAAO,GAQL4B,KAAK,CARP5B,OAAO;IACPE,aAAa,GAOX0B,KAAK,CAPP1B,aAAa;IACbC,YAAY,GAMVyB,KAAK,CANPzB,YAAY;IACZzB,OAAO,GAKLkD,KAAK,CALPlD,OAAO;IACPO,YAAY,GAIV2C,KAAK,CAJP3C,YAAY;IACZG,QAAQ,GAGNwC,KAAK,CAHPxC,QAAQ;IACRyB,WAAW,GAETe,KAAK,CAFPf,WAAW;IACRiB,UAAU,OAAAxB,yBAAA,aACXsB,KAAK,EAAAzI,UAAA;EACT,IAAM4I,aAAa,GAAGpE,iBAAK,CAACqE,MAAM,CAAiB,IAAI,CAAC;EACxD,IAAAC,eAAA,GAAkCtE,iBAAK,CAACuE,QAAQ,CAA4C;MAC1F9G,QAAQ,EAAE,IAAI;MACd+G,WAAW,EAAE;IACf,CAAC,CAAC;IAAAC,gBAAA,OAAAC,eAAA,aAAAJ,eAAA;IAHKK,SAAS,GAAAF,gBAAA;IAAEG,YAAY,GAAAH,gBAAA;EAI9B,IAAMI,UAAU,GAAG,IAAAC,oCAAiB,EAACV,aAAa,EAAE7B,aAAa,CAAC,CAAC/D,KAAK;EAExE,IAAAuG,6BAAiB,EAAC,YAAM;IACtB,IAAMC,IAAI,GAAG,CAAAxC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExB,OAAO,MAAIoD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEpD,OAAO;IAC5D,IAAI,CAACgE,IAAI,EAAE;IAEX,IAAMC,QAAQ,GAAGlI,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;IAC1DiI,QAAQ,CAACC,YAAY,CAAC,OAAO,eAAArG,MAAA,CAAe8F,SAAS,CAAClH,QAAQ,OAAI,CAAC;IACnEwH,QAAQ,CAACjH,SAAS,GAAG,GAAG;IACxBjB,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAACqG,QAAQ,CAAC;IACnC,IAAME,IAAI,GAAGF,QAAQ,CAAC7G,qBAAqB,CAAC,CAAC;IAE7CwG,YAAY,CAAC;MACXnH,QAAQ,EAAEb,MAAM,CAACC,gBAAgB,CAACmI,IAAI,EAAE,IAAI,CAAC,CAAC9H,gBAAgB,CAAC,WAAW,CAAC;MAC3EsH,WAAW,EAAEW,IAAI,CAAC3G;IACpB,CAAC,CAAC;IACFzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACgG,QAAQ,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EACzB,IAAMC,gBAAgB,GAAGrB,KAAK,CAACsB,GAAG,IAAIrD,YAAG;EACzC,IAAMsD,4BAA4B,GAAGxD,mBAAO;EAC5C,IAAMyD,gBAAgB,GAAGzF,iBAAK,CAAC0F,OAAO,CACpC;IAAA,OAAM3G,IAAI,CAAC4G,KAAK,CAACd,UAAU,GAAGF,SAAS,CAACH,WAAW,CAAC;EAAA,GACpD,CAACK,UAAU,EAAEF,SAAS,CAACH,WAAW,CACpC,CAAC;EAED,IAAMoB,WAAW,GAAGlJ,IAAI,CAACgD,MAAM,GAAG+F,gBAAgB,GAAG,OAAO,GAAG,MAAM;EACrE,IAAMvE,GAAG,GAAGsB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI4B,aAAa;EACzC,IAAMyB,YAAY,GAAG7F,iBAAK,CAAC0F,OAAO,CAChC;IAAA,OAAO;MACLI,QAAQ,EAAEpJ,IAAI,CAACqJ,SAAS,CAAC,CAAC,EAAErJ,IAAI,CAACgD,MAAM,GAAG+F,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MACnEO,IAAI,EAAEtJ,IAAI,CAACqJ,SAAS,CAACrJ,IAAI,CAACgD,MAAM,GAAG+F,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MAC5DvE,GAAG,EAAHA;IACF,CAAC;EAAA,CAAC,EACF,CAACxE,IAAI,EAAE+I,gBAAgB,CACzB,CAAC;EAED,IAAIvC,WAAW,EAAE;IAAA,IAAA+C,KAAA;IACf,OAAAA,KAAA,GAAO,IAAA5J,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAACwI,4BAA4B,EAAAS,KAAA,CAAAvC,EAAA,qCAAAlC,cAAA,iBAAAA,cAAA;MAAA,eACdoE;IAAW,GACpBtE,YAAY,GACZpC,kBAAkB,iBAEtB7D,MAAA,YAAA2B,aAAA,CAAC+G,qBAAqB,CAACmC,QAAQ;MAAC3F,KAAK,EAAEsF;IAAa,GACjDpE,QAC6B,CACJ,CAAC;EAEnC;EACA,IAAIY,OAAO,EAAE;IAAA,IAAA8D,KAAA;IACX,OAAAA,KAAA,GAAO,IAAA9J,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAACsI,gBAAgB,EAAAa,KAAA,CAAAzC,EAAA,yBAAAlC,cAAA;MAAA,eACFoE,WAAW;MAAA,SACjBlJ,IAAI;MAAA,OACN,IAAA0J,aAAO,EAAClF,GAAG,EAAEH,OAAO,CAAC;MAAA,OACrBiB,mBAAO;MAAA,kBACI,CAAC,OAAO;IAAC,GACrBV,YAAY,iBAEhBjG,MAAA,YAAA2B,aAAA,CAACqI,UAAU,EAAAc,KAAA,CAAAzC,EAAA,oBAAEmC,YAAY,CAACC,QAAqB,CAAC,eAChDzK,MAAA,YAAA2B,aAAA,CAACoI,KAAK,EAAAe,KAAA,CAAAzC,EAAA,eAAEmC,YAAY,CAACG,IAAY,CACjB,CAAC;EAEvB;EACA,OAAA9B,KAAA,GAAO,IAAA7H,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAACsI,gBAAgB,EAAApB,KAAA,CAAAR,EAAA,yBAAAlC,cAAA,iBAAAA,cAAA,iBAAK2C,UAAU;IAAA,OAAO3B,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI4B;EAAa,kBAClE/I,MAAA,YAAA2B,aAAA,CAACqI,UAAU,EAAAnB,KAAA,CAAAR,EAAA,oBAAEmC,YAAY,CAACC,QAAqB,CAAC,eAChDzK,MAAA,YAAA2B,aAAA,CAACoI,KAAK,EAAAlB,KAAA,CAAAR,EAAA,eAAEmC,YAAY,CAACG,IAAY,CACjB,CAAC;AAEvB,CAAC;AAOD,IAAMhD,OAAyC,GAAG,SAA5CA,OAAyCA,CAAAqD,KAAA,EAA6B;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAAA,IAAvBpE,MAAM,GAAAiE,KAAA,CAANjE,MAAM;IAAExB,QAAQ,GAAAyF,KAAA,CAARzF,QAAQ;EACnE,IAAMiB,SAAS,GAgBMG,mBAAO,CAACyE,OAAO;EAfpC,IAAMC,qBAAqB,GAAG1G,iBAAK,CAAC2G,UAAU,CAAC5C,qBAAqB,CAAC;EACrE,IAAMqB,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EAEzB,IAAIqB,qBAAqB,EAAE;IAAA,IAAAE,KAAA;IACzB,IAAQd,QAAQ,GAAgBY,qBAAqB,CAA7CZ,QAAQ;MAAEE,IAAI,GAAUU,qBAAqB,CAAnCV,IAAI;MAAE9E,GAAG,GAAKwF,qBAAqB,CAA7BxF,GAAG;IAC3B,OAAA0F,KAAA,GAAO,IAAAvK,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAAC6E,SAAS,EAAA+E,KAAA,CAAAlD,EAAA,kBAAAlC,cAAA,qBAAAhH,KAAA,CAAAqM,WAAA;MAAA;MAAA,OAA0C3F;IAAG,GAAAoF,IAAA,kBACrDjL,MAAA,YAAA2B,aAAA,CAACqI,UAAU,EAAAuB,KAAA,CAAAlD,EAAA,oBAAEoC,QAAqB,CAAC,eACnCzK,MAAA,YAAA2B,aAAA,CAACoI,KAAK,EAAAwB,KAAA,CAAAlD,EAAA,eAAEsC,IAAY,CACX,CAAC;EAEhB;EAEA,OAAAQ,KAAA,GAAO,IAAAnK,aAAO,EAAC+F,MAAM,CAAC,eACpB/G,MAAA,YAAA2B,aAAA,CAAC6E,SAAS,EAAA2E,KAAA,CAAA9C,EAAA,kBAAAlC,cAAA,qBAAAhH,KAAA,CAAAqM,WAAA,MAAAP,IAAA,kBACRjL,MAAA,YAAA2B,aAAA,CAAC4D,QAAQ,EAAA4F,KAAA,CAAA9C,EAAA,gBAAE,CACF,CAAC;AAEhB,CAAC;AAED,IAAMX,QAAQ,GAAG,IAAA+D,qBAAe,EAAC1H,YAAY,EAAE;EAC7C4D,OAAO,EAAPA,OAAO;EACPI,MAAM,EAAEpB,mBAAO,CAACoB;AAClB,CAAC,CAGA;AAAC,IAAA2D,QAAA,GAAAC,OAAA,cAEajE,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Ellipsis.js","names":["_core","require","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref9","_useEnhancedEffect","_flexBox","_tooltip","_react","_useResizeObserver","_excluded","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct2","Reflect","construct","constructor","apply","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","innerHTML","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","_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.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 {\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.innerHTML = '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 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\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":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis.\n * Applies only for `trim = end`\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":"","ignoreList":[]}
@@ -1,10 +1,3 @@
1
- SContainer,
2
- SNoTooltipContainer,
3
- SContainerMiddle {
4
- display: flex;
5
- overflow: hidden;
6
- }
7
-
8
1
  SBeginning,
9
2
  SEllipsis {
10
3
  overflow: hidden;
@@ -13,7 +6,9 @@ SEllipsis {
13
6
  white-space: pre;
14
7
  }
15
8
 
16
- SEllipsis[middle-mod] {
9
+ SContainer,
10
+ SNoTooltipContainer,
11
+ SContainerMiddle {
17
12
  display: flex;
18
13
  overflow: hidden;
19
14
  }
@@ -27,6 +22,11 @@ SEllipsis[maxLine] {
27
22
  overflow-wrap: break-word;
28
23
  }
29
24
 
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;
@@ -11,8 +11,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
11
11
  import { sstyled as _sstyled } from "@semcore/core";
12
12
  import { assignProps as _assignProps2 } from "@semcore/core";
13
13
  import { assignProps as _assignProps } from "@semcore/core";
14
- var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
15
- _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
14
+ var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"];
16
15
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
17
16
  import { createComponent, Component, Root, sstyled } from '@semcore/core';
18
17
  import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
@@ -26,21 +25,29 @@ import { Box } from '@semcore/flex-box';
26
25
  import Tooltip from '@semcore/tooltip';
27
26
  import React from 'react';
28
27
  /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
29
- var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SContainerMiddle_1hp0v_gg_,.___SContainer_1hp0v_gg_,.___SEllipsis_1hp0v_gg_.__middle-mod_1hp0v_gg_,.___SNoTooltipContainer_1hp0v_gg_{display:flex;overflow:hidden}.___SBeginning_1hp0v_gg_,.___SEllipsis_1hp0v_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1hp0v_gg_.__maxLine_1hp0v_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1hp0v);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1hp0v_gg_>:has(.___SBeginning_1hp0v_gg_),.___SContainerMiddle_1hp0v_gg_>:has(.___STail_1hp0v_gg_){display:flex;width:100%}.___STail_1hp0v_gg_{white-space:pre}", /*__inner_css_end__*/"1hp0v_gg_"),
28
+ var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SBeginning_yog1u_gg_,.___SEllipsis_yog1u_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_yog1u_gg_.__maxLine_yog1u_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_yog1u);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_yog1u_gg_,.___SContainer_yog1u_gg_,.___SEllipsis_yog1u_gg_.__middle-mod_yog1u_gg_,.___SNoTooltipContainer_yog1u_gg_{display:flex;overflow:hidden}.___SContainerMiddle_yog1u_gg_>:has(.___SBeginning_yog1u_gg_),.___SContainerMiddle_yog1u_gg_>:has(.___STail_yog1u_gg_){display:flex;width:100%}.___STail_yog1u_gg_{white-space:pre}", /*__inner_css_end__*/"yog1u_gg_"),
30
29
  /*__reshadow_css_end__*/
31
30
  {
32
- "__SContainer": "___SContainer_1hp0v_gg_",
33
- "__SNoTooltipContainer": "___SNoTooltipContainer_1hp0v_gg_",
34
- "__SContainerMiddle": "___SContainerMiddle_1hp0v_gg_",
35
- "__SBeginning": "___SBeginning_1hp0v_gg_",
36
- "__SEllipsis": "___SEllipsis_1hp0v_gg_",
37
- "_middle-mod": "__middle-mod_1hp0v_gg_",
38
- "_maxLine": "__maxLine_1hp0v_gg_",
39
- "--maxLine": "--maxLine_1hp0v",
40
- "__STail": "___STail_1hp0v_gg_"
31
+ "__SBeginning": "___SBeginning_yog1u_gg_",
32
+ "__SEllipsis": "___SEllipsis_yog1u_gg_",
33
+ "__SContainer": "___SContainer_yog1u_gg_",
34
+ "__SNoTooltipContainer": "___SNoTooltipContainer_yog1u_gg_",
35
+ "__SContainerMiddle": "___SContainerMiddle_yog1u_gg_",
36
+ "_maxLine": "__maxLine_yog1u_gg_",
37
+ "--maxLine": "--maxLine_yog1u",
38
+ "_middle-mod": "__middle-mod_yog1u_gg_",
39
+ "__STail": "___STail_yog1u_gg_"
41
40
  });
42
41
  import { useResizeObserver } from './useResizeObserver';
43
42
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
43
+ var setFontSettings = function setFontSettings(element, styleElement) {
44
+ element.style.fontFamily = styleElement.getPropertyValue('font-family');
45
+ element.style.fontSize = styleElement.getPropertyValue('font-size');
46
+ element.style.fontWeight = styleElement.getPropertyValue('font-weight');
47
+ element.style.lineHeight = styleElement.getPropertyValue('line-height');
48
+ element.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
49
+ element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
50
+ };
44
51
  var createMeasurerElement = function createMeasurerElement(element, text) {
45
52
  var styleElement = window.getComputedStyle(element, null);
46
53
  var temporaryElement = document.createElement('temporary-block');
@@ -50,14 +57,9 @@ var createMeasurerElement = function createMeasurerElement(element, text) {
50
57
  temporaryElement.style.right = '0%';
51
58
  temporaryElement.style.bottom = '0%';
52
59
  temporaryElement.style.visibility = 'hidden';
53
- temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
54
- temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
55
- temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
56
- temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
57
60
  temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
58
61
  temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
59
- temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
60
- temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
62
+ setFontSettings(temporaryElement, styleElement);
61
63
  temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
62
64
  return temporaryElement;
63
65
  };
@@ -140,10 +142,9 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
140
142
  }, {
141
143
  key: "render",
142
144
  value: function render() {
143
- var _ref4, _tooltipProps$visible;
145
+ var _ref3, _tooltipProps$visible;
144
146
  var SEllipsis = this.Root;
145
147
  var SContainer = Tooltip;
146
- var SNoTooltipContainer = Box;
147
148
  var _this$asProps3 = this.asProps,
148
149
  styles = _this$asProps3.styles,
149
150
  Children = _this$asProps3.Children,
@@ -175,22 +176,14 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
175
176
  "advanceMode": advanceMode
176
177
  }, other)), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
177
178
  }
178
- if (tooltip) {
179
- var _ref3;
180
- return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
181
- "interaction": 'hover',
182
- "title": !advanceMode ? text : undefined
183
- }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
184
- "render": Box,
185
- "ref": this.textRef,
186
- "maxLine": maxLine
187
- }, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
188
- }
189
- return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SNoTooltipContainer, _ref4.cn("SNoTooltipContainer", {}), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref4.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref4.cn("SEllipsis", _objectSpread({
179
+ return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
180
+ "interaction": tooltip ? 'hover' : 'none',
181
+ "title": !advanceMode ? text : undefined
182
+ }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
190
183
  "render": Box,
191
184
  "ref": this.textRef,
192
185
  "maxLine": maxLine
193
- }, other)), /*#__PURE__*/React.createElement(Children, _ref4.cn("Children", {}))));
186
+ }, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
194
187
  }
195
188
  }]);
196
189
  }(Component);
@@ -204,7 +197,7 @@ _defineProperty(RootEllipsis, "defaultProps", {
204
197
  });
205
198
  var EllipsisMiddleContext = /*#__PURE__*/React.createContext(null);
206
199
  var EllipsisMiddle = function EllipsisMiddle(props) {
207
- var _ref7;
200
+ var _ref5;
208
201
  var styles = props.styles,
209
202
  text = props.text,
210
203
  tooltip = props.tooltip,
@@ -214,37 +207,33 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
214
207
  tooltipProps = props.tooltipProps,
215
208
  children = props.children,
216
209
  advanceMode = props.advanceMode,
217
- otherProps = _objectWithoutProperties(props, _excluded2);
210
+ tag = props.tag;
218
211
  var resizeElement = React.useRef(null);
219
- var _React$useState = React.useState({
220
- fontSize: '14',
221
- symbolWidth: 0
222
- }),
212
+ var _React$useState = React.useState(0),
223
213
  _React$useState2 = _slicedToArray(_React$useState, 2),
224
- dimension = _React$useState2[0],
225
- setDimension = _React$useState2[1];
214
+ symbolWidth = _React$useState2[0],
215
+ setSymbolWidth = _React$useState2[1];
226
216
  var blockWidth = useResizeObserver(resizeElement, containerRect).width;
227
217
  useEnhancedEffect(function () {
228
218
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
229
219
  if (!node) return;
220
+ var styleElement = window.getComputedStyle(node);
230
221
  var dateSpan = document.createElement('temporary-block');
231
- dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
222
+ setFontSettings(dateSpan, styleElement);
232
223
  dateSpan.innerHTML = 'a';
233
224
  document.body.appendChild(dateSpan);
234
225
  var rect = dateSpan.getBoundingClientRect();
235
- setDimension({
236
- fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),
237
- symbolWidth: rect.width
238
- });
226
+ setSymbolWidth(rect.width);
239
227
  document.body.removeChild(dateSpan);
240
228
  }, []);
241
229
  var STail = 'span';
242
230
  var SBeginning = 'span';
243
- var SContainerMiddle = props.tag || Box;
231
+ var SContainerMiddle = Tooltip;
244
232
  var SAdvancedModeContainerMiddle = Tooltip;
245
233
  var displayedSymbols = React.useMemo(function () {
246
- return Math.round(blockWidth / dimension.symbolWidth);
247
- }, [blockWidth, dimension.symbolWidth]);
234
+ var displayedSymbols = Math.round(blockWidth / symbolWidth);
235
+ return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;
236
+ }, [blockWidth, symbolWidth]);
248
237
  var interaction = text.length > displayedSymbols ? 'hover' : 'none';
249
238
  var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
250
239
  var contextValue = React.useMemo(function () {
@@ -255,47 +244,40 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
255
244
  };
256
245
  }, [text, displayedSymbols]);
257
246
  if (advanceMode) {
258
- var _ref5;
259
- return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
260
- "interaction": interaction
247
+ var _ref4;
248
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
249
+ "interaction": tooltip ? interaction : 'none'
261
250
  }, tooltipProps), forcedAdvancedMode)), /*#__PURE__*/React.createElement(EllipsisMiddleContext.Provider, {
262
251
  value: contextValue
263
252
  }, children));
264
253
  }
265
- if (tooltip) {
266
- var _ref6;
267
- return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", _objectSpread({
268
- "interaction": interaction,
269
- "title": text,
270
- "ref": forkRef(ref, textRef),
271
- "tag": Tooltip,
272
- "__excludeProps": ['title']
273
- }, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
274
- }
275
- return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", _objectSpread(_objectSpread({}, otherProps), {}, {
276
- "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
277
- })), /*#__PURE__*/React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
254
+ return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", _objectSpread({
255
+ "interaction": tooltip ? interaction : 'none',
256
+ "title": text,
257
+ "ref": forkRef(ref, textRef),
258
+ "tag": tag
259
+ }, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
278
260
  };
279
- var Content = function Content(_ref0) {
261
+ var Content = function Content(_ref8) {
280
262
  var _ref = arguments[0],
281
- _ref9;
282
- var styles = _ref0.styles,
283
- Children = _ref0.Children;
263
+ _ref7;
264
+ var styles = _ref8.styles,
265
+ Children = _ref8.Children;
284
266
  var SEllipsis = Tooltip.Trigger;
285
267
  var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
286
268
  var STail = 'span';
287
269
  var SBeginning = 'span';
288
270
  if (ellipsisMiddleContext) {
289
- var _ref8;
271
+ var _ref6;
290
272
  var begining = ellipsisMiddleContext.begining,
291
273
  tail = ellipsisMiddleContext.tail,
292
274
  ref = ellipsisMiddleContext.ref;
293
- return _ref8 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref8.cn("SEllipsis", _objectSpread({}, _assignProps({
275
+ return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref6.cn("SEllipsis", _objectSpread({}, _assignProps({
294
276
  "middle-mod": true,
295
277
  "ref": ref
296
- }, _ref))), /*#__PURE__*/React.createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /*#__PURE__*/React.createElement(STail, _ref8.cn("STail", {}), tail));
278
+ }, _ref))), /*#__PURE__*/React.createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /*#__PURE__*/React.createElement(STail, _ref6.cn("STail", {}), tail));
297
279
  }
298
- return _ref9 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref9.cn("SEllipsis", _objectSpread({}, _assignProps2({}, _ref))), /*#__PURE__*/React.createElement(Children, _ref9.cn("Children", {})));
280
+ return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref7.cn("SEllipsis", _objectSpread({}, _assignProps2({}, _ref))), /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {})));
299
281
  };
300
282
  var Ellipsis = createComponent(RootEllipsis, {
301
283
  Content: Content,
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["createComponent","Component","Root","sstyled","callAllEventHandlers","findComponent","isAdvanceMode","getOriginChildren","pick","reactToText","forkRef","useEnhancedEffect","Box","Tooltip","React","style","_sstyled","insert","useResizeObserver","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","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","_defineProperty","visible","createRef","setState","showTooltip","_inherits","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref4","_tooltipProps$visible","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","_excluded2","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","_ref0","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","_assignProps","_assignProps2"],"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 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: _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 ? (\n <Children />\n )\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 ? (\n <Children />\n )\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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","ignoreList":[]}
1
+ {"version":3,"file":"Ellipsis.js","names":["createComponent","Component","Root","sstyled","callAllEventHandlers","findComponent","isAdvanceMode","getOriginChildren","pick","reactToText","forkRef","useEnhancedEffect","Box","Tooltip","React","style","_sstyled","insert","useResizeObserver","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","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","_defineProperty","visible","createRef","setState","showTooltip","_inherits","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref3","_tooltipProps$visible","SEllipsis","SContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","EllipsisMiddle","cn","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","_React$useState","useState","_React$useState2","_slicedToArray","symbolWidth","setSymbolWidth","blockWidth","node","dateSpan","rect","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref4","Provider","_ref8","_ref","arguments[0]","_ref7","Trigger","ellipsisMiddleContext","useContext","_ref6","_assignProps","_assignProps2"],"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.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 {\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.innerHTML = '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 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\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":"","ignoreList":[]}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis.\n * Applies only for `trim = end`\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":"","ignoreList":[]}
@@ -1,10 +1,3 @@
1
- SContainer,
2
- SNoTooltipContainer,
3
- SContainerMiddle {
4
- display: flex;
5
- overflow: hidden;
6
- }
7
-
8
1
  SBeginning,
9
2
  SEllipsis {
10
3
  overflow: hidden;
@@ -13,7 +6,9 @@ SEllipsis {
13
6
  white-space: pre;
14
7
  }
15
8
 
16
- SEllipsis[middle-mod] {
9
+ SContainer,
10
+ SNoTooltipContainer,
11
+ SContainerMiddle {
17
12
  display: flex;
18
13
  overflow: hidden;
19
14
  }
@@ -27,6 +22,11 @@ SEllipsis[maxLine] {
27
22
  overflow-wrap: break-word;
28
23
  }
29
24
 
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;
@@ -20,7 +20,7 @@ import { Box } from "@semcore/flex-box";
20
20
  import Tooltip from "@semcore/tooltip";
21
21
  import React from "react";
22
22
  import { useResizeObserver } from "./useResizeObserver.mjs";
23
- var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"], _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
23
+ var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"];
24
24
  function _callSuper(t, o, e) {
25
25
  return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
26
26
  }
@@ -29,23 +29,31 @@ var style = (
29
29
  /*__reshadow_css_start__*/
30
30
  (sstyled.insert(
31
31
  /*__inner_css_start__*/
32
- ".___SContainerMiddle_1hp0v_gg_,.___SContainer_1hp0v_gg_,.___SEllipsis_1hp0v_gg_.__middle-mod_1hp0v_gg_,.___SNoTooltipContainer_1hp0v_gg_{display:flex;overflow:hidden}.___SBeginning_1hp0v_gg_,.___SEllipsis_1hp0v_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1hp0v_gg_.__maxLine_1hp0v_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1hp0v);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1hp0v_gg_>:has(.___SBeginning_1hp0v_gg_),.___SContainerMiddle_1hp0v_gg_>:has(.___STail_1hp0v_gg_){display:flex;width:100%}.___STail_1hp0v_gg_{white-space:pre}",
32
+ ".___SBeginning_yog1u_gg_,.___SEllipsis_yog1u_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_yog1u_gg_.__maxLine_yog1u_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_yog1u);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_yog1u_gg_,.___SContainer_yog1u_gg_,.___SEllipsis_yog1u_gg_.__middle-mod_yog1u_gg_,.___SNoTooltipContainer_yog1u_gg_{display:flex;overflow:hidden}.___SContainerMiddle_yog1u_gg_>:has(.___SBeginning_yog1u_gg_),.___SContainerMiddle_yog1u_gg_>:has(.___STail_yog1u_gg_){display:flex;width:100%}.___STail_yog1u_gg_{white-space:pre}",
33
33
  /*__inner_css_end__*/
34
- "1hp0v_gg_"
34
+ "yog1u_gg_"
35
35
  ), /*__reshadow_css_end__*/
36
36
  {
37
- "__SContainer": "___SContainer_1hp0v_gg_",
38
- "__SNoTooltipContainer": "___SNoTooltipContainer_1hp0v_gg_",
39
- "__SContainerMiddle": "___SContainerMiddle_1hp0v_gg_",
40
- "__SBeginning": "___SBeginning_1hp0v_gg_",
41
- "__SEllipsis": "___SEllipsis_1hp0v_gg_",
42
- "_middle-mod": "__middle-mod_1hp0v_gg_",
43
- "_maxLine": "__maxLine_1hp0v_gg_",
44
- "--maxLine": "--maxLine_1hp0v",
45
- "__STail": "___STail_1hp0v_gg_"
37
+ "__SBeginning": "___SBeginning_yog1u_gg_",
38
+ "__SEllipsis": "___SEllipsis_yog1u_gg_",
39
+ "__SContainer": "___SContainer_yog1u_gg_",
40
+ "__SNoTooltipContainer": "___SNoTooltipContainer_yog1u_gg_",
41
+ "__SContainerMiddle": "___SContainerMiddle_yog1u_gg_",
42
+ "_maxLine": "__maxLine_yog1u_gg_",
43
+ "--maxLine": "--maxLine_yog1u",
44
+ "_middle-mod": "__middle-mod_yog1u_gg_",
45
+ "__STail": "___STail_yog1u_gg_"
46
46
  })
47
47
  );
48
48
  var defaultTooltipProps = ["title", "theme", "strategy", "modifiers", "placement", "interaction", "timeout", "visible", "defaultVisible", "onVisibleChange", "offset", "preventOverflow", "arrow", "flip", "computeStyles", "eventListeners", "onFirstUpdate", "cursorAnchoring"];
49
+ var setFontSettings = function setFontSettings2(element, styleElement) {
50
+ element.style.fontFamily = styleElement.getPropertyValue("font-family");
51
+ element.style.fontSize = styleElement.getPropertyValue("font-size");
52
+ element.style.fontWeight = styleElement.getPropertyValue("font-weight");
53
+ element.style.lineHeight = styleElement.getPropertyValue("line-height");
54
+ element.style.fontFeatureSettings = styleElement.getPropertyValue("font-feature-settings");
55
+ element.style.fontVariantNumeric = styleElement.getPropertyValue("font-variant-numeric");
56
+ };
49
57
  var createMeasurerElement = function createMeasurerElement2(element, text) {
50
58
  var styleElement = window.getComputedStyle(element, null);
51
59
  var temporaryElement = document.createElement("temporary-block");
@@ -55,14 +63,9 @@ var createMeasurerElement = function createMeasurerElement2(element, text) {
55
63
  temporaryElement.style.right = "0%";
56
64
  temporaryElement.style.bottom = "0%";
57
65
  temporaryElement.style.visibility = "hidden";
58
- temporaryElement.style.fontFamily = styleElement.getPropertyValue("font-family");
59
- temporaryElement.style.fontSize = styleElement.getPropertyValue("font-size");
60
- temporaryElement.style.fontWeight = styleElement.getPropertyValue("font-weight");
61
- temporaryElement.style.lineHeight = styleElement.getPropertyValue("line-height");
62
66
  temporaryElement.style.whiteSpace = styleElement.getPropertyValue("white-space");
63
67
  temporaryElement.style.wordWrap = styleElement.getPropertyValue("word-wrap");
64
- temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue("font-feature-settings");
65
- temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue("font-variant-numeric");
68
+ setFontSettings(temporaryElement, styleElement);
66
69
  temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
67
70
  return temporaryElement;
68
71
  };
@@ -138,10 +141,9 @@ var RootEllipsis = /* @__PURE__ */ function(_Component) {
138
141
  }, {
139
142
  key: "render",
140
143
  value: function render() {
141
- var _ref4, _tooltipProps$visible;
144
+ var _ref3, _tooltipProps$visible;
142
145
  var SEllipsis = this.Root;
143
146
  var SContainer = Tooltip;
144
- var SNoTooltipContainer = Box;
145
147
  var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, Children = _this$asProps3.Children, maxLine = _this$asProps3.maxLine, tooltip = _this$asProps3.tooltip, trim = _this$asProps3.trim, containerRect = _this$asProps3.containerRect, containerRef = _this$asProps3.containerRef, includeTooltipProps = _this$asProps3.includeTooltipProps;
146
148
  _this$asProps3.children;
147
149
  var other = _objectWithoutProperties(_this$asProps3, _excluded);
@@ -165,22 +167,14 @@ var RootEllipsis = /* @__PURE__ */ function(_Component) {
165
167
  "advanceMode": advanceMode
166
168
  }, other)), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})));
167
169
  }
168
- if (tooltip) {
169
- var _ref3;
170
- return _ref3 = sstyled(styles), /* @__PURE__ */ React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
171
- "interaction": "hover",
172
- "title": !advanceMode ? text : void 0
173
- }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {})) : /* @__PURE__ */ React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
174
- "render": Box,
175
- "ref": this.textRef,
176
- "maxLine": maxLine
177
- }, other)), /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {}))));
178
- }
179
- return _ref4 = sstyled(styles), /* @__PURE__ */ React.createElement(SNoTooltipContainer, _ref4.cn("SNoTooltipContainer", {}), advanceMode ? /* @__PURE__ */ React.createElement(Children, _ref4.cn("Children", {})) : /* @__PURE__ */ React.createElement(SEllipsis, _ref4.cn("SEllipsis", _objectSpread({
170
+ return _ref3 = sstyled(styles), /* @__PURE__ */ React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
171
+ "interaction": tooltip ? "hover" : "none",
172
+ "title": !advanceMode ? text : void 0
173
+ }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {})) : /* @__PURE__ */ React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
180
174
  "render": Box,
181
175
  "ref": this.textRef,
182
176
  "maxLine": maxLine
183
- }, other)), /* @__PURE__ */ React.createElement(Children, _ref4.cn("Children", {}))));
177
+ }, other)), /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {}))));
184
178
  }
185
179
  }]);
186
180
  }(Component);
@@ -194,35 +188,31 @@ _defineProperty(RootEllipsis, "defaultProps", {
194
188
  });
195
189
  var EllipsisMiddleContext = /* @__PURE__ */ React.createContext(null);
196
190
  var EllipsisMiddle = function EllipsisMiddle2(props) {
197
- var _ref7;
198
- var styles = props.styles, text = props.text, tooltip = props.tooltip, containerRect = props.containerRect, containerRef = props.containerRef, textRef = props.textRef, tooltipProps = props.tooltipProps, children = props.children, advanceMode = props.advanceMode, otherProps = _objectWithoutProperties(props, _excluded2);
191
+ var _ref5;
192
+ var styles = props.styles, text = props.text, tooltip = props.tooltip, containerRect = props.containerRect, containerRef = props.containerRef, textRef = props.textRef, tooltipProps = props.tooltipProps, children = props.children, advanceMode = props.advanceMode, tag = props.tag;
199
193
  var resizeElement = React.useRef(null);
200
- var _React$useState = React.useState({
201
- fontSize: "14",
202
- symbolWidth: 0
203
- }), _React$useState2 = _slicedToArray(_React$useState, 2), dimension = _React$useState2[0], setDimension = _React$useState2[1];
194
+ var _React$useState = React.useState(0), _React$useState2 = _slicedToArray(_React$useState, 2), symbolWidth = _React$useState2[0], setSymbolWidth = _React$useState2[1];
204
195
  var blockWidth = useResizeObserver(resizeElement, containerRect).width;
205
196
  useEnhancedEffect(function() {
206
197
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
207
198
  if (!node) return;
199
+ var styleElement = window.getComputedStyle(node);
208
200
  var dateSpan = document.createElement("temporary-block");
209
- dateSpan.setAttribute("style", "fontSize: ".concat(dimension.fontSize, "px"));
201
+ setFontSettings(dateSpan, styleElement);
210
202
  dateSpan.innerHTML = "a";
211
203
  document.body.appendChild(dateSpan);
212
204
  var rect = dateSpan.getBoundingClientRect();
213
- setDimension({
214
- fontSize: window.getComputedStyle(node, null).getPropertyValue("font-size"),
215
- symbolWidth: rect.width
216
- });
205
+ setSymbolWidth(rect.width);
217
206
  document.body.removeChild(dateSpan);
218
207
  }, []);
219
208
  var STail = "span";
220
209
  var SBeginning = "span";
221
- var SContainerMiddle = props.tag || Box;
210
+ var SContainerMiddle = Tooltip;
222
211
  var SAdvancedModeContainerMiddle = Tooltip;
223
212
  var displayedSymbols = React.useMemo(function() {
224
- return Math.round(blockWidth / dimension.symbolWidth);
225
- }, [blockWidth, dimension.symbolWidth]);
213
+ var displayedSymbols2 = Math.round(blockWidth / symbolWidth);
214
+ return displayedSymbols2 % 2 === 0 ? displayedSymbols2 : displayedSymbols2 - 1;
215
+ }, [blockWidth, symbolWidth]);
226
216
  var interaction = text.length > displayedSymbols ? "hover" : "none";
227
217
  var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
228
218
  var contextValue = React.useMemo(function() {
@@ -233,43 +223,36 @@ var EllipsisMiddle = function EllipsisMiddle2(props) {
233
223
  };
234
224
  }, [text, displayedSymbols]);
235
225
  if (advanceMode) {
236
- var _ref5;
237
- return _ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
238
- "interaction": interaction
226
+ var _ref4;
227
+ return _ref4 = sstyled(styles), /* @__PURE__ */ React.createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
228
+ "interaction": tooltip ? interaction : "none"
239
229
  }, tooltipProps), forcedAdvancedMode)), /* @__PURE__ */ React.createElement(EllipsisMiddleContext.Provider, {
240
230
  value: contextValue
241
231
  }, children));
242
232
  }
243
- if (tooltip) {
244
- var _ref6;
245
- return _ref6 = sstyled(styles), /* @__PURE__ */ React.createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", _objectSpread({
246
- "interaction": interaction,
247
- "title": text,
248
- "ref": forkRef(ref, textRef),
249
- "tag": Tooltip,
250
- "__excludeProps": ["title"]
251
- }, tooltipProps)), /* @__PURE__ */ React.createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
252
- }
253
- return _ref7 = sstyled(styles), /* @__PURE__ */ React.createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", _objectSpread(_objectSpread({}, otherProps), {}, {
254
- "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
255
- })), /* @__PURE__ */ React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
233
+ return _ref5 = sstyled(styles), /* @__PURE__ */ React.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", _objectSpread({
234
+ "interaction": tooltip ? interaction : "none",
235
+ "title": text,
236
+ "ref": forkRef(ref, textRef),
237
+ "tag": tag
238
+ }, tooltipProps)), /* @__PURE__ */ React.createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
256
239
  };
257
- var Content = function Content2(_ref0) {
258
- var _ref = arguments[0], _ref9;
259
- var styles = _ref0.styles, Children = _ref0.Children;
240
+ var Content = function Content2(_ref8) {
241
+ var _ref = arguments[0], _ref7;
242
+ var styles = _ref8.styles, Children = _ref8.Children;
260
243
  var SEllipsis = Tooltip.Trigger;
261
244
  var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
262
245
  var STail = "span";
263
246
  var SBeginning = "span";
264
247
  if (ellipsisMiddleContext) {
265
- var _ref8;
248
+ var _ref6;
266
249
  var begining = ellipsisMiddleContext.begining, tail = ellipsisMiddleContext.tail, ref = ellipsisMiddleContext.ref;
267
- return _ref8 = sstyled(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref8.cn("SEllipsis", _objectSpread({}, assignProps({
250
+ return _ref6 = sstyled(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref6.cn("SEllipsis", _objectSpread({}, assignProps({
268
251
  "middle-mod": true,
269
252
  "ref": ref
270
- }, _ref))), /* @__PURE__ */ React.createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /* @__PURE__ */ React.createElement(STail, _ref8.cn("STail", {}), tail));
253
+ }, _ref))), /* @__PURE__ */ React.createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /* @__PURE__ */ React.createElement(STail, _ref6.cn("STail", {}), tail));
271
254
  }
272
- return _ref9 = sstyled(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref9.cn("SEllipsis", _objectSpread({}, assignProps({}, _ref))), /* @__PURE__ */ React.createElement(Children, _ref9.cn("Children", {})));
255
+ return _ref7 = sstyled(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref7.cn("SEllipsis", _objectSpread({}, assignProps({}, _ref))), /* @__PURE__ */ React.createElement(Children, _ref7.cn("Children", {})));
273
256
  };
274
257
  var Ellipsis = createComponent(RootEllipsis, {
275
258
  Content,
@@ -1,10 +1,3 @@
1
- SContainer,
2
- SNoTooltipContainer,
3
- SContainerMiddle {
4
- display: flex;
5
- overflow: hidden;
6
- }
7
-
8
1
  SBeginning,
9
2
  SEllipsis {
10
3
  overflow: hidden;
@@ -13,7 +6,9 @@ SEllipsis {
13
6
  white-space: pre;
14
7
  }
15
8
 
16
- SEllipsis[middle-mod] {
9
+ SContainer,
10
+ SNoTooltipContainer,
11
+ SContainerMiddle {
17
12
  display: flex;
18
13
  overflow: hidden;
19
14
  }
@@ -27,6 +22,11 @@ SEllipsis[maxLine] {
27
22
  overflow-wrap: break-word;
28
23
  }
29
24
 
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;
@@ -9,7 +9,8 @@ export interface IEllipsisProps extends EllipsisProps, UnknownProperties {}
9
9
  export type EllipsisProps = BoxProps &
10
10
  Partial<TooltipProps> & {
11
11
  /**
12
- * Rows count in multiline Ellipsis
12
+ * Rows count in multiline Ellipsis.
13
+ * Applies only for `trim = end`
13
14
  * @default 1
14
15
  */
15
16
  maxLine?: number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/ellipsis",
3
3
  "description": "Semrush Ellipsis Component",
4
- "version": "16.0.5",
4
+ "version": "16.0.6-prerelease.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,11 +14,11 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/tooltip": "16.0.5",
18
- "@semcore/flex-box": "16.0.5"
17
+ "@semcore/tooltip": "16.0.6-prerelease.1",
18
+ "@semcore/flex-box": "16.0.6-prerelease.1"
19
19
  },
20
20
  "peerDependencies": {
21
- "@semcore/base-components": "^16.0.0"
21
+ "@semcore/base-components": "^16.2.0-prerelease.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@semcore/core": "16.0.4",