@semcore/ellipsis 2.7.1 → 2.7.2

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 CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [2.7.1-prerelease.0] - 2023-09-05
5
+ ## [2.7.2-prerelease.0] - 2023-09-08
6
+
7
+ ### Changed
8
+
9
+ - Version prepatch update due to children dependencies update (`@semcore/utils` [4.6.1 ~> 4.6.2], `@semcore/core` [2.6.1 ~> 2.6.2]).
10
+
11
+ ## [2.7.1] - 2023-09-05
6
12
 
7
13
  ### Changed
8
14
 
@@ -15,7 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
15
15
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _core = _interopRequireWildcard(require("@semcore/core"));
18
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = _interopRequireDefault(require("react"));
19
19
  var _tooltip = _interopRequireDefault(require("@semcore/tooltip"));
20
20
  var _flexBox = require("@semcore/flex-box");
21
21
  var _useResizeObserver = require("./useResizeObserver");
@@ -25,16 +25,16 @@ var _reactToText = _interopRequireDefault(require("@semcore/utils/lib/reactToTex
25
25
  var _getOriginChildren = _interopRequireDefault(require("@semcore/utils/lib/getOriginChildren"));
26
26
  var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
27
27
  /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
28
- var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_13ly5_gg_,.___SContainer_13ly5_gg_,.___SEllipsis_13ly5_gg_.__middle-mod_13ly5_gg_,.___SNoTooltipContainer_13ly5_gg_{display:flex;overflow:hidden}.___SBeginning_13ly5_gg_,.___SEllipsis_13ly5_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_13ly5_gg_.__maxLine_13ly5_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_13ly5);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_13ly5_gg_{white-space:nowrap}" /*__inner_css_end__*/, "13ly5_gg_") /*__reshadow_css_end__*/, {
29
- "__SContainer": "___SContainer_13ly5_gg_",
30
- "__SNoTooltipContainer": "___SNoTooltipContainer_13ly5_gg_",
31
- "__SContainerMiddle": "___SContainerMiddle_13ly5_gg_",
32
- "__SBeginning": "___SBeginning_13ly5_gg_",
33
- "__SEllipsis": "___SEllipsis_13ly5_gg_",
34
- "_middle-mod": "__middle-mod_13ly5_gg_",
35
- "_maxLine": "__maxLine_13ly5_gg_",
36
- "--maxLine": "--maxLine_13ly5",
37
- "__STail": "___STail_13ly5_gg_"
28
+ var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_o71cz_gg_,.___SContainer_o71cz_gg_,.___SEllipsis_o71cz_gg_.__middle-mod_o71cz_gg_,.___SNoTooltipContainer_o71cz_gg_{display:flex;overflow:hidden}.___SBeginning_o71cz_gg_,.___SEllipsis_o71cz_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_o71cz_gg_.__maxLine_o71cz_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_o71cz);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_o71cz_gg_{white-space:nowrap}" /*__inner_css_end__*/, "o71cz_gg_") /*__reshadow_css_end__*/, {
29
+ "__SContainer": "___SContainer_o71cz_gg_",
30
+ "__SNoTooltipContainer": "___SNoTooltipContainer_o71cz_gg_",
31
+ "__SContainerMiddle": "___SContainerMiddle_o71cz_gg_",
32
+ "__SBeginning": "___SBeginning_o71cz_gg_",
33
+ "__SEllipsis": "___SEllipsis_o71cz_gg_",
34
+ "_middle-mod": "__middle-mod_o71cz_gg_",
35
+ "_maxLine": "__maxLine_o71cz_gg_",
36
+ "--maxLine": "--maxLine_o71cz",
37
+ "__STail": "___STail_o71cz_gg_"
38
38
  });
39
39
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate'];
40
40
  var createMeasurerElement = function createMeasurerElement(element) {
@@ -199,14 +199,14 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
199
199
  tooltipProps = props.tooltipProps,
200
200
  children = props.children,
201
201
  advanceMode = props.advanceMode;
202
- var resizeElement = (0, _react.useRef)(null);
203
- var _useState = (0, _react.useState)({
202
+ var resizeElement = _react["default"].useRef(null);
203
+ var _React$useState = _react["default"].useState({
204
204
  fontSize: '14',
205
205
  symbolWidth: 0
206
206
  }),
207
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
208
- dimension = _useState2[0],
209
- setDimension = _useState2[1];
207
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
208
+ dimension = _React$useState2[0],
209
+ setDimension = _React$useState2[1];
210
210
  var blockWidth = (0, _useResizeObserver.useResizeObserver)(resizeElement, containerRect).width;
211
211
  (0, _useEnhancedEffect["default"])(function () {
212
212
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
@@ -226,7 +226,7 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
226
226
  var SBeginning = 'span';
227
227
  var SContainerMiddle = _flexBox.Box;
228
228
  var SAdvancedModeContainerMiddle = _tooltip["default"];
229
- var displayedSymbols = (0, _react.useMemo)(function () {
229
+ var displayedSymbols = _react["default"].useMemo(function () {
230
230
  return Math.round(blockWidth / dimension.symbolWidth);
231
231
  }, [blockWidth, dimension.symbolWidth]);
232
232
  var interaction = text.length > displayedSymbols ? 'hover' : 'none';
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_tooltip","_interopRequireDefault","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","style","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","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","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","resizeElement","useRef","_useState","useState","symbolWidth","_useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","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, useRef, useMemo, useState } 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};\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];\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\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 } = 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 >\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}>\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}>\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 } = props;\n const resizeElement = useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = 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 = Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = 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 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","style","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","padding","position","right","bottom","visibility","fontFamily","getPropertyValue","fontSize","fontWeight","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","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","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};\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];\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\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 } = 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 >\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}>\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}>\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 } = 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 = 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 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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"}
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useResizeObserver = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _react = require("react");
9
+ var _react = _interopRequireDefault(require("react"));
10
10
  var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/useEnhancedEffect"));
11
11
  var _canUseDOM = _interopRequireDefault(require("@semcore/utils/lib/canUseDOM"));
12
12
  var useResizeObserver = function useResizeObserver(ref, hookOverride) {
13
- var _useState = (0, _react.useState)(0),
14
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
15
- width = _useState2[0],
16
- setWidth = _useState2[1];
17
- var handleResize = (0, _react.useCallback)(function (entries) {
13
+ var _React$useState = _react["default"].useState(0),
14
+ _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
15
+ width = _React$useState2[0],
16
+ setWidth = _React$useState2[1];
17
+ var handleResize = _react["default"].useCallback(function (entries) {
18
18
  setWidth(entries[0].contentRect.width);
19
19
  }, []);
20
20
  (0, _useEnhancedEffect["default"])(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":["_react","require","_useEnhancedEffect","_interopRequireDefault","_canUseDOM","useResizeObserver","ref","hookOverride","_useState","useState","_useState2","_slicedToArray2","width","setWidth","handleResize","useCallback","entries","contentRect","useEnhancedEffect","current","canUseDOM","ro","ResizeObserver","observe","disconnect","exports"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAAS,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAtCI,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAMI,YAAY,GAAG,IAAAC,kBAAW,EAAC,UAACC,OAA8B,EAAK;IACnEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAM,6BAAiB,EAAC,YAAM;IACtB,IAAI,CAACZ,GAAG,CAACa,OAAO,EAAE;MAChB;IACF;IAEA,IAAIZ,YAAY,EAAE;MAChB;IACF;IACA,IAAI,IAAAa,qBAAS,GAAE,EAAE;MACf,IAAMC,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACN,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFK,EAAE,CAACE,OAAO,CAACjB,GAAG,CAACa,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXE,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAACjB,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEK,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC;AAACa,OAAA,CAAApB,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"file":"useResizeObserver.js","names":["_react","_interopRequireDefault","require","_useEnhancedEffect","_canUseDOM","useResizeObserver","ref","hookOverride","_React$useState","React","useState","_React$useState2","_slicedToArray2","width","setWidth","handleResize","useCallback","entries","contentRect","useEnhancedEffect","current","canUseDOM","ro","ResizeObserver","observe","disconnect","exports"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = React.useState<number>(0);\n\n const handleResize = React.useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,eAAA,GAA0BC,iBAAK,CAACC,QAAQ,CAAS,CAAC,CAAC;IAAAC,gBAAA,OAAAC,eAAA,aAAAJ,eAAA;IAA5CK,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAMI,YAAY,GAAGN,iBAAK,CAACO,WAAW,CAAC,UAACC,OAA8B,EAAK;IACzEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAM,6BAAiB,EAAC,YAAM;IACtB,IAAI,CAACb,GAAG,CAACc,OAAO,EAAE;MAChB;IACF;IAEA,IAAIb,YAAY,EAAE;MAChB;IACF;IACA,IAAI,IAAAc,qBAAS,GAAE,EAAE;MACf,IAAMC,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACN,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFK,EAAE,CAACE,OAAO,CAAClB,GAAG,CAACc,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXE,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAAClB,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEM,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC;AAACa,OAAA,CAAArB,iBAAA,GAAAA,iBAAA"}
@@ -9,7 +9,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
9
  import { sstyled as _sstyled } from "@semcore/core";
10
10
  import { assignProps as _assignProps2 } from "@semcore/core";
11
11
  import { assignProps as _assignProps } from "@semcore/core";
12
- import React, { useRef, useMemo, useState } from 'react';
12
+ import React from 'react';
13
13
  import createComponent, { Component, Root, sstyled } from '@semcore/core';
14
14
  import Tooltip from '@semcore/tooltip';
15
15
  import { Box } from '@semcore/flex-box';
@@ -17,16 +17,16 @@ import { useResizeObserver } from './useResizeObserver';
17
17
  import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
18
18
  import findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';
19
19
  /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
20
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_13ly5_gg_,.___SContainer_13ly5_gg_,.___SEllipsis_13ly5_gg_.__middle-mod_13ly5_gg_,.___SNoTooltipContainer_13ly5_gg_{display:flex;overflow:hidden}.___SBeginning_13ly5_gg_,.___SEllipsis_13ly5_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_13ly5_gg_.__maxLine_13ly5_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_13ly5);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_13ly5_gg_{white-space:nowrap}" /*__inner_css_end__*/, "13ly5_gg_") /*__reshadow_css_end__*/, {
21
- "__SContainer": "___SContainer_13ly5_gg_",
22
- "__SNoTooltipContainer": "___SNoTooltipContainer_13ly5_gg_",
23
- "__SContainerMiddle": "___SContainerMiddle_13ly5_gg_",
24
- "__SBeginning": "___SBeginning_13ly5_gg_",
25
- "__SEllipsis": "___SEllipsis_13ly5_gg_",
26
- "_middle-mod": "__middle-mod_13ly5_gg_",
27
- "_maxLine": "__maxLine_13ly5_gg_",
28
- "--maxLine": "--maxLine_13ly5",
29
- "__STail": "___STail_13ly5_gg_"
20
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_o71cz_gg_,.___SContainer_o71cz_gg_,.___SEllipsis_o71cz_gg_.__middle-mod_o71cz_gg_,.___SNoTooltipContainer_o71cz_gg_{display:flex;overflow:hidden}.___SBeginning_o71cz_gg_,.___SEllipsis_o71cz_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap}.___SEllipsis_o71cz_gg_.__maxLine_o71cz_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_o71cz);-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.___STail_o71cz_gg_{white-space:nowrap}" /*__inner_css_end__*/, "o71cz_gg_") /*__reshadow_css_end__*/, {
21
+ "__SContainer": "___SContainer_o71cz_gg_",
22
+ "__SNoTooltipContainer": "___SNoTooltipContainer_o71cz_gg_",
23
+ "__SContainerMiddle": "___SContainerMiddle_o71cz_gg_",
24
+ "__SBeginning": "___SBeginning_o71cz_gg_",
25
+ "__SEllipsis": "___SEllipsis_o71cz_gg_",
26
+ "_middle-mod": "__middle-mod_o71cz_gg_",
27
+ "_maxLine": "__maxLine_o71cz_gg_",
28
+ "--maxLine": "--maxLine_o71cz",
29
+ "__STail": "___STail_o71cz_gg_"
30
30
  });
31
31
  import reactToText from '@semcore/utils/lib/reactToText';
32
32
  import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
@@ -194,14 +194,14 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
194
194
  tooltipProps = props.tooltipProps,
195
195
  children = props.children,
196
196
  advanceMode = props.advanceMode;
197
- var resizeElement = useRef(null);
198
- var _useState = useState({
197
+ var resizeElement = React.useRef(null);
198
+ var _React$useState = React.useState({
199
199
  fontSize: '14',
200
200
  symbolWidth: 0
201
201
  }),
202
- _useState2 = _slicedToArray(_useState, 2),
203
- dimension = _useState2[0],
204
- setDimension = _useState2[1];
202
+ _React$useState2 = _slicedToArray(_React$useState, 2),
203
+ dimension = _React$useState2[0],
204
+ setDimension = _React$useState2[1];
205
205
  var blockWidth = useResizeObserver(resizeElement, containerRect).width;
206
206
  useEnhancedEffect(function () {
207
207
  var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
@@ -221,7 +221,7 @@ var EllipsisMiddle = function EllipsisMiddle(props) {
221
221
  var SBeginning = 'span';
222
222
  var SContainerMiddle = Box;
223
223
  var SAdvancedModeContainerMiddle = Tooltip;
224
- var displayedSymbols = useMemo(function () {
224
+ var displayedSymbols = React.useMemo(function () {
225
225
  return Math.round(blockWidth / dimension.symbolWidth);
226
226
  }, [blockWidth, dimension.symbolWidth]);
227
227
  var interaction = text.length > displayedSymbols ? 'hover' : 'none';
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["React","useRef","useMemo","useState","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","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","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","resizeElement","_useState","symbolWidth","_useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","SAdvancedModeContainerMiddle","displayedSymbols","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, useRef, useMemo, useState } 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};\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];\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\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 } = 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 >\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}>\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}>\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 } = props;\n const resizeElement = useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = 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 = Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = 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 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","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","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","_ref2","EllipsisMiddle","cn","_ref3","undefined","handlerVisibleChange","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","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};\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];\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\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 } = 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 >\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}>\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}>\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 } = 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 = 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 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,13 +1,13 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { useCallback, useState } from 'react';
2
+ import React from 'react';
3
3
  import useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';
4
4
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
5
5
  export var useResizeObserver = function useResizeObserver(ref, hookOverride) {
6
- var _useState = useState(0),
7
- _useState2 = _slicedToArray(_useState, 2),
8
- width = _useState2[0],
9
- setWidth = _useState2[1];
10
- var handleResize = useCallback(function (entries) {
6
+ var _React$useState = React.useState(0),
7
+ _React$useState2 = _slicedToArray(_React$useState, 2),
8
+ width = _React$useState2[0],
9
+ setWidth = _React$useState2[1];
10
+ var handleResize = React.useCallback(function (entries) {
11
11
  setWidth(entries[0].contentRect.width);
12
12
  }, []);
13
13
  useEnhancedEffect(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeObserver.js","names":["useCallback","useState","useEnhancedEffect","canUseDOM","useResizeObserver","ref","hookOverride","_useState","_useState2","_slicedToArray","width","setWidth","handleResize","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import { RefObject, useCallback, useState } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = useState<number>(0);\n\n const handleResize = 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,SAAoBA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACxD,OAAOC,iBAAiB,MAAM,0CAA0C;AACxE,OAAOC,SAAS,MAAM,8BAA8B;AAEpD,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,SAAA,GAA0BN,QAAQ,CAAS,CAAC,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAtCG,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EAEtB,IAAMI,YAAY,GAAGZ,WAAW,CAAC,UAACa,OAA8B,EAAK;IACnEF,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACJ,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAENR,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACG,GAAG,CAACU,OAAO,EAAE;MAChB;IACF;IAEA,IAAIT,YAAY,EAAE;MAChB;IACF;IACA,IAAIH,SAAS,EAAE,EAAE;MACf,IAAMa,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACJ,OAA8B,EAAK;QAChED,YAAY,CAACC,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFG,EAAE,CAACE,OAAO,CAACb,GAAG,CAACU,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXC,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAACb,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEI,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"useResizeObserver.js","names":["React","useEnhancedEffect","canUseDOM","useResizeObserver","ref","hookOverride","_React$useState","useState","_React$useState2","_slicedToArray","width","setWidth","handleResize","useCallback","entries","contentRect","current","ro","ResizeObserver","observe","disconnect"],"sources":["../../src/useResizeObserver.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nexport const useResizeObserver = (\n ref: RefObject<HTMLElement>,\n hookOverride?: { width: number },\n) => {\n const [width, setWidth] = React.useState<number>(0);\n\n const handleResize = React.useCallback((entries: ResizeObserverEntry[]) => {\n setWidth(entries[0].contentRect.width);\n }, []);\n\n useEnhancedEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (hookOverride) {\n return;\n }\n if (canUseDOM()) {\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n\n ro.observe(ref.current);\n\n return () => {\n ro.disconnect();\n };\n }\n }, [hookOverride]);\n\n if (hookOverride) {\n return hookOverride;\n }\n return { width };\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,iBAAiB,MAAM,0CAA0C;AACxE,OAAOC,SAAS,MAAM,8BAA8B;AAEpD,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,GAA2B,EAC3BC,YAAgC,EAC7B;EACH,IAAAC,eAAA,GAA0BN,KAAK,CAACO,QAAQ,CAAS,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA5CI,KAAK,GAAAF,gBAAA;IAAEG,QAAQ,GAAAH,gBAAA;EAEtB,IAAMI,YAAY,GAAGZ,KAAK,CAACa,WAAW,CAAC,UAACC,OAA8B,EAAK;IACzEH,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW,CAACL,KAAK,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAENT,iBAAiB,CAAC,YAAM;IACtB,IAAI,CAACG,GAAG,CAACY,OAAO,EAAE;MAChB;IACF;IAEA,IAAIX,YAAY,EAAE;MAChB;IACF;IACA,IAAIH,SAAS,EAAE,EAAE;MACf,IAAMe,EAAE,GAAG,IAAIC,cAAc,CAAC,UAACJ,OAA8B,EAAK;QAChEF,YAAY,CAACE,OAAO,CAAC;MACvB,CAAC,CAAC;MAEFG,EAAE,CAACE,OAAO,CAACf,GAAG,CAACY,OAAO,CAAC;MAEvB,OAAO,YAAM;QACXC,EAAE,CAACG,UAAU,EAAE;MACjB,CAAC;IACH;EACF,CAAC,EAAE,CAACf,YAAY,CAAC,CAAC;EAElB,IAAIA,YAAY,EAAE;IAChB,OAAOA,YAAY;EACrB;EACA,OAAO;IAAEK,KAAK,EAALA;EAAM,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/ellipsis",
3
3
  "description": "Semrush Ellipsis Component",
4
- "version": "2.7.1",
4
+ "version": "2.7.2",
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.6.1",
13
- "@semcore/flex-box": "5.6.1",
14
- "@semcore/tooltip": "6.7.1"
12
+ "@semcore/utils": "4.6.2",
13
+ "@semcore/flex-box": "5.6.2",
14
+ "@semcore/tooltip": "6.7.2"
15
15
  },
16
16
  "peerDependencies": {
17
- "@semcore/core": "^2.6.1-prerelease.0",
17
+ "@semcore/core": "^2.6.2-prerelease.0",
18
18
  "react": "16.8 - 18",
19
19
  "react-dom": "16.8 - 18"
20
20
  },