@semcore/ellipsis 2.40.0-prerelease.1 → 2.40.0-prerelease.5

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.
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isTextOverflowing = isTextOverflowing;
7
+ exports.setFontSettings = void 0;
8
+ var setFontSettings = exports.setFontSettings = function setFontSettings(element, styleElement) {
9
+ element.style.fontFamily = styleElement.getPropertyValue('font-family');
10
+ element.style.fontSize = styleElement.getPropertyValue('font-size');
11
+ element.style.fontWeight = styleElement.getPropertyValue('font-weight');
12
+ element.style.lineHeight = styleElement.getPropertyValue('line-height');
13
+ element.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
14
+ element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
15
+ };
16
+ function isTextOverflowing(element, multiline, text) {
17
+ if (!element) return false;
18
+ var _element$getBoundingC = element.getBoundingClientRect(),
19
+ currentHeight = _element$getBoundingC.height,
20
+ currentWidth = _element$getBoundingC.width;
21
+ var measuringElement = createMeasurerElement(element, text);
22
+ var isOverflowing = false;
23
+ document.body.appendChild(measuringElement);
24
+ if (multiline) {
25
+ measuringElement.style.width = "".concat(currentWidth, "px");
26
+ var width = measuringElement.scrollWidth;
27
+ var height = measuringElement.getBoundingClientRect().height;
28
+ if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
29
+ isOverflowing = true;
30
+ }
31
+ } else {
32
+ measuringElement.style.whiteSpace = 'nowrap';
33
+ isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
34
+ }
35
+ document.body.removeChild(measuringElement);
36
+ return isOverflowing;
37
+ }
38
+ function createMeasurerElement(element, text) {
39
+ var styleElement = window.getComputedStyle(element, null);
40
+ var temporaryElement = document.createElement('temporary-block');
41
+ temporaryElement.style.display = styleElement.getPropertyValue('display');
42
+ temporaryElement.style.padding = styleElement.getPropertyValue('padding');
43
+ temporaryElement.style.position = 'absolute';
44
+ temporaryElement.style.right = '0%';
45
+ temporaryElement.style.bottom = '0%';
46
+ temporaryElement.style.visibility = 'hidden';
47
+ temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
48
+ temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
49
+ setFontSettings(temporaryElement, styleElement);
50
+ temporaryElement.textContent = text !== null && text !== void 0 ? text : element.textContent;
51
+ return temporaryElement;
52
+ }
53
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["setFontSettings","exports","element","styleElement","style","fontFamily","getPropertyValue","fontSize","fontWeight","lineHeight","fontFeatureSettings","fontVariantNumeric","isTextOverflowing","multiline","text","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","createMeasurerElement","isOverflowing","document","body","appendChild","concat","scrollWidth","Math","ceil","whiteSpace","removeChild","window","getComputedStyle","temporaryElement","createElement","display","padding","position","right","bottom","visibility","wordWrap","textContent"],"sources":["../../src/utils.ts"],"sourcesContent":["export const 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\nexport function isTextOverflowing(element: HTMLElement | null, 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\nfunction createMeasurerElement(element: HTMLElement, text?: string) {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n setFontSettings(temporaryElement, styleElement);\n\n temporaryElement.textContent = text ?? element.textContent;\n return temporaryElement;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,110 +3,66 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
4
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
5
  import _createClass from "@babel/runtime/helpers/createClass";
6
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
6
+ import _callSuper from "@babel/runtime/helpers/callSuper";
7
7
  import _inherits from "@babel/runtime/helpers/inherits";
8
- import _createSuper from "@babel/runtime/helpers/createSuper";
9
8
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- import { sstyled as _sstyled } from "@semcore/utils/lib/core/index";
9
+ import { sstyled as _sstyled } from "@semcore/core";
11
10
  import { assignProps as _assignProps2 } from "@semcore/core";
12
11
  import { assignProps as _assignProps } from "@semcore/core";
13
- var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
14
- _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
15
- import React from 'react';
16
- import createComponent, { Component, Root, sstyled } from '@semcore/core';
12
+ var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"];
13
+ import { Box } from '@semcore/base-components';
14
+ import { createComponent, Component, Root, sstyled } from '@semcore/core';
15
+ import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
16
+ import findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';
17
+ import getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';
18
+ import pick from '@semcore/core/lib/utils/pick';
19
+ import reactToText from '@semcore/core/lib/utils/reactToText';
20
+ import { forkRef } from '@semcore/core/lib/utils/ref';
21
+ import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
17
22
  import Tooltip from '@semcore/tooltip';
18
- import { Box } from '@semcore/flex-box';
19
- import { useResizeObserver } from './useResizeObserver';
20
- import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
21
- import findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';
23
+ import React from 'react';
22
24
  /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
23
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_1xdmi_gg_,.___SContainer_1xdmi_gg_,.___SEllipsis_1xdmi_gg_.__middle-mod_1xdmi_gg_,.___SNoTooltipContainer_1xdmi_gg_{display:flex;overflow:hidden}.___SBeginning_1xdmi_gg_,.___SEllipsis_1xdmi_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1xdmi_gg_.__maxLine_1xdmi_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1xdmi);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1xdmi_gg_>:has(.___SBeginning_1xdmi_gg_),.___SContainerMiddle_1xdmi_gg_>:has(.___STail_1xdmi_gg_){display:flex;width:100%}.___STail_1xdmi_gg_{white-space:pre}", /*__inner_css_end__*/"1xdmi_gg_"),
25
+ var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SBeginning_hyasj_gg_,.___SEllipsis_hyasj_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_hyasj_gg_.__maxLine_hyasj_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_hyasj);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_hyasj_gg_,.___SContainer_hyasj_gg_,.___SEllipsis_hyasj_gg_.__middle-mod_hyasj_gg_,.___SNoTooltipContainer_hyasj_gg_{display:flex;overflow:hidden}.___SContainerMiddle_hyasj_gg_>:has(.___SBeginning_hyasj_gg_),.___SContainerMiddle_hyasj_gg_>:has(.___STail_hyasj_gg_){display:flex;width:100%}.___STail_hyasj_gg_{white-space:pre}", /*__inner_css_end__*/"hyasj_gg_"),
24
26
  /*__reshadow_css_end__*/
25
27
  {
26
- "__SContainer": "___SContainer_1xdmi_gg_",
27
- "__SNoTooltipContainer": "___SNoTooltipContainer_1xdmi_gg_",
28
- "__SContainerMiddle": "___SContainerMiddle_1xdmi_gg_",
29
- "__SBeginning": "___SBeginning_1xdmi_gg_",
30
- "__SEllipsis": "___SEllipsis_1xdmi_gg_",
31
- "_middle-mod": "__middle-mod_1xdmi_gg_",
32
- "_maxLine": "__maxLine_1xdmi_gg_",
33
- "--maxLine": "--maxLine_1xdmi",
34
- "__STail": "___STail_1xdmi_gg_"
28
+ "__SBeginning": "___SBeginning_hyasj_gg_",
29
+ "__SEllipsis": "___SEllipsis_hyasj_gg_",
30
+ "__SContainer": "___SContainer_hyasj_gg_",
31
+ "__SNoTooltipContainer": "___SNoTooltipContainer_hyasj_gg_",
32
+ "__SContainerMiddle": "___SContainerMiddle_hyasj_gg_",
33
+ "_maxLine": "__maxLine_hyasj_gg_",
34
+ "--maxLine": "--maxLine_hyasj",
35
+ "_middle-mod": "__middle-mod_hyasj_gg_",
36
+ "__STail": "___STail_hyasj_gg_"
35
37
  });
36
- import reactToText from '@semcore/utils/lib/reactToText';
37
- import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
38
- import pick from '@semcore/utils/lib/pick';
39
- import { forkRef } from '@semcore/utils/lib/ref';
40
- import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
38
+ import { useResizeObserver } from './useResizeObserver';
39
+ import { isTextOverflowing, setFontSettings } from './utils';
41
40
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
42
- var createMeasurerElement = function createMeasurerElement(element, text) {
43
- var styleElement = window.getComputedStyle(element, null);
44
- var temporaryElement = document.createElement('temporary-block');
45
- temporaryElement.style.display = styleElement.getPropertyValue('display');
46
- temporaryElement.style.padding = styleElement.getPropertyValue('padding');
47
- temporaryElement.style.position = 'absolute';
48
- temporaryElement.style.right = '0%';
49
- temporaryElement.style.bottom = '0%';
50
- temporaryElement.style.visibility = 'hidden';
51
- temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
52
- temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
53
- temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
54
- temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
55
- temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
56
- temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
57
- temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
58
- temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
59
- temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
60
- return temporaryElement;
61
- };
62
- function isTextOverflowing(element, multiline, text) {
63
- if (!element) return false;
64
- var _element$getBoundingC = element.getBoundingClientRect(),
65
- currentHeight = _element$getBoundingC.height,
66
- currentWidth = _element$getBoundingC.width;
67
- var measuringElement = createMeasurerElement(element, text);
68
- var isOverflowing = false;
69
- document.body.appendChild(measuringElement);
70
- if (multiline) {
71
- measuringElement.style.width = "".concat(currentWidth, "px");
72
- var width = measuringElement.scrollWidth;
73
- var height = measuringElement.getBoundingClientRect().height;
74
- if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
75
- isOverflowing = true;
76
- }
77
- } else {
78
- measuringElement.style.whiteSpace = 'nowrap';
79
- isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
80
- }
81
- document.body.removeChild(measuringElement);
82
- return isOverflowing;
83
- }
84
41
  var forcedAdvancedMode = {
85
42
  forcedAdvancedMode: true
86
43
  };
87
44
  var noAdvancedMode = {};
88
45
  var RootEllipsis = /*#__PURE__*/function (_Component) {
89
- _inherits(RootEllipsis, _Component);
90
- var _super = _createSuper(RootEllipsis);
91
46
  function RootEllipsis() {
92
47
  var _this;
93
48
  _classCallCheck(this, RootEllipsis);
94
49
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
95
50
  args[_key] = arguments[_key];
96
51
  }
97
- _this = _super.call.apply(_super, [this].concat(args));
98
- _defineProperty(_assertThisInitialized(_this), "state", {
52
+ _this = _callSuper(this, RootEllipsis, [].concat(args));
53
+ _defineProperty(_this, "state", {
99
54
  visible: false
100
55
  });
101
- _defineProperty(_assertThisInitialized(_this), "textRef", /*#__PURE__*/React.createRef());
102
- _defineProperty(_assertThisInitialized(_this), "handlerVisibleChange", function (visible) {
56
+ _defineProperty(_this, "textRef", /*#__PURE__*/React.createRef());
57
+ _defineProperty(_this, "handlerVisibleChange", function (visible) {
103
58
  _this.setState({
104
59
  visible: visible && _this.showTooltip()
105
60
  });
106
61
  });
107
62
  return _this;
108
63
  }
109
- _createClass(RootEllipsis, [{
64
+ _inherits(RootEllipsis, _Component);
65
+ return _createClass(RootEllipsis, [{
110
66
  key: "showTooltip",
111
67
  value: function showTooltip() {
112
68
  var _this$asProps = this.asProps,
@@ -139,10 +95,9 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
139
95
  }, {
140
96
  key: "render",
141
97
  value: function render() {
142
- var _ref4, _tooltipProps$visible;
98
+ var _ref3, _tooltipProps$visible;
143
99
  var SEllipsis = this.Root;
144
100
  var SContainer = Tooltip;
145
- var SNoTooltipContainer = Box;
146
101
  var _this$asProps3 = this.asProps,
147
102
  styles = _this$asProps3.styles,
148
103
  Children = _this$asProps3.Children,
@@ -152,7 +107,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
152
107
  containerRect = _this$asProps3.containerRect,
153
108
  containerRef = _this$asProps3.containerRef,
154
109
  includeTooltipProps = _this$asProps3.includeTooltipProps,
155
- children = _this$asProps3.children,
110
+ _children = _this$asProps3.children,
156
111
  other = _objectWithoutProperties(_this$asProps3, _excluded);
157
112
  var visible = this.state.visible;
158
113
  var advancedContent = findComponent(Children, [Ellipsis.Content.displayName]);
@@ -174,25 +129,16 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
174
129
  "advanceMode": advanceMode
175
130
  }, other)), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
176
131
  }
177
- if (tooltip) {
178
- var _ref3;
179
- return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
180
- "interaction": 'hover',
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({
183
- "render": Box,
184
- "ref": this.textRef,
185
- "maxLine": maxLine
186
- }, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
187
- }
188
- 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({
132
+ return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
133
+ "interaction": tooltip ? 'hover' : 'none',
134
+ "title": !advanceMode ? text : undefined
135
+ }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
189
136
  "render": Box,
190
137
  "ref": this.textRef,
191
138
  "maxLine": maxLine
192
- }, other)), /*#__PURE__*/React.createElement(Children, _ref4.cn("Children", {}))));
139
+ }, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
193
140
  }
194
141
  }]);
195
- return RootEllipsis;
196
142
  }(Component);
197
143
  _defineProperty(RootEllipsis, "displayName", 'Ellipsis');
198
144
  _defineProperty(RootEllipsis, "style", style);
@@ -203,8 +149,8 @@ _defineProperty(RootEllipsis, "defaultProps", {
203
149
  __excludeProps: ['title']
204
150
  });
205
151
  var EllipsisMiddleContext = /*#__PURE__*/React.createContext(null);
206
- var EllipsisMiddle = function EllipsisMiddle(props) {
207
- var _ref7;
152
+ function EllipsisMiddle(props) {
153
+ var _ref5;
208
154
  var styles = props.styles,
209
155
  text = props.text,
210
156
  tooltip = props.tooltip,
@@ -214,37 +160,33 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
214
160
  tooltipProps = props.tooltipProps,
215
161
  children = props.children,
216
162
  advanceMode = props.advanceMode,
217
- otherProps = _objectWithoutProperties(props, _excluded2);
163
+ tag = props.tag;
218
164
  var resizeElement = React.useRef(null);
219
- var _React$useState = React.useState({
220
- fontSize: '14',
221
- symbolWidth: 0
222
- }),
165
+ var _React$useState = React.useState(0),
223
166
  _React$useState2 = _slicedToArray(_React$useState, 2),
224
- dimension = _React$useState2[0],
225
- setDimension = _React$useState2[1];
167
+ symbolWidth = _React$useState2[0],
168
+ setSymbolWidth = _React$useState2[1];
226
169
  var blockWidth = useResizeObserver(resizeElement, containerRect).width;
227
170
  useEnhancedEffect(function () {
228
171
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
229
172
  if (!node) return;
173
+ var styleElement = window.getComputedStyle(node);
230
174
  var dateSpan = document.createElement('temporary-block');
231
- dateSpan.setAttribute('style', "fontSize: ".concat(dimension.fontSize, "px"));
232
- dateSpan.innerHTML = 'a';
175
+ setFontSettings(dateSpan, styleElement);
176
+ dateSpan.textContent = 'a';
233
177
  document.body.appendChild(dateSpan);
234
178
  var rect = dateSpan.getBoundingClientRect();
235
- setDimension({
236
- fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),
237
- symbolWidth: rect.width
238
- });
179
+ setSymbolWidth(rect.width);
239
180
  document.body.removeChild(dateSpan);
240
181
  }, []);
241
182
  var STail = 'span';
242
183
  var SBeginning = 'span';
243
- var SContainerMiddle = props.tag || Box;
184
+ var SContainerMiddle = Tooltip;
244
185
  var SAdvancedModeContainerMiddle = Tooltip;
245
186
  var displayedSymbols = React.useMemo(function () {
246
- return Math.round(blockWidth / dimension.symbolWidth);
247
- }, [blockWidth, dimension.symbolWidth]);
187
+ var displayedSymbols = Math.round(blockWidth / symbolWidth);
188
+ return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;
189
+ }, [blockWidth, symbolWidth]);
248
190
  var interaction = text.length > displayedSymbols ? 'hover' : 'none';
249
191
  var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
250
192
  var contextValue = React.useMemo(function () {
@@ -255,48 +197,41 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
255
197
  };
256
198
  }, [text, displayedSymbols]);
257
199
  if (advanceMode) {
258
- var _ref5;
259
- return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
260
- "interaction": interaction
200
+ var _ref4;
201
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
202
+ "interaction": tooltip ? interaction : 'none'
261
203
  }, tooltipProps), forcedAdvancedMode)), /*#__PURE__*/React.createElement(EllipsisMiddleContext.Provider, {
262
204
  value: contextValue
263
205
  }, children));
264
206
  }
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));
278
- };
279
- var Content = function Content(_ref10) {
207
+ return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", _objectSpread({
208
+ "interaction": tooltip ? interaction : 'none',
209
+ "title": text,
210
+ "ref": forkRef(ref, textRef),
211
+ "tag": tag
212
+ }, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
213
+ }
214
+ function Content(_ref8) {
280
215
  var _ref = arguments[0],
281
- _ref9;
282
- var styles = _ref10.styles,
283
- Children = _ref10.Children;
216
+ _ref7;
217
+ var styles = _ref8.styles,
218
+ Children = _ref8.Children;
284
219
  var SEllipsis = Tooltip.Trigger;
285
220
  var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
286
221
  var STail = 'span';
287
222
  var SBeginning = 'span';
288
223
  if (ellipsisMiddleContext) {
289
- var _ref8;
224
+ var _ref6;
290
225
  var begining = ellipsisMiddleContext.begining,
291
226
  tail = ellipsisMiddleContext.tail,
292
227
  ref = ellipsisMiddleContext.ref;
293
- return _ref8 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref8.cn("SEllipsis", _objectSpread({}, _assignProps({
228
+ return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref6.cn("SEllipsis", _objectSpread({}, _assignProps({
294
229
  "middle-mod": true,
295
230
  "ref": ref
296
- }, _ref))), /*#__PURE__*/React.createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /*#__PURE__*/React.createElement(STail, _ref8.cn("STail", {}), tail));
231
+ }, _ref))), /*#__PURE__*/React.createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /*#__PURE__*/React.createElement(STail, _ref6.cn("STail", {}), tail));
297
232
  }
298
- return _ref9 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref9.cn("SEllipsis", _objectSpread({}, _assignProps2({}, _ref))), /*#__PURE__*/React.createElement(Children, _ref9.cn("Children", {})));
299
- };
233
+ return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref7.cn("SEllipsis", _objectSpread({}, _assignProps2({}, _ref))), /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {})));
234
+ }
300
235
  var Ellipsis = createComponent(RootEllipsis, {
301
236
  Content: Content,
302
237
  Popper: Tooltip.Popper
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["React","createComponent","Component","Root","sstyled","Tooltip","Box","useResizeObserver","useEnhancedEffect","findComponent","isAdvanceMode","style","_sstyled","insert","reactToText","getOriginChildren","pick","forkRef","callAllEventHandlers","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","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","visible","createRef","setState","showTooltip","_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","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","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","_assignProps","_assignProps2"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Ellipsis.js","names":["Box","createComponent","Component","Root","sstyled","callAllEventHandlers","findComponent","isAdvanceMode","getOriginChildren","pick","reactToText","forkRef","useEnhancedEffect","Tooltip","React","style","_sstyled","insert","useResizeObserver","isTextOverflowing","setFontSettings","defaultTooltipProps","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","visible","createRef","setState","showTooltip","_inherits","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","text","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","createElement","EllipsisMiddle","cn","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","_React$useState","useState","_React$useState2","_slicedToArray","symbolWidth","setSymbolWidth","blockWidth","width","node","styleElement","window","getComputedStyle","dateSpan","document","textContent","body","appendChild","rect","getBoundingClientRect","removeChild","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","Math","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 { Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\nimport { isTextOverflowing, setFontSettings } from './utils';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n\n return sstyled(styles)(\n <SContainer\n interaction={tooltip ? 'hover' : 'none'}\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nfunction EllipsisMiddle(props: AsPropsMiddle) {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n tag,\n } = props;\n\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [symbolWidth, setSymbolWidth] = React.useState(0);\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const styleElement = window.getComputedStyle(node);\n const dateSpan = document.createElement('temporary-block');\n\n setFontSettings(dateSpan, styleElement);\n dateSpan.textContent = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setSymbolWidth(rect.width);\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = Tooltip;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => {\n const displayedSymbols = Math.round(blockWidth / symbolWidth);\n\n return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;\n },\n [blockWidth, symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n );\n }\n return sstyled(styles)(\n <SContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n title={text}\n ref={forkRef(ref, textRef)}\n tag={tag}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n );\n}\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nfunction Content({ styles, Children }: EllipsisContentAsProps) {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n}\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\nimport { RefObject } from 'react';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLElement | null>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\ndeclare const useResizeObserver: (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => { width: number };\n\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport { useResizeObserver };\nexport default Ellipsis;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { Box, BoxProps } from '@semcore/base-components';\nimport type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\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/**\n * @deprecated. Use Text with ellipsis property for @semcore/typography.\n */\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n\nexport { useResizeObserver };\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,SAASC,iBAAiB,QAAQ,qBAAqB"}
1
+ {"version":3,"file":"index.js","names":["default","useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,SAASC,iBAAiB,QAAQ,qBAAqB","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;
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
3
+ import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
2
4
  import React from 'react';
3
- import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
4
- import canUseDOM from '@semcore/utils/lib/canUseDOM';
5
5
  export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
6
6
  var _React$useState = React.useState(0),
7
7
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":["React","useEnhancedEffect","canUseDOM","useResizeObserver","ref","hookOverride","_React$useState","useState","_React$useState2","_slicedToArray","width","setWidth","handleResize","useCallback","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = React.useState<number>(0);\n\n const handleResize = React.useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,iBAAiB,MAAM,0CAA0C;AACxE,OAAOC,SAAS,MAAM,8BAA8B;AAEpD,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,eAAA,GAA0BN,KAAK,CAACO,QAAQ,CAAS,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA5CI,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAMI,YAAY,GAAGZ,KAAK,CAACa,WAAW,CAAC,UAACC,OAA8B,EAAK;IACzEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAENT,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACG,GAAG,CAACY,OAAO,EAAE;MAChB;IACF;IAEA,IAAIX,YAAY,EAAE;MAChB;IACF;IACA,IAAIH,SAAS,EAAE,EAAE;MACf,IAAMe,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACJ,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFG,EAAE,CAACE,OAAO,CAACf,GAAG,CAACY,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXC,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAACf,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEK,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"useResizeObserver.js","names":["canUseDOM","useEnhancedEffect","React","useResizeObserver","ref","hookOverride","_React$useState","useState","_React$useState2","_slicedToArray","width","setWidth","handleResize","useCallback","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport React, { type RefObject } from 'react';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = React.useState<number>(0);\n\n const handleResize = React.useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";AAAA,OAAOA,SAAS,MAAM,mCAAmC;AACzD,OAAOC,iBAAiB,MAAM,+CAA+C;AAC7E,OAAOC,KAAK,MAA0B,OAAO;AAE7C,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,eAAA,GAA0BJ,KAAK,CAACK,QAAQ,CAAS,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA5CI,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAMI,YAAY,GAAGV,KAAK,CAACW,WAAW,CAAC,UAACC,OAA8B,EAAK;IACzEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAENT,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACG,GAAG,CAACY,OAAO,EAAE;MAChB;IACF;IAEA,IAAIX,YAAY,EAAE;MAChB;IACF;IACA,IAAIL,SAAS,CAAC,CAAC,EAAE;MACf,IAAMiB,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACJ,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFG,EAAE,CAACE,OAAO,CAACf,GAAG,CAACY,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXC,EAAE,CAACG,UAAU,CAAC,CAAC;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAACf,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEK,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC","ignoreList":[]}