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

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