@semcore/ellipsis 16.0.1 → 16.0.2-prerelease.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -31
- package/lib/cjs/Ellipsis.js +36 -37
- package/lib/cjs/Ellipsis.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/useResizeObserver.js +4 -5
- package/lib/cjs/useResizeObserver.js.map +1 -1
- package/lib/es6/Ellipsis.js +34 -34
- package/lib/es6/Ellipsis.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/useResizeObserver.js +2 -2
- package/lib/es6/useResizeObserver.js.map +1 -1
- package/lib/esm/Ellipsis.mjs +33 -31
- package/lib/esm/useResizeObserver.mjs +2 -2
- package/lib/types/index.d.ts +5 -4
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [16.0.2] - 2025-06-16
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/base-components` [16.0.1 ~> 16.0.2]).
|
|
10
|
+
|
|
5
11
|
## [16.0.1] - 2025-05-30
|
|
6
12
|
|
|
7
13
|
### Changed
|
package/README.md
CHANGED
|
@@ -13,40 +13,10 @@
|
|
|
13
13
|
## Install
|
|
14
14
|
|
|
15
15
|
```sh
|
|
16
|
-
npm install
|
|
16
|
+
npm install @semcore/ellipsis
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
## Usage
|
|
20
19
|
|
|
21
|
-
```jsx
|
|
22
|
-
import Ellipsis from 'intergalactic/ellipsis';
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
<details>
|
|
26
|
-
<summary>Alternative installation and use</summary>
|
|
27
|
-
|
|
28
|
-
**We do not recommend this usage path due to possible dependency and update issues.**
|
|
29
|
-
|
|
30
|
-
### Install
|
|
31
|
-
|
|
32
|
-
You can only install one package from the design system
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
npm install @semcore/ellipsis @semcore/core
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
`@semcore/core` - _is the basic package by which we create our components, and it contains all of the common logic
|
|
39
|
-
of the components that is discussed below. There should only be one version of the package in the project._
|
|
40
|
-
|
|
41
|
-
</details>
|
|
42
|
-
|
|
43
|
-
### Usage
|
|
44
|
-
|
|
45
|
-
You can use the package the same way but without `/ui/` in the import path.
|
|
46
|
-
|
|
47
|
-
```jsx
|
|
48
|
-
import Ellipsis from '@semcore/ellipsis';
|
|
49
|
-
```
|
|
50
20
|
|
|
51
21
|
## 👤 Author
|
|
52
22
|
|
package/lib/cjs/Ellipsis.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
@@ -11,37 +11,39 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
11
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
-
var
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _isNativeReflectConstruct2 = _interopRequireDefault(require("@babel/runtime/helpers/isNativeReflectConstruct"));
|
|
16
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
17
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
17
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
19
|
var _core = require("@semcore/core");
|
|
19
|
-
var
|
|
20
|
-
var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
|
|
21
|
-
var _flexBox = require("@semcore/flex-box");
|
|
22
|
-
var _useResizeObserver = require("./useResizeObserver");
|
|
23
|
-
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
20
|
+
var _assignProps3 = require("@semcore/core/lib/utils/assignProps");
|
|
24
21
|
var _findComponent = _interopRequireWildcard(require("@semcore/core/lib/utils/findComponent"));
|
|
25
|
-
var _reactToText = _interopRequireDefault(require("@semcore/core/lib/utils/reactToText"));
|
|
26
22
|
var _getOriginChildren = _interopRequireDefault(require("@semcore/core/lib/utils/getOriginChildren"));
|
|
27
23
|
var _pick = _interopRequireDefault(require("@semcore/core/lib/utils/pick"));
|
|
28
|
-
var
|
|
29
|
-
var
|
|
24
|
+
var _reactToText = _interopRequireDefault(require("@semcore/core/lib/utils/reactToText"));
|
|
25
|
+
var _ref1 = require("@semcore/core/lib/utils/ref");
|
|
26
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
27
|
+
var _flexBox = require("@semcore/flex-box");
|
|
28
|
+
var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
|
|
29
|
+
var _react = _interopRequireDefault(require("react"));
|
|
30
|
+
var _useResizeObserver = require("./useResizeObserver");
|
|
30
31
|
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
|
|
31
32
|
_excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
|
|
33
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, (0, _isNativeReflectConstruct2["default"])() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
32
34
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
33
|
-
var style = (
|
|
35
|
+
var style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SContainerMiddle_1656k_gg_,.___SContainer_1656k_gg_,.___SEllipsis_1656k_gg_.__middle-mod_1656k_gg_,.___SNoTooltipContainer_1656k_gg_{display:flex;overflow:hidden}.___SBeginning_1656k_gg_,.___SEllipsis_1656k_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1656k_gg_.__maxLine_1656k_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1656k);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1656k_gg_>:has(.___SBeginning_1656k_gg_),.___SContainerMiddle_1656k_gg_>:has(.___STail_1656k_gg_){display:flex;width:100%}.___STail_1656k_gg_{white-space:pre}", /*__inner_css_end__*/"1656k_gg_"),
|
|
34
36
|
/*__reshadow_css_end__*/
|
|
35
37
|
{
|
|
36
|
-
"__SContainer": "
|
|
37
|
-
"__SNoTooltipContainer": "
|
|
38
|
-
"__SContainerMiddle": "
|
|
39
|
-
"__SBeginning": "
|
|
40
|
-
"__SEllipsis": "
|
|
41
|
-
"_middle-mod": "__middle-
|
|
42
|
-
"_maxLine": "
|
|
43
|
-
"--maxLine": "--
|
|
44
|
-
"__STail": "
|
|
38
|
+
"__SContainer": "___SContainer_1656k_gg_",
|
|
39
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_1656k_gg_",
|
|
40
|
+
"__SContainerMiddle": "___SContainerMiddle_1656k_gg_",
|
|
41
|
+
"__SBeginning": "___SBeginning_1656k_gg_",
|
|
42
|
+
"__SEllipsis": "___SEllipsis_1656k_gg_",
|
|
43
|
+
"_middle-mod": "__middle-mod_1656k_gg_",
|
|
44
|
+
"_maxLine": "__maxLine_1656k_gg_",
|
|
45
|
+
"--maxLine": "--maxLine_1656k",
|
|
46
|
+
"__STail": "___STail_1656k_gg_"
|
|
45
47
|
});
|
|
46
48
|
var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
47
49
|
var createMeasurerElement = function createMeasurerElement(element, text) {
|
|
@@ -91,27 +93,26 @@ var forcedAdvancedMode = {
|
|
|
91
93
|
};
|
|
92
94
|
var noAdvancedMode = {};
|
|
93
95
|
var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
94
|
-
(0, _inherits2["default"])(RootEllipsis, _Component);
|
|
95
|
-
var _super = (0, _createSuper2["default"])(RootEllipsis);
|
|
96
96
|
function RootEllipsis() {
|
|
97
97
|
var _this;
|
|
98
98
|
(0, _classCallCheck2["default"])(this, RootEllipsis);
|
|
99
99
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
100
100
|
args[_key] = arguments[_key];
|
|
101
101
|
}
|
|
102
|
-
_this =
|
|
103
|
-
(0, _defineProperty2["default"])(
|
|
102
|
+
_this = _callSuper(this, RootEllipsis, [].concat(args));
|
|
103
|
+
(0, _defineProperty2["default"])(_this, "state", {
|
|
104
104
|
visible: false
|
|
105
105
|
});
|
|
106
|
-
(0, _defineProperty2["default"])(
|
|
107
|
-
(0, _defineProperty2["default"])(
|
|
106
|
+
(0, _defineProperty2["default"])(_this, "textRef", /*#__PURE__*/_react["default"].createRef());
|
|
107
|
+
(0, _defineProperty2["default"])(_this, "handlerVisibleChange", function (visible) {
|
|
108
108
|
_this.setState({
|
|
109
109
|
visible: visible && _this.showTooltip()
|
|
110
110
|
});
|
|
111
111
|
});
|
|
112
112
|
return _this;
|
|
113
113
|
}
|
|
114
|
-
(0,
|
|
114
|
+
(0, _inherits2["default"])(RootEllipsis, _Component);
|
|
115
|
+
return (0, _createClass2["default"])(RootEllipsis, [{
|
|
115
116
|
key: "showTooltip",
|
|
116
117
|
value: function showTooltip() {
|
|
117
118
|
var _this$asProps = this.asProps,
|
|
@@ -157,7 +158,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
157
158
|
containerRect = _this$asProps3.containerRect,
|
|
158
159
|
containerRef = _this$asProps3.containerRef,
|
|
159
160
|
includeTooltipProps = _this$asProps3.includeTooltipProps,
|
|
160
|
-
|
|
161
|
+
_children = _this$asProps3.children,
|
|
161
162
|
other = (0, _objectWithoutProperties2["default"])(_this$asProps3, _excluded);
|
|
162
163
|
var visible = this.state.visible;
|
|
163
164
|
var advancedContent = (0, _findComponent["default"])(Children, [Ellipsis.Content.displayName]);
|
|
@@ -197,7 +198,6 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
197
198
|
}, other)), /*#__PURE__*/_react["default"].createElement(Children, _ref4.cn("Children", {}))));
|
|
198
199
|
}
|
|
199
200
|
}]);
|
|
200
|
-
return RootEllipsis;
|
|
201
201
|
}(_core.Component);
|
|
202
202
|
(0, _defineProperty2["default"])(RootEllipsis, "displayName", 'Ellipsis');
|
|
203
203
|
(0, _defineProperty2["default"])(RootEllipsis, "style", style);
|
|
@@ -272,7 +272,7 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
|
272
272
|
return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", (0, _objectSpread2["default"])({
|
|
273
273
|
"interaction": interaction,
|
|
274
274
|
"title": text,
|
|
275
|
-
"ref": (0,
|
|
275
|
+
"ref": (0, _ref1.forkRef)(ref, textRef),
|
|
276
276
|
"tag": _tooltip["default"],
|
|
277
277
|
"__excludeProps": ['title']
|
|
278
278
|
}, tooltipProps)), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
|
|
@@ -281,11 +281,11 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
|
281
281
|
"ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
|
|
282
282
|
})), /*#__PURE__*/_react["default"].createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/_react["default"].createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
|
|
283
283
|
};
|
|
284
|
-
var Content = function Content(
|
|
284
|
+
var Content = function Content(_ref0) {
|
|
285
285
|
var _ref = arguments[0],
|
|
286
286
|
_ref9;
|
|
287
|
-
var styles =
|
|
288
|
-
Children =
|
|
287
|
+
var styles = _ref0.styles,
|
|
288
|
+
Children = _ref0.Children;
|
|
289
289
|
var SEllipsis = _tooltip["default"].Trigger;
|
|
290
290
|
var ellipsisMiddleContext = _react["default"].useContext(EllipsisMiddleContext);
|
|
291
291
|
var STail = 'span';
|
|
@@ -306,6 +306,5 @@ var Ellipsis = (0, _core.createComponent)(RootEllipsis, {
|
|
|
306
306
|
Content: Content,
|
|
307
307
|
Popper: _tooltip["default"].Popper
|
|
308
308
|
});
|
|
309
|
-
var _default = Ellipsis;
|
|
310
|
-
exports["default"] = _default;
|
|
309
|
+
var _default = exports["default"] = Ellipsis;
|
|
311
310
|
//# sourceMappingURL=Ellipsis.js.map
|
package/lib/cjs/Ellipsis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsis.js","names":["_core","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_interopRequireWildcard","_reactToText","_getOriginChildren","_pick","_ref11","_assignProps3","_excluded","_excluded2","style","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_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/core/lib/utils/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/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":["_core","require","_assignProps3","_findComponent","_interopRequireWildcard","_getOriginChildren","_interopRequireDefault","_pick","_reactToText","_ref1","_useEnhancedEffect","_flexBox","_tooltip","_react","_useResizeObserver","_excluded","_excluded2","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct2","Reflect","construct","constructor","apply","style","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_defineProperty2","visible","React","createRef","setState","showTooltip","_inherits2","_createClass2","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","reactToText","getOriginChildren","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","pick","_objectSpread2","children","render","_ref4","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","forkRef","_ref0","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport { Box, type BoxProps } from '@semcore/flex-box';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\nimport
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLElement | null>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\ndeclare const useResizeObserver: (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => { width: number };\n\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport { useResizeObserver };\nexport default Ellipsis;\n"],"mappings":"","ignoreList":[]}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_Ellipsis","_interopRequireDefault","require","_useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_Ellipsis","_interopRequireDefault","require","_useResizeObserver"],"sources":["../../src/index.js"],"sourcesContent":["export { default } from './Ellipsis';\nexport { useResizeObserver } from './useResizeObserver';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
11
9
|
var _canUseDOM = _interopRequireDefault(require("@semcore/core/lib/utils/canUseDOM"));
|
|
12
|
-
var
|
|
10
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/core/lib/utils/use/useEnhancedEffect"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var useResizeObserver = exports.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,5 +41,4 @@ var useResizeObserver = function useResizeObserver(ref, hookOverride) {
|
|
|
41
41
|
width: width
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
|
-
exports.useResizeObserver = useResizeObserver;
|
|
45
44
|
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizeObserver.js","names":["
|
|
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":[]}
|
package/lib/es6/Ellipsis.js
CHANGED
|
@@ -3,41 +3,43 @@ 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
|
|
6
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
7
|
+
import _isNativeReflectConstruct from "@babel/runtime/helpers/isNativeReflectConstruct";
|
|
8
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
9
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
|
-
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
9
10
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
11
|
import { sstyled as _sstyled } from "@semcore/core";
|
|
11
12
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
12
13
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
13
14
|
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
|
|
14
15
|
_excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
|
|
15
|
-
|
|
16
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
16
17
|
import { createComponent, Component, Root, sstyled } from '@semcore/core';
|
|
17
|
-
import
|
|
18
|
-
import { Box } from '@semcore/flex-box';
|
|
19
|
-
import { useResizeObserver } from './useResizeObserver';
|
|
20
|
-
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
18
|
+
import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
|
|
21
19
|
import findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';
|
|
20
|
+
import getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';
|
|
21
|
+
import pick from '@semcore/core/lib/utils/pick';
|
|
22
|
+
import reactToText from '@semcore/core/lib/utils/reactToText';
|
|
23
|
+
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
24
|
+
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
25
|
+
import { Box } from '@semcore/flex-box';
|
|
26
|
+
import Tooltip from '@semcore/tooltip';
|
|
27
|
+
import React from 'react';
|
|
22
28
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
23
|
-
var style = (
|
|
29
|
+
var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SContainerMiddle_1656k_gg_,.___SContainer_1656k_gg_,.___SEllipsis_1656k_gg_.__middle-mod_1656k_gg_,.___SNoTooltipContainer_1656k_gg_{display:flex;overflow:hidden}.___SBeginning_1656k_gg_,.___SEllipsis_1656k_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1656k_gg_.__maxLine_1656k_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1656k);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1656k_gg_>:has(.___SBeginning_1656k_gg_),.___SContainerMiddle_1656k_gg_>:has(.___STail_1656k_gg_){display:flex;width:100%}.___STail_1656k_gg_{white-space:pre}", /*__inner_css_end__*/"1656k_gg_"),
|
|
24
30
|
/*__reshadow_css_end__*/
|
|
25
31
|
{
|
|
26
|
-
"__SContainer": "
|
|
27
|
-
"__SNoTooltipContainer": "
|
|
28
|
-
"__SContainerMiddle": "
|
|
29
|
-
"__SBeginning": "
|
|
30
|
-
"__SEllipsis": "
|
|
31
|
-
"_middle-mod": "__middle-
|
|
32
|
-
"_maxLine": "
|
|
33
|
-
"--maxLine": "--
|
|
34
|
-
"__STail": "
|
|
32
|
+
"__SContainer": "___SContainer_1656k_gg_",
|
|
33
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_1656k_gg_",
|
|
34
|
+
"__SContainerMiddle": "___SContainerMiddle_1656k_gg_",
|
|
35
|
+
"__SBeginning": "___SBeginning_1656k_gg_",
|
|
36
|
+
"__SEllipsis": "___SEllipsis_1656k_gg_",
|
|
37
|
+
"_middle-mod": "__middle-mod_1656k_gg_",
|
|
38
|
+
"_maxLine": "__maxLine_1656k_gg_",
|
|
39
|
+
"--maxLine": "--maxLine_1656k",
|
|
40
|
+
"__STail": "___STail_1656k_gg_"
|
|
35
41
|
});
|
|
36
|
-
import
|
|
37
|
-
import getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';
|
|
38
|
-
import pick from '@semcore/core/lib/utils/pick';
|
|
39
|
-
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
40
|
-
import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
|
|
42
|
+
import { useResizeObserver } from './useResizeObserver';
|
|
41
43
|
var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
42
44
|
var createMeasurerElement = function createMeasurerElement(element, text) {
|
|
43
45
|
var styleElement = window.getComputedStyle(element, null);
|
|
@@ -86,27 +88,26 @@ var forcedAdvancedMode = {
|
|
|
86
88
|
};
|
|
87
89
|
var noAdvancedMode = {};
|
|
88
90
|
var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
89
|
-
_inherits(RootEllipsis, _Component);
|
|
90
|
-
var _super = _createSuper(RootEllipsis);
|
|
91
91
|
function RootEllipsis() {
|
|
92
92
|
var _this;
|
|
93
93
|
_classCallCheck(this, RootEllipsis);
|
|
94
94
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
95
95
|
args[_key] = arguments[_key];
|
|
96
96
|
}
|
|
97
|
-
_this =
|
|
98
|
-
_defineProperty(
|
|
97
|
+
_this = _callSuper(this, RootEllipsis, [].concat(args));
|
|
98
|
+
_defineProperty(_this, "state", {
|
|
99
99
|
visible: false
|
|
100
100
|
});
|
|
101
|
-
_defineProperty(
|
|
102
|
-
_defineProperty(
|
|
101
|
+
_defineProperty(_this, "textRef", /*#__PURE__*/React.createRef());
|
|
102
|
+
_defineProperty(_this, "handlerVisibleChange", function (visible) {
|
|
103
103
|
_this.setState({
|
|
104
104
|
visible: visible && _this.showTooltip()
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
107
|
return _this;
|
|
108
108
|
}
|
|
109
|
-
|
|
109
|
+
_inherits(RootEllipsis, _Component);
|
|
110
|
+
return _createClass(RootEllipsis, [{
|
|
110
111
|
key: "showTooltip",
|
|
111
112
|
value: function showTooltip() {
|
|
112
113
|
var _this$asProps = this.asProps,
|
|
@@ -152,7 +153,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
152
153
|
containerRect = _this$asProps3.containerRect,
|
|
153
154
|
containerRef = _this$asProps3.containerRef,
|
|
154
155
|
includeTooltipProps = _this$asProps3.includeTooltipProps,
|
|
155
|
-
|
|
156
|
+
_children = _this$asProps3.children,
|
|
156
157
|
other = _objectWithoutProperties(_this$asProps3, _excluded);
|
|
157
158
|
var visible = this.state.visible;
|
|
158
159
|
var advancedContent = findComponent(Children, [Ellipsis.Content.displayName]);
|
|
@@ -192,7 +193,6 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
192
193
|
}, other)), /*#__PURE__*/React.createElement(Children, _ref4.cn("Children", {}))));
|
|
193
194
|
}
|
|
194
195
|
}]);
|
|
195
|
-
return RootEllipsis;
|
|
196
196
|
}(Component);
|
|
197
197
|
_defineProperty(RootEllipsis, "displayName", 'Ellipsis');
|
|
198
198
|
_defineProperty(RootEllipsis, "style", style);
|
|
@@ -276,11 +276,11 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
|
276
276
|
"ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
|
|
277
277
|
})), /*#__PURE__*/React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
|
|
278
278
|
};
|
|
279
|
-
var Content = function Content(
|
|
279
|
+
var Content = function Content(_ref0) {
|
|
280
280
|
var _ref = arguments[0],
|
|
281
281
|
_ref9;
|
|
282
|
-
var styles =
|
|
283
|
-
Children =
|
|
282
|
+
var styles = _ref0.styles,
|
|
283
|
+
Children = _ref0.Children;
|
|
284
284
|
var SEllipsis = Tooltip.Trigger;
|
|
285
285
|
var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
|
|
286
286
|
var STail = 'span';
|
package/lib/es6/Ellipsis.js.map
CHANGED
|
@@ -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/core/lib/utils/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/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":["createComponent","Component","Root","sstyled","callAllEventHandlers","findComponent","isAdvanceMode","getOriginChildren","pick","reactToText","forkRef","useEnhancedEffect","Box","Tooltip","React","style","_sstyled","insert","useResizeObserver","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","_defineProperty","visible","createRef","setState","showTooltip","_inherits","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref4","_tooltipProps$visible","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","_excluded2","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","_ref0","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","_assignProps","_assignProps2"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport { Box, type BoxProps } from '@semcore/flex-box';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAASA,eAAe,EAAEC,SAAS,EAAsBC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAC7F,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,OAAOC,aAAa,IAAIC,aAAa,QAAQ,uCAAuC;AACpF,OAAOC,iBAAiB,MAAM,2CAA2C;AACzE,OAAOC,IAAI,MAAM,8BAA8B;AAC/C,OAAOC,WAAW,MAAM,qCAAqC;AAC7D,SAASC,OAAO,QAAQ,6BAA6B;AACrD,OAAOC,iBAAiB,MAAM,+CAA+C;AAC7E,SAASC,GAAG,QAAuB,mBAAmB;AACtD,OAAOC,OAAO,MAA6B,kBAAkB;AAC7D,OAAOC,KAAK,MAA0B,OAAO;AAAC;AAAA,IAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAG9C,SAASC,iBAAiB,QAAQ,qBAAqB;AA2DvD,IAAMC,mBAAmB,GAAG,CAC1B,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,CAClB;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,OAAuB,EAAEC,IAAa,EAAK;EACxE,IAAMC,YAAY,GAAGC,MAAM,CAACC,gBAAgB,CAACJ,OAAO,EAAE,IAAI,CAAC;EAC3D,IAAMK,gBAAgB,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;EAClEF,gBAAgB,CAACX,KAAK,CAACc,OAAO,GAAGN,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACX,KAAK,CAACgB,OAAO,GAAGR,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACX,KAAK,CAACiB,QAAQ,GAAG,UAAU;EAC5CN,gBAAgB,CAACX,KAAK,CAACkB,KAAK,GAAG,IAAI;EACnCP,gBAAgB,CAACX,KAAK,CAACmB,MAAM,GAAG,IAAI;EACpCR,gBAAgB,CAACX,KAAK,CAACoB,UAAU,GAAG,QAAQ;EAC5CT,gBAAgB,CAACX,KAAK,CAACqB,UAAU,GAAGb,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACsB,QAAQ,GAAGd,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAC5EJ,gBAAgB,CAACX,KAAK,CAACuB,UAAU,GAAGf,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACwB,UAAU,GAAGhB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACyB,UAAU,GAAGjB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAAC0B,QAAQ,GAAGlB,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAE5EJ,gBAAgB,CAACX,KAAK,CAAC2B,mBAAmB,GACxCnB,YAAY,CAACO,gBAAgB,CAAC,uBAAuB,CAAC;EACxDJ,gBAAgB,CAACX,KAAK,CAAC4B,kBAAkB,GAAGpB,YAAY,CAACO,gBAAgB,CAAC,sBAAsB,CAAC;EAEjGJ,gBAAgB,CAACkB,SAAS,GAAGtB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAID,OAAO,CAACuB,SAAS;EACtD,OAAOlB,gBAAgB;AACzB,CAAC;AAED,SAASmB,iBAAiBA,CAACxB,OAAuB,EAAEyB,SAAkB,EAAExB,IAAa,EAAW;EAC9F,IAAI,CAACD,OAAO,EAAE,OAAO,KAAK;EAE1B,IAAA0B,qBAAA,GAAuD1B,OAAO,CAAC2B,qBAAqB,CAAC,CAAC;IAAtEC,aAAa,GAAAF,qBAAA,CAArBG,MAAM;IAAwBC,YAAY,GAAAJ,qBAAA,CAAnBK,KAAK;EACpC,IAAMC,gBAAgB,GAAGjC,qBAAqB,CAACC,OAAO,EAAEC,IAAI,CAAC;EAC7D,IAAIgC,aAAa,GAAG,KAAK;EAEzB3B,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAACH,gBAAgB,CAAC;EAC3C,IAAIP,SAAS,EAAE;IACbO,gBAAgB,CAACtC,KAAK,CAACqC,KAAK,MAAAK,MAAA,CAAMN,YAAY,OAAI;IAElD,IAAMC,KAAK,GAAGC,gBAAgB,CAACK,WAAW;IAC1C,IAAMR,MAAM,GAAGG,gBAAgB,CAACL,qBAAqB,CAAC,CAAC,CAACE,MAAM;IAE9D,IAAIS,IAAI,CAACC,IAAI,CAACX,aAAa,CAAC,GAAGC,MAAM,IAAIS,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGC,KAAK,EAAE;MACxEE,aAAa,GAAG,IAAI;IACtB;EACF,CAAC,MAAM;IACLD,gBAAgB,CAACtC,KAAK,CAACyB,UAAU,GAAG,QAAQ;IAC5Cc,aAAa,GAAGK,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGE,gBAAgB,CAACL,qBAAqB,CAAC,CAAC,CAACI,KAAK;EAC1F;EAEAzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACR,gBAAgB,CAAC;EAE3C,OAAOC,aAAa;AACtB;AAEA,IAAMQ,kBAAkB,GAAG;EAAEA,kBAAkB,EAAE;AAAK,CAAQ;AAC9D,IAAMC,cAAc,GAAG,CAAC,CAAQ;AAAC,IAE3BC,YAAY,0BAAAC,UAAA;EAAA,SAAAD,aAAA;IAAA,IAAAE,KAAA;IAAAC,eAAA,OAAAH,YAAA;IAAA,SAAAI,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAQ,UAAA,OAAAV,YAAA,KAAAP,MAAA,CAAAc,IAAA;IAAAI,eAAA,CAAAT,KAAA,WAUR;MACNU,OAAO,EAAE;IACX,CAAC;IAAAD,eAAA,CAAAT,KAAA,0BAESpD,KAAK,CAAC+D,SAAS,CAAiB,CAAC;IAAAF,eAAA,CAAAT,KAAA,0BAQpB,UAACU,OAAgB,EAAK;MAC3CV,KAAA,CAAKY,QAAQ,CAAC;QAAEF,OAAO,EAAEA,OAAO,IAAIV,KAAA,CAAKa,WAAW,CAAC;MAAE,CAAC,CAAC;IAC3D,CAAC;IAAA,OAAAb,KAAA;EAAA;EAAAc,SAAA,CAAAhB,YAAA,EAAAC,UAAA;EAAA,OAAAgB,YAAA,CAAAjB,YAAA;IAAAkB,GAAA;IAAAC,KAAA,EARD,SAAAJ,WAAWA,CAAA,EAAG;MACZ,IAAAK,aAAA,GAAkC,IAAI,CAACC,OAAO;QAAAC,qBAAA,GAAAF,aAAA,CAAtCG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;QAAEE,QAAQ,GAAAJ,aAAA,CAARI,QAAQ;MAC7B,IAAMlE,IAAI,GAAGb,WAAW,CAACF,iBAAiB,CAACiF,QAAQ,CAAC,CAAC;MACrD,OAAO3C,iBAAiB,CAAC,IAAI,CAAC4C,OAAO,CAACC,OAAO,EAAGH,OAAO,GAAG,CAAC,EAAEjE,IAAI,CAAC;IACpE;EAAC;IAAA4D,GAAA;IAAAC,KAAA,EAMD,SAAAQ,eAAeA,CAAA,EAAG;MAChB,OAAO;QACLC,GAAG,EAAE,IAAI,CAACH,OAAO;QACjBF,OAAO,EAAE,IAAI,CAACF,OAAO,CAACE;MACxB,CAAC;IACH;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAU,cAAcA,CAAA,EAAG;MACf,IAAAC,cAAA,GAA0C,IAAI,CAACT,OAAO;QAA9CG,QAAQ,GAAAM,cAAA,CAARN,QAAQ;QAAEO,mBAAmB,GAAAD,cAAA,CAAnBC,mBAAmB;MACrC,IAAMzE,IAAI,GAAGb,WAAW,CAACF,iBAAiB,CAACiF,QAAQ,CAAC,CAAC;MACrD,IAAMQ,YAAY,GAAGxF,IAAI,CAAC,IAAI,CAAC6E,OAAO,EAAEU,mBAA0B,CAAiB;MACnF,OAAAE,aAAA;QAASC,QAAQ,EAAE5E;MAAI,GAAK0E,YAAY;IAC1C;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAgB,MAAMA,CAAA,EAAG;MAAA,IAAAC,KAAA,EAAAC,qBAAA;MACP,IAAMC,SAAS,GAAG,IAAI,CAACpG,IAAI;MAC3B,IAAMqG,UAAU,GAAG1F,OAAO;MAC1B,IAAM2F,mBAAmB,GAAG5F,GAAG;MAC/B,IAAA6F,cAAA,GAWI,IAAI,CAACpB,OAAO;QAVdqB,MAAM,GAAAD,cAAA,CAANC,MAAM;QACNlB,QAAQ,GAAAiB,cAAA,CAARjB,QAAQ;QACRD,OAAO,GAAAkB,cAAA,CAAPlB,OAAO;QACPoB,OAAO,GAAAF,cAAA,CAAPE,OAAO;QACPC,IAAI,GAAAH,cAAA,CAAJG,IAAI;QACJC,aAAa,GAAAJ,cAAA,CAAbI,aAAa;QACbC,YAAY,GAAAL,cAAA,CAAZK,YAAY;QACZf,mBAAmB,GAAAU,cAAA,CAAnBV,mBAAmB;QACTgB,SAAS,GAAAN,cAAA,CAAnBP,QAAQ;QACLc,KAAK,GAAAC,wBAAA,CAAAR,cAAA,EAAAS,SAAA;MAEV,IAAQtC,OAAO,GAAK,IAAI,CAACuC,KAAK,CAAtBvC,OAAO;MACf,IAAMwC,eAAe,GAAG/G,aAAa,CAACmF,QAAQ,EAAE,CAAE6B,QAAQ,CAASC,OAAO,CAACC,WAAW,CAAC,CAAC;MACxF,IAAMjG,IAAI,GAAGb,WAAW,CAAC2G,eAAe,IAAI7G,iBAAiB,CAACiF,QAAQ,CAAC,CAAC;MACxE,IAAMgC,WAAW,GAAGlH,aAAa,CAACkF,QAAQ,EAAE,CACzC6B,QAAQ,CAASC,OAAO,CAACC,WAAW,EACpCF,QAAQ,CAASI,MAAM,CAACF,WAAW,CACrC,CAAC;MACF,IAAMvB,YAAY,GAAGxF,IAAI,CAAC,IAAI,CAAC6E,OAAO,EAAEU,mBAA0B,CAAiB;MAEnFC,YAAY,CAACpB,OAAO,IAAAyB,qBAAA,GAAGL,YAAY,CAACpB,OAAO,cAAAyB,qBAAA,cAAAA,qBAAA,GAAIzB,OAAO;MACtDoB,YAAY,CAAC0B,eAAe,GAAG1B,YAAY,CAAC0B,eAAe,GACvDtH,oBAAoB,CAAC4F,YAAY,CAAC0B,eAAe,EAAE,IAAI,CAACC,oBAAoB,CAAC,GAC7E,IAAI,CAACA,oBAAoB;MAE7B,IAAIf,IAAI,KAAK,QAAQ,EAAE;QAAA,IAAAgB,KAAA;QACrB,OAAAA,KAAA,GAAOzH,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAACiG,cAAc,EAAAD,KAAA,CAAAE,EAAA,mBAAA7B,aAAA;UAAA,QACP3E,IAAI;UAAA,UACFoF,MAAM;UAAA,WACLC,OAAO;UAAA,iBACDE,aAAa;UAAA,gBACdC,YAAY;UAAA,WACjB,IAAI,CAACrB,OAAO;UAAA,gBACPO,YAAY;UAAA,eACbwB;QAAW,GACpBR,KAAK,iBAETlG,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAoC,KAAA,CAAAE,EAAA,gBAAE,CACG,CAAC;MAErB;MACA,IAAInB,OAAO,EAAE;QAAA,IAAAoB,KAAA;QACX,OAAAA,KAAA,GAAO5H,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC2E,UAAU,EAAAwB,KAAA,CAAAD,EAAA,eAAA7B,aAAA,CAAAA,aAAA;UAAA,eACG,OAAO;UAAA,SACZ,CAACuB,WAAW,GAAGlG,IAAI,GAAG0G;QAAS,GAClChC,YAAY,GACXwB,WAAW,GAAG1D,kBAAkB,GAAGC,cAAc,IAErDyD,WAAW,gBAEN1G,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAuC,KAAA,CAAAD,EAAA,gBAAE,CAAC,gBAGZhH,KAAA,CAAAc,aAAA,CAAC0E,SAAS,EAAAyB,KAAA,CAAAD,EAAA,cAAA7B,aAAA;UAAA,UAASrF,GAAG;UAAA,OAAO,IAAI,CAAC6E,OAAO;UAAA,WAAWF;QAAO,GAAMyB,KAAK,iBACpElG,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAuC,KAAA,CAAAD,EAAA,gBAAE,CACF,CAEP,CAAC;MAEjB;MACA,OAAA1B,KAAA,GAAOjG,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC4E,mBAAmB,EAAAJ,KAAA,CAAA0B,EAAA,6BACjBN,WAAW,gBAEN1G,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAY,KAAA,CAAA0B,EAAA,gBAAE,CAAC,gBAGZhH,KAAA,CAAAc,aAAA,CAAC0E,SAAS,EAAAF,KAAA,CAAA0B,EAAA,cAAA7B,aAAA;QAAA,UAASrF,GAAG;QAAA,OAAO,IAAI,CAAC6E,OAAO;QAAA,WAAWF;MAAO,GAAMyB,KAAK,iBACpElG,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAY,KAAA,CAAA0B,EAAA,gBAAE,CACF,CAEE,CAAC;IAE1B;EAAC;AAAA,EAxHwB7H,SAAS;AAAA0E,eAAA,CAA9BX,YAAY,iBACK,UAAU;AAAAW,eAAA,CAD3BX,YAAY,WAEDjD,KAAK;AAAA4D,eAAA,CAFhBX,YAAY,kBAGe;EAC7B4C,IAAI,EAAE,KAAK;EACXD,OAAO,EAAE,IAAI;EACbZ,mBAAmB,EAAE5E,mBAAmB;EACxC8G,cAAc,EAAE,CAAC,OAAO;AAC1B,CAAC;AAmHH,IAAMC,qBAAqB,gBAAGpH,KAAK,CAACqH,aAAa,CAI9C,IAAI,CAAC;AAER,IAAMN,cAAuC,GAAG,SAA1CA,cAAuCA,CAAIO,KAAK,EAAK;EAAA,IAAAC,KAAA;EACzD,IACE3B,MAAM,GAUJ0B,KAAK,CAVP1B,MAAM;IACNpF,IAAI,GASF8G,KAAK,CATP9G,IAAI;IACJqF,OAAO,GAQLyB,KAAK,CARPzB,OAAO;IACPE,aAAa,GAOXuB,KAAK,CAPPvB,aAAa;IACbC,YAAY,GAMVsB,KAAK,CANPtB,YAAY;IACZrB,OAAO,GAKL2C,KAAK,CALP3C,OAAO;IACPO,YAAY,GAIVoC,KAAK,CAJPpC,YAAY;IACZE,QAAQ,GAGNkC,KAAK,CAHPlC,QAAQ;IACRsB,WAAW,GAETY,KAAK,CAFPZ,WAAW;IACRc,UAAU,GAAArB,wBAAA,CACXmB,KAAK,EAAAG,UAAA;EACT,IAAMC,aAAa,GAAG1H,KAAK,CAAC2H,MAAM,CAAiB,IAAI,CAAC;EACxD,IAAAC,eAAA,GAAkC5H,KAAK,CAAC6H,QAAQ,CAA4C;MAC1FtG,QAAQ,EAAE,IAAI;MACduG,WAAW,EAAE;IACf,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA;IAHKK,SAAS,GAAAF,gBAAA;IAAEG,YAAY,GAAAH,gBAAA;EAI9B,IAAMI,UAAU,GAAG/H,iBAAiB,CAACsH,aAAa,EAAE3B,aAAa,CAAC,CAACzD,KAAK;EAExEzC,iBAAiB,CAAC,YAAM;IACtB,IAAMuI,IAAI,GAAG,CAAApC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEpB,OAAO,MAAI8C,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE9C,OAAO;IAC5D,IAAI,CAACwD,IAAI,EAAE;IAEX,IAAMC,QAAQ,GAAGxH,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;IAC1DuH,QAAQ,CAACC,YAAY,CAAC,OAAO,eAAA3F,MAAA,CAAesF,SAAS,CAAC1G,QAAQ,OAAI,CAAC;IACnE8G,QAAQ,CAACvG,SAAS,GAAG,GAAG;IACxBjB,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAAC2F,QAAQ,CAAC;IACnC,IAAME,IAAI,GAAGF,QAAQ,CAACnG,qBAAqB,CAAC,CAAC;IAE7CgG,YAAY,CAAC;MACX3G,QAAQ,EAAEb,MAAM,CAACC,gBAAgB,CAACyH,IAAI,EAAE,IAAI,CAAC,CAACpH,gBAAgB,CAAC,WAAW,CAAC;MAC3E8G,WAAW,EAAES,IAAI,CAACjG;IACpB,CAAC,CAAC;IACFzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACsF,QAAQ,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EACzB,IAAMC,gBAAgB,GAAGpB,KAAK,CAACqB,GAAG,IAAI7I,GAAG;EACzC,IAAM8I,4BAA4B,GAAG7I,OAAO;EAC5C,IAAM8I,gBAAgB,GAAG7I,KAAK,CAAC8I,OAAO,CACpC;IAAA,OAAMjG,IAAI,CAACkG,KAAK,CAACZ,UAAU,GAAGF,SAAS,CAACH,WAAW,CAAC;EAAA,GACpD,CAACK,UAAU,EAAEF,SAAS,CAACH,WAAW,CACpC,CAAC;EAED,IAAMkB,WAAW,GAAGxI,IAAI,CAACgD,MAAM,GAAGqF,gBAAgB,GAAG,OAAO,GAAG,MAAM;EACrE,IAAM/D,GAAG,GAAGkB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI0B,aAAa;EACzC,IAAMuB,YAAY,GAAGjJ,KAAK,CAAC8I,OAAO,CAChC;IAAA,OAAO;MACLI,QAAQ,EAAE1I,IAAI,CAAC2I,SAAS,CAAC,CAAC,EAAE3I,IAAI,CAACgD,MAAM,GAAGqF,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MACnEO,IAAI,EAAE5I,IAAI,CAAC2I,SAAS,CAAC3I,IAAI,CAACgD,MAAM,GAAGqF,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MAC5D/D,GAAG,EAAHA;IACF,CAAC;EAAA,CAAC,EACF,CAACtE,IAAI,EAAEqI,gBAAgB,CACzB,CAAC;EAED,IAAInC,WAAW,EAAE;IAAA,IAAA2C,KAAA;IACf,OAAAA,KAAA,GAAOhK,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC8H,4BAA4B,EAAAS,KAAA,CAAArC,EAAA,iCAAA7B,aAAA,CAAAA,aAAA;MAAA,eACd6D;IAAW,GACpB9D,YAAY,GACZlC,kBAAkB,iBAEtBhD,KAAA,CAAAc,aAAA,CAACsG,qBAAqB,CAACkC,QAAQ;MAACjF,KAAK,EAAE4E;IAAa,GACjD7D,QAC6B,CACJ,CAAC;EAEnC;EACA,IAAIS,OAAO,EAAE;IAAA,IAAA0D,KAAA;IACX,OAAAA,KAAA,GAAOlK,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC4H,gBAAgB,EAAAa,KAAA,CAAAvC,EAAA,qBAAA7B,aAAA;MAAA,eACF6D,WAAW;MAAA,SACjBxI,IAAI;MAAA,OACNZ,OAAO,CAACkF,GAAG,EAAEH,OAAO,CAAC;MAAA,OACrB5E,OAAO;MAAA,kBACI,CAAC,OAAO;IAAC,GACrBmF,YAAY,iBAEhBlF,KAAA,CAAAc,aAAA,CAAC2H,UAAU,EAAAc,KAAA,CAAAvC,EAAA,oBAAEiC,YAAY,CAACC,QAAqB,CAAC,eAChDlJ,KAAA,CAAAc,aAAA,CAAC0H,KAAK,EAAAe,KAAA,CAAAvC,EAAA,eAAEiC,YAAY,CAACG,IAAY,CACjB,CAAC;EAEvB;EACA,OAAA7B,KAAA,GAAOlI,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC4H,gBAAgB,EAAAnB,KAAA,CAAAP,EAAA,qBAAA7B,aAAA,CAAAA,aAAA,KAAKqC,UAAU;IAAA,OAAOxB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI0B;EAAa,kBAClE1H,KAAA,CAAAc,aAAA,CAAC2H,UAAU,EAAAlB,KAAA,CAAAP,EAAA,oBAAEiC,YAAY,CAACC,QAAqB,CAAC,eAChDlJ,KAAA,CAAAc,aAAA,CAAC0H,KAAK,EAAAjB,KAAA,CAAAP,EAAA,eAAEiC,YAAY,CAACG,IAAY,CACjB,CAAC;AAEvB,CAAC;AAOD,IAAM5C,OAAyC,GAAG,SAA5CA,OAAyCA,CAAAgD,KAAA,EAA6B;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAAA,IAAvB/D,MAAM,GAAA4D,KAAA,CAAN5D,MAAM;IAAElB,QAAQ,GAAA8E,KAAA,CAAR9E,QAAQ;EACnE,IAAMc,SAAS,GAgBMzF,OAAO,CAAC6J,OAAO;EAfpC,IAAMC,qBAAqB,GAAG7J,KAAK,CAAC8J,UAAU,CAAC1C,qBAAqB,CAAC;EACrE,IAAMoB,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EAEzB,IAAIoB,qBAAqB,EAAE;IAAA,IAAAE,KAAA;IACzB,IAAQb,QAAQ,GAAgBW,qBAAqB,CAA7CX,QAAQ;MAAEE,IAAI,GAAUS,qBAAqB,CAAnCT,IAAI;MAAEtE,GAAG,GAAK+E,qBAAqB,CAA7B/E,GAAG;IAC3B,OAAAiF,KAAA,GAAO1K,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC0E,SAAS,EAAAuE,KAAA,CAAA/C,EAAA,cAAA7B,aAAA,KAAA6E,YAAA;MAAA;MAAA,OAA0ClF;IAAG,GAAA2E,IAAA,kBACrDzJ,KAAA,CAAAc,aAAA,CAAC2H,UAAU,EAAAsB,KAAA,CAAA/C,EAAA,oBAAEkC,QAAqB,CAAC,eACnClJ,KAAA,CAAAc,aAAA,CAAC0H,KAAK,EAAAuB,KAAA,CAAA/C,EAAA,eAAEoC,IAAY,CACX,CAAC;EAEhB;EAEA,OAAAO,KAAA,GAAOtK,OAAO,CAACuG,MAAM,CAAC,eACpB5F,KAAA,CAAAc,aAAA,CAAC0E,SAAS,EAAAmE,KAAA,CAAA3C,EAAA,cAAA7B,aAAA,KAAA8E,aAAA,KAAAR,IAAA,kBACRzJ,KAAA,CAAAc,aAAA,CAAC4D,QAAQ,EAAAiF,KAAA,CAAA3C,EAAA,gBAAE,CACF,CAAC;AAEhB,CAAC;AAED,IAAMT,QAAQ,GAAGrH,eAAe,CAACgE,YAAY,EAAE;EAC7CsD,OAAO,EAAPA,OAAO;EACPG,MAAM,EAAE5G,OAAO,CAAC4G;AAClB,CAAC,CAGA;AAED,eAAeJ,QAAQ","ignoreList":[]}
|
package/lib/es6/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import { UnknownProperties, Intergalactic } from '@semcore/core';\nimport
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { Box, BoxProps } from '@semcore/flex-box';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\n/** @deprecated */\nexport interface IEllipsisProps extends EllipsisProps, UnknownProperties {}\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLElement | null>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\ndeclare const useResizeObserver: (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => { width: number };\n\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport { useResizeObserver };\nexport default Ellipsis;\n"],"mappings":"","ignoreList":[]}
|
package/lib/es6/index.js.map
CHANGED
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
4
2
|
import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
|
|
3
|
+
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
4
|
+
import React from 'react';
|
|
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":["
|
|
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":[]}
|
package/lib/esm/Ellipsis.mjs
CHANGED
|
@@ -3,42 +3,46 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
|
|
|
3
3
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
4
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
5
5
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
|
-
import
|
|
6
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
7
|
+
import _isNativeReflectConstruct from "@babel/runtime/helpers/esm/isNativeReflectConstruct";
|
|
8
|
+
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
7
9
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
8
|
-
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
9
10
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import Tooltip from "@semcore/tooltip";
|
|
13
|
-
import { Box } from "@semcore/flex-box";
|
|
14
|
-
import { useResizeObserver } from "./useResizeObserver.mjs";
|
|
15
|
-
import useEnhancedEffect from "@semcore/core/lib/utils/use/useEnhancedEffect";
|
|
11
|
+
import { createComponent, sstyled, Component, assignProps } from "@semcore/core";
|
|
12
|
+
import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
|
|
16
13
|
import findComponent, { isAdvanceMode } from "@semcore/core/lib/utils/findComponent";
|
|
17
|
-
import reactToText from "@semcore/core/lib/utils/reactToText";
|
|
18
14
|
import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
|
|
19
15
|
import pick from "@semcore/core/lib/utils/pick";
|
|
16
|
+
import reactToText from "@semcore/core/lib/utils/reactToText";
|
|
20
17
|
import { forkRef } from "@semcore/core/lib/utils/ref";
|
|
21
|
-
import
|
|
18
|
+
import useEnhancedEffect from "@semcore/core/lib/utils/use/useEnhancedEffect";
|
|
19
|
+
import { Box } from "@semcore/flex-box";
|
|
20
|
+
import Tooltip from "@semcore/tooltip";
|
|
21
|
+
import React from "react";
|
|
22
|
+
import { useResizeObserver } from "./useResizeObserver.mjs";
|
|
22
23
|
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"], _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
|
|
24
|
+
function _callSuper(t, o, e) {
|
|
25
|
+
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
|
26
|
+
}
|
|
23
27
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
24
28
|
var style = (
|
|
25
29
|
/*__reshadow_css_start__*/
|
|
26
30
|
(sstyled.insert(
|
|
27
31
|
/*__inner_css_start__*/
|
|
28
|
-
".
|
|
32
|
+
".___SContainerMiddle_1656k_gg_,.___SContainer_1656k_gg_,.___SEllipsis_1656k_gg_.__middle-mod_1656k_gg_,.___SNoTooltipContainer_1656k_gg_{display:flex;overflow:hidden}.___SBeginning_1656k_gg_,.___SEllipsis_1656k_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_1656k_gg_.__maxLine_1656k_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_1656k);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_1656k_gg_>:has(.___SBeginning_1656k_gg_),.___SContainerMiddle_1656k_gg_>:has(.___STail_1656k_gg_){display:flex;width:100%}.___STail_1656k_gg_{white-space:pre}",
|
|
29
33
|
/*__inner_css_end__*/
|
|
30
|
-
"
|
|
34
|
+
"1656k_gg_"
|
|
31
35
|
), /*__reshadow_css_end__*/
|
|
32
36
|
{
|
|
33
|
-
"__SContainer": "
|
|
34
|
-
"__SNoTooltipContainer": "
|
|
35
|
-
"__SContainerMiddle": "
|
|
36
|
-
"__SBeginning": "
|
|
37
|
-
"__SEllipsis": "
|
|
38
|
-
"_middle-mod": "__middle-
|
|
39
|
-
"_maxLine": "
|
|
40
|
-
"--maxLine": "--
|
|
41
|
-
"__STail": "
|
|
37
|
+
"__SContainer": "___SContainer_1656k_gg_",
|
|
38
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_1656k_gg_",
|
|
39
|
+
"__SContainerMiddle": "___SContainerMiddle_1656k_gg_",
|
|
40
|
+
"__SBeginning": "___SBeginning_1656k_gg_",
|
|
41
|
+
"__SEllipsis": "___SEllipsis_1656k_gg_",
|
|
42
|
+
"_middle-mod": "__middle-mod_1656k_gg_",
|
|
43
|
+
"_maxLine": "__maxLine_1656k_gg_",
|
|
44
|
+
"--maxLine": "--maxLine_1656k",
|
|
45
|
+
"__STail": "___STail_1656k_gg_"
|
|
42
46
|
})
|
|
43
47
|
);
|
|
44
48
|
var defaultTooltipProps = ["title", "theme", "strategy", "modifiers", "placement", "interaction", "timeout", "visible", "defaultVisible", "onVisibleChange", "offset", "preventOverflow", "arrow", "flip", "computeStyles", "eventListeners", "onFirstUpdate", "cursorAnchoring"];
|
|
@@ -87,27 +91,26 @@ var forcedAdvancedMode = {
|
|
|
87
91
|
};
|
|
88
92
|
var noAdvancedMode = {};
|
|
89
93
|
var RootEllipsis = /* @__PURE__ */ function(_Component) {
|
|
90
|
-
_inherits(RootEllipsis2, _Component);
|
|
91
|
-
var _super = _createSuper(RootEllipsis2);
|
|
92
94
|
function RootEllipsis2() {
|
|
93
95
|
var _this;
|
|
94
96
|
_classCallCheck(this, RootEllipsis2);
|
|
95
97
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
96
98
|
args[_key] = arguments[_key];
|
|
97
99
|
}
|
|
98
|
-
_this =
|
|
99
|
-
_defineProperty(
|
|
100
|
+
_this = _callSuper(this, RootEllipsis2, [].concat(args));
|
|
101
|
+
_defineProperty(_this, "state", {
|
|
100
102
|
visible: false
|
|
101
103
|
});
|
|
102
|
-
_defineProperty(
|
|
103
|
-
_defineProperty(
|
|
104
|
+
_defineProperty(_this, "textRef", /* @__PURE__ */ React.createRef());
|
|
105
|
+
_defineProperty(_this, "handlerVisibleChange", function(visible) {
|
|
104
106
|
_this.setState({
|
|
105
107
|
visible: visible && _this.showTooltip()
|
|
106
108
|
});
|
|
107
109
|
});
|
|
108
110
|
return _this;
|
|
109
111
|
}
|
|
110
|
-
|
|
112
|
+
_inherits(RootEllipsis2, _Component);
|
|
113
|
+
return _createClass(RootEllipsis2, [{
|
|
111
114
|
key: "showTooltip",
|
|
112
115
|
value: function showTooltip() {
|
|
113
116
|
var _this$asProps = this.asProps, _this$asProps$maxLine = _this$asProps.maxLine, maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine, Children = _this$asProps.Children;
|
|
@@ -180,7 +183,6 @@ var RootEllipsis = /* @__PURE__ */ function(_Component) {
|
|
|
180
183
|
}, other)), /* @__PURE__ */ React.createElement(Children, _ref4.cn("Children", {}))));
|
|
181
184
|
}
|
|
182
185
|
}]);
|
|
183
|
-
return RootEllipsis2;
|
|
184
186
|
}(Component);
|
|
185
187
|
_defineProperty(RootEllipsis, "displayName", "Ellipsis");
|
|
186
188
|
_defineProperty(RootEllipsis, "style", style);
|
|
@@ -252,9 +254,9 @@ var EllipsisMiddle = function EllipsisMiddle2(props) {
|
|
|
252
254
|
"ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
|
|
253
255
|
})), /* @__PURE__ */ React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
|
|
254
256
|
};
|
|
255
|
-
var Content = function Content2(
|
|
257
|
+
var Content = function Content2(_ref0) {
|
|
256
258
|
var _ref = arguments[0], _ref9;
|
|
257
|
-
var styles =
|
|
259
|
+
var styles = _ref0.styles, Children = _ref0.Children;
|
|
258
260
|
var SEllipsis = Tooltip.Trigger;
|
|
259
261
|
var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
|
|
260
262
|
var STail = "span";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import useEnhancedEffect from "@semcore/core/lib/utils/use/useEnhancedEffect";
|
|
4
2
|
import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
|
|
3
|
+
import useEnhancedEffect from "@semcore/core/lib/utils/use/useEnhancedEffect";
|
|
4
|
+
import React from "react";
|
|
5
5
|
var useResizeObserver = function useResizeObserver2(ref, hookOverride) {
|
|
6
6
|
var _React$useState = React.useState(0), _React$useState2 = _slicedToArray(_React$useState, 2), width = _React$useState2[0], setWidth = _React$useState2[1];
|
|
7
7
|
var handleResize = React.useCallback(function(entries) {
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { UnknownProperties, Intergalactic } from '@semcore/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import Tooltip
|
|
1
|
+
import type { UnknownProperties, Intergalactic } from '@semcore/core';
|
|
2
|
+
import type { Box, BoxProps } from '@semcore/flex-box';
|
|
3
|
+
import type { TooltipProps } from '@semcore/tooltip';
|
|
4
|
+
import type Tooltip from '@semcore/tooltip';
|
|
5
|
+
import type { RefObject } from 'react';
|
|
5
6
|
|
|
6
7
|
/** @deprecated */
|
|
7
8
|
export interface IEllipsisProps extends EllipsisProps, UnknownProperties {}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/ellipsis",
|
|
3
3
|
"description": "Semrush Ellipsis Component",
|
|
4
|
-
"version": "16.0.
|
|
4
|
+
"version": "16.0.2-prerelease.3",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@semcore/tooltip": "16.0.
|
|
18
|
-
"@semcore/flex-box": "16.0.
|
|
17
|
+
"@semcore/tooltip": "16.0.2-prerelease.3",
|
|
18
|
+
"@semcore/flex-box": "16.0.2-prerelease.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"@semcore/base-components": "^16.0.
|
|
21
|
+
"@semcore/base-components": "^16.0.2-prerelease.3"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@
|
|
25
|
-
"@semcore/
|
|
24
|
+
"@semcore/testing-utils": "1.0.0",
|
|
25
|
+
"@semcore/core": "16.0.0"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|