@semcore/ellipsis 1.2.13 → 1.2.14

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,11 +2,11 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [1.2.13] - 2023-03-28
5
+ ## [1.2.14] - 2023-04-03
6
6
 
7
7
  ### Changed
8
8
 
9
- - Version patch update due to children dependencies update (`@semcore/tooltip` [5.3.23 ~> 5.3.24]).
9
+ - Version patch update due to children dependencies update (`@semcore/tooltip` [5.3.24 ~> 5.4.0]).
10
10
 
11
11
  ## [1.2.1] - 2023-02-16
12
12
 
@@ -1,67 +1,39 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
13
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
-
22
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
15
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
25
-
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _core = _interopRequireWildcard(require("@semcore/core"));
29
-
30
18
  var _react = _interopRequireWildcard(require("react"));
31
-
32
19
  var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
33
-
34
20
  var _flexBox = require("@semcore/flex-box");
35
-
36
21
  var _useResizeObserver = require("./useResizeObserver");
37
-
38
22
  var _reactToText = _interopRequireDefault(require("@semcore/utils/lib/reactToText"));
39
-
40
23
  var _getOriginChildren = _interopRequireDefault(require("@semcore/utils/lib/getOriginChildren"));
41
-
42
24
  var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
43
-
44
25
  /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
45
- var style = (
46
- /*__reshadow_css_start__*/
47
- _core.sstyled.insert(
48
- /*__inner_css_start__*/
49
- ".___SContainerMiddle_abdtp_gg_,.___SContainer_abdtp_gg_,.___SNoTooltipContainer_abdtp_gg_{display:flex;overflow:hidden}.___SBeginning_abdtp_gg_,.___SEllipsis_abdtp_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_abdtp_gg_.__maxLine_abdtp_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_abdtp);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_abdtp_gg_{white-space:nowrap}"
50
- /*__inner_css_end__*/
51
- , "abdtp_gg_")
52
- /*__reshadow_css_end__*/
53
- , {
54
- "__SContainer": "___SContainer_abdtp_gg_",
55
- "__SNoTooltipContainer": "___SNoTooltipContainer_abdtp_gg_",
56
- "__SContainerMiddle": "___SContainerMiddle_abdtp_gg_",
57
- "__SBeginning": "___SBeginning_abdtp_gg_",
58
- "__SEllipsis": "___SEllipsis_abdtp_gg_",
59
- "_maxLine": "__maxLine_abdtp_gg_",
60
- "--maxLine": "--maxLine_abdtp",
61
- "__STail": "___STail_abdtp_gg_"
26
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_1wxcn_gg_,.___SContainer_1wxcn_gg_,.___SNoTooltipContainer_1wxcn_gg_{display:flex;overflow:hidden}.___SBeginning_1wxcn_gg_,.___SEllipsis_1wxcn_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_1wxcn_gg_.__maxLine_1wxcn_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1wxcn);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_1wxcn_gg_{white-space:nowrap}" /*__inner_css_end__*/, "1wxcn_gg_") /*__reshadow_css_end__*/, {
27
+ "__SContainer": "___SContainer_1wxcn_gg_",
28
+ "__SNoTooltipContainer": "___SNoTooltipContainer_1wxcn_gg_",
29
+ "__SContainerMiddle": "___SContainerMiddle_1wxcn_gg_",
30
+ "__SBeginning": "___SBeginning_1wxcn_gg_",
31
+ "__SEllipsis": "___SEllipsis_1wxcn_gg_",
32
+ "_maxLine": "__maxLine_1wxcn_gg_",
33
+ "--maxLine": "--maxLine_1wxcn",
34
+ "__STail": "___STail_1wxcn_gg_"
62
35
  });
63
36
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate'];
64
-
65
37
  var createMeasurerElement = function createMeasurerElement(element) {
66
38
  var styleElement = window.getComputedStyle(element, null);
67
39
  var temporaryElement = document.createElement('temporary-block');
@@ -77,18 +49,14 @@ var createMeasurerElement = function createMeasurerElement(element) {
77
49
  temporaryElement.innerHTML = element.innerHTML;
78
50
  return temporaryElement;
79
51
  };
80
-
81
52
  function isTextOverflowing(element, multiline) {
82
53
  if (!element) return false;
83
-
84
54
  var _element$getBoundingC = element.getBoundingClientRect(),
85
- currentHeight = _element$getBoundingC.height,
86
- currentWidth = _element$getBoundingC.width;
87
-
55
+ currentHeight = _element$getBoundingC.height,
56
+ currentWidth = _element$getBoundingC.width;
88
57
  var measuringElement = createMeasurerElement(element);
89
58
  var currentSize, initialSize;
90
59
  document.body.appendChild(measuringElement);
91
-
92
60
  if (multiline) {
93
61
  currentSize = currentHeight;
94
62
  measuringElement.style.width = "".concat(currentWidth, "px");
@@ -98,25 +66,18 @@ function isTextOverflowing(element, multiline) {
98
66
  measuringElement.style.whiteSpace = 'nowrap';
99
67
  initialSize = measuringElement.getBoundingClientRect().width;
100
68
  }
101
-
102
69
  document.body.removeChild(measuringElement);
103
70
  return currentSize < initialSize;
104
71
  }
105
-
106
72
  var RootEllipsis = /*#__PURE__*/function (_Component) {
107
73
  (0, _inherits2["default"])(RootEllipsis, _Component);
108
-
109
74
  var _super = (0, _createSuper2["default"])(RootEllipsis);
110
-
111
75
  function RootEllipsis() {
112
76
  var _this;
113
-
114
77
  (0, _classCallCheck2["default"])(this, RootEllipsis);
115
-
116
78
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
117
79
  args[_key] = arguments[_key];
118
80
  }
119
-
120
81
  _this = _super.call.apply(_super, [this].concat(args));
121
82
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
122
83
  visible: false
@@ -129,38 +90,34 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
129
90
  });
130
91
  return _this;
131
92
  }
132
-
133
93
  (0, _createClass2["default"])(RootEllipsis, [{
134
94
  key: "showTooltip",
135
95
  value: function showTooltip() {
136
96
  var _this$asProps$maxLine = this.asProps.maxLine,
137
- maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine;
97
+ maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine;
138
98
  return isTextOverflowing(this.textRef.current, maxLine > 1);
139
99
  }
140
100
  }, {
141
101
  key: "render",
142
102
  value: function render() {
143
103
  var _ref3;
144
-
145
104
  var SEllipsis = this.Root;
146
105
  var SContainer = _tooltip["default"];
147
106
  var SNoTooltipContainer = _flexBox.Box;
148
107
  var _this$asProps = this.asProps,
149
- styles = _this$asProps.styles,
150
- Children = _this$asProps.Children,
151
- maxLine = _this$asProps.maxLine,
152
- tooltip = _this$asProps.tooltip,
153
- trim = _this$asProps.trim,
154
- containerRect = _this$asProps.containerRect,
155
- containerRef = _this$asProps.containerRef,
156
- includeTooltipProps = _this$asProps.includeTooltipProps;
108
+ styles = _this$asProps.styles,
109
+ Children = _this$asProps.Children,
110
+ maxLine = _this$asProps.maxLine,
111
+ tooltip = _this$asProps.tooltip,
112
+ trim = _this$asProps.trim,
113
+ containerRect = _this$asProps.containerRect,
114
+ containerRef = _this$asProps.containerRef,
115
+ includeTooltipProps = _this$asProps.includeTooltipProps;
157
116
  var visible = this.state.visible;
158
117
  var text = (0, _reactToText["default"])((0, _getOriginChildren["default"])(Children));
159
118
  var tooltipProps = (0, _pick["default"])(this.asProps, includeTooltipProps);
160
-
161
119
  if (trim === 'middle') {
162
120
  var _ref;
163
-
164
121
  return _ref = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(EllipsisMiddle, _ref.cn("EllipsisMiddle", {
165
122
  "text": text,
166
123
  "styles": styles,
@@ -170,10 +127,8 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
170
127
  "tooltipProps": tooltipProps
171
128
  }));
172
129
  }
173
-
174
130
  if (tooltip) {
175
131
  var _ref2;
176
-
177
132
  return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainer, _ref2.cn("SContainer", (0, _objectSpread2["default"])({
178
133
  "interaction": "hover",
179
134
  "title": text,
@@ -185,7 +140,6 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
185
140
  "maxLine": maxLine
186
141
  }), /*#__PURE__*/_react["default"].createElement(Children, _ref2.cn("Children", {}))));
187
142
  }
188
-
189
143
  return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SNoTooltipContainer, _ref3.cn("SNoTooltipContainer", {}), /*#__PURE__*/_react["default"].createElement(SEllipsis, _ref3.cn("SEllipsis", {
190
144
  "render": _flexBox.Box,
191
145
  "ref": this.textRef,
@@ -195,7 +149,6 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
195
149
  }]);
196
150
  return RootEllipsis;
197
151
  }(_core.Component);
198
-
199
152
  (0, _defineProperty2["default"])(RootEllipsis, "displayName", 'Ellipsis');
200
153
  (0, _defineProperty2["default"])(RootEllipsis, "style", style);
201
154
  (0, _defineProperty2["default"])(RootEllipsis, "defaultProps", {
@@ -203,35 +156,32 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
203
156
  tooltip: true,
204
157
  includeTooltipProps: defaultTooltipProps
205
158
  });
206
-
207
159
  var EllipsisMiddle = function EllipsisMiddle(props) {
208
160
  var styles = props.styles,
209
- text = props.text,
210
- tooltip = props.tooltip,
211
- containerRect = props.containerRect,
212
- containerRef = props.containerRef,
213
- tooltipProps = props.tooltipProps;
161
+ text = props.text,
162
+ tooltip = props.tooltip,
163
+ containerRect = props.containerRect,
164
+ containerRef = props.containerRef,
165
+ tooltipProps = props.tooltipProps;
214
166
  var resizeElement = (0, _react.useRef)(null);
215
-
216
167
  var _useState = (0, _react.useState)({
217
- fontSize: '14',
218
- symbolWidth: 0
219
- }),
220
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
221
- dimension = _useState2[0],
222
- setDimension = _useState2[1];
223
-
168
+ fontSize: '14',
169
+ symbolWidth: 0
170
+ }),
171
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
172
+ dimension = _useState2[0],
173
+ setDimension = _useState2[1];
224
174
  var blockWidth = (0, _useResizeObserver.useResizeObserver)(resizeElement, containerRect).width;
225
175
  (0, _react.useLayoutEffect)(function () {
226
176
  var _containerRef$current;
227
-
228
177
  var dateSpan = document.createElement('temporary-block');
229
178
  dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
230
179
  dateSpan.innerHTML = 'a';
231
180
  document.body.appendChild(dateSpan);
232
181
  var rect = dateSpan.getBoundingClientRect();
233
182
  setDimension({
234
- fontSize: window // @ts-ignore
183
+ fontSize: window
184
+ // @ts-ignore
235
185
  .getComputedStyle((_containerRef$current = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) !== null && _containerRef$current !== void 0 ? _containerRef$current : resizeElement.current, null).getPropertyValue('font-size'),
236
186
  symbolWidth: rect.width
237
187
  });
@@ -243,10 +193,8 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
243
193
  var displayedSymbols = (0, _react.useMemo)(function () {
244
194
  return Math.round(blockWidth / dimension.symbolWidth);
245
195
  }, [blockWidth, dimension.symbolWidth]);
246
-
247
196
  if (tooltip) {
248
197
  var _ref4;
249
-
250
198
  return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref4.cn("SContainerMiddle", (0, _objectSpread2["default"])({
251
199
  "interaction": text.length > displayedSymbols ? 'hover' : 'none',
252
200
  "title": text,
@@ -255,13 +203,11 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
255
203
  }, tooltipProps)), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref4.cn("SBeginning", {}), text.substring(0, text.length - displayedSymbols / 2 - 1)), /*#__PURE__*/_react["default"].createElement(STail, _ref4.cn("STail", {}), text.substring(text.length - displayedSymbols / 2 - 1)));
256
204
  } else {
257
205
  var _ref5;
258
-
259
206
  return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", {
260
207
  "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
261
208
  }), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref5.cn("SBeginning", {}), text.substring(0, text.length - displayedSymbols / 2 - 1)), /*#__PURE__*/_react["default"].createElement(STail, _ref5.cn("STail", {}), text.substring(text.length - displayedSymbols / 2 - 1)));
262
209
  }
263
210
  };
264
-
265
211
  var Ellipsis = (0, _core["default"])(RootEllipsis);
266
212
  var _default = Ellipsis;
267
213
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","style","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","innerHTML","isTextOverflowing","multiline","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","whiteSpace","removeChild","RootEllipsis","visible","React","createRef","setState","showTooltip","asProps","maxLine","textRef","current","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","styles","Children","tooltip","trim","containerRect","containerRef","includeTooltipProps","state","text","reactToText","getOriginChildren","tooltipProps","pick","sstyled","handlerVisibleChange","Component","EllipsisMiddle","props","resizeElement","useRef","useState","symbolWidth","dimension","setDimension","blockWidth","useResizeObserver","useLayoutEffect","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","displayedSymbols","useMemo","Math","round","length","substring","Ellipsis","createComponent"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject, useRef, useMemo, useState, useLayoutEffect } from 'react';\nimport createComponent, { Component, sstyled } from '@semcore/core';\nimport Tooltip from '@semcore/tooltip';\nimport { Box } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n includeTooltipProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n tooltipProps: { [propName: string]: unknown };\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];\n\nconst createMeasurerElement = (element: HTMLElement) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\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\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLElement | null, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize, initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\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 };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLElement>();\n\n showTooltip() {\n const { maxLine = 1 } = this.asProps;\n return isTextOverflowing(this.textRef.current, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\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 } = this.asProps;\n const { visible } = this.state;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps);\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 tooltipProps={tooltipProps}\n />,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction=\"hover\"\n title={text}\n visible={visible}\n onVisibleChange={this.handlerVisibleChange}\n {...tooltipProps}\n >\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const { styles, text, tooltip, containerRect, containerRef, tooltipProps } = props;\n const resizeElement = useRef<HTMLElement | null>(null);\n const [dimension, setDimension] = useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useLayoutEffect(() => {\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\n // @ts-ignore\n .getComputedStyle(containerRef?.current ?? resizeElement.current, null)\n .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 = Box;\n const displayedSymbols = useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={text.length > displayedSymbols ? 'hover' : 'none'}\n title={text}\n ref={containerRef ?? resizeElement}\n tag={Tooltip}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n } else {\n return sstyled(styles)(\n <SContainerMiddle ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n};\n\nconst Ellipsis = createComponent(RootEllipsis);\n\nexport default Ellipsis;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_tooltip","_interopRequireDefault","_flexBox","_useResizeObserver","_reactToText","_getOriginChildren","_pick","style","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","concat","whiteSpace","removeChild","RootEllipsis","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","_defineProperty2","_assertThisInitialized2","visible","React","createRef","setState","showTooltip","_createClass2","key","value","_this$asProps$maxLine","asProps","maxLine","textRef","current","render","_ref3","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps","styles","Children","tooltip","trim","containerRect","containerRef","includeTooltipProps","state","text","reactToText","getOriginChildren","tooltipProps","pick","_ref","EllipsisMiddle","cn","_ref2","_objectSpread2","handlerVisibleChange","Component","props","resizeElement","useRef","_useState","useState","symbolWidth","_useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useLayoutEffect","_containerRef$current","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","displayedSymbols","useMemo","Math","round","_ref4","substring","_ref5","Ellipsis","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject, useRef, useMemo, useState, useLayoutEffect } from 'react';\nimport createComponent, { Component, sstyled } from '@semcore/core';\nimport Tooltip from '@semcore/tooltip';\nimport { Box } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n includeTooltipProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n tooltipProps: { [propName: string]: unknown };\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];\n\nconst createMeasurerElement = (element: HTMLElement) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\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\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLElement | null, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize, initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\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 };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLElement>();\n\n showTooltip() {\n const { maxLine = 1 } = this.asProps;\n return isTextOverflowing(this.textRef.current, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\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 } = this.asProps;\n const { visible } = this.state;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps);\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 tooltipProps={tooltipProps}\n />,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction=\"hover\"\n title={text}\n visible={visible}\n onVisibleChange={this.handlerVisibleChange}\n {...tooltipProps}\n >\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const { styles, text, tooltip, containerRect, containerRef, tooltipProps } = props;\n const resizeElement = useRef<HTMLElement | null>(null);\n const [dimension, setDimension] = useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useLayoutEffect(() => {\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\n // @ts-ignore\n .getComputedStyle(containerRef?.current ?? resizeElement.current, null)\n .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 = Box;\n const displayedSymbols = useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={text.length > displayedSymbols ? 'hover' : 'none'}\n title={text}\n ref={containerRef ?? resizeElement}\n tag={Tooltip}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n } else {\n return sstyled(styles)(\n <SContainerMiddle ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n};\n\nconst Ellipsis = createComponent(RootEllipsis);\n\nexport default Ellipsis;\n"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -17,8 +16,6 @@ Object.defineProperty(exports, "useResizeObserver", {
17
16
  return _useResizeObserver.useResizeObserver;
18
17
  }
19
18
  });
20
-
21
19
  var _Ellipsis = _interopRequireDefault(require("./Ellipsis"));
22
-
23
20
  var _useResizeObserver = require("./useResizeObserver");
24
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA"}
1
+ {"version":3,"file":"index.js","names":["_Ellipsis","_interopRequireDefault","require","_useResizeObserver"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA"}
@@ -1,24 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useResizeObserver = void 0;
9
-
10
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
-
12
9
  var _react = require("react");
13
-
14
10
  var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/useEnhancedEffect"));
15
-
16
11
  var useResizeObserver = function useResizeObserver(ref, hookOverride) {
17
12
  var _useState = (0, _react.useState)(0),
18
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
19
- width = _useState2[0],
20
- setWidth = _useState2[1];
21
-
13
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
14
+ width = _useState2[0],
15
+ setWidth = _useState2[1];
22
16
  var handleResize = (0, _react.useCallback)(function (entries) {
23
17
  setWidth(entries[0].contentRect.width);
24
18
  }, []);
@@ -26,11 +20,9 @@ var useResizeObserver = function useResizeObserver(ref, hookOverride) {
26
20
  if (!ref.current) {
27
21
  return;
28
22
  }
29
-
30
23
  if (hookOverride) {
31
24
  return;
32
25
  }
33
-
34
26
  var ro = new ResizeObserver(function (entries) {
35
27
  handleResize(entries);
36
28
  });
@@ -39,15 +31,12 @@ var useResizeObserver = function useResizeObserver(ref, hookOverride) {
39
31
  ro.disconnect();
40
32
  };
41
33
  }, [hookOverride]);
42
-
43
34
  if (hookOverride) {
44
35
  return hookOverride;
45
36
  }
46
-
47
37
  return {
48
38
  width: width
49
39
  };
50
40
  };
51
-
52
41
  exports.useResizeObserver = useResizeObserver;
53
42
  //# sourceMappingURL=useResizeObserver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":["useResizeObserver","ref","hookOverride","useState","width","setWidth","handleResize","useCallback","entries","contentRect","useEnhancedEffect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,GAD+B,EAE/BC,YAF+B,EAG5B;EACH,gBAA0B,IAAAC,eAAA,EAAiB,CAAjB,CAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAMC,YAAY,GAAG,IAAAC,kBAAA,EAAY,UAACC,OAAD,EAAoC;IACnEH,QAAQ,CAACG,OAAO,CAAC,CAAD,CAAP,CAAWC,WAAX,CAAuBL,KAAxB,CAAR;EACD,CAFoB,EAElB,EAFkB,CAArB;EAIA,IAAAM,6BAAA,EAAkB,YAAM;IACtB,IAAI,CAACT,GAAG,CAACU,OAAT,EAAkB;MAChB;IACD;;IAED,IAAIT,YAAJ,EAAkB;MAChB;IACD;;IAED,IAAMU,EAAE,GAAG,IAAIC,cAAJ,CAAmB,UAACL,OAAD,EAAoC;MAChEF,YAAY,CAACE,OAAD,CAAZ;IACD,CAFU,CAAX;IAIAI,EAAE,CAACE,OAAH,CAAWb,GAAG,CAACU,OAAf;IAEA,OAAO,YAAM;MACXC,EAAE,CAACG,UAAH;IACD,CAFD;EAGD,CAlBD,EAkBG,CAACb,YAAD,CAlBH;;EAoBA,IAAIA,YAAJ,EAAkB;IAChB,OAAOA,YAAP;EACD;;EACD,OAAO;IAAEE,KAAK,EAALA;EAAF,CAAP;AACD,CAlCM"}
1
+ {"version":3,"file":"useResizeObserver.js","names":["_react","require","_useEnhancedEffect","_interopRequireDefault","useResizeObserver","ref","hookOverride","_useState","useState","_useState2","_slicedToArray2","width","setWidth","handleResize","useCallback","entries","contentRect","useEnhancedEffect","current","ro","ResizeObserver","observe","disconnect","exports"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAAS,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAtCI,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAMI,YAAY,GAAG,IAAAC,kBAAW,EAAC,UAACC,OAA8B,EAAK;IACnEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAM,6BAAiB,EAAC,YAAM;IACtB,IAAI,CAACZ,GAAG,CAACa,OAAO,EAAE;MAChB;IACF;IAEA,IAAIZ,YAAY,EAAE;MAChB;IACF;IAEA,IAAMa,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACL,OAA8B,EAAK;MAChEF,YAAY,CAACE,OAAO,CAAC;IACvB,CAAC,CAAC;IAEFI,EAAE,CAACE,OAAO,CAAChB,GAAG,CAACa,OAAO,CAAC;IAEvB,OAAO,YAAM;MACXC,EAAE,CAACG,UAAU,EAAE;IACjB,CAAC;EACH,CAAC,EAAE,CAAChB,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEK,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC;AAACY,OAAA,CAAAnB,iBAAA,GAAAA,iBAAA"}
@@ -12,31 +12,21 @@ import createComponent, { Component, sstyled } from '@semcore/core';
12
12
  import Tooltip from '@semcore/tooltip';
13
13
  import { Box } from '@semcore/flex-box';
14
14
  import { useResizeObserver } from './useResizeObserver';
15
-
16
15
  /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
17
- var style = (
18
- /*__reshadow_css_start__*/
19
- _sstyled.insert(
20
- /*__inner_css_start__*/
21
- ".___SContainerMiddle_abdtp_gg_,.___SContainer_abdtp_gg_,.___SNoTooltipContainer_abdtp_gg_{display:flex;overflow:hidden}.___SBeginning_abdtp_gg_,.___SEllipsis_abdtp_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_abdtp_gg_.__maxLine_abdtp_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_abdtp);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_abdtp_gg_{white-space:nowrap}"
22
- /*__inner_css_end__*/
23
- , "abdtp_gg_")
24
- /*__reshadow_css_end__*/
25
- , {
26
- "__SContainer": "___SContainer_abdtp_gg_",
27
- "__SNoTooltipContainer": "___SNoTooltipContainer_abdtp_gg_",
28
- "__SContainerMiddle": "___SContainerMiddle_abdtp_gg_",
29
- "__SBeginning": "___SBeginning_abdtp_gg_",
30
- "__SEllipsis": "___SEllipsis_abdtp_gg_",
31
- "_maxLine": "__maxLine_abdtp_gg_",
32
- "--maxLine": "--maxLine_abdtp",
33
- "__STail": "___STail_abdtp_gg_"
16
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_1wxcn_gg_,.___SContainer_1wxcn_gg_,.___SNoTooltipContainer_1wxcn_gg_{display:flex;overflow:hidden}.___SBeginning_1wxcn_gg_,.___SEllipsis_1wxcn_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_1wxcn_gg_.__maxLine_1wxcn_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1wxcn);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_1wxcn_gg_{white-space:nowrap}" /*__inner_css_end__*/, "1wxcn_gg_") /*__reshadow_css_end__*/, {
17
+ "__SContainer": "___SContainer_1wxcn_gg_",
18
+ "__SNoTooltipContainer": "___SNoTooltipContainer_1wxcn_gg_",
19
+ "__SContainerMiddle": "___SContainerMiddle_1wxcn_gg_",
20
+ "__SBeginning": "___SBeginning_1wxcn_gg_",
21
+ "__SEllipsis": "___SEllipsis_1wxcn_gg_",
22
+ "_maxLine": "__maxLine_1wxcn_gg_",
23
+ "--maxLine": "--maxLine_1wxcn",
24
+ "__STail": "___STail_1wxcn_gg_"
34
25
  });
35
26
  import reactToText from '@semcore/utils/lib/reactToText';
36
27
  import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
37
28
  import pick from '@semcore/utils/lib/pick';
38
29
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate'];
39
-
40
30
  var createMeasurerElement = function createMeasurerElement(element) {
41
31
  var styleElement = window.getComputedStyle(element, null);
42
32
  var temporaryElement = document.createElement('temporary-block');
@@ -52,18 +42,14 @@ var createMeasurerElement = function createMeasurerElement(element) {
52
42
  temporaryElement.innerHTML = element.innerHTML;
53
43
  return temporaryElement;
54
44
  };
55
-
56
45
  function isTextOverflowing(element, multiline) {
57
46
  if (!element) return false;
58
-
59
47
  var _element$getBoundingC = element.getBoundingClientRect(),
60
- currentHeight = _element$getBoundingC.height,
61
- currentWidth = _element$getBoundingC.width;
62
-
48
+ currentHeight = _element$getBoundingC.height,
49
+ currentWidth = _element$getBoundingC.width;
63
50
  var measuringElement = createMeasurerElement(element);
64
51
  var currentSize, initialSize;
65
52
  document.body.appendChild(measuringElement);
66
-
67
53
  if (multiline) {
68
54
  currentSize = currentHeight;
69
55
  measuringElement.style.width = "".concat(currentWidth, "px");
@@ -73,73 +59,58 @@ function isTextOverflowing(element, multiline) {
73
59
  measuringElement.style.whiteSpace = 'nowrap';
74
60
  initialSize = measuringElement.getBoundingClientRect().width;
75
61
  }
76
-
77
62
  document.body.removeChild(measuringElement);
78
63
  return currentSize < initialSize;
79
64
  }
80
-
81
65
  var RootEllipsis = /*#__PURE__*/function (_Component) {
82
66
  _inherits(RootEllipsis, _Component);
83
-
84
67
  var _super = _createSuper(RootEllipsis);
85
-
86
68
  function RootEllipsis() {
87
69
  var _this;
88
-
89
70
  _classCallCheck(this, RootEllipsis);
90
-
91
71
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
92
72
  args[_key] = arguments[_key];
93
73
  }
94
-
95
74
  _this = _super.call.apply(_super, [this].concat(args));
96
-
97
75
  _defineProperty(_assertThisInitialized(_this), "state", {
98
76
  visible: false
99
77
  });
100
-
101
78
  _defineProperty(_assertThisInitialized(_this), "textRef", /*#__PURE__*/React.createRef());
102
-
103
79
  _defineProperty(_assertThisInitialized(_this), "handlerVisibleChange", function (visible) {
104
80
  _this.setState({
105
81
  visible: visible && _this.showTooltip()
106
82
  });
107
83
  });
108
-
109
84
  return _this;
110
85
  }
111
-
112
86
  _createClass(RootEllipsis, [{
113
87
  key: "showTooltip",
114
88
  value: function showTooltip() {
115
89
  var _this$asProps$maxLine = this.asProps.maxLine,
116
- maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine;
90
+ maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine;
117
91
  return isTextOverflowing(this.textRef.current, maxLine > 1);
118
92
  }
119
93
  }, {
120
94
  key: "render",
121
95
  value: function render() {
122
96
  var _ref3;
123
-
124
97
  var SEllipsis = this.Root;
125
98
  var SContainer = Tooltip;
126
99
  var SNoTooltipContainer = Box;
127
100
  var _this$asProps = this.asProps,
128
- styles = _this$asProps.styles,
129
- Children = _this$asProps.Children,
130
- maxLine = _this$asProps.maxLine,
131
- tooltip = _this$asProps.tooltip,
132
- trim = _this$asProps.trim,
133
- containerRect = _this$asProps.containerRect,
134
- containerRef = _this$asProps.containerRef,
135
- includeTooltipProps = _this$asProps.includeTooltipProps;
101
+ styles = _this$asProps.styles,
102
+ Children = _this$asProps.Children,
103
+ maxLine = _this$asProps.maxLine,
104
+ tooltip = _this$asProps.tooltip,
105
+ trim = _this$asProps.trim,
106
+ containerRect = _this$asProps.containerRect,
107
+ containerRef = _this$asProps.containerRef,
108
+ includeTooltipProps = _this$asProps.includeTooltipProps;
136
109
  var visible = this.state.visible;
137
110
  var text = reactToText(getOriginChildren(Children));
138
111
  var tooltipProps = pick(this.asProps, includeTooltipProps);
139
-
140
112
  if (trim === 'middle') {
141
113
  var _ref;
142
-
143
114
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(EllipsisMiddle, _ref.cn("EllipsisMiddle", {
144
115
  "text": text,
145
116
  "styles": styles,
@@ -149,10 +120,8 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
149
120
  "tooltipProps": tooltipProps
150
121
  }));
151
122
  }
152
-
153
123
  if (tooltip) {
154
124
  var _ref2;
155
-
156
125
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref2.cn("SContainer", _objectSpread({
157
126
  "interaction": "hover",
158
127
  "title": text,
@@ -164,7 +133,6 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
164
133
  "maxLine": maxLine
165
134
  }), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {}))));
166
135
  }
167
-
168
136
  return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SNoTooltipContainer, _ref3.cn("SNoTooltipContainer", {}), /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", {
169
137
  "render": Box,
170
138
  "ref": this.textRef,
@@ -172,48 +140,41 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
172
140
  }), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
173
141
  }
174
142
  }]);
175
-
176
143
  return RootEllipsis;
177
144
  }(Component);
178
-
179
145
  _defineProperty(RootEllipsis, "displayName", 'Ellipsis');
180
-
181
146
  _defineProperty(RootEllipsis, "style", style);
182
-
183
147
  _defineProperty(RootEllipsis, "defaultProps", {
184
148
  trim: 'end',
185
149
  tooltip: true,
186
150
  includeTooltipProps: defaultTooltipProps
187
151
  });
188
-
189
152
  var EllipsisMiddle = function EllipsisMiddle(props) {
190
153
  var styles = props.styles,
191
- text = props.text,
192
- tooltip = props.tooltip,
193
- containerRect = props.containerRect,
194
- containerRef = props.containerRef,
195
- tooltipProps = props.tooltipProps;
154
+ text = props.text,
155
+ tooltip = props.tooltip,
156
+ containerRect = props.containerRect,
157
+ containerRef = props.containerRef,
158
+ tooltipProps = props.tooltipProps;
196
159
  var resizeElement = useRef(null);
197
-
198
160
  var _useState = useState({
199
- fontSize: '14',
200
- symbolWidth: 0
201
- }),
202
- _useState2 = _slicedToArray(_useState, 2),
203
- dimension = _useState2[0],
204
- setDimension = _useState2[1];
205
-
161
+ fontSize: '14',
162
+ symbolWidth: 0
163
+ }),
164
+ _useState2 = _slicedToArray(_useState, 2),
165
+ dimension = _useState2[0],
166
+ setDimension = _useState2[1];
206
167
  var blockWidth = useResizeObserver(resizeElement, containerRect).width;
207
168
  useLayoutEffect(function () {
208
169
  var _containerRef$current;
209
-
210
170
  var dateSpan = document.createElement('temporary-block');
211
171
  dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
212
172
  dateSpan.innerHTML = 'a';
213
173
  document.body.appendChild(dateSpan);
214
174
  var rect = dateSpan.getBoundingClientRect();
215
175
  setDimension({
216
- fontSize: window // @ts-ignore
176
+ fontSize: window
177
+ // @ts-ignore
217
178
  .getComputedStyle((_containerRef$current = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) !== null && _containerRef$current !== void 0 ? _containerRef$current : resizeElement.current, null).getPropertyValue('font-size'),
218
179
  symbolWidth: rect.width
219
180
  });
@@ -225,10 +186,8 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
225
186
  var displayedSymbols = useMemo(function () {
226
187
  return Math.round(blockWidth / dimension.symbolWidth);
227
188
  }, [blockWidth, dimension.symbolWidth]);
228
-
229
189
  if (tooltip) {
230
190
  var _ref4;
231
-
232
191
  return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref4.cn("SContainerMiddle", _objectSpread({
233
192
  "interaction": text.length > displayedSymbols ? 'hover' : 'none',
234
193
  "title": text,
@@ -237,13 +196,11 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
237
196
  }, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref4.cn("SBeginning", {}), text.substring(0, text.length - displayedSymbols / 2 - 1)), /*#__PURE__*/React.createElement(STail, _ref4.cn("STail", {}), text.substring(text.length - displayedSymbols / 2 - 1)));
238
197
  } else {
239
198
  var _ref5;
240
-
241
199
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", {
242
200
  "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
243
201
  }), /*#__PURE__*/React.createElement(SBeginning, _ref5.cn("SBeginning", {}), text.substring(0, text.length - displayedSymbols / 2 - 1)), /*#__PURE__*/React.createElement(STail, _ref5.cn("STail", {}), text.substring(text.length - displayedSymbols / 2 - 1)));
244
202
  }
245
203
  };
246
-
247
204
  var Ellipsis = createComponent(RootEllipsis);
248
205
  export default Ellipsis;
249
206
  //# sourceMappingURL=Ellipsis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["React","useRef","useMemo","useState","useLayoutEffect","createComponent","Component","sstyled","Tooltip","Box","useResizeObserver","reactToText","getOriginChildren","pick","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","style","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","innerHTML","isTextOverflowing","multiline","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","whiteSpace","removeChild","RootEllipsis","visible","createRef","setState","showTooltip","asProps","maxLine","textRef","current","SEllipsis","Root","SContainer","SNoTooltipContainer","styles","Children","tooltip","trim","containerRect","containerRef","includeTooltipProps","state","text","tooltipProps","handlerVisibleChange","EllipsisMiddle","props","resizeElement","symbolWidth","dimension","setDimension","blockWidth","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","displayedSymbols","Math","round","length","substring","Ellipsis"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject, useRef, useMemo, useState, useLayoutEffect } from 'react';\nimport createComponent, { Component, sstyled } from '@semcore/core';\nimport Tooltip from '@semcore/tooltip';\nimport { Box } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n includeTooltipProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n tooltipProps: { [propName: string]: unknown };\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];\n\nconst createMeasurerElement = (element: HTMLElement) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\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\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLElement | null, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize, initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\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 };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLElement>();\n\n showTooltip() {\n const { maxLine = 1 } = this.asProps;\n return isTextOverflowing(this.textRef.current, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\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 } = this.asProps;\n const { visible } = this.state;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps);\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 tooltipProps={tooltipProps}\n />,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction=\"hover\"\n title={text}\n visible={visible}\n onVisibleChange={this.handlerVisibleChange}\n {...tooltipProps}\n >\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const { styles, text, tooltip, containerRect, containerRef, tooltipProps } = props;\n const resizeElement = useRef<HTMLElement | null>(null);\n const [dimension, setDimension] = useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useLayoutEffect(() => {\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\n // @ts-ignore\n .getComputedStyle(containerRef?.current ?? resizeElement.current, null)\n .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 = Box;\n const displayedSymbols = useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={text.length > displayedSymbols ? 'hover' : 'none'}\n title={text}\n ref={containerRef ?? resizeElement}\n tag={Tooltip}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n } else {\n return sstyled(styles)(\n <SContainerMiddle ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n};\n\nconst Ellipsis = createComponent(RootEllipsis);\n\nexport default Ellipsis;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Ellipsis.js","names":["React","useRef","useMemo","useState","useLayoutEffect","createComponent","Component","sstyled","Tooltip","Box","useResizeObserver","style","_sstyled","insert","reactToText","getOriginChildren","pick","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","concat","whiteSpace","removeChild","RootEllipsis","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","visible","createRef","setState","showTooltip","_createClass","key","value","_this$asProps$maxLine","asProps","maxLine","textRef","current","render","_ref3","SEllipsis","Root","SContainer","SNoTooltipContainer","_this$asProps","styles","Children","tooltip","trim","containerRect","containerRef","includeTooltipProps","state","text","tooltipProps","_ref","EllipsisMiddle","cn","_ref2","_objectSpread","handlerVisibleChange","props","resizeElement","_useState","symbolWidth","_useState2","_slicedToArray","dimension","setDimension","blockWidth","_containerRef$current","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","displayedSymbols","Math","round","_ref4","substring","_ref5","Ellipsis"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject, useRef, useMemo, useState, useLayoutEffect } from 'react';\nimport createComponent, { Component, sstyled } from '@semcore/core';\nimport Tooltip from '@semcore/tooltip';\nimport { Box } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n includeTooltipProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLElement | null>;\n tooltipProps: { [propName: string]: unknown };\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];\n\nconst createMeasurerElement = (element: HTMLElement) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\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\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLElement | null, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize, initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\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 };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLElement>();\n\n showTooltip() {\n const { maxLine = 1 } = this.asProps;\n return isTextOverflowing(this.textRef.current, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\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 } = this.asProps;\n const { visible } = this.state;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps);\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 tooltipProps={tooltipProps}\n />,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction=\"hover\"\n title={text}\n visible={visible}\n onVisibleChange={this.handlerVisibleChange}\n {...tooltipProps}\n >\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine}>\n <Children />\n </SEllipsis>\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const { styles, text, tooltip, containerRect, containerRef, tooltipProps } = props;\n const resizeElement = useRef<HTMLElement | null>(null);\n const [dimension, setDimension] = useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useLayoutEffect(() => {\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\n // @ts-ignore\n .getComputedStyle(containerRef?.current ?? resizeElement.current, null)\n .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 = Box;\n const displayedSymbols = useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={text.length > displayedSymbols ? 'hover' : 'none'}\n title={text}\n ref={containerRef ?? resizeElement}\n tag={Tooltip}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n } else {\n return sstyled(styles)(\n <SContainerMiddle ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n};\n\nconst Ellipsis = createComponent(RootEllipsis);\n\nexport default Ellipsis;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","useResizeObserver"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB;AACA,SAASC,iBAAT,QAAkC,qBAAlC"}
1
+ {"version":3,"file":"index.js","names":["default","useResizeObserver"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,SAASC,iBAAiB,QAAQ,qBAAqB"}
@@ -3,10 +3,9 @@ import { useCallback, useState } from 'react';
3
3
  import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
4
4
  export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
5
5
  var _useState = useState(0),
6
- _useState2 = _slicedToArray(_useState, 2),
7
- width = _useState2[0],
8
- setWidth = _useState2[1];
9
-
6
+ _useState2 = _slicedToArray(_useState, 2),
7
+ width = _useState2[0],
8
+ setWidth = _useState2[1];
10
9
  var handleResize = useCallback(function (entries) {
11
10
  setWidth(entries[0].contentRect.width);
12
11
  }, []);
@@ -14,11 +13,9 @@ export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
14
13
  if (!ref.current) {
15
14
  return;
16
15
  }
17
-
18
16
  if (hookOverride) {
19
17
  return;
20
18
  }
21
-
22
19
  var ro = new ResizeObserver(function (entries) {
23
20
  handleResize(entries);
24
21
  });
@@ -27,11 +24,9 @@ export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
27
24
  ro.disconnect();
28
25
  };
29
26
  }, [hookOverride]);
30
-
31
27
  if (hookOverride) {
32
28
  return hookOverride;
33
29
  }
34
-
35
30
  return {
36
31
  width: width
37
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":["useCallback","useState","useEnhancedEffect","useResizeObserver","ref","hookOverride","width","setWidth","handleResize","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";AAAA,SAAoBA,WAApB,EAAiCC,QAAjC,QAAiD,OAAjD;AACA,OAAOC,iBAAP,MAA8B,0CAA9B;AAEA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAC/BC,GAD+B,EAE/BC,YAF+B,EAG5B;EACH,gBAA0BJ,QAAQ,CAAS,CAAT,CAAlC;EAAA;EAAA,IAAOK,KAAP;EAAA,IAAcC,QAAd;;EAEA,IAAMC,YAAY,GAAGR,WAAW,CAAC,UAACS,OAAD,EAAoC;IACnEF,QAAQ,CAACE,OAAO,CAAC,CAAD,CAAP,CAAWC,WAAX,CAAuBJ,KAAxB,CAAR;EACD,CAF+B,EAE7B,EAF6B,CAAhC;EAIAJ,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACE,GAAG,CAACO,OAAT,EAAkB;MAChB;IACD;;IAED,IAAIN,YAAJ,EAAkB;MAChB;IACD;;IAED,IAAMO,EAAE,GAAG,IAAIC,cAAJ,CAAmB,UAACJ,OAAD,EAAoC;MAChED,YAAY,CAACC,OAAD,CAAZ;IACD,CAFU,CAAX;IAIAG,EAAE,CAACE,OAAH,CAAWV,GAAG,CAACO,OAAf;IAEA,OAAO,YAAM;MACXC,EAAE,CAACG,UAAH;IACD,CAFD;EAGD,CAlBgB,EAkBd,CAACV,YAAD,CAlBc,CAAjB;;EAoBA,IAAIA,YAAJ,EAAkB;IAChB,OAAOA,YAAP;EACD;;EACD,OAAO;IAAEC,KAAK,EAALA;EAAF,CAAP;AACD,CAlCM"}
1
+ {"version":3,"file":"useResizeObserver.js","names":["useCallback","useState","useEnhancedEffect","useResizeObserver","ref","hookOverride","_useState","_useState2","_slicedToArray","width","setWidth","handleResize","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";AAAA,SAAoBA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACxD,OAAOC,iBAAiB,MAAM,0CAA0C;AAExE,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,SAAA,GAA0BL,QAAQ,CAAS,CAAC,CAAC;IAAAM,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAtCG,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAMI,YAAY,GAAGX,WAAW,CAAC,UAACY,OAA8B,EAAK;IACnEF,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACJ,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAENP,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACE,GAAG,CAACU,OAAO,EAAE;MAChB;IACF;IAEA,IAAIT,YAAY,EAAE;MAChB;IACF;IAEA,IAAMU,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACJ,OAA8B,EAAK;MAChED,YAAY,CAACC,OAAO,CAAC;IACvB,CAAC,CAAC;IAEFG,EAAE,CAACE,OAAO,CAACb,GAAG,CAACU,OAAO,CAAC;IAEvB,OAAO,YAAM;MACXC,EAAE,CAACG,UAAU,EAAE;IACjB,CAAC;EACH,CAAC,EAAE,CAACb,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEI,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/ellipsis",
3
3
  "description": "Semrush Ellipsis Component",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",