@semcore/ellipsis 2.36.0-prerelease.0 → 2.36.1-prerelease.0
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/lib/cjs/Ellipsis.js +23 -19
- package/lib/cjs/Ellipsis.js.map +1 -1
- package/lib/es6/Ellipsis.js +23 -19
- package/lib/es6/Ellipsis.js.map +1 -1
- package/package.json +5 -5
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
|
+
## [2.36.1] - 2024-10-16
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `line-height` value to temporary element size calculation.
|
|
10
|
+
|
|
5
11
|
## [2.36.0] - 2024-10-11
|
|
6
12
|
|
|
7
13
|
### Changed
|
package/lib/cjs/Ellipsis.js
CHANGED
|
@@ -29,16 +29,16 @@ var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
|
|
|
29
29
|
var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
|
|
30
30
|
_excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "tooltipProps", "children", "advanceMode"];
|
|
31
31
|
/*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
32
|
-
var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".
|
|
33
|
-
"__SContainer": "
|
|
34
|
-
"__SNoTooltipContainer": "
|
|
35
|
-
"__SContainerMiddle": "
|
|
36
|
-
"__SBeginning": "
|
|
37
|
-
"__SEllipsis": "
|
|
38
|
-
"_middle-mod": "__middle-
|
|
39
|
-
"_maxLine": "
|
|
40
|
-
"--maxLine": "--
|
|
41
|
-
"__STail": "
|
|
32
|
+
var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_193p5_gg_,.___SContainer_193p5_gg_,.___SEllipsis_193p5_gg_.__middle-mod_193p5_gg_,.___SNoTooltipContainer_193p5_gg_{display:flex;overflow:hidden}.___SBeginning_193p5_gg_,.___SEllipsis_193p5_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_193p5_gg_.__maxLine_193p5_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_193p5);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_193p5_gg_>:has(.___SBeginning_193p5_gg_),.___SContainerMiddle_193p5_gg_>:has(.___STail_193p5_gg_){display:flex;width:100%}.___STail_193p5_gg_{white-space:nowrap}" /*__inner_css_end__*/, "193p5_gg_") /*__reshadow_css_end__*/, {
|
|
33
|
+
"__SContainer": "___SContainer_193p5_gg_",
|
|
34
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_193p5_gg_",
|
|
35
|
+
"__SContainerMiddle": "___SContainerMiddle_193p5_gg_",
|
|
36
|
+
"__SBeginning": "___SBeginning_193p5_gg_",
|
|
37
|
+
"__SEllipsis": "___SEllipsis_193p5_gg_",
|
|
38
|
+
"_middle-mod": "__middle-mod_193p5_gg_",
|
|
39
|
+
"_maxLine": "__maxLine_193p5_gg_",
|
|
40
|
+
"--maxLine": "--maxLine_193p5",
|
|
41
|
+
"__STail": "___STail_193p5_gg_"
|
|
42
42
|
});
|
|
43
43
|
var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
|
|
44
44
|
var createMeasurerElement = function createMeasurerElement(element) {
|
|
@@ -47,12 +47,15 @@ var createMeasurerElement = function createMeasurerElement(element) {
|
|
|
47
47
|
temporaryElement.style.display = 'inline-block';
|
|
48
48
|
temporaryElement.style.padding = '0';
|
|
49
49
|
temporaryElement.style.position = 'absolute';
|
|
50
|
-
temporaryElement.style.right = '
|
|
51
|
-
temporaryElement.style.bottom = '
|
|
50
|
+
temporaryElement.style.right = '0%';
|
|
51
|
+
temporaryElement.style.bottom = '0%';
|
|
52
52
|
temporaryElement.style.visibility = 'hidden';
|
|
53
53
|
temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
54
54
|
temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
55
55
|
temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
56
|
+
temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
57
|
+
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
58
|
+
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
56
59
|
temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
57
60
|
temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
58
61
|
temporaryElement.innerHTML = element.innerHTML;
|
|
@@ -64,20 +67,21 @@ function isTextOverflowing(element, multiline) {
|
|
|
64
67
|
currentHeight = _element$getBoundingC.height,
|
|
65
68
|
currentWidth = _element$getBoundingC.width;
|
|
66
69
|
var measuringElement = createMeasurerElement(element);
|
|
67
|
-
var
|
|
68
|
-
var initialSize;
|
|
70
|
+
var isOverflowing = false;
|
|
69
71
|
document.body.appendChild(measuringElement);
|
|
70
72
|
if (multiline) {
|
|
71
|
-
currentSize = currentHeight;
|
|
72
73
|
measuringElement.style.width = "".concat(currentWidth, "px");
|
|
73
|
-
|
|
74
|
+
var width = measuringElement.scrollWidth;
|
|
75
|
+
var height = measuringElement.getBoundingClientRect().height;
|
|
76
|
+
if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
|
|
77
|
+
isOverflowing = true;
|
|
78
|
+
}
|
|
74
79
|
} else {
|
|
75
|
-
currentSize = currentWidth;
|
|
76
80
|
measuringElement.style.whiteSpace = 'nowrap';
|
|
77
|
-
|
|
81
|
+
isOverflowing = currentWidth < measuringElement.scrollWidth;
|
|
78
82
|
}
|
|
79
83
|
document.body.removeChild(measuringElement);
|
|
80
|
-
return
|
|
84
|
+
return isOverflowing;
|
|
81
85
|
}
|
|
82
86
|
var forcedAdvancedMode = {
|
|
83
87
|
forcedAdvancedMode: true
|
package/lib/cjs/Ellipsis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","_excluded","_excluded2","style","_index","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","concat","whiteSpace","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$maxLine","asProps","maxLine","textRef","current","getContentProps","ref","getPopperProps","_this$asProps","Children","includeTooltipProps","text","reactToText","getOriginChildren","tooltipProps","pick","_objectSpread2","children","render","_ref4","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps2","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","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","Math","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\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 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) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize;\n let initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\n\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 } = this.asProps;\n return isTextOverflowing(this.textRef.current!, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n 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 if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n tooltipProps={tooltipProps}\n 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 visible={visible}\n onVisibleChange={this.handlerVisibleChange}\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 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={ref}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\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","_interopRequireWildcard","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","_excluded","_excluded2","style","_index","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","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$maxLine","asProps","maxLine","textRef","current","getContentProps","ref","getPopperProps","_this$asProps","Children","includeTooltipProps","text","reactToText","getOriginChildren","tooltipProps","pick","_objectSpread2","children","render","_ref4","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps2","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","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","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\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 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) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '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 = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\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 = currentWidth < measuringElement.scrollWidth;\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 } = this.asProps;\n return isTextOverflowing(this.textRef.current!, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n 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 if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n tooltipProps={tooltipProps}\n 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 visible={visible}\n onVisibleChange={this.handlerVisibleChange}\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 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={ref}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\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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"}
|
package/lib/es6/Ellipsis.js
CHANGED
|
@@ -20,16 +20,16 @@ import { useResizeObserver } from './useResizeObserver';
|
|
|
20
20
|
import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
|
|
21
21
|
import findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';
|
|
22
22
|
/*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
|
|
23
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
24
|
-
"__SContainer": "
|
|
25
|
-
"__SNoTooltipContainer": "
|
|
26
|
-
"__SContainerMiddle": "
|
|
27
|
-
"__SBeginning": "
|
|
28
|
-
"__SEllipsis": "
|
|
29
|
-
"_middle-mod": "__middle-
|
|
30
|
-
"_maxLine": "
|
|
31
|
-
"--maxLine": "--
|
|
32
|
-
"__STail": "
|
|
23
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_193p5_gg_,.___SContainer_193p5_gg_,.___SEllipsis_193p5_gg_.__middle-mod_193p5_gg_,.___SNoTooltipContainer_193p5_gg_{display:flex;overflow:hidden}.___SBeginning_193p5_gg_,.___SEllipsis_193p5_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_193p5_gg_.__maxLine_193p5_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_193p5);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_193p5_gg_>:has(.___SBeginning_193p5_gg_),.___SContainerMiddle_193p5_gg_>:has(.___STail_193p5_gg_){display:flex;width:100%}.___STail_193p5_gg_{white-space:nowrap}" /*__inner_css_end__*/, "193p5_gg_") /*__reshadow_css_end__*/, {
|
|
24
|
+
"__SContainer": "___SContainer_193p5_gg_",
|
|
25
|
+
"__SNoTooltipContainer": "___SNoTooltipContainer_193p5_gg_",
|
|
26
|
+
"__SContainerMiddle": "___SContainerMiddle_193p5_gg_",
|
|
27
|
+
"__SBeginning": "___SBeginning_193p5_gg_",
|
|
28
|
+
"__SEllipsis": "___SEllipsis_193p5_gg_",
|
|
29
|
+
"_middle-mod": "__middle-mod_193p5_gg_",
|
|
30
|
+
"_maxLine": "__maxLine_193p5_gg_",
|
|
31
|
+
"--maxLine": "--maxLine_193p5",
|
|
32
|
+
"__STail": "___STail_193p5_gg_"
|
|
33
33
|
});
|
|
34
34
|
import reactToText from '@semcore/utils/lib/reactToText';
|
|
35
35
|
import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
|
|
@@ -41,12 +41,15 @@ var createMeasurerElement = function createMeasurerElement(element) {
|
|
|
41
41
|
temporaryElement.style.display = 'inline-block';
|
|
42
42
|
temporaryElement.style.padding = '0';
|
|
43
43
|
temporaryElement.style.position = 'absolute';
|
|
44
|
-
temporaryElement.style.right = '
|
|
45
|
-
temporaryElement.style.bottom = '
|
|
44
|
+
temporaryElement.style.right = '0%';
|
|
45
|
+
temporaryElement.style.bottom = '0%';
|
|
46
46
|
temporaryElement.style.visibility = 'hidden';
|
|
47
47
|
temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');
|
|
48
48
|
temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');
|
|
49
49
|
temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');
|
|
50
|
+
temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');
|
|
51
|
+
temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');
|
|
52
|
+
temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');
|
|
50
53
|
temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue('font-feature-settings');
|
|
51
54
|
temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');
|
|
52
55
|
temporaryElement.innerHTML = element.innerHTML;
|
|
@@ -58,20 +61,21 @@ function isTextOverflowing(element, multiline) {
|
|
|
58
61
|
currentHeight = _element$getBoundingC.height,
|
|
59
62
|
currentWidth = _element$getBoundingC.width;
|
|
60
63
|
var measuringElement = createMeasurerElement(element);
|
|
61
|
-
var
|
|
62
|
-
var initialSize;
|
|
64
|
+
var isOverflowing = false;
|
|
63
65
|
document.body.appendChild(measuringElement);
|
|
64
66
|
if (multiline) {
|
|
65
|
-
currentSize = currentHeight;
|
|
66
67
|
measuringElement.style.width = "".concat(currentWidth, "px");
|
|
67
|
-
|
|
68
|
+
var width = measuringElement.scrollWidth;
|
|
69
|
+
var height = measuringElement.getBoundingClientRect().height;
|
|
70
|
+
if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {
|
|
71
|
+
isOverflowing = true;
|
|
72
|
+
}
|
|
68
73
|
} else {
|
|
69
|
-
currentSize = currentWidth;
|
|
70
74
|
measuringElement.style.whiteSpace = 'nowrap';
|
|
71
|
-
|
|
75
|
+
isOverflowing = currentWidth < measuringElement.scrollWidth;
|
|
72
76
|
}
|
|
73
77
|
document.body.removeChild(measuringElement);
|
|
74
|
-
return
|
|
78
|
+
return isOverflowing;
|
|
75
79
|
}
|
|
76
80
|
var forcedAdvancedMode = {
|
|
77
81
|
forcedAdvancedMode: true
|
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","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","currentSize","initialSize","body","appendChild","concat","whiteSpace","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$maxLine","asProps","maxLine","textRef","current","getContentProps","ref","getPopperProps","_this$asProps","Children","includeTooltipProps","text","tooltipProps","_objectSpread","children","render","_ref4","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps2","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","__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","Math","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';\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 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) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '150%';\n temporaryElement.style.bottom = '150%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\n let currentSize;\n let initialSize;\n document.body.appendChild(measuringElement);\n if (multiline) {\n currentSize = currentHeight;\n measuringElement.style.width = `${currentWidth}px`;\n initialSize = measuringElement.getBoundingClientRect().height;\n } else {\n currentSize = currentWidth;\n measuringElement.style.whiteSpace = 'nowrap';\n initialSize = measuringElement.getBoundingClientRect().width;\n }\n document.body.removeChild(measuringElement);\n return currentSize < initialSize;\n}\n\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 } = this.asProps;\n return isTextOverflowing(this.textRef.current!, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n 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 if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n tooltipProps={tooltipProps}\n 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 visible={visible}\n onVisibleChange={this.handlerVisibleChange}\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 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={ref}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\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":["React","createComponent","Component","Root","sstyled","Tooltip","Box","useResizeObserver","useEnhancedEffect","findComponent","isAdvanceMode","style","_sstyled","insert","reactToText","getOriginChildren","pick","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","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$maxLine","asProps","maxLine","textRef","current","getContentProps","ref","getPopperProps","_this$asProps","Children","includeTooltipProps","text","tooltipProps","_objectSpread","children","render","_ref4","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps2","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","__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';\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 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) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = 'inline-block';\n temporaryElement.style.padding = '0';\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '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 = element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element);\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 = currentWidth < measuringElement.scrollWidth;\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 } = this.asProps;\n return isTextOverflowing(this.textRef.current!, maxLine > 1);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n 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 if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n tooltipProps={tooltipProps}\n 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 visible={visible}\n onVisibleChange={this.handlerVisibleChange}\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 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={ref}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{text.substring(0, text.length - displayedSymbols / 2 - 1)}</SBeginning>\n <STail>{text.substring(text.length - displayedSymbols / 2 - 1)}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\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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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/ellipsis",
|
|
3
3
|
"description": "Semrush Ellipsis Component",
|
|
4
|
-
"version": "2.36.
|
|
4
|
+
"version": "2.36.1-prerelease.0",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"author": "UI-KIT team <ui-kit-team@semrush.com>",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@semcore/utils": "4.
|
|
13
|
-
"@semcore/flex-box": "5.
|
|
14
|
-
"@semcore/tooltip": "6.
|
|
12
|
+
"@semcore/utils": "4.41.0-prerelease.0",
|
|
13
|
+
"@semcore/flex-box": "5.36.0-prerelease.0",
|
|
14
|
+
"@semcore/tooltip": "6.45.0-prerelease.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@semcore/core": "^2.
|
|
17
|
+
"@semcore/core": "^2.34.0-prerelease.0",
|
|
18
18
|
"react": "16.8 - 18",
|
|
19
19
|
"react-dom": "16.8 - 18"
|
|
20
20
|
},
|