@semcore/ellipsis 2.40.0-prerelease.4 → 2.40.0-prerelease.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/Ellipsis.js +75 -142
- 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/style/ellipsis.shadow.css +8 -8
- package/lib/cjs/useResizeObserver.js +4 -5
- package/lib/cjs/useResizeObserver.js.map +1 -1
- package/lib/cjs/utils.js +53 -0
- package/lib/cjs/utils.js.map +1 -0
- package/lib/es6/Ellipsis.js +71 -136
- 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/style/ellipsis.shadow.css +8 -8
- package/lib/es6/useResizeObserver.js +2 -2
- package/lib/es6/useResizeObserver.js.map +1 -1
- package/lib/es6/utils.js +46 -0
- package/lib/es6/utils.js.map +1 -0
- package/lib/esm/Ellipsis.mjs +70 -135
- package/lib/esm/style/ellipsis.shadow.css +8 -8
- package/lib/esm/useResizeObserver.mjs +2 -2
- package/lib/esm/utils.mjs +47 -0
- package/lib/types/index.d.ts +12 -9
- package/package.json +5 -5
package/lib/cjs/utils.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isTextOverflowing = isTextOverflowing;
|
|
7
|
+
exports.setFontSettings = void 0;
|
|
8
|
+
var setFontSettings = exports.setFontSettings = function setFontSettings(element, styleElement) {
|
|
9
|
+
element.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
10
|
+
element.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
11
|
+
element.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
12
|
+
element.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
13
|
+
element.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
14
|
+
element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
15
|
+
};
|
|
16
|
+
function isTextOverflowing(element, multiline, text) {
|
|
17
|
+
if (!element) return false;
|
|
18
|
+
var _element$getBoundingC = element.getBoundingClientRect(),
|
|
19
|
+
currentHeight = _element$getBoundingC.height,
|
|
20
|
+
currentWidth = _element$getBoundingC.width;
|
|
21
|
+
var measuringElement = createMeasurerElement(element, text);
|
|
22
|
+
var isOverflowing = false;
|
|
23
|
+
document.body.appendChild(measuringElement);
|
|
24
|
+
if (multiline) {
|
|
25
|
+
measuringElement.style.width = "".concat(currentWidth, "px");
|
|
26
|
+
var width = measuringElement.scrollWidth;
|
|
27
|
+
var height = measuringElement.getBoundingClientRect().height;
|
|
28
|
+
if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
|
|
29
|
+
isOverflowing = true;
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
measuringElement.style.whiteSpace = 'nowrap';
|
|
33
|
+
isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
|
|
34
|
+
}
|
|
35
|
+
document.body.removeChild(measuringElement);
|
|
36
|
+
return isOverflowing;
|
|
37
|
+
}
|
|
38
|
+
function createMeasurerElement(element, text) {
|
|
39
|
+
var styleElement = window.getComputedStyle(element, null);
|
|
40
|
+
var temporaryElement = document.createElement('temporary-block');
|
|
41
|
+
temporaryElement.style.display = styleElement.getPropertyValue('display');
|
|
42
|
+
temporaryElement.style.padding = styleElement.getPropertyValue('padding');
|
|
43
|
+
temporaryElement.style.position = 'absolute';
|
|
44
|
+
temporaryElement.style.right = '0%';
|
|
45
|
+
temporaryElement.style.bottom = '0%';
|
|
46
|
+
temporaryElement.style.visibility = 'hidden';
|
|
47
|
+
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
48
|
+
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
49
|
+
setFontSettings(temporaryElement, styleElement);
|
|
50
|
+
temporaryElement.textContent = text !== null && text !== void 0 ? text : element.textContent;
|
|
51
|
+
return temporaryElement;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["setFontSettings","exports","element","styleElement","style","fontFamily","getPropertyValue","fontSize","fontWeight","lineHeight","fontFeatureSettings","fontVariantNumeric","isTextOverflowing","multiline","text","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","createMeasurerElement","isOverflowing","document","body","appendChild","concat","scrollWidth","Math","ceil","whiteSpace","removeChild","window","getComputedStyle","temporaryElement","createElement","display","padding","position","right","bottom","visibility","wordWrap","textContent"],"sources":["../../src/utils.ts"],"sourcesContent":["export const setFontSettings = (element: HTMLElement, styleElement: CSSStyleDeclaration): void => {\n element.style.fontFamily = styleElement.getPropertyValue('font-family');\n element.style.fontSize = styleElement.getPropertyValue('font-size');\n element.style.fontWeight = styleElement.getPropertyValue('font-weight');\n element.style.lineHeight = styleElement.getPropertyValue('line-height');\n element.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n element.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n};\n\nexport function isTextOverflowing(element: HTMLElement | null, multiline: boolean, text: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nfunction createMeasurerElement(element: HTMLElement, text?: string) {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n setFontSettings(temporaryElement, styleElement);\n\n temporaryElement.textContent = text ?? element.textContent;\n return temporaryElement;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/es6/Ellipsis.js
CHANGED
|
@@ -3,110 +3,66 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
3
3
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
4
4
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
5
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
-
import
|
|
6
|
+
import _callSuper from "@babel/runtime/helpers/callSuper";
|
|
7
7
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
|
-
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
9
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
|
-
import { sstyled as _sstyled } from "@semcore/
|
|
9
|
+
import { sstyled as _sstyled } from "@semcore/core";
|
|
11
10
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
12
11
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
13
|
-
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"]
|
|
14
|
-
|
|
15
|
-
import
|
|
16
|
-
import
|
|
12
|
+
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"];
|
|
13
|
+
import { Box } from '@semcore/base-components';
|
|
14
|
+
import { createComponent, Component, Root, sstyled } from '@semcore/core';
|
|
15
|
+
import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
|
|
16
|
+
import findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';
|
|
17
|
+
import getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';
|
|
18
|
+
import pick from '@semcore/core/lib/utils/pick';
|
|
19
|
+
import reactToText from '@semcore/core/lib/utils/reactToText';
|
|
20
|
+
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
21
|
+
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
17
22
|
import Tooltip from '@semcore/tooltip';
|
|
18
|
-
import
|
|
19
|
-
import { useResizeObserver } from './useResizeObserver';
|
|
20
|
-
import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
|
|
21
|
-
import findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';
|
|
23
|
+
import React from 'react';
|
|
22
24
|
/*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
23
|
-
var style = (
|
|
25
|
+
var style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SBeginning_hyasj_gg_,.___SEllipsis_hyasj_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_hyasj_gg_.__maxLine_hyasj_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_hyasj);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_hyasj_gg_,.___SContainer_hyasj_gg_,.___SEllipsis_hyasj_gg_.__middle-mod_hyasj_gg_,.___SNoTooltipContainer_hyasj_gg_{display:flex;overflow:hidden}.___SContainerMiddle_hyasj_gg_>:has(.___SBeginning_hyasj_gg_),.___SContainerMiddle_hyasj_gg_>:has(.___STail_hyasj_gg_){display:flex;width:100%}.___STail_hyasj_gg_{white-space:pre}", /*__inner_css_end__*/"hyasj_gg_"),
|
|
24
26
|
/*__reshadow_css_end__*/
|
|
25
27
|
{
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"__STail": "
|
|
28
|
+
"__SBeginning": "___SBeginning_hyasj_gg_",
|
|
29
|
+
"__SEllipsis": "___SEllipsis_hyasj_gg_",
|
|
30
|
+
"__SContainer": "___SContainer_hyasj_gg_",
|
|
31
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_hyasj_gg_",
|
|
32
|
+
"__SContainerMiddle": "___SContainerMiddle_hyasj_gg_",
|
|
33
|
+
"_maxLine": "__maxLine_hyasj_gg_",
|
|
34
|
+
"--maxLine": "--maxLine_hyasj",
|
|
35
|
+
"_middle-mod": "__middle-mod_hyasj_gg_",
|
|
36
|
+
"__STail": "___STail_hyasj_gg_"
|
|
35
37
|
});
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import pick from '@semcore/utils/lib/pick';
|
|
39
|
-
import { forkRef } from '@semcore/utils/lib/ref';
|
|
40
|
-
import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
|
|
38
|
+
import { useResizeObserver } from './useResizeObserver';
|
|
39
|
+
import { isTextOverflowing, setFontSettings } from './utils';
|
|
41
40
|
var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
42
|
-
var createMeasurerElement = function createMeasurerElement(element, text) {
|
|
43
|
-
var styleElement = window.getComputedStyle(element, null);
|
|
44
|
-
var temporaryElement = document.createElement('temporary-block');
|
|
45
|
-
temporaryElement.style.display = styleElement.getPropertyValue('display');
|
|
46
|
-
temporaryElement.style.padding = styleElement.getPropertyValue('padding');
|
|
47
|
-
temporaryElement.style.position = 'absolute';
|
|
48
|
-
temporaryElement.style.right = '0%';
|
|
49
|
-
temporaryElement.style.bottom = '0%';
|
|
50
|
-
temporaryElement.style.visibility = 'hidden';
|
|
51
|
-
temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
52
|
-
temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
53
|
-
temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
54
|
-
temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
55
|
-
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
56
|
-
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
57
|
-
temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
58
|
-
temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
59
|
-
temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
|
|
60
|
-
return temporaryElement;
|
|
61
|
-
};
|
|
62
|
-
function isTextOverflowing(element, multiline, text) {
|
|
63
|
-
if (!element) return false;
|
|
64
|
-
var _element$getBoundingC = element.getBoundingClientRect(),
|
|
65
|
-
currentHeight = _element$getBoundingC.height,
|
|
66
|
-
currentWidth = _element$getBoundingC.width;
|
|
67
|
-
var measuringElement = createMeasurerElement(element, text);
|
|
68
|
-
var isOverflowing = false;
|
|
69
|
-
document.body.appendChild(measuringElement);
|
|
70
|
-
if (multiline) {
|
|
71
|
-
measuringElement.style.width = "".concat(currentWidth, "px");
|
|
72
|
-
var width = measuringElement.scrollWidth;
|
|
73
|
-
var height = measuringElement.getBoundingClientRect().height;
|
|
74
|
-
if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
|
|
75
|
-
isOverflowing = true;
|
|
76
|
-
}
|
|
77
|
-
} else {
|
|
78
|
-
measuringElement.style.whiteSpace = 'nowrap';
|
|
79
|
-
isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
|
|
80
|
-
}
|
|
81
|
-
document.body.removeChild(measuringElement);
|
|
82
|
-
return isOverflowing;
|
|
83
|
-
}
|
|
84
41
|
var forcedAdvancedMode = {
|
|
85
42
|
forcedAdvancedMode: true
|
|
86
43
|
};
|
|
87
44
|
var noAdvancedMode = {};
|
|
88
45
|
var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
89
|
-
_inherits(RootEllipsis, _Component);
|
|
90
|
-
var _super = _createSuper(RootEllipsis);
|
|
91
46
|
function RootEllipsis() {
|
|
92
47
|
var _this;
|
|
93
48
|
_classCallCheck(this, RootEllipsis);
|
|
94
49
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
95
50
|
args[_key] = arguments[_key];
|
|
96
51
|
}
|
|
97
|
-
_this =
|
|
98
|
-
_defineProperty(
|
|
52
|
+
_this = _callSuper(this, RootEllipsis, [].concat(args));
|
|
53
|
+
_defineProperty(_this, "state", {
|
|
99
54
|
visible: false
|
|
100
55
|
});
|
|
101
|
-
_defineProperty(
|
|
102
|
-
_defineProperty(
|
|
56
|
+
_defineProperty(_this, "textRef", /*#__PURE__*/React.createRef());
|
|
57
|
+
_defineProperty(_this, "handlerVisibleChange", function (visible) {
|
|
103
58
|
_this.setState({
|
|
104
59
|
visible: visible && _this.showTooltip()
|
|
105
60
|
});
|
|
106
61
|
});
|
|
107
62
|
return _this;
|
|
108
63
|
}
|
|
109
|
-
|
|
64
|
+
_inherits(RootEllipsis, _Component);
|
|
65
|
+
return _createClass(RootEllipsis, [{
|
|
110
66
|
key: "showTooltip",
|
|
111
67
|
value: function showTooltip() {
|
|
112
68
|
var _this$asProps = this.asProps,
|
|
@@ -139,10 +95,9 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
139
95
|
}, {
|
|
140
96
|
key: "render",
|
|
141
97
|
value: function render() {
|
|
142
|
-
var
|
|
98
|
+
var _ref3, _tooltipProps$visible;
|
|
143
99
|
var SEllipsis = this.Root;
|
|
144
100
|
var SContainer = Tooltip;
|
|
145
|
-
var SNoTooltipContainer = Box;
|
|
146
101
|
var _this$asProps3 = this.asProps,
|
|
147
102
|
styles = _this$asProps3.styles,
|
|
148
103
|
Children = _this$asProps3.Children,
|
|
@@ -152,7 +107,7 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
152
107
|
containerRect = _this$asProps3.containerRect,
|
|
153
108
|
containerRef = _this$asProps3.containerRef,
|
|
154
109
|
includeTooltipProps = _this$asProps3.includeTooltipProps,
|
|
155
|
-
|
|
110
|
+
_children = _this$asProps3.children,
|
|
156
111
|
other = _objectWithoutProperties(_this$asProps3, _excluded);
|
|
157
112
|
var visible = this.state.visible;
|
|
158
113
|
var advancedContent = findComponent(Children, [Ellipsis.Content.displayName]);
|
|
@@ -174,25 +129,16 @@ var RootEllipsis = /*#__PURE__*/function (_Component) {
|
|
|
174
129
|
"advanceMode": advanceMode
|
|
175
130
|
}, other)), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {})));
|
|
176
131
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"title": !advanceMode ? text : undefined
|
|
182
|
-
}, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
|
|
183
|
-
"render": Box,
|
|
184
|
-
"ref": this.textRef,
|
|
185
|
-
"maxLine": maxLine
|
|
186
|
-
}, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
|
|
187
|
-
}
|
|
188
|
-
return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SNoTooltipContainer, _ref4.cn("SNoTooltipContainer", {}), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref4.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref4.cn("SEllipsis", _objectSpread({
|
|
132
|
+
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
|
|
133
|
+
"interaction": tooltip ? 'hover' : 'none',
|
|
134
|
+
"title": !advanceMode ? text : undefined
|
|
135
|
+
}, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {})) : /*#__PURE__*/React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
|
|
189
136
|
"render": Box,
|
|
190
137
|
"ref": this.textRef,
|
|
191
138
|
"maxLine": maxLine
|
|
192
|
-
}, other)), /*#__PURE__*/React.createElement(Children,
|
|
139
|
+
}, other)), /*#__PURE__*/React.createElement(Children, _ref3.cn("Children", {}))));
|
|
193
140
|
}
|
|
194
141
|
}]);
|
|
195
|
-
return RootEllipsis;
|
|
196
142
|
}(Component);
|
|
197
143
|
_defineProperty(RootEllipsis, "displayName", 'Ellipsis');
|
|
198
144
|
_defineProperty(RootEllipsis, "style", style);
|
|
@@ -203,8 +149,8 @@ _defineProperty(RootEllipsis, "defaultProps", {
|
|
|
203
149
|
__excludeProps: ['title']
|
|
204
150
|
});
|
|
205
151
|
var EllipsisMiddleContext = /*#__PURE__*/React.createContext(null);
|
|
206
|
-
|
|
207
|
-
var
|
|
152
|
+
function EllipsisMiddle(props) {
|
|
153
|
+
var _ref5;
|
|
208
154
|
var styles = props.styles,
|
|
209
155
|
text = props.text,
|
|
210
156
|
tooltip = props.tooltip,
|
|
@@ -214,37 +160,33 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
|
214
160
|
tooltipProps = props.tooltipProps,
|
|
215
161
|
children = props.children,
|
|
216
162
|
advanceMode = props.advanceMode,
|
|
217
|
-
|
|
163
|
+
tag = props.tag;
|
|
218
164
|
var resizeElement = React.useRef(null);
|
|
219
|
-
var _React$useState = React.useState(
|
|
220
|
-
fontSize: '14',
|
|
221
|
-
symbolWidth: 0
|
|
222
|
-
}),
|
|
165
|
+
var _React$useState = React.useState(0),
|
|
223
166
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
224
|
-
|
|
225
|
-
|
|
167
|
+
symbolWidth = _React$useState2[0],
|
|
168
|
+
setSymbolWidth = _React$useState2[1];
|
|
226
169
|
var blockWidth = useResizeObserver(resizeElement, containerRect).width;
|
|
227
170
|
useEnhancedEffect(function () {
|
|
228
171
|
var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
|
|
229
172
|
if (!node) return;
|
|
173
|
+
var styleElement = window.getComputedStyle(node);
|
|
230
174
|
var dateSpan = document.createElement('temporary-block');
|
|
231
|
-
dateSpan
|
|
232
|
-
dateSpan.
|
|
175
|
+
setFontSettings(dateSpan, styleElement);
|
|
176
|
+
dateSpan.textContent = 'a';
|
|
233
177
|
document.body.appendChild(dateSpan);
|
|
234
178
|
var rect = dateSpan.getBoundingClientRect();
|
|
235
|
-
|
|
236
|
-
fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),
|
|
237
|
-
symbolWidth: rect.width
|
|
238
|
-
});
|
|
179
|
+
setSymbolWidth(rect.width);
|
|
239
180
|
document.body.removeChild(dateSpan);
|
|
240
181
|
}, []);
|
|
241
182
|
var STail = 'span';
|
|
242
183
|
var SBeginning = 'span';
|
|
243
|
-
var SContainerMiddle =
|
|
184
|
+
var SContainerMiddle = Tooltip;
|
|
244
185
|
var SAdvancedModeContainerMiddle = Tooltip;
|
|
245
186
|
var displayedSymbols = React.useMemo(function () {
|
|
246
|
-
|
|
247
|
-
|
|
187
|
+
var displayedSymbols = Math.round(blockWidth / symbolWidth);
|
|
188
|
+
return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;
|
|
189
|
+
}, [blockWidth, symbolWidth]);
|
|
248
190
|
var interaction = text.length > displayedSymbols ? 'hover' : 'none';
|
|
249
191
|
var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
|
|
250
192
|
var contextValue = React.useMemo(function () {
|
|
@@ -255,48 +197,41 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
|
|
|
255
197
|
};
|
|
256
198
|
}, [text, displayedSymbols]);
|
|
257
199
|
if (advanceMode) {
|
|
258
|
-
var
|
|
259
|
-
return
|
|
260
|
-
"interaction": interaction
|
|
200
|
+
var _ref4;
|
|
201
|
+
return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SAdvancedModeContainerMiddle, _ref4.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
|
|
202
|
+
"interaction": tooltip ? interaction : 'none'
|
|
261
203
|
}, tooltipProps), forcedAdvancedMode)), /*#__PURE__*/React.createElement(EllipsisMiddleContext.Provider, {
|
|
262
204
|
value: contextValue
|
|
263
205
|
}, children));
|
|
264
206
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
|
|
274
|
-
}
|
|
275
|
-
return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
276
|
-
"ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
|
|
277
|
-
})), /*#__PURE__*/React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
|
|
278
|
-
};
|
|
279
|
-
var Content = function Content(_ref10) {
|
|
207
|
+
return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SContainerMiddle, _ref5.cn("SContainerMiddle", _objectSpread({
|
|
208
|
+
"interaction": tooltip ? interaction : 'none',
|
|
209
|
+
"title": text,
|
|
210
|
+
"ref": forkRef(ref, textRef),
|
|
211
|
+
"tag": tag
|
|
212
|
+
}, tooltipProps)), /*#__PURE__*/React.createElement(SBeginning, _ref5.cn("SBeginning", {}), contextValue.begining), /*#__PURE__*/React.createElement(STail, _ref5.cn("STail", {}), contextValue.tail));
|
|
213
|
+
}
|
|
214
|
+
function Content(_ref8) {
|
|
280
215
|
var _ref = arguments[0],
|
|
281
|
-
|
|
282
|
-
var styles =
|
|
283
|
-
Children =
|
|
216
|
+
_ref7;
|
|
217
|
+
var styles = _ref8.styles,
|
|
218
|
+
Children = _ref8.Children;
|
|
284
219
|
var SEllipsis = Tooltip.Trigger;
|
|
285
220
|
var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
|
|
286
221
|
var STail = 'span';
|
|
287
222
|
var SBeginning = 'span';
|
|
288
223
|
if (ellipsisMiddleContext) {
|
|
289
|
-
var
|
|
224
|
+
var _ref6;
|
|
290
225
|
var begining = ellipsisMiddleContext.begining,
|
|
291
226
|
tail = ellipsisMiddleContext.tail,
|
|
292
227
|
ref = ellipsisMiddleContext.ref;
|
|
293
|
-
return
|
|
228
|
+
return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref6.cn("SEllipsis", _objectSpread({}, _assignProps({
|
|
294
229
|
"middle-mod": true,
|
|
295
230
|
"ref": ref
|
|
296
|
-
}, _ref))), /*#__PURE__*/React.createElement(SBeginning,
|
|
231
|
+
}, _ref))), /*#__PURE__*/React.createElement(SBeginning, _ref6.cn("SBeginning", {}), begining), /*#__PURE__*/React.createElement(STail, _ref6.cn("STail", {}), tail));
|
|
297
232
|
}
|
|
298
|
-
return
|
|
299
|
-
}
|
|
233
|
+
return _ref7 = sstyled(styles), /*#__PURE__*/React.createElement(SEllipsis, _ref7.cn("SEllipsis", _objectSpread({}, _assignProps2({}, _ref))), /*#__PURE__*/React.createElement(Children, _ref7.cn("Children", {})));
|
|
234
|
+
}
|
|
300
235
|
var Ellipsis = createComponent(RootEllipsis, {
|
|
301
236
|
Content: Content,
|
|
302
237
|
Popper: Tooltip.Popper
|
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/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,eAAe,IAAIC,SAAS,EAAiBC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AACxF,OAAOC,OAAO,MAAwB,kBAAkB;AACxD,SAASC,GAAG,QAAkB,mBAAmB;AACjD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,OAAOC,iBAAiB,MAAM,0CAA0C;AACxE,OAAOC,aAAa,IAAIC,aAAa,QAAQ,kCAAkC;AAAC;AAAA,IAAAC,KAAA,+BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAGhF,OAAOC,WAAW,MAAM,gCAAgC;AACxD,OAAOC,iBAAiB,MAAM,sCAAsC;AACpE,OAAOC,IAAI,MAAM,yBAAyB;AAC1C,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,oBAAoB,QAAQ,gCAAgC;AA4DrE,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,CAACf,KAAK,CAACkB,OAAO,GAAGN,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACf,KAAK,CAACoB,OAAO,GAAGR,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACf,KAAK,CAACqB,QAAQ,GAAG,UAAU;EAC5CN,gBAAgB,CAACf,KAAK,CAACsB,KAAK,GAAG,IAAI;EACnCP,gBAAgB,CAACf,KAAK,CAACuB,MAAM,GAAG,IAAI;EACpCR,gBAAgB,CAACf,KAAK,CAACwB,UAAU,GAAG,QAAQ;EAC5CT,gBAAgB,CAACf,KAAK,CAACyB,UAAU,GAAGb,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACf,KAAK,CAAC0B,QAAQ,GAAGd,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAC5EJ,gBAAgB,CAACf,KAAK,CAAC2B,UAAU,GAAGf,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACf,KAAK,CAAC4B,UAAU,GAAGhB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACf,KAAK,CAAC6B,UAAU,GAAGjB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACf,KAAK,CAAC8B,QAAQ,GAAGlB,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAE5EJ,gBAAgB,CAACf,KAAK,CAAC+B,mBAAmB,GACxCnB,YAAY,CAACO,gBAAgB,CAAC,uBAAuB,CAAC;EACxDJ,gBAAgB,CAACf,KAAK,CAACgC,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,EAAE;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,CAAC1C,KAAK,CAACyC,KAAK,MAAAK,MAAA,CAAMN,YAAY,OAAI;IAElD,IAAMC,KAAK,GAAGC,gBAAgB,CAACK,WAAW;IAC1C,IAAMR,MAAM,GAAGG,gBAAgB,CAACL,qBAAqB,EAAE,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,CAAC1C,KAAK,CAAC6B,UAAU,GAAG,QAAQ;IAC5Cc,aAAa,GAAGK,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGE,gBAAgB,CAACL,qBAAqB,EAAE,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;EAAAC,SAAA,CAAAF,YAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,YAAA;IAAA,SAAAO,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,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAV,MAAA,CAAAiB,IAAA;IAAAK,eAAA,CAAAC,sBAAA,CAAAX,KAAA,YAUR;MACNY,OAAO,EAAE;IACX,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAX,KAAA,2BAESrE,KAAK,CAACkF,SAAS,EAAkB;IAAAH,eAAA,CAAAC,sBAAA,CAAAX,KAAA,2BAQpB,UAACY,OAAgB,EAAK;MAC3CZ,KAAA,CAAKc,QAAQ,CAAC;QAAEF,OAAO,EAAEA,OAAO,IAAIZ,KAAA,CAAKe,WAAW;MAAG,CAAC,CAAC;IAC3D,CAAC;IAAA,OAAAf,KAAA;EAAA;EAAAgB,YAAA,CAAArB,YAAA;IAAAsB,GAAA;IAAAC,KAAA,EARD,SAAAH,YAAA,EAAc;MACZ,IAAAI,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,IAAMtE,IAAI,GAAGR,WAAW,CAACC,iBAAiB,CAAC6E,QAAQ,CAAC,CAAC;MACrD,OAAO/C,iBAAiB,CAAC,IAAI,CAACgD,OAAO,CAACC,OAAO,EAAGH,OAAO,GAAG,CAAC,EAAErE,IAAI,CAAC;IACpE;EAAC;IAAAgE,GAAA;IAAAC,KAAA,EAMD,SAAAQ,gBAAA,EAAkB;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,eAAA,EAAiB;MACf,IAAAC,cAAA,GAA0C,IAAI,CAACT,OAAO;QAA9CG,QAAQ,GAAAM,cAAA,CAARN,QAAQ;QAAEO,mBAAmB,GAAAD,cAAA,CAAnBC,mBAAmB;MACrC,IAAM7E,IAAI,GAAGR,WAAW,CAACC,iBAAiB,CAAC6E,QAAQ,CAAC,CAAC;MACrD,IAAMQ,YAAY,GAAGpF,IAAI,CAAC,IAAI,CAACyE,OAAO,EAAEU,mBAAmB,CAAwB;MACnF,OAAAE,aAAA;QAASC,QAAQ,EAAEhF;MAAI,GAAK8E,YAAY;IAC1C;EAAC;IAAAd,GAAA;IAAAC,KAAA,EAED,SAAAgB,OAAA,EAAS;MAAA,IAAAC,KAAA,EAAAC,qBAAA;MACP,IAAMC,SAAS,GAAG,IAAI,CAACvG,IAAI;MAC3B,IAAMwG,UAAU,GAAGtG,OAAO;MAC1B,IAAMuG,mBAAmB,GAAGtG,GAAG;MAC/B,IAAAuG,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;QACnBG,QAAQ,GAAAO,cAAA,CAARP,QAAQ;QACLa,KAAK,GAAAC,wBAAA,CAAAP,cAAA,EAAAQ,SAAA;MAEV,IAAQpC,OAAO,GAAK,IAAI,CAACqC,KAAK,CAAtBrC,OAAO;MACf,IAAMsC,eAAe,GAAG9G,aAAa,CAACmF,QAAQ,EAAE,CAAE4B,QAAQ,CAASC,OAAO,CAACC,WAAW,CAAC,CAAC;MACxF,IAAMpG,IAAI,GAAGR,WAAW,CAACyG,eAAe,IAAIxG,iBAAiB,CAAC6E,QAAQ,CAAC,CAAC;MACxE,IAAM+B,WAAW,GAAGjH,aAAa,CAACkF,QAAQ,EAAE,CACzC4B,QAAQ,CAASC,OAAO,CAACC,WAAW,EACpCF,QAAQ,CAASI,MAAM,CAACF,WAAW,CACrC,CAAC;MACF,IAAMtB,YAAY,GAAGpF,IAAI,CAAC,IAAI,CAACyE,OAAO,EAAEU,mBAAmB,CAAwB;MAEnFC,YAAY,CAACnB,OAAO,IAAAwB,qBAAA,GAAGL,YAAY,CAACnB,OAAO,cAAAwB,qBAAA,cAAAA,qBAAA,GAAIxB,OAAO;MACtDmB,YAAY,CAACyB,eAAe,GAAGzB,YAAY,CAACyB,eAAe,GACvD3G,oBAAoB,CAACkF,YAAY,CAACyB,eAAe,EAAE,IAAI,CAACC,oBAAoB,CAAC,GAC7E,IAAI,CAACA,oBAAoB;MAE7B,IAAId,IAAI,KAAK,QAAQ,EAAE;QAAA,IAAAe,KAAA;QACrB,OAAAA,KAAA,GAAO3H,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAACoG,cAAc,EAAAD,KAAA,CAAAE,EAAA,mBAAA5B,aAAA;UAAA,QACP/E,IAAI;UAAA,UACFwF,MAAM;UAAA,WACLC,OAAO;UAAA,iBACDE,aAAa;UAAA,gBACdC,YAAY;UAAA,WACjB,IAAI,CAACrB,OAAO;UAAA,gBACPO,YAAY;UAAA,eACbuB;QAAW,GACpBR,KAAK,iBAETnH,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAmC,KAAA,CAAAE,EAAA,iBAAG,CACG;MAErB;MACA,IAAIlB,OAAO,EAAE;QAAA,IAAAmB,KAAA;QACX,OAAAA,KAAA,GAAO9H,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAAC+E,UAAU,EAAAuB,KAAA,CAAAD,EAAA,eAAA5B,aAAA,CAAAA,aAAA;UAAA,eACG,OAAO;UAAA,SACZ,CAACsB,WAAW,GAAGrG,IAAI,GAAG6G;QAAS,GAClC/B,YAAY,GACXuB,WAAW,GAAG7D,kBAAkB,GAAGC,cAAc,IAErD4D,WAAW,gBACV3H,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAsC,KAAA,CAAAD,EAAA,iBAAG,gBAEZjI,KAAA,CAAA4B,aAAA,CAAC8E,SAAS,EAAAwB,KAAA,CAAAD,EAAA,cAAA5B,aAAA;UAAA,UAAS/F,GAAG;UAAA,OAAO,IAAI,CAACuF,OAAO;UAAA,WAAWF;QAAO,GAAMwB,KAAK,iBACpEnH,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAsC,KAAA,CAAAD,EAAA,iBAAG,CAEf,CACU;MAEjB;MACA,OAAAzB,KAAA,GAAOpG,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAACgF,mBAAmB,EAAAJ,KAAA,CAAAyB,EAAA,6BACjBN,WAAW,gBACV3H,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAY,KAAA,CAAAyB,EAAA,iBAAG,gBAEZjI,KAAA,CAAA4B,aAAA,CAAC8E,SAAS,EAAAF,KAAA,CAAAyB,EAAA,cAAA5B,aAAA;QAAA,UAAS/F,GAAG;QAAA,OAAO,IAAI,CAACuF,OAAO;QAAA,WAAWF;MAAO,GAAMwB,KAAK,iBACpEnH,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAY,KAAA,CAAAyB,EAAA,iBAAG,CAEf,CACmB;IAE1B;EAAC;EAAA,OAAAjE,YAAA;AAAA,EApHwB9D,SAAS;AAAA6E,eAAA,CAA9Bf,YAAY,iBACK,UAAU;AAAAe,eAAA,CAD3Bf,YAAY,WAEDrD,KAAK;AAAAoE,eAAA,CAFhBf,YAAY,kBAGe;EAC7BgD,IAAI,EAAE,KAAK;EACXD,OAAO,EAAE,IAAI;EACbZ,mBAAmB,EAAEhF,mBAAmB;EACxCiH,cAAc,EAAE,CAAC,OAAO;AAC1B,CAAC;AA+GH,IAAMC,qBAAqB,gBAAGrI,KAAK,CAACsI,aAAa,CAI9C,IAAI,CAAC;AAER,IAAMN,cAAuC,GAAG,SAA1CA,cAAuCA,CAAIO,KAAK,EAAK;EAAA,IAAAC,KAAA;EACzD,IACE1B,MAAM,GAUJyB,KAAK,CAVPzB,MAAM;IACNxF,IAAI,GASFiH,KAAK,CATPjH,IAAI;IACJyF,OAAO,GAQLwB,KAAK,CARPxB,OAAO;IACPE,aAAa,GAOXsB,KAAK,CAPPtB,aAAa;IACbC,YAAY,GAMVqB,KAAK,CANPrB,YAAY;IACZrB,OAAO,GAKL0C,KAAK,CALP1C,OAAO;IACPO,YAAY,GAIVmC,KAAK,CAJPnC,YAAY;IACZE,QAAQ,GAGNiC,KAAK,CAHPjC,QAAQ;IACRqB,WAAW,GAETY,KAAK,CAFPZ,WAAW;IACRc,UAAU,GAAArB,wBAAA,CACXmB,KAAK,EAAAG,UAAA;EACT,IAAMC,aAAa,GAAG3I,KAAK,CAAC4I,MAAM,CAAiB,IAAI,CAAC;EACxD,IAAAC,eAAA,GAAkC7I,KAAK,CAAC8I,QAAQ,CAA4C;MAC1FzG,QAAQ,EAAE,IAAI;MACd0G,WAAW,EAAE;IACf,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA;IAHKK,SAAS,GAAAF,gBAAA;IAAEG,YAAY,GAAAH,gBAAA;EAI9B,IAAMI,UAAU,GAAG7I,iBAAiB,CAACoI,aAAa,EAAE1B,aAAa,CAAC,CAAC7D,KAAK;EAExE5C,iBAAiB,CAAC,YAAM;IACtB,IAAM6I,IAAI,GAAG,CAAAnC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEpB,OAAO,MAAI6C,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7C,OAAO;IAC5D,IAAI,CAACuD,IAAI,EAAE;IAEX,IAAMC,QAAQ,GAAG3H,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;IAC1D0H,QAAQ,CAACC,YAAY,CAAC,OAAO,eAAA9F,MAAA,CAAeyF,SAAS,CAAC7G,QAAQ,QAAK;IACnEiH,QAAQ,CAAC1G,SAAS,GAAG,GAAG;IACxBjB,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAAC8F,QAAQ,CAAC;IACnC,IAAME,IAAI,GAAGF,QAAQ,CAACtG,qBAAqB,EAAE;IAE7CmG,YAAY,CAAC;MACX9G,QAAQ,EAAEb,MAAM,CAACC,gBAAgB,CAAC4H,IAAI,EAAE,IAAI,CAAC,CAACvH,gBAAgB,CAAC,WAAW,CAAC;MAC3EiH,WAAW,EAAES,IAAI,CAACpG;IACpB,CAAC,CAAC;IACFzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACyF,QAAQ,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EACzB,IAAMC,gBAAgB,GAAGpB,KAAK,CAACqB,GAAG,IAAItJ,GAAG;EACzC,IAAMuJ,4BAA4B,GAAGxJ,OAAO;EAC5C,IAAMyJ,gBAAgB,GAAG9J,KAAK,CAAC+J,OAAO,CACpC;IAAA,OAAMpG,IAAI,CAACqG,KAAK,CAACZ,UAAU,GAAGF,SAAS,CAACH,WAAW,CAAC;EAAA,GACpD,CAACK,UAAU,EAAEF,SAAS,CAACH,WAAW,CAAC,CACpC;EAED,IAAMkB,WAAW,GAAG3I,IAAI,CAACmD,MAAM,GAAGqF,gBAAgB,GAAG,OAAO,GAAG,MAAM;EACrE,IAAM9D,GAAG,GAAGkB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAIyB,aAAa;EACzC,IAAMuB,YAAY,GAAGlK,KAAK,CAAC+J,OAAO,CAChC;IAAA,OAAO;MACLI,QAAQ,EAAE7I,IAAI,CAAC8I,SAAS,CAAC,CAAC,EAAE9I,IAAI,CAACmD,MAAM,GAAGqF,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MACnEO,IAAI,EAAE/I,IAAI,CAAC8I,SAAS,CAAC9I,IAAI,CAACmD,MAAM,GAAGqF,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MAC5D9D,GAAG,EAAHA;IACF,CAAC;EAAA,CAAC,EACF,CAAC1E,IAAI,EAAEwI,gBAAgB,CAAC,CACzB;EAED,IAAInC,WAAW,EAAE;IAAA,IAAA2C,KAAA;IACf,OAAAA,KAAA,GAAOlK,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAACiI,4BAA4B,EAAAS,KAAA,CAAArC,EAAA,iCAAA5B,aAAA,CAAAA,aAAA;MAAA,eACd4D;IAAW,GACpB7D,YAAY,GACZtC,kBAAkB,iBAEtB9D,KAAA,CAAA4B,aAAA,CAACyG,qBAAqB,CAACkC,QAAQ;MAAChF,KAAK,EAAE2E;IAAa,GACjD5D,QAAQ,CACsB,CACJ;EAEnC;EACA,IAAIS,OAAO,EAAE;IAAA,IAAAyD,KAAA;IACX,OAAAA,KAAA,GAAOpK,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAAC+H,gBAAgB,EAAAa,KAAA,CAAAvC,EAAA,qBAAA5B,aAAA;MAAA,eACF4D,WAAW;MAAA,SACjB3I,IAAI;MAAA,OACNL,OAAO,CAAC+E,GAAG,EAAEH,OAAO,CAAC;MAAA,OACrBxF,OAAO;MAAA,kBACI,CAAC,OAAO;IAAC,GACrB+F,YAAY,iBAEhBpG,KAAA,CAAA4B,aAAA,CAAC8H,UAAU,EAAAc,KAAA,CAAAvC,EAAA,oBAAEiC,YAAY,CAACC,QAAQ,CAAc,eAChDnK,KAAA,CAAA4B,aAAA,CAAC6H,KAAK,EAAAe,KAAA,CAAAvC,EAAA,eAAEiC,YAAY,CAACG,IAAI,CAAS,CACjB;EAEvB;EACA,OAAA7B,KAAA,GAAOpI,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAAC+H,gBAAgB,EAAAnB,KAAA,CAAAP,EAAA,qBAAA5B,aAAA,CAAAA,aAAA,KAAKoC,UAAU;IAAA,OAAOvB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAIyB;EAAa,kBAClE3I,KAAA,CAAA4B,aAAA,CAAC8H,UAAU,EAAAlB,KAAA,CAAAP,EAAA,oBAAEiC,YAAY,CAACC,QAAQ,CAAc,eAChDnK,KAAA,CAAA4B,aAAA,CAAC6H,KAAK,EAAAjB,KAAA,CAAAP,EAAA,eAAEiC,YAAY,CAACG,IAAI,CAAS,CACjB;AAEvB,CAAC;AAOD,IAAM5C,OAAyC,GAAG,SAA5CA,OAAyCA,CAAAgD,MAAA,EAA6B;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAAA,IAAvB9D,MAAM,GAAA2D,MAAA,CAAN3D,MAAM;IAAElB,QAAQ,GAAA6E,MAAA,CAAR7E,QAAQ;EACnE,IAAMc,SAAS,GAgBMrG,OAAO,CAACwK,OAAO;EAfpC,IAAMC,qBAAqB,GAAG9K,KAAK,CAAC+K,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;MAAErE,GAAG,GAAK8E,qBAAqB,CAA7B9E,GAAG;IAC3B,OAAAgF,KAAA,GAAO5K,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAAC8E,SAAS,EAAAsE,KAAA,CAAA/C,EAAA,cAAA5B,aAAA,KAAA4E,YAAA;MAAA;MAAA,OAA0CjF;IAAG,GAAA0E,IAAA,kBACrD1K,KAAA,CAAA4B,aAAA,CAAC8H,UAAU,EAAAsB,KAAA,CAAA/C,EAAA,oBAAEkC,QAAQ,CAAc,eACnCnK,KAAA,CAAA4B,aAAA,CAAC6H,KAAK,EAAAuB,KAAA,CAAA/C,EAAA,eAAEoC,IAAI,CAAS,CACX;EAEhB;EAEA,OAAAO,KAAA,GAAOxK,OAAO,CAAC0G,MAAM,CAAC,eACpB9G,KAAA,CAAA4B,aAAA,CAAC8E,SAAS,EAAAkE,KAAA,CAAA3C,EAAA,cAAA5B,aAAA,KAAA6E,aAAA,KAAAR,IAAA,kBACR1K,KAAA,CAAA4B,aAAA,CAACgE,QAAQ,EAAAgF,KAAA,CAAA3C,EAAA,iBAAG,CACF;AAEhB,CAAC;AAED,IAAMT,QAAQ,GAAGvH,eAAe,CAAC+D,YAAY,EAAE;EAC7CyD,OAAO,EAAPA,OAAO;EACPG,MAAM,EAAEvH,OAAO,CAACuH;AAClB,CAAC,CAGA;AAED,eAAeJ,QAAQ"}
|
|
1
|
+
{"version":3,"file":"Ellipsis.js","names":["Box","createComponent","Component","Root","sstyled","callAllEventHandlers","findComponent","isAdvanceMode","getOriginChildren","pick","reactToText","forkRef","useEnhancedEffect","Tooltip","React","style","_sstyled","insert","useResizeObserver","isTextOverflowing","setFontSettings","defaultTooltipProps","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","visible","createRef","setState","showTooltip","_inherits","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","text","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref3","_tooltipProps$visible","SEllipsis","SContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","_children","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","createElement","EllipsisMiddle","cn","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref5","tag","resizeElement","useRef","_React$useState","useState","_React$useState2","_slicedToArray","symbolWidth","setSymbolWidth","blockWidth","width","node","styleElement","window","getComputedStyle","dateSpan","document","textContent","body","appendChild","rect","getBoundingClientRect","removeChild","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","Math","round","interaction","contextValue","begining","substring","tail","_ref4","Provider","_ref8","_ref","arguments[0]","_ref7","Trigger","ellipsisMiddleContext","useContext","_ref6","_assignProps","_assignProps2"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@semcore/base-components';\nimport { createComponent, Component, type Intergalactic, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport findComponent, { isAdvanceMode } from '@semcore/core/lib/utils/findComponent';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport pick from '@semcore/core/lib/utils/pick';\nimport reactToText from '@semcore/core/lib/utils/reactToText';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';\nimport Tooltip, { type TooltipProps } from '@semcore/tooltip';\nimport React, { type RefObject } from 'react';\n\nimport style from './style/ellipsis.shadow.css';\nimport { useResizeObserver } from './useResizeObserver';\nimport { isTextOverflowing, setFontSettings } from './utils';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children: _children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n\n return sstyled(styles)(\n <SContainer\n interaction={tooltip ? 'hover' : 'none'}\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode\n ? (\n <Children />\n )\n : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nfunction EllipsisMiddle(props: AsPropsMiddle) {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n tag,\n } = props;\n\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [symbolWidth, setSymbolWidth] = React.useState(0);\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const styleElement = window.getComputedStyle(node);\n const dateSpan = document.createElement('temporary-block');\n\n setFontSettings(dateSpan, styleElement);\n dateSpan.textContent = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setSymbolWidth(rect.width);\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = Tooltip;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => {\n const displayedSymbols = Math.round(blockWidth / symbolWidth);\n\n return displayedSymbols % 2 === 0 ? displayedSymbols : displayedSymbols - 1;\n },\n [blockWidth, symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n );\n }\n return sstyled(styles)(\n <SContainerMiddle\n interaction={tooltip ? interaction : 'none'}\n title={text}\n ref={forkRef(ref, textRef)}\n tag={tag}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n );\n}\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nfunction Content({ styles, Children }: EllipsisContentAsProps) {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n}\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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","ignoreList":[]}
|
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 {
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import type { Box, BoxProps } from '@semcore/base-components';\nimport type { UnknownProperties, Intergalactic } from '@semcore/core';\nimport type { TooltipProps } from '@semcore/tooltip';\nimport type Tooltip from '@semcore/tooltip';\nimport type { RefObject } from 'react';\n\nexport type EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis.\n * Applies only for `trim = end`\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n containerRef?: RefObject<HTMLElement | null>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\ndeclare const useResizeObserver: (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => { width: number };\n/**\n * @deprecated. Use Text with ellipsis property for @semcore/typography.\n */\ndeclare const Ellipsis: Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n\nexport { useResizeObserver };\n"],"mappings":"","ignoreList":[]}
|
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,10 +1,3 @@
|
|
|
1
|
-
SContainer,
|
|
2
|
-
SNoTooltipContainer,
|
|
3
|
-
SContainerMiddle {
|
|
4
|
-
display: flex;
|
|
5
|
-
overflow: hidden;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
1
|
SBeginning,
|
|
9
2
|
SEllipsis {
|
|
10
3
|
overflow: hidden;
|
|
@@ -13,7 +6,9 @@ SEllipsis {
|
|
|
13
6
|
white-space: pre;
|
|
14
7
|
}
|
|
15
8
|
|
|
16
|
-
|
|
9
|
+
SContainer,
|
|
10
|
+
SNoTooltipContainer,
|
|
11
|
+
SContainerMiddle {
|
|
17
12
|
display: flex;
|
|
18
13
|
overflow: hidden;
|
|
19
14
|
}
|
|
@@ -27,6 +22,11 @@ SEllipsis[maxLine] {
|
|
|
27
22
|
overflow-wrap: break-word;
|
|
28
23
|
}
|
|
29
24
|
|
|
25
|
+
SEllipsis[middle-mod] {
|
|
26
|
+
display: flex;
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
30
|
SContainerMiddle> :has(SBeginning),
|
|
31
31
|
SContainerMiddle> :has(STail) {
|
|
32
32
|
display: flex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
|
|
3
|
+
import useEnhancedEffect from '@semcore/core/lib/utils/use/useEnhancedEffect';
|
|
2
4
|
import React from 'react';
|
|
3
|
-
import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
|
|
4
|
-
import canUseDOM from '@semcore/utils/lib/canUseDOM';
|
|
5
5
|
export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
|
|
6
6
|
var _React$useState = React.useState(0),
|
|
7
7
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizeObserver.js","names":["
|
|
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":[]}
|