@semcore/ellipsis 2.39.2 → 2.39.3-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 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.39.3] - 2025-05-09
6
+
7
+ ### Changed
8
+
9
+ - Version patch update due to children dependencies update (`@semcore/utils` [4.48.2 ~> 4.48.4], `@semcore/core` [2.39.2 ~> 2.39.3]).
10
+
5
11
  ## [2.39.2] - 2025-04-04
6
12
 
7
13
  ### Changed
@@ -30,17 +30,19 @@ var _ref11 = require("@semcore/utils/lib/ref");
30
30
  var _assignProps3 = require("@semcore/utils/lib/assignProps");
31
31
  var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"],
32
32
  _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
33
- /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
34
- var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_gtb2q_gg_,.___SContainer_gtb2q_gg_,.___SEllipsis_gtb2q_gg_.__middle-mod_gtb2q_gg_,.___SNoTooltipContainer_gtb2q_gg_{display:flex;overflow:hidden}.___SBeginning_gtb2q_gg_,.___SEllipsis_gtb2q_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_gtb2q_gg_.__maxLine_gtb2q_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_gtb2q);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_gtb2q_gg_>:has(.___SBeginning_gtb2q_gg_),.___SContainerMiddle_gtb2q_gg_>:has(.___STail_gtb2q_gg_){display:flex;width:100%}.___STail_gtb2q_gg_{white-space:pre}" /*__inner_css_end__*/, "gtb2q_gg_") /*__reshadow_css_end__*/, {
35
- "__SContainer": "___SContainer_gtb2q_gg_",
36
- "__SNoTooltipContainer": "___SNoTooltipContainer_gtb2q_gg_",
37
- "__SContainerMiddle": "___SContainerMiddle_gtb2q_gg_",
38
- "__SBeginning": "___SBeginning_gtb2q_gg_",
39
- "__SEllipsis": "___SEllipsis_gtb2q_gg_",
40
- "_middle-mod": "__middle-mod_gtb2q_gg_",
41
- "_maxLine": "__maxLine_gtb2q_gg_",
42
- "--maxLine": "--maxLine_gtb2q",
43
- "__STail": "___STail_gtb2q_gg_"
33
+ /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
34
+ var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_s6gjn_gg_,.___SContainer_s6gjn_gg_,.___SEllipsis_s6gjn_gg_.__middle-mod_s6gjn_gg_,.___SNoTooltipContainer_s6gjn_gg_{display:flex;overflow:hidden}.___SBeginning_s6gjn_gg_,.___SEllipsis_s6gjn_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_s6gjn_gg_.__maxLine_s6gjn_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_s6gjn);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_s6gjn_gg_>:has(.___SBeginning_s6gjn_gg_),.___SContainerMiddle_s6gjn_gg_>:has(.___STail_s6gjn_gg_){display:flex;width:100%}.___STail_s6gjn_gg_{white-space:pre}", /*__inner_css_end__*/"s6gjn_gg_"),
35
+ /*__reshadow_css_end__*/
36
+ {
37
+ "__SContainer": "___SContainer_s6gjn_gg_",
38
+ "__SNoTooltipContainer": "___SNoTooltipContainer_s6gjn_gg_",
39
+ "__SContainerMiddle": "___SContainerMiddle_s6gjn_gg_",
40
+ "__SBeginning": "___SBeginning_s6gjn_gg_",
41
+ "__SEllipsis": "___SEllipsis_s6gjn_gg_",
42
+ "_middle-mod": "__middle-mod_s6gjn_gg_",
43
+ "_maxLine": "__maxLine_s6gjn_gg_",
44
+ "--maxLine": "--maxLine_s6gjn",
45
+ "__STail": "___STail_s6gjn_gg_"
44
46
  });
45
47
  var defaultTooltipProps = ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate', 'cursorAnchoring'];
46
48
  var createMeasurerElement = function createMeasurerElement(element, text) {
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","_ref11","_assignProps3","_excluded","_excluded2","style","_index","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","_defineProperty2","_assertThisInitialized2","visible","React","createRef","setState","showTooltip","_createClass2","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","reactToText","getOriginChildren","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","pick","_objectSpread2","children","render","_ref4","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","forkRef","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AADA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,cAAA,GAAAR,uBAAA,CAAAC,OAAA;AAGA,IAAAQ,YAAA,GAAAN,sBAAA,CAAAF,OAAA;AACA,IAAAS,kBAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,KAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;AAAsE,IAAAa,SAAA;EAAAC,UAAA;AAAA;AAAA,IAAAC,KAAA,+BAAAC,MAAA,CAAAC,OAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AA4DtE,IAAMC,mBAAmB,GAAG,CAC1B,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,CAClB;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,OAAuB,EAAEC,IAAa,EAAK;EACxE,IAAMC,YAAY,GAAGC,MAAM,CAACC,gBAAgB,CAACJ,OAAO,EAAE,IAAI,CAAC;EAC3D,IAAMK,gBAAgB,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;EAClEF,gBAAgB,CAACX,KAAK,CAACc,OAAO,GAAGN,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACX,KAAK,CAACgB,OAAO,GAAGR,YAAY,CAACO,gBAAgB,CAAC,SAAS,CAAC;EACzEJ,gBAAgB,CAACX,KAAK,CAACiB,QAAQ,GAAG,UAAU;EAC5CN,gBAAgB,CAACX,KAAK,CAACkB,KAAK,GAAG,IAAI;EACnCP,gBAAgB,CAACX,KAAK,CAACmB,MAAM,GAAG,IAAI;EACpCR,gBAAgB,CAACX,KAAK,CAACoB,UAAU,GAAG,QAAQ;EAC5CT,gBAAgB,CAACX,KAAK,CAACqB,UAAU,GAAGb,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACsB,QAAQ,GAAGd,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAC5EJ,gBAAgB,CAACX,KAAK,CAACuB,UAAU,GAAGf,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACwB,UAAU,GAAGhB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAACyB,UAAU,GAAGjB,YAAY,CAACO,gBAAgB,CAAC,aAAa,CAAC;EAChFJ,gBAAgB,CAACX,KAAK,CAAC0B,QAAQ,GAAGlB,YAAY,CAACO,gBAAgB,CAAC,WAAW,CAAC;EAE5EJ,gBAAgB,CAACX,KAAK,CAAC2B,mBAAmB,GACxCnB,YAAY,CAACO,gBAAgB,CAAC,uBAAuB,CAAC;EACxDJ,gBAAgB,CAACX,KAAK,CAAC4B,kBAAkB,GAAGpB,YAAY,CAACO,gBAAgB,CAAC,sBAAsB,CAAC;EAEjGJ,gBAAgB,CAACkB,SAAS,GAAGtB,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAID,OAAO,CAACuB,SAAS;EACtD,OAAOlB,gBAAgB;AACzB,CAAC;AAED,SAASmB,iBAAiBA,CAACxB,OAAuB,EAAEyB,SAAkB,EAAExB,IAAa,EAAW;EAC9F,IAAI,CAACD,OAAO,EAAE,OAAO,KAAK;EAE1B,IAAA0B,qBAAA,GAAuD1B,OAAO,CAAC2B,qBAAqB,EAAE;IAAtEC,aAAa,GAAAF,qBAAA,CAArBG,MAAM;IAAwBC,YAAY,GAAAJ,qBAAA,CAAnBK,KAAK;EACpC,IAAMC,gBAAgB,GAAGjC,qBAAqB,CAACC,OAAO,EAAEC,IAAI,CAAC;EAC7D,IAAIgC,aAAa,GAAG,KAAK;EAEzB3B,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAACH,gBAAgB,CAAC;EAC3C,IAAIP,SAAS,EAAE;IACbO,gBAAgB,CAACtC,KAAK,CAACqC,KAAK,MAAAK,MAAA,CAAMN,YAAY,OAAI;IAElD,IAAMC,KAAK,GAAGC,gBAAgB,CAACK,WAAW;IAC1C,IAAMR,MAAM,GAAGG,gBAAgB,CAACL,qBAAqB,EAAE,CAACE,MAAM;IAE9D,IAAIS,IAAI,CAACC,IAAI,CAACX,aAAa,CAAC,GAAGC,MAAM,IAAIS,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGC,KAAK,EAAE;MACxEE,aAAa,GAAG,IAAI;IACtB;EACF,CAAC,MAAM;IACLD,gBAAgB,CAACtC,KAAK,CAACyB,UAAU,GAAG,QAAQ;IAC5Cc,aAAa,GAAGK,IAAI,CAACC,IAAI,CAACT,YAAY,CAAC,GAAGE,gBAAgB,CAACL,qBAAqB,EAAE,CAACI,KAAK;EAC1F;EAEAzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACR,gBAAgB,CAAC;EAE3C,OAAOC,aAAa;AACtB;AAEA,IAAMQ,kBAAkB,GAAG;EAAEA,kBAAkB,EAAE;AAAK,CAAQ;AAC9D,IAAMC,cAAc,GAAG,CAAC,CAAQ;AAAC,IAE3BC,YAAY,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,YAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,YAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAV,MAAA,CAAAiB,IAAA;IAAA,IAAAK,gBAAA,iBAAAC,uBAAA,aAAAX,KAAA,YAUR;MACNY,OAAO,EAAE;IACX,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAX,KAAA,2BAESa,iBAAK,CAACC,SAAS,EAAkB;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAAX,KAAA,2BAQpB,UAACY,OAAgB,EAAK;MAC3CZ,KAAA,CAAKe,QAAQ,CAAC;QAAEH,OAAO,EAAEA,OAAO,IAAIZ,KAAA,CAAKgB,WAAW;MAAG,CAAC,CAAC;IAC3D,CAAC;IAAA,OAAAhB,KAAA;EAAA;EAAA,IAAAiB,aAAA,aAAAtB,YAAA;IAAAuB,GAAA;IAAAC,KAAA,EARD,SAAAH,YAAA,EAAc;MACZ,IAAAI,aAAA,GAAkC,IAAI,CAACC,OAAO;QAAAC,qBAAA,GAAAF,aAAA,CAAtCG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;QAAEE,QAAQ,GAAAJ,aAAA,CAARI,QAAQ;MAC7B,IAAMvE,IAAI,GAAG,IAAAwE,uBAAW,EAAC,IAAAC,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACrD,OAAOhD,iBAAiB,CAAC,IAAI,CAACmD,OAAO,CAACC,OAAO,EAAGL,OAAO,GAAG,CAAC,EAAEtE,IAAI,CAAC;IACpE;EAAC;IAAAiE,GAAA;IAAAC,KAAA,EAMD,SAAAU,gBAAA,EAAkB;MAChB,OAAO;QACLC,GAAG,EAAE,IAAI,CAACH,OAAO;QACjBJ,OAAO,EAAE,IAAI,CAACF,OAAO,CAACE;MACxB,CAAC;IACH;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAY,eAAA,EAAiB;MACf,IAAAC,cAAA,GAA0C,IAAI,CAACX,OAAO;QAA9CG,QAAQ,GAAAQ,cAAA,CAARR,QAAQ;QAAES,mBAAmB,GAAAD,cAAA,CAAnBC,mBAAmB;MACrC,IAAMhF,IAAI,GAAG,IAAAwE,uBAAW,EAAC,IAAAC,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACrD,IAAMU,YAAY,GAAG,IAAAC,gBAAI,EAAC,IAAI,CAACd,OAAO,EAAEY,mBAAmB,CAAwB;MACnF,WAAAG,cAAA;QAASC,QAAQ,EAAEpF;MAAI,GAAKiF,YAAY;IAC1C;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAAmB,OAAA,EAAS;MAAA,IAAAC,KAAA,EAAAC,qBAAA;MACP,IAAMC,SAAS,GAAG,IAAI,CAACC,IAAI;MAC3B,IAAMC,UAAU,GAAGC,mBAAO;MAC1B,IAAMC,mBAAmB,GAAGC,YAAG;MAC/B,IAAAC,cAAA,GAWI,IAAI,CAAC1B,OAAO;QAVd2B,MAAM,GAAAD,cAAA,CAANC,MAAM;QACNxB,QAAQ,GAAAuB,cAAA,CAARvB,QAAQ;QACRD,OAAO,GAAAwB,cAAA,CAAPxB,OAAO;QACP0B,OAAO,GAAAF,cAAA,CAAPE,OAAO;QACPC,IAAI,GAAAH,cAAA,CAAJG,IAAI;QACJC,aAAa,GAAAJ,cAAA,CAAbI,aAAa;QACbC,YAAY,GAAAL,cAAA,CAAZK,YAAY;QACZnB,mBAAmB,GAAAc,cAAA,CAAnBd,mBAAmB;QACnBI,QAAQ,GAAAU,cAAA,CAARV,QAAQ;QACLgB,KAAK,OAAAC,yBAAA,aAAAP,cAAA,EAAAvG,SAAA;MAEV,IAAQoE,OAAO,GAAK,IAAI,CAAC2C,KAAK,CAAtB3C,OAAO;MACf,IAAM4C,eAAe,GAAG,IAAAC,yBAAa,EAACjC,QAAQ,EAAE,CAAEkC,QAAQ,CAASC,OAAO,CAACC,WAAW,CAAC,CAAC;MACxF,IAAM3G,IAAI,GAAG,IAAAwE,uBAAW,EAAC+B,eAAe,IAAI,IAAA9B,6BAAiB,EAACF,QAAQ,CAAC,CAAC;MACxE,IAAMqC,WAAW,GAAG,IAAAC,4BAAa,EAACtC,QAAQ,EAAE,CACzCkC,QAAQ,CAASC,OAAO,CAACC,WAAW,EACpCF,QAAQ,CAASK,MAAM,CAACH,WAAW,CACrC,CAAC;MACF,IAAM1B,YAAY,GAAG,IAAAC,gBAAI,EAAC,IAAI,CAACd,OAAO,EAAEY,mBAAmB,CAAwB;MAEnFC,YAAY,CAACtB,OAAO,IAAA4B,qBAAA,GAAGN,YAAY,CAACtB,OAAO,cAAA4B,qBAAA,cAAAA,qBAAA,GAAI5B,OAAO;MACtDsB,YAAY,CAAC8B,eAAe,GAAG9B,YAAY,CAAC8B,eAAe,GACvD,IAAAC,kCAAoB,EAAC/B,YAAY,CAAC8B,eAAe,EAAE,IAAI,CAACE,oBAAoB,CAAC,GAC7E,IAAI,CAACA,oBAAoB;MAE7B,IAAIhB,IAAI,KAAK,QAAQ,EAAE;QAAA,IAAAiB,KAAA;QACrB,OAAAA,KAAA,GAAO,IAAAvH,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAAC6G,cAAc,EAAAD,KAAA,CAAAE,EAAA,uBAAAjC,cAAA;UAAA,QACPnF,IAAI;UAAA,UACF+F,MAAM;UAAA,WACLC,OAAO;UAAA,iBACDE,aAAa;UAAA,gBACdC,YAAY;UAAA,WACjB,IAAI,CAACzB,OAAO;UAAA,gBACPO,YAAY;UAAA,eACb2B;QAAW,GACpBR,KAAK,iBAETzH,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAA2C,KAAA,CAAAE,EAAA,iBAAG,CACG;MAErB;MACA,IAAIpB,OAAO,EAAE;QAAA,IAAAqB,KAAA;QACX,OAAAA,KAAA,GAAO,IAAA1H,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAACoF,UAAU,EAAA2B,KAAA,CAAAD,EAAA,mBAAAjC,cAAA,iBAAAA,cAAA;UAAA,eACG,OAAO;UAAA,SACZ,CAACyB,WAAW,GAAG5G,IAAI,GAAGsH;QAAS,GAClCrC,YAAY,GACX2B,WAAW,GAAGpE,kBAAkB,GAAGC,cAAc,IAErDmE,WAAW,gBACVjI,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAA8C,KAAA,CAAAD,EAAA,iBAAG,gBAEZzI,MAAA,YAAA2B,aAAA,CAACkF,SAAS,EAAA6B,KAAA,CAAAD,EAAA,kBAAAjC,cAAA;UAAA,UAASU,YAAG;UAAA,OAAO,IAAI,CAACnB,OAAO;UAAA,WAAWJ;QAAO,GAAM8B,KAAK,iBACpEzH,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAA8C,KAAA,CAAAD,EAAA,iBAAG,CAEf,CACU;MAEjB;MACA,OAAA9B,KAAA,GAAO,IAAA3F,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAACsF,mBAAmB,EAAAN,KAAA,CAAA8B,EAAA,6BACjBR,WAAW,gBACVjI,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAAe,KAAA,CAAA8B,EAAA,iBAAG,gBAEZzI,MAAA,YAAA2B,aAAA,CAACkF,SAAS,EAAAF,KAAA,CAAA8B,EAAA,kBAAAjC,cAAA;QAAA,UAASU,YAAG;QAAA,OAAO,IAAI,CAACnB,OAAO;QAAA,WAAWJ;MAAO,GAAM8B,KAAK,iBACpEzH,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAAe,KAAA,CAAA8B,EAAA,iBAAG,CAEf,CACmB;IAE1B;EAAC;EAAA,OAAA1E,YAAA;AAAA,EApHwB6E,eAAS;AAAA,IAAA9D,gBAAA,aAA9Bf,YAAY,iBACK,UAAU;AAAA,IAAAe,gBAAA,aAD3Bf,YAAY,WAEDjD,KAAK;AAAA,IAAAgE,gBAAA,aAFhBf,YAAY,kBAGe;EAC7BuD,IAAI,EAAE,KAAK;EACXD,OAAO,EAAE,IAAI;EACbhB,mBAAmB,EAAEnF,mBAAmB;EACxC2H,cAAc,EAAE,CAAC,OAAO;AAC1B,CAAC;AA+GH,IAAMC,qBAAqB,gBAAG7D,iBAAK,CAAC8D,aAAa,CAI9C,IAAI,CAAC;AAER,IAAMP,cAAuC,GAAG,SAA1CA,cAAuCA,CAAIQ,KAAK,EAAK;EAAA,IAAAC,KAAA;EACzD,IACE7B,MAAM,GAUJ4B,KAAK,CAVP5B,MAAM;IACN/F,IAAI,GASF2H,KAAK,CATP3H,IAAI;IACJgG,OAAO,GAQL2B,KAAK,CARP3B,OAAO;IACPE,aAAa,GAOXyB,KAAK,CAPPzB,aAAa;IACbC,YAAY,GAMVwB,KAAK,CANPxB,YAAY;IACZzB,OAAO,GAKLiD,KAAK,CALPjD,OAAO;IACPO,YAAY,GAIV0C,KAAK,CAJP1C,YAAY;IACZG,QAAQ,GAGNuC,KAAK,CAHPvC,QAAQ;IACRwB,WAAW,GAETe,KAAK,CAFPf,WAAW;IACRiB,UAAU,OAAAxB,yBAAA,aACXsB,KAAK,EAAAnI,UAAA;EACT,IAAMsI,aAAa,GAAGlE,iBAAK,CAACmE,MAAM,CAAiB,IAAI,CAAC;EACxD,IAAAC,eAAA,GAAkCpE,iBAAK,CAACqE,QAAQ,CAA4C;MAC1FlH,QAAQ,EAAE,IAAI;MACdmH,WAAW,EAAE;IACf,CAAC,CAAC;IAAAC,gBAAA,OAAAC,eAAA,aAAAJ,eAAA;IAHKK,SAAS,GAAAF,gBAAA;IAAEG,YAAY,GAAAH,gBAAA;EAI9B,IAAMI,UAAU,GAAG,IAAAC,oCAAiB,EAACV,aAAa,EAAE5B,aAAa,CAAC,CAACpE,KAAK;EAExE,IAAA2G,6BAAiB,EAAC,YAAM;IACtB,IAAMC,IAAI,GAAG,CAAAvC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExB,OAAO,MAAImD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEnD,OAAO;IAC5D,IAAI,CAAC+D,IAAI,EAAE;IAEX,IAAMC,QAAQ,GAAGtI,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;IAC1DqI,QAAQ,CAACC,YAAY,CAAC,OAAO,eAAAzG,MAAA,CAAekG,SAAS,CAACtH,QAAQ,QAAK;IACnE4H,QAAQ,CAACrH,SAAS,GAAG,GAAG;IACxBjB,QAAQ,CAAC4B,IAAI,CAACC,WAAW,CAACyG,QAAQ,CAAC;IACnC,IAAME,IAAI,GAAGF,QAAQ,CAACjH,qBAAqB,EAAE;IAE7C4G,YAAY,CAAC;MACXvH,QAAQ,EAAEb,MAAM,CAACC,gBAAgB,CAACuI,IAAI,EAAE,IAAI,CAAC,CAAClI,gBAAgB,CAAC,WAAW,CAAC;MAC3E0H,WAAW,EAAEW,IAAI,CAAC/G;IACpB,CAAC,CAAC;IACFzB,QAAQ,CAAC4B,IAAI,CAACM,WAAW,CAACoG,QAAQ,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EACzB,IAAMC,gBAAgB,GAAGrB,KAAK,CAACsB,GAAG,IAAIpD,YAAG;EACzC,IAAMqD,4BAA4B,GAAGvD,mBAAO;EAC5C,IAAMwD,gBAAgB,GAAGvF,iBAAK,CAACwF,OAAO,CACpC;IAAA,OAAM/G,IAAI,CAACgH,KAAK,CAACd,UAAU,GAAGF,SAAS,CAACH,WAAW,CAAC;EAAA,GACpD,CAACK,UAAU,EAAEF,SAAS,CAACH,WAAW,CAAC,CACpC;EAED,IAAMoB,WAAW,GAAGtJ,IAAI,CAACmD,MAAM,GAAGgG,gBAAgB,GAAG,OAAO,GAAG,MAAM;EACrE,IAAMtE,GAAG,GAAGsB,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI2B,aAAa;EACzC,IAAMyB,YAAY,GAAG3F,iBAAK,CAACwF,OAAO,CAChC;IAAA,OAAO;MACLI,QAAQ,EAAExJ,IAAI,CAACyJ,SAAS,CAAC,CAAC,EAAEzJ,IAAI,CAACmD,MAAM,GAAGgG,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MACnEO,IAAI,EAAE1J,IAAI,CAACyJ,SAAS,CAACzJ,IAAI,CAACmD,MAAM,GAAGgG,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;MAC5DtE,GAAG,EAAHA;IACF,CAAC;EAAA,CAAC,EACF,CAAC7E,IAAI,EAAEmJ,gBAAgB,CAAC,CACzB;EAED,IAAIvC,WAAW,EAAE;IAAA,IAAA+C,KAAA;IACf,OAAAA,KAAA,GAAO,IAAAhK,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAAC4I,4BAA4B,EAAAS,KAAA,CAAAvC,EAAA,qCAAAjC,cAAA,iBAAAA,cAAA;MAAA,eACdmE;IAAW,GACpBrE,YAAY,GACZzC,kBAAkB,iBAEtB7D,MAAA,YAAA2B,aAAA,CAACmH,qBAAqB,CAACmC,QAAQ;MAAC1F,KAAK,EAAEqF;IAAa,GACjDnE,QAAQ,CACsB,CACJ;EAEnC;EACA,IAAIY,OAAO,EAAE;IAAA,IAAA6D,KAAA;IACX,OAAAA,KAAA,GAAO,IAAAlK,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAAC0I,gBAAgB,EAAAa,KAAA,CAAAzC,EAAA,yBAAAjC,cAAA;MAAA,eACFmE,WAAW;MAAA,SACjBtJ,IAAI;MAAA,OACN,IAAA8J,cAAO,EAACjF,GAAG,EAAEH,OAAO,CAAC;MAAA,OACrBiB,mBAAO;MAAA,kBACI,CAAC,OAAO;IAAC,GACrBV,YAAY,iBAEhBtG,MAAA,YAAA2B,aAAA,CAACyI,UAAU,EAAAc,KAAA,CAAAzC,EAAA,oBAAEmC,YAAY,CAACC,QAAQ,CAAc,eAChD7K,MAAA,YAAA2B,aAAA,CAACwI,KAAK,EAAAe,KAAA,CAAAzC,EAAA,eAAEmC,YAAY,CAACG,IAAI,CAAS,CACjB;EAEvB;EACA,OAAA9B,KAAA,GAAO,IAAAjI,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAAC0I,gBAAgB,EAAApB,KAAA,CAAAR,EAAA,yBAAAjC,cAAA,iBAAAA,cAAA,iBAAK0C,UAAU;IAAA,OAAO1B,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI2B;EAAa,kBAClEnJ,MAAA,YAAA2B,aAAA,CAACyI,UAAU,EAAAnB,KAAA,CAAAR,EAAA,oBAAEmC,YAAY,CAACC,QAAQ,CAAc,eAChD7K,MAAA,YAAA2B,aAAA,CAACwI,KAAK,EAAAlB,KAAA,CAAAR,EAAA,eAAEmC,YAAY,CAACG,IAAI,CAAS,CACjB;AAEvB,CAAC;AAOD,IAAMhD,OAAyC,GAAG,SAA5CA,OAAyCA,CAAAqD,MAAA,EAA6B;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAAA,IAAvBnE,MAAM,GAAAgE,MAAA,CAANhE,MAAM;IAAExB,QAAQ,GAAAwF,MAAA,CAARxF,QAAQ;EACnE,IAAMiB,SAAS,GAgBMG,mBAAO,CAACwE,OAAO;EAfpC,IAAMC,qBAAqB,GAAGxG,iBAAK,CAACyG,UAAU,CAAC5C,qBAAqB,CAAC;EACrE,IAAMqB,KAAK,GAAG,MAAM;EACpB,IAAMC,UAAU,GAAG,MAAM;EAEzB,IAAIqB,qBAAqB,EAAE;IAAA,IAAAE,KAAA;IACzB,IAAQd,QAAQ,GAAgBY,qBAAqB,CAA7CZ,QAAQ;MAAEE,IAAI,GAAUU,qBAAqB,CAAnCV,IAAI;MAAE7E,GAAG,GAAKuF,qBAAqB,CAA7BvF,GAAG;IAC3B,OAAAyF,KAAA,GAAO,IAAA3K,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAACkF,SAAS,EAAA8E,KAAA,CAAAlD,EAAA,kBAAAjC,cAAA,qBAAA3G,KAAA,CAAA+L,WAAA;MAAA;MAAA,OAA0C1F;IAAG,GAAAmF,IAAA,kBACrDrL,MAAA,YAAA2B,aAAA,CAACyI,UAAU,EAAAuB,KAAA,CAAAlD,EAAA,oBAAEoC,QAAQ,CAAc,eACnC7K,MAAA,YAAA2B,aAAA,CAACwI,KAAK,EAAAwB,KAAA,CAAAlD,EAAA,eAAEsC,IAAI,CAAS,CACX;EAEhB;EAEA,OAAAQ,KAAA,GAAO,IAAAvK,aAAO,EAACoG,MAAM,CAAC,eACpBpH,MAAA,YAAA2B,aAAA,CAACkF,SAAS,EAAA0E,KAAA,CAAA9C,EAAA,kBAAAjC,cAAA,qBAAA3G,KAAA,CAAA+L,WAAA,MAAAP,IAAA,kBACRrL,MAAA,YAAA2B,aAAA,CAACiE,QAAQ,EAAA2F,KAAA,CAAA9C,EAAA,iBAAG,CACF;AAEhB,CAAC;AAED,IAAMX,QAAQ,GAAG,IAAA+D,gBAAe,EAAC9H,YAAY,EAAE;EAC7CgE,OAAO,EAAPA,OAAO;EACPI,MAAM,EAAEnB,mBAAO,CAACmB;AAClB,CAAC,CAGA;AAAC,IAAA2D,QAAA,GAEahE,QAAQ;AAAAiE,OAAA,cAAAD,QAAA"}
1
+ {"version":3,"file":"Ellipsis.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_tooltip","_flexBox","_useResizeObserver","_useEnhancedEffect","_findComponent","_reactToText","_getOriginChildren","_pick","_ref11","_assignProps3","_excluded","_excluded2","style","_index","sstyled","insert","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","_defineProperty2","_assertThisInitialized2","visible","React","createRef","setState","showTooltip","_createClass2","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","reactToText","getOriginChildren","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","pick","_objectSpread2","children","render","_ref4","_tooltipProps$visible","SEllipsis","Root","SContainer","Tooltip","SNoTooltipContainer","Box","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties2","state","advancedContent","findComponent","Ellipsis","Content","displayName","advanceMode","isAdvanceMode","Popper","onVisibleChange","callAllEventHandlers","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","Component","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray2","dimension","setDimension","blockWidth","useResizeObserver","useEnhancedEffect","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","forkRef","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","assignProps","createComponent","_default","exports"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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"}
@@ -19,17 +19,19 @@ import { Box } from '@semcore/flex-box';
19
19
  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
- /*__reshadow-styles__:"./style/ellipsis.shadow.css"*/
23
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_gtb2q_gg_,.___SContainer_gtb2q_gg_,.___SEllipsis_gtb2q_gg_.__middle-mod_gtb2q_gg_,.___SNoTooltipContainer_gtb2q_gg_{display:flex;overflow:hidden}.___SBeginning_gtb2q_gg_,.___SEllipsis_gtb2q_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_gtb2q_gg_.__maxLine_gtb2q_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_gtb2q);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_gtb2q_gg_>:has(.___SBeginning_gtb2q_gg_),.___SContainerMiddle_gtb2q_gg_>:has(.___STail_gtb2q_gg_){display:flex;width:100%}.___STail_gtb2q_gg_{white-space:pre}" /*__inner_css_end__*/, "gtb2q_gg_") /*__reshadow_css_end__*/, {
24
- "__SContainer": "___SContainer_gtb2q_gg_",
25
- "__SNoTooltipContainer": "___SNoTooltipContainer_gtb2q_gg_",
26
- "__SContainerMiddle": "___SContainerMiddle_gtb2q_gg_",
27
- "__SBeginning": "___SBeginning_gtb2q_gg_",
28
- "__SEllipsis": "___SEllipsis_gtb2q_gg_",
29
- "_middle-mod": "__middle-mod_gtb2q_gg_",
30
- "_maxLine": "__maxLine_gtb2q_gg_",
31
- "--maxLine": "--maxLine_gtb2q",
32
- "__STail": "___STail_gtb2q_gg_"
22
+ /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
23
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SContainerMiddle_s6gjn_gg_,.___SContainer_s6gjn_gg_,.___SEllipsis_s6gjn_gg_.__middle-mod_s6gjn_gg_,.___SNoTooltipContainer_s6gjn_gg_{display:flex;overflow:hidden}.___SBeginning_s6gjn_gg_,.___SEllipsis_s6gjn_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_s6gjn_gg_.__maxLine_s6gjn_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_s6gjn);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_s6gjn_gg_>:has(.___SBeginning_s6gjn_gg_),.___SContainerMiddle_s6gjn_gg_>:has(.___STail_s6gjn_gg_){display:flex;width:100%}.___STail_s6gjn_gg_{white-space:pre}", /*__inner_css_end__*/"s6gjn_gg_"),
24
+ /*__reshadow_css_end__*/
25
+ {
26
+ "__SContainer": "___SContainer_s6gjn_gg_",
27
+ "__SNoTooltipContainer": "___SNoTooltipContainer_s6gjn_gg_",
28
+ "__SContainerMiddle": "___SContainerMiddle_s6gjn_gg_",
29
+ "__SBeginning": "___SBeginning_s6gjn_gg_",
30
+ "__SEllipsis": "___SEllipsis_s6gjn_gg_",
31
+ "_middle-mod": "__middle-mod_s6gjn_gg_",
32
+ "_maxLine": "__maxLine_s6gjn_gg_",
33
+ "--maxLine": "--maxLine_s6gjn",
34
+ "__STail": "___STail_s6gjn_gg_"
33
35
  });
34
36
  import reactToText from '@semcore/utils/lib/reactToText';
35
37
  import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsis.js","names":["React","createComponent","Component","Root","sstyled","Tooltip","Box","useResizeObserver","useEnhancedEffect","findComponent","isAdvanceMode","style","_sstyled","insert","reactToText","getOriginChildren","pick","forkRef","callAllEventHandlers","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","visible","createRef","setState","showTooltip","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref4","_tooltipProps$visible","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","_excluded2","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","_assignProps","_assignProps2"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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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","forkRef","callAllEventHandlers","defaultTooltipProps","createMeasurerElement","element","text","styleElement","window","getComputedStyle","temporaryElement","document","createElement","display","getPropertyValue","padding","position","right","bottom","visibility","fontFamily","fontSize","fontWeight","lineHeight","whiteSpace","wordWrap","fontFeatureSettings","fontVariantNumeric","innerHTML","isTextOverflowing","multiline","_element$getBoundingC","getBoundingClientRect","currentHeight","height","currentWidth","width","measuringElement","isOverflowing","body","appendChild","concat","scrollWidth","Math","ceil","removeChild","forcedAdvancedMode","noAdvancedMode","RootEllipsis","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","visible","createRef","setState","showTooltip","_createClass","key","value","_this$asProps","asProps","_this$asProps$maxLine","maxLine","Children","textRef","current","getContentProps","ref","getPopperProps","_this$asProps2","includeTooltipProps","tooltipProps","_objectSpread","children","render","_ref4","_tooltipProps$visible","SEllipsis","SContainer","SNoTooltipContainer","_this$asProps3","styles","tooltip","trim","containerRect","containerRef","other","_objectWithoutProperties","_excluded","state","advancedContent","Ellipsis","Content","displayName","advanceMode","Popper","onVisibleChange","handlerVisibleChange","_ref2","EllipsisMiddle","cn","_ref3","undefined","__excludeProps","EllipsisMiddleContext","createContext","props","_ref7","otherProps","_excluded2","resizeElement","useRef","_React$useState","useState","symbolWidth","_React$useState2","_slicedToArray","dimension","setDimension","blockWidth","node","dateSpan","setAttribute","rect","STail","SBeginning","SContainerMiddle","tag","SAdvancedModeContainerMiddle","displayedSymbols","useMemo","round","interaction","contextValue","begining","substring","tail","_ref5","Provider","_ref6","_ref10","_ref","arguments[0]","_ref9","Trigger","ellipsisMiddleContext","useContext","_ref8","_assignProps","_assignProps2"],"sources":["../../src/Ellipsis.tsx"],"sourcesContent":["import React, { RefObject } from 'react';\nimport createComponent, { Component, Intergalactic, Root, sstyled } from '@semcore/core';\nimport Tooltip, { TooltipProps } from '@semcore/tooltip';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { useResizeObserver } from './useResizeObserver';\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\nimport findComponent, { isAdvanceMode } from '@semcore/utils/lib/findComponent';\n\nimport style from './style/ellipsis.shadow.css';\nimport reactToText from '@semcore/utils/lib/reactToText';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport pick from '@semcore/utils/lib/pick';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\ntype AsProps = {\n maxLine?: number;\n trim?: 'end' | 'middle';\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n includeTooltipProps?: string[];\n __excludeProps?: string[];\n};\n\ntype AsPropsMiddle = {\n text: string;\n textRef: RefObject<HTMLElement>;\n tooltip?: boolean;\n styles?: React.CSSProperties;\n containerRect?: { width: number };\n\n containerRef?: RefObject<HTMLDivElement>;\n tooltipProps: TooltipProps;\n children?: React.ReactNode;\n advanceMode?: boolean;\n tag?: React.ElementType;\n};\n\ntype EllipsisProps = BoxProps &\n Partial<TooltipProps> & {\n /**\n * Rows count in multiline Ellipsis\n * @default 1\n */\n maxLine?: number;\n /**\n * Trimming type\n * @default end\n */\n trim?: 'end' | 'middle';\n /**\n * Show tooltip\n * @default true\n */\n tooltip?: boolean;\n /**\n * Ref to the item that will be observed by ResizeObserver\n */\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n containerRef?: RefObject<HTMLDivElement>;\n /**\n * Explicit sizes of container text should be trimmed in\n **/\n containerRect?: { width: number };\n /** List of props that will be passed to tooltip\n * @default ['title', 'theme', 'strategy', 'modifiers', 'placement', 'interaction', 'timeout', 'visible', 'defaultVisible', 'onVisibleChange', 'offset', 'preventOverflow', 'arrow', 'flip', 'computeStyles', 'eventListeners', 'onFirstUpdate']\n */\n includeTooltipProps?: string[];\n };\n\nconst defaultTooltipProps = [\n 'title',\n 'theme',\n 'strategy',\n 'modifiers',\n 'placement',\n 'interaction',\n 'timeout',\n 'visible',\n 'defaultVisible',\n 'onVisibleChange',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n];\n\nconst createMeasurerElement = (element: HTMLDivElement, text?: string) => {\n const styleElement = window.getComputedStyle(element, null);\n const temporaryElement = document.createElement('temporary-block');\n temporaryElement.style.display = styleElement.getPropertyValue('display');\n temporaryElement.style.padding = styleElement.getPropertyValue('padding');\n temporaryElement.style.position = 'absolute';\n temporaryElement.style.right = '0%';\n temporaryElement.style.bottom = '0%';\n temporaryElement.style.visibility = 'hidden';\n temporaryElement.style.fontFamily = styleElement.getPropertyValue('font-family');\n temporaryElement.style.fontSize = styleElement.getPropertyValue('font-size');\n temporaryElement.style.fontWeight = styleElement.getPropertyValue('font-weight');\n temporaryElement.style.lineHeight = styleElement.getPropertyValue('line-height');\n temporaryElement.style.whiteSpace = styleElement.getPropertyValue('white-space');\n temporaryElement.style.wordWrap = styleElement.getPropertyValue('word-wrap');\n\n temporaryElement.style.fontFeatureSettings =\n styleElement.getPropertyValue('font-feature-settings');\n temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue('font-variant-numeric');\n\n temporaryElement.innerHTML = text ?? element.innerHTML;\n return temporaryElement;\n};\n\nfunction isTextOverflowing(element: HTMLDivElement, multiline: boolean, text?: string): boolean {\n if (!element) return false;\n\n const { height: currentHeight, width: currentWidth } = element.getBoundingClientRect();\n const measuringElement = createMeasurerElement(element, text);\n let isOverflowing = false;\n\n document.body.appendChild(measuringElement);\n if (multiline) {\n measuringElement.style.width = `${currentWidth}px`;\n\n const width = measuringElement.scrollWidth;\n const height = measuringElement.getBoundingClientRect().height;\n\n if (Math.ceil(currentHeight) < height || Math.ceil(currentWidth) < width) {\n isOverflowing = true;\n }\n } else {\n measuringElement.style.whiteSpace = 'nowrap';\n isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;\n }\n\n document.body.removeChild(measuringElement);\n\n return isOverflowing;\n}\n\nconst forcedAdvancedMode = { forcedAdvancedMode: true } as any;\nconst noAdvancedMode = {} as any;\n\nclass RootEllipsis extends Component<AsProps> {\n static displayName = 'Ellipsis';\n static style = style;\n static defaultProps: AsProps = {\n trim: 'end',\n tooltip: true,\n includeTooltipProps: defaultTooltipProps,\n __excludeProps: ['title'],\n };\n\n state = {\n visible: false,\n };\n\n textRef = React.createRef<HTMLDivElement>();\n\n showTooltip() {\n const { maxLine = 1, Children } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n return isTextOverflowing(this.textRef.current!, maxLine > 1, text);\n }\n\n handlerVisibleChange = (visible: boolean) => {\n this.setState({ visible: visible && this.showTooltip() });\n };\n\n getContentProps() {\n return {\n ref: this.textRef,\n maxLine: this.asProps.maxLine,\n };\n }\n\n getPopperProps() {\n const { Children, includeTooltipProps } = this.asProps;\n const text = reactToText(getOriginChildren(Children));\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n return { children: text, ...tooltipProps };\n }\n\n render() {\n const SEllipsis = this.Root;\n const SContainer = Tooltip;\n const SNoTooltipContainer = Box;\n const {\n styles,\n Children,\n maxLine,\n tooltip,\n trim,\n containerRect,\n containerRef,\n includeTooltipProps,\n children,\n ...other\n } = this.asProps;\n const { visible } = this.state;\n const advancedContent = findComponent(Children, [(Ellipsis as any).Content.displayName]);\n const text = reactToText(advancedContent || getOriginChildren(Children));\n const advanceMode = isAdvanceMode(Children, [\n (Ellipsis as any).Content.displayName,\n (Ellipsis as any).Popper.displayName,\n ]);\n const tooltipProps = pick(this.asProps, includeTooltipProps as any) as TooltipProps;\n\n tooltipProps.visible = tooltipProps.visible ?? visible;\n tooltipProps.onVisibleChange = tooltipProps.onVisibleChange\n ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange)\n : this.handlerVisibleChange;\n\n if (trim === 'middle') {\n return sstyled(styles)(\n <EllipsisMiddle\n text={text}\n styles={styles}\n tooltip={tooltip}\n containerRect={containerRect}\n containerRef={containerRef}\n textRef={this.textRef}\n tooltipProps={tooltipProps}\n advanceMode={advanceMode}\n {...other}\n >\n <Children />\n </EllipsisMiddle>,\n );\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainer\n interaction='hover'\n title={!advanceMode ? text : undefined}\n {...tooltipProps}\n {...(advanceMode ? forcedAdvancedMode : noAdvancedMode)}\n >\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SContainer>,\n );\n }\n return sstyled(styles)(\n <SNoTooltipContainer>\n {advanceMode ? (\n <Children />\n ) : (\n <SEllipsis render={Box} ref={this.textRef} maxLine={maxLine} {...other}>\n <Children />\n </SEllipsis>\n )}\n </SNoTooltipContainer>,\n );\n }\n}\n\nconst EllipsisMiddleContext = React.createContext<null | {\n begining: string;\n tail: string;\n ref: React.RefObject<HTMLElement>;\n}>(null);\n\nconst EllipsisMiddle: React.FC<AsPropsMiddle> = (props) => {\n const {\n styles,\n text,\n tooltip,\n containerRect,\n containerRef,\n textRef,\n tooltipProps,\n children,\n advanceMode,\n ...otherProps\n } = props;\n const resizeElement = React.useRef<HTMLDivElement>(null);\n const [dimension, setDimension] = React.useState<{ fontSize: string; symbolWidth: number }>({\n fontSize: '14',\n symbolWidth: 0,\n });\n const blockWidth = useResizeObserver(resizeElement, containerRect).width;\n\n useEnhancedEffect(() => {\n const node = containerRef?.current || resizeElement?.current;\n if (!node) return;\n\n const dateSpan = document.createElement('temporary-block');\n dateSpan.setAttribute('style', `fontSize: ${dimension.fontSize}px`);\n dateSpan.innerHTML = 'a';\n document.body.appendChild(dateSpan);\n const rect = dateSpan.getBoundingClientRect();\n\n setDimension({\n fontSize: window.getComputedStyle(node, null).getPropertyValue('font-size'),\n symbolWidth: rect.width,\n });\n document.body.removeChild(dateSpan);\n }, []);\n\n const STail = 'span';\n const SBeginning = 'span';\n const SContainerMiddle = props.tag || Box;\n const SAdvancedModeContainerMiddle = Tooltip;\n const displayedSymbols = React.useMemo(\n () => Math.round(blockWidth / dimension.symbolWidth),\n [blockWidth, dimension.symbolWidth],\n );\n\n const interaction = text.length > displayedSymbols ? 'hover' : 'none';\n const ref = containerRef ?? resizeElement;\n const contextValue = React.useMemo(\n () => ({\n begining: text.substring(0, text.length - displayedSymbols / 2 - 1),\n tail: text.substring(text.length - displayedSymbols / 2 - 1),\n ref,\n }),\n [text, displayedSymbols],\n );\n\n if (advanceMode) {\n return sstyled(styles)(\n <SAdvancedModeContainerMiddle\n interaction={interaction}\n {...tooltipProps}\n {...forcedAdvancedMode}\n >\n <EllipsisMiddleContext.Provider value={contextValue}>\n {children}\n </EllipsisMiddleContext.Provider>\n </SAdvancedModeContainerMiddle>,\n ) as any;\n }\n if (tooltip) {\n return sstyled(styles)(\n <SContainerMiddle\n interaction={interaction}\n title={text as any}\n ref={forkRef(ref, textRef)}\n tag={Tooltip}\n __excludeProps={['title']}\n {...tooltipProps}\n >\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n }\n return sstyled(styles)(\n <SContainerMiddle {...otherProps} ref={containerRef ?? resizeElement}>\n <SBeginning>{contextValue.begining}</SBeginning>\n <STail>{contextValue.tail}</STail>\n </SContainerMiddle>,\n ) as any;\n};\n\ntype EllipsisContentAsProps = {\n styles: any;\n Children: React.FC;\n};\n\nconst Content: React.FC<EllipsisContentAsProps> = ({ styles, Children }) => {\n const SEllipsis = Root;\n const ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);\n const STail = 'span';\n const SBeginning = 'span';\n\n if (ellipsisMiddleContext) {\n const { begining, tail, ref } = ellipsisMiddleContext;\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger} middle-mod ref={ref}>\n <SBeginning>{begining}</SBeginning>\n <STail>{tail}</STail>\n </SEllipsis>,\n ) as any;\n }\n\n return sstyled(styles)(\n <SEllipsis render={Tooltip.Trigger}>\n <Children />\n </SEllipsis>,\n ) as any;\n};\n\nconst Ellipsis = createComponent(RootEllipsis, {\n Content,\n Popper: Tooltip.Popper,\n}) as any as Intergalactic.Component<'div', EllipsisProps> & {\n Content: typeof Box;\n Popper: typeof Tooltip.Popper;\n};\n\nexport default Ellipsis;\n"],"mappings":"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"}
@@ -1,84 +1,123 @@
1
- import J from "@babel/runtime/helpers/esm/slicedToArray";
2
- import D from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import d from "@babel/runtime/helpers/esm/objectSpread2";
4
- import K from "@babel/runtime/helpers/esm/classCallCheck";
5
- import Q from "@babel/runtime/helpers/esm/createClass";
6
- import z from "@babel/runtime/helpers/esm/assertThisInitialized";
7
- import X from "@babel/runtime/helpers/esm/inherits";
8
- import Y from "@babel/runtime/helpers/esm/createSuper";
9
- import S from "@babel/runtime/helpers/esm/defineProperty";
10
- import { sstyled as Z } from "@semcore/utils/lib/core/index";
11
- import ee, { sstyled as h, Component as te, assignProps as F } from "@semcore/core";
12
- import i from "react";
13
- import R from "@semcore/tooltip";
14
- import { Box as L } from "@semcore/flex-box";
15
- import { useResizeObserver as ie } from "./useResizeObserver.mjs";
16
- import ne from "@semcore/utils/lib/use/useEnhancedEffect";
17
- import re, { isAdvanceMode as oe } from "@semcore/utils/lib/findComponent";
18
- import N from "@semcore/utils/lib/reactToText";
19
- import W from "@semcore/utils/lib/getOriginChildren";
20
- import j from "@semcore/utils/lib/pick";
21
- import { forkRef as le } from "@semcore/utils/lib/ref";
22
- import { callAllEventHandlers as ae } from "@semcore/utils/lib/assignProps";
23
- var se = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"], de = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"], ce = (
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
5
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
6
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
7
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
8
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
9
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
+ import { sstyled } from "@semcore/utils/lib/core/index";
11
+ import createComponent, { sstyled as sstyled$1, Component, assignProps } from "@semcore/core";
12
+ import React from "react";
13
+ import Tooltip from "@semcore/tooltip";
14
+ import { Box } from "@semcore/flex-box";
15
+ import { useResizeObserver } from "./useResizeObserver.mjs";
16
+ import useEnhancedEffect from "@semcore/utils/lib/use/useEnhancedEffect";
17
+ import findComponent, { isAdvanceMode } from "@semcore/utils/lib/findComponent";
18
+ import reactToText from "@semcore/utils/lib/reactToText";
19
+ import getOriginChildren from "@semcore/utils/lib/getOriginChildren";
20
+ import pick from "@semcore/utils/lib/pick";
21
+ import { forkRef } from "@semcore/utils/lib/ref";
22
+ import { callAllEventHandlers } from "@semcore/utils/lib/assignProps";
23
+ var _excluded = ["styles", "Children", "maxLine", "tooltip", "trim", "containerRect", "containerRef", "includeTooltipProps", "children"], _excluded2 = ["styles", "text", "tooltip", "containerRect", "containerRef", "textRef", "tooltipProps", "children", "advanceMode"];
24
+ /*!__reshadow-styles__:"./style/ellipsis.shadow.css"*/
25
+ var style = (
24
26
  /*__reshadow_css_start__*/
25
- (Z.insert(
27
+ (sstyled.insert(
26
28
  /*__inner_css_start__*/
27
- ".___SContainerMiddle_gtb2q_gg_,.___SContainer_gtb2q_gg_,.___SEllipsis_gtb2q_gg_.__middle-mod_gtb2q_gg_,.___SNoTooltipContainer_gtb2q_gg_{display:flex;overflow:hidden}.___SBeginning_gtb2q_gg_,.___SEllipsis_gtb2q_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_gtb2q_gg_.__maxLine_gtb2q_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_gtb2q);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_gtb2q_gg_>:has(.___SBeginning_gtb2q_gg_),.___SContainerMiddle_gtb2q_gg_>:has(.___STail_gtb2q_gg_){display:flex;width:100%}.___STail_gtb2q_gg_{white-space:pre}",
28
- "gtb2q_gg_"
29
- ), {
30
- __SContainer: "___SContainer_gtb2q_gg_",
31
- __SNoTooltipContainer: "___SNoTooltipContainer_gtb2q_gg_",
32
- __SContainerMiddle: "___SContainerMiddle_gtb2q_gg_",
33
- __SBeginning: "___SBeginning_gtb2q_gg_",
34
- __SEllipsis: "___SEllipsis_gtb2q_gg_",
35
- "_middle-mod": "__middle-mod_gtb2q_gg_",
36
- _maxLine: "__maxLine_gtb2q_gg_",
37
- "--maxLine": "--maxLine_gtb2q",
38
- __STail: "___STail_gtb2q_gg_"
29
+ ".___SContainerMiddle_s6gjn_gg_,.___SContainer_s6gjn_gg_,.___SEllipsis_s6gjn_gg_.__middle-mod_s6gjn_gg_,.___SNoTooltipContainer_s6gjn_gg_{display:flex;overflow:hidden}.___SBeginning_s6gjn_gg_,.___SEllipsis_s6gjn_gg_{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:pre}.___SEllipsis_s6gjn_gg_.__maxLine_s6gjn_gg_{display:-webkit-box;-webkit-line-clamp:var(--maxLine_s6gjn);-webkit-box-orient:vertical;overflow:hidden;white-space:normal;word-wrap:break-word}.___SContainerMiddle_s6gjn_gg_>:has(.___SBeginning_s6gjn_gg_),.___SContainerMiddle_s6gjn_gg_>:has(.___STail_s6gjn_gg_){display:flex;width:100%}.___STail_s6gjn_gg_{white-space:pre}",
30
+ /*__inner_css_end__*/
31
+ "s6gjn_gg_"
32
+ ), /*__reshadow_css_end__*/
33
+ {
34
+ "__SContainer": "___SContainer_s6gjn_gg_",
35
+ "__SNoTooltipContainer": "___SNoTooltipContainer_s6gjn_gg_",
36
+ "__SContainerMiddle": "___SContainerMiddle_s6gjn_gg_",
37
+ "__SBeginning": "___SBeginning_s6gjn_gg_",
38
+ "__SEllipsis": "___SEllipsis_s6gjn_gg_",
39
+ "_middle-mod": "__middle-mod_s6gjn_gg_",
40
+ "_maxLine": "__maxLine_s6gjn_gg_",
41
+ "--maxLine": "--maxLine_s6gjn",
42
+ "__STail": "___STail_s6gjn_gg_"
39
43
  })
40
- ), pe = ["title", "theme", "strategy", "modifiers", "placement", "interaction", "timeout", "visible", "defaultVisible", "onVisibleChange", "offset", "preventOverflow", "arrow", "flip", "computeStyles", "eventListeners", "onFirstUpdate", "cursorAnchoring"], ge = function(o, l) {
41
- var t = window.getComputedStyle(o, null), e = document.createElement("temporary-block");
42
- return e.style.display = t.getPropertyValue("display"), e.style.padding = t.getPropertyValue("padding"), e.style.position = "absolute", e.style.right = "0%", e.style.bottom = "0%", e.style.visibility = "hidden", e.style.fontFamily = t.getPropertyValue("font-family"), e.style.fontSize = t.getPropertyValue("font-size"), e.style.fontWeight = t.getPropertyValue("font-weight"), e.style.lineHeight = t.getPropertyValue("line-height"), e.style.whiteSpace = t.getPropertyValue("white-space"), e.style.wordWrap = t.getPropertyValue("word-wrap"), e.style.fontFeatureSettings = t.getPropertyValue("font-feature-settings"), e.style.fontVariantNumeric = t.getPropertyValue("font-variant-numeric"), e.innerHTML = l ?? o.innerHTML, e;
44
+ );
45
+ var defaultTooltipProps = ["title", "theme", "strategy", "modifiers", "placement", "interaction", "timeout", "visible", "defaultVisible", "onVisibleChange", "offset", "preventOverflow", "arrow", "flip", "computeStyles", "eventListeners", "onFirstUpdate", "cursorAnchoring"];
46
+ var createMeasurerElement = function createMeasurerElement2(element, text) {
47
+ var styleElement = window.getComputedStyle(element, null);
48
+ var temporaryElement = document.createElement("temporary-block");
49
+ temporaryElement.style.display = styleElement.getPropertyValue("display");
50
+ temporaryElement.style.padding = styleElement.getPropertyValue("padding");
51
+ temporaryElement.style.position = "absolute";
52
+ temporaryElement.style.right = "0%";
53
+ temporaryElement.style.bottom = "0%";
54
+ temporaryElement.style.visibility = "hidden";
55
+ temporaryElement.style.fontFamily = styleElement.getPropertyValue("font-family");
56
+ temporaryElement.style.fontSize = styleElement.getPropertyValue("font-size");
57
+ temporaryElement.style.fontWeight = styleElement.getPropertyValue("font-weight");
58
+ temporaryElement.style.lineHeight = styleElement.getPropertyValue("line-height");
59
+ temporaryElement.style.whiteSpace = styleElement.getPropertyValue("white-space");
60
+ temporaryElement.style.wordWrap = styleElement.getPropertyValue("word-wrap");
61
+ temporaryElement.style.fontFeatureSettings = styleElement.getPropertyValue("font-feature-settings");
62
+ temporaryElement.style.fontVariantNumeric = styleElement.getPropertyValue("font-variant-numeric");
63
+ temporaryElement.innerHTML = text !== null && text !== void 0 ? text : element.innerHTML;
64
+ return temporaryElement;
43
65
  };
44
- function _e(u, o, l) {
45
- if (!u) return !1;
46
- var t = u.getBoundingClientRect(), e = t.height, a = t.width, r = ge(u, l), n = !1;
47
- if (document.body.appendChild(r), o) {
48
- r.style.width = "".concat(a, "px");
49
- var g = r.scrollWidth, s = r.getBoundingClientRect().height;
50
- (Math.ceil(e) < s || Math.ceil(a) < g) && (n = !0);
51
- } else
52
- r.style.whiteSpace = "nowrap", n = Math.ceil(a) < r.getBoundingClientRect().width;
53
- return document.body.removeChild(r), n;
66
+ function isTextOverflowing(element, multiline, text) {
67
+ if (!element) return false;
68
+ var _element$getBoundingC = element.getBoundingClientRect(), currentHeight = _element$getBoundingC.height, currentWidth = _element$getBoundingC.width;
69
+ var measuringElement = createMeasurerElement(element, text);
70
+ var isOverflowing = false;
71
+ document.body.appendChild(measuringElement);
72
+ if (multiline) {
73
+ measuringElement.style.width = "".concat(currentWidth, "px");
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
+ }
79
+ } else {
80
+ measuringElement.style.whiteSpace = "nowrap";
81
+ isOverflowing = Math.ceil(currentWidth) < measuringElement.getBoundingClientRect().width;
82
+ }
83
+ document.body.removeChild(measuringElement);
84
+ return isOverflowing;
54
85
  }
55
- var I = {
56
- forcedAdvancedMode: !0
57
- }, me = {}, B = /* @__PURE__ */ function(u) {
58
- X(l, u);
59
- var o = Y(l);
60
- function l() {
61
- var t;
62
- K(this, l);
63
- for (var e = arguments.length, a = new Array(e), r = 0; r < e; r++)
64
- a[r] = arguments[r];
65
- return t = o.call.apply(o, [this].concat(a)), S(z(t), "state", {
66
- visible: !1
67
- }), S(z(t), "textRef", /* @__PURE__ */ i.createRef()), S(z(t), "handlerVisibleChange", function(n) {
68
- t.setState({
69
- visible: n && t.showTooltip()
86
+ var forcedAdvancedMode = {
87
+ forcedAdvancedMode: true
88
+ };
89
+ var noAdvancedMode = {};
90
+ var RootEllipsis = /* @__PURE__ */ function(_Component) {
91
+ _inherits(RootEllipsis2, _Component);
92
+ var _super = _createSuper(RootEllipsis2);
93
+ function RootEllipsis2() {
94
+ var _this;
95
+ _classCallCheck(this, RootEllipsis2);
96
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
97
+ args[_key] = arguments[_key];
98
+ }
99
+ _this = _super.call.apply(_super, [this].concat(args));
100
+ _defineProperty(_assertThisInitialized(_this), "state", {
101
+ visible: false
102
+ });
103
+ _defineProperty(_assertThisInitialized(_this), "textRef", /* @__PURE__ */ React.createRef());
104
+ _defineProperty(_assertThisInitialized(_this), "handlerVisibleChange", function(visible) {
105
+ _this.setState({
106
+ visible: visible && _this.showTooltip()
70
107
  });
71
- }), t;
108
+ });
109
+ return _this;
72
110
  }
73
- return Q(l, [{
111
+ _createClass(RootEllipsis2, [{
74
112
  key: "showTooltip",
75
- value: function() {
76
- var e = this.asProps, a = e.maxLine, r = a === void 0 ? 1 : a, n = e.Children, g = N(W(n));
77
- return _e(this.textRef.current, r > 1, g);
113
+ value: function showTooltip() {
114
+ var _this$asProps = this.asProps, _this$asProps$maxLine = _this$asProps.maxLine, maxLine = _this$asProps$maxLine === void 0 ? 1 : _this$asProps$maxLine, Children = _this$asProps.Children;
115
+ var text = reactToText(getOriginChildren(Children));
116
+ return isTextOverflowing(this.textRef.current, maxLine > 1, text);
78
117
  }
79
118
  }, {
80
119
  key: "getContentProps",
81
- value: function() {
120
+ value: function getContentProps() {
82
121
  return {
83
122
  ref: this.textRef,
84
123
  maxLine: this.asProps.maxLine
@@ -86,119 +125,155 @@ var I = {
86
125
  }
87
126
  }, {
88
127
  key: "getPopperProps",
89
- value: function() {
90
- var e = this.asProps, a = e.Children, r = e.includeTooltipProps, n = N(W(a)), g = j(this.asProps, r);
91
- return d({
92
- children: n
93
- }, g);
128
+ value: function getPopperProps() {
129
+ var _this$asProps2 = this.asProps, Children = _this$asProps2.Children, includeTooltipProps = _this$asProps2.includeTooltipProps;
130
+ var text = reactToText(getOriginChildren(Children));
131
+ var tooltipProps = pick(this.asProps, includeTooltipProps);
132
+ return _objectSpread({
133
+ children: text
134
+ }, tooltipProps);
94
135
  }
95
136
  }, {
96
137
  key: "render",
97
- value: function() {
98
- var e, a, r = this.Root, n = R, g = L, s = this.asProps, _ = s.styles, c = s.Children, y = s.maxLine, m = s.tooltip, k = s.trim, M = s.containerRect, E = s.containerRef, A = s.includeTooltipProps;
99
- s.children;
100
- var b = D(s, se), T = this.state.visible, q = re(c, [$.Content.displayName]), P = N(q || W(c)), f = oe(c, [$.Content.displayName, $.Popper.displayName]), p = j(this.asProps, A);
101
- if (p.visible = (a = p.visible) !== null && a !== void 0 ? a : T, p.onVisibleChange = p.onVisibleChange ? ae(p.onVisibleChange, this.handlerVisibleChange) : this.handlerVisibleChange, k === "middle") {
102
- var C;
103
- return C = h(_), /* @__PURE__ */ i.createElement(ue, C.cn("EllipsisMiddle", d({
104
- text: P,
105
- styles: _,
106
- tooltip: m,
107
- containerRect: M,
108
- containerRef: E,
109
- textRef: this.textRef,
110
- tooltipProps: p,
111
- advanceMode: f
112
- }, b)), /* @__PURE__ */ i.createElement(c, C.cn("Children", {})));
138
+ value: function render() {
139
+ var _ref4, _tooltipProps$visible;
140
+ var SEllipsis = this.Root;
141
+ var SContainer = Tooltip;
142
+ var SNoTooltipContainer = Box;
143
+ var _this$asProps3 = this.asProps, styles = _this$asProps3.styles, Children = _this$asProps3.Children, maxLine = _this$asProps3.maxLine, tooltip = _this$asProps3.tooltip, trim = _this$asProps3.trim, containerRect = _this$asProps3.containerRect, containerRef = _this$asProps3.containerRef, includeTooltipProps = _this$asProps3.includeTooltipProps;
144
+ _this$asProps3.children;
145
+ var other = _objectWithoutProperties(_this$asProps3, _excluded);
146
+ var visible = this.state.visible;
147
+ var advancedContent = findComponent(Children, [Ellipsis.Content.displayName]);
148
+ var text = reactToText(advancedContent || getOriginChildren(Children));
149
+ var advanceMode = isAdvanceMode(Children, [Ellipsis.Content.displayName, Ellipsis.Popper.displayName]);
150
+ var tooltipProps = pick(this.asProps, includeTooltipProps);
151
+ tooltipProps.visible = (_tooltipProps$visible = tooltipProps.visible) !== null && _tooltipProps$visible !== void 0 ? _tooltipProps$visible : visible;
152
+ tooltipProps.onVisibleChange = tooltipProps.onVisibleChange ? callAllEventHandlers(tooltipProps.onVisibleChange, this.handlerVisibleChange) : this.handlerVisibleChange;
153
+ if (trim === "middle") {
154
+ var _ref2;
155
+ return _ref2 = sstyled$1(styles), /* @__PURE__ */ React.createElement(EllipsisMiddle, _ref2.cn("EllipsisMiddle", _objectSpread({
156
+ "text": text,
157
+ "styles": styles,
158
+ "tooltip": tooltip,
159
+ "containerRect": containerRect,
160
+ "containerRef": containerRef,
161
+ "textRef": this.textRef,
162
+ "tooltipProps": tooltipProps,
163
+ "advanceMode": advanceMode
164
+ }, other)), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})));
113
165
  }
114
- if (m) {
115
- var v;
116
- return v = h(_), /* @__PURE__ */ i.createElement(n, v.cn("SContainer", d(d({
117
- interaction: "hover",
118
- title: f ? void 0 : P
119
- }, p), f ? I : me)), f ? /* @__PURE__ */ i.createElement(c, v.cn("Children", {})) : /* @__PURE__ */ i.createElement(r, v.cn("SEllipsis", d({
120
- render: L,
121
- ref: this.textRef,
122
- maxLine: y
123
- }, b)), /* @__PURE__ */ i.createElement(c, v.cn("Children", {}))));
166
+ if (tooltip) {
167
+ var _ref3;
168
+ return _ref3 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SContainer, _ref3.cn("SContainer", _objectSpread(_objectSpread({
169
+ "interaction": "hover",
170
+ "title": !advanceMode ? text : void 0
171
+ }, tooltipProps), advanceMode ? forcedAdvancedMode : noAdvancedMode)), advanceMode ? /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {})) : /* @__PURE__ */ React.createElement(SEllipsis, _ref3.cn("SEllipsis", _objectSpread({
172
+ "render": Box,
173
+ "ref": this.textRef,
174
+ "maxLine": maxLine
175
+ }, other)), /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {}))));
124
176
  }
125
- return e = h(_), /* @__PURE__ */ i.createElement(g, e.cn("SNoTooltipContainer", {}), f ? /* @__PURE__ */ i.createElement(c, e.cn("Children", {})) : /* @__PURE__ */ i.createElement(r, e.cn("SEllipsis", d({
126
- render: L,
127
- ref: this.textRef,
128
- maxLine: y
129
- }, b)), /* @__PURE__ */ i.createElement(c, e.cn("Children", {}))));
177
+ return _ref4 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SNoTooltipContainer, _ref4.cn("SNoTooltipContainer", {}), advanceMode ? /* @__PURE__ */ React.createElement(Children, _ref4.cn("Children", {})) : /* @__PURE__ */ React.createElement(SEllipsis, _ref4.cn("SEllipsis", _objectSpread({
178
+ "render": Box,
179
+ "ref": this.textRef,
180
+ "maxLine": maxLine
181
+ }, other)), /* @__PURE__ */ React.createElement(Children, _ref4.cn("Children", {}))));
130
182
  }
131
- }]), l;
132
- }(te);
133
- S(B, "displayName", "Ellipsis");
134
- S(B, "style", ce);
135
- S(B, "defaultProps", {
183
+ }]);
184
+ return RootEllipsis2;
185
+ }(Component);
186
+ _defineProperty(RootEllipsis, "displayName", "Ellipsis");
187
+ _defineProperty(RootEllipsis, "style", style);
188
+ _defineProperty(RootEllipsis, "defaultProps", {
136
189
  trim: "end",
137
- tooltip: !0,
138
- includeTooltipProps: pe,
190
+ tooltip: true,
191
+ includeTooltipProps: defaultTooltipProps,
139
192
  __excludeProps: ["title"]
140
193
  });
141
- var U = /* @__PURE__ */ i.createContext(null), ue = function(o) {
142
- var l, t = o.styles, e = o.text, a = o.tooltip, r = o.containerRect, n = o.containerRef, g = o.textRef, s = o.tooltipProps, _ = o.children, c = o.advanceMode, y = D(o, de), m = i.useRef(null), k = i.useState({
194
+ var EllipsisMiddleContext = /* @__PURE__ */ React.createContext(null);
195
+ var EllipsisMiddle = function EllipsisMiddle2(props) {
196
+ var _ref7;
197
+ var styles = props.styles, text = props.text, tooltip = props.tooltip, containerRect = props.containerRect, containerRef = props.containerRef, textRef = props.textRef, tooltipProps = props.tooltipProps, children = props.children, advanceMode = props.advanceMode, otherProps = _objectWithoutProperties(props, _excluded2);
198
+ var resizeElement = React.useRef(null);
199
+ var _React$useState = React.useState({
143
200
  fontSize: "14",
144
201
  symbolWidth: 0
145
- }), M = J(k, 2), E = M[0], A = M[1], b = ie(m, r).width;
146
- ne(function() {
147
- var O = (n == null ? void 0 : n.current) || (m == null ? void 0 : m.current);
148
- if (O) {
149
- var w = document.createElement("temporary-block");
150
- w.setAttribute("style", "fontSize: ".concat(E.fontSize, "px")), w.innerHTML = "a", document.body.appendChild(w);
151
- var G = w.getBoundingClientRect();
152
- A({
153
- fontSize: window.getComputedStyle(O, null).getPropertyValue("font-size"),
154
- symbolWidth: G.width
155
- }), document.body.removeChild(w);
156
- }
202
+ }), _React$useState2 = _slicedToArray(_React$useState, 2), dimension = _React$useState2[0], setDimension = _React$useState2[1];
203
+ var blockWidth = useResizeObserver(resizeElement, containerRect).width;
204
+ useEnhancedEffect(function() {
205
+ var node = (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || (resizeElement === null || resizeElement === void 0 ? void 0 : resizeElement.current);
206
+ if (!node) return;
207
+ var dateSpan = document.createElement("temporary-block");
208
+ dateSpan.setAttribute("style", "fontSize: ".concat(dimension.fontSize, "px"));
209
+ dateSpan.innerHTML = "a";
210
+ document.body.appendChild(dateSpan);
211
+ var rect = dateSpan.getBoundingClientRect();
212
+ setDimension({
213
+ fontSize: window.getComputedStyle(node, null).getPropertyValue("font-size"),
214
+ symbolWidth: rect.width
215
+ });
216
+ document.body.removeChild(dateSpan);
157
217
  }, []);
158
- var T = "span", q = "span", P = o.tag || L, f = R, p = i.useMemo(function() {
159
- return Math.round(b / E.symbolWidth);
160
- }, [b, E.symbolWidth]), C = e.length > p ? "hover" : "none", v = n ?? m, x = i.useMemo(function() {
218
+ var STail = "span";
219
+ var SBeginning = "span";
220
+ var SContainerMiddle = props.tag || Box;
221
+ var SAdvancedModeContainerMiddle = Tooltip;
222
+ var displayedSymbols = React.useMemo(function() {
223
+ return Math.round(blockWidth / dimension.symbolWidth);
224
+ }, [blockWidth, dimension.symbolWidth]);
225
+ var interaction = text.length > displayedSymbols ? "hover" : "none";
226
+ var ref = containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement;
227
+ var contextValue = React.useMemo(function() {
161
228
  return {
162
- begining: e.substring(0, e.length - p / 2 - 1),
163
- tail: e.substring(e.length - p / 2 - 1),
164
- ref: v
229
+ begining: text.substring(0, text.length - displayedSymbols / 2 - 1),
230
+ tail: text.substring(text.length - displayedSymbols / 2 - 1),
231
+ ref
165
232
  };
166
- }, [e, p]);
167
- if (c) {
168
- var H;
169
- return H = h(t), /* @__PURE__ */ i.createElement(f, H.cn("SAdvancedModeContainerMiddle", d(d({
170
- interaction: C
171
- }, s), I)), /* @__PURE__ */ i.createElement(U.Provider, {
172
- value: x
173
- }, _));
233
+ }, [text, displayedSymbols]);
234
+ if (advanceMode) {
235
+ var _ref5;
236
+ return _ref5 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SAdvancedModeContainerMiddle, _ref5.cn("SAdvancedModeContainerMiddle", _objectSpread(_objectSpread({
237
+ "interaction": interaction
238
+ }, tooltipProps), forcedAdvancedMode)), /* @__PURE__ */ React.createElement(EllipsisMiddleContext.Provider, {
239
+ value: contextValue
240
+ }, children));
174
241
  }
175
- if (a) {
176
- var V;
177
- return V = h(t), /* @__PURE__ */ i.createElement(P, V.cn("SContainerMiddle", d({
178
- interaction: C,
179
- title: e,
180
- ref: le(v, g),
181
- tag: R,
182
- __excludeProps: ["title"]
183
- }, s)), /* @__PURE__ */ i.createElement(q, V.cn("SBeginning", {}), x.begining), /* @__PURE__ */ i.createElement(T, V.cn("STail", {}), x.tail));
242
+ if (tooltip) {
243
+ var _ref6;
244
+ return _ref6 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SContainerMiddle, _ref6.cn("SContainerMiddle", _objectSpread({
245
+ "interaction": interaction,
246
+ "title": text,
247
+ "ref": forkRef(ref, textRef),
248
+ "tag": Tooltip,
249
+ "__excludeProps": ["title"]
250
+ }, tooltipProps)), /* @__PURE__ */ React.createElement(SBeginning, _ref6.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref6.cn("STail", {}), contextValue.tail));
184
251
  }
185
- return l = h(t), /* @__PURE__ */ i.createElement(P, l.cn("SContainerMiddle", d(d({}, y), {}, {
186
- ref: n ?? m
187
- })), /* @__PURE__ */ i.createElement(q, l.cn("SBeginning", {}), x.begining), /* @__PURE__ */ i.createElement(T, l.cn("STail", {}), x.tail));
188
- }, ve = function(o) {
189
- var l = arguments[0], t, e = o.styles, a = o.Children, r = R.Trigger, n = i.useContext(U), g = "span", s = "span";
190
- if (n) {
191
- var _, c = n.begining, y = n.tail, m = n.ref;
192
- return _ = h(e), /* @__PURE__ */ i.createElement(r, _.cn("SEllipsis", d({}, F({
193
- "middle-mod": !0,
194
- ref: m
195
- }, l))), /* @__PURE__ */ i.createElement(s, _.cn("SBeginning", {}), c), /* @__PURE__ */ i.createElement(g, _.cn("STail", {}), y));
252
+ return _ref7 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SContainerMiddle, _ref7.cn("SContainerMiddle", _objectSpread(_objectSpread({}, otherProps), {}, {
253
+ "ref": containerRef !== null && containerRef !== void 0 ? containerRef : resizeElement
254
+ })), /* @__PURE__ */ React.createElement(SBeginning, _ref7.cn("SBeginning", {}), contextValue.begining), /* @__PURE__ */ React.createElement(STail, _ref7.cn("STail", {}), contextValue.tail));
255
+ };
256
+ var Content = function Content2(_ref10) {
257
+ var _ref = arguments[0], _ref9;
258
+ var styles = _ref10.styles, Children = _ref10.Children;
259
+ var SEllipsis = Tooltip.Trigger;
260
+ var ellipsisMiddleContext = React.useContext(EllipsisMiddleContext);
261
+ var STail = "span";
262
+ var SBeginning = "span";
263
+ if (ellipsisMiddleContext) {
264
+ var _ref8;
265
+ var begining = ellipsisMiddleContext.begining, tail = ellipsisMiddleContext.tail, ref = ellipsisMiddleContext.ref;
266
+ return _ref8 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref8.cn("SEllipsis", _objectSpread({}, assignProps({
267
+ "middle-mod": true,
268
+ "ref": ref
269
+ }, _ref))), /* @__PURE__ */ React.createElement(SBeginning, _ref8.cn("SBeginning", {}), begining), /* @__PURE__ */ React.createElement(STail, _ref8.cn("STail", {}), tail));
196
270
  }
197
- return t = h(e), /* @__PURE__ */ i.createElement(r, t.cn("SEllipsis", d({}, F({}, l))), /* @__PURE__ */ i.createElement(a, t.cn("Children", {})));
198
- }, $ = ee(B, {
199
- Content: ve,
200
- Popper: R.Popper
271
+ return _ref9 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SEllipsis, _ref9.cn("SEllipsis", _objectSpread({}, assignProps({}, _ref))), /* @__PURE__ */ React.createElement(Children, _ref9.cn("Children", {})));
272
+ };
273
+ var Ellipsis = createComponent(RootEllipsis, {
274
+ Content,
275
+ Popper: Tooltip.Popper
201
276
  });
202
277
  export {
203
- $ as default
278
+ Ellipsis as default
204
279
  };
package/lib/esm/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { default as o } from "./Ellipsis.mjs";
2
- import { useResizeObserver as s } from "./useResizeObserver.mjs";
1
+ import { default as default2 } from "./Ellipsis.mjs";
2
+ import { useResizeObserver } from "./useResizeObserver.mjs";
3
3
  export {
4
- o as default,
5
- s as useResizeObserver
4
+ default2 as default,
5
+ useResizeObserver
6
6
  };
@@ -0,0 +1,38 @@
1
+ SContainer,
2
+ SNoTooltipContainer,
3
+ SContainerMiddle {
4
+ display: flex;
5
+ overflow: hidden;
6
+ }
7
+
8
+ SBeginning,
9
+ SEllipsis {
10
+ overflow: hidden;
11
+ display: inline-block;
12
+ text-overflow: ellipsis;
13
+ white-space: pre;
14
+ }
15
+
16
+ SEllipsis[middle-mod] {
17
+ display: flex;
18
+ overflow: hidden;
19
+ }
20
+
21
+ SEllipsis[maxLine] {
22
+ display: -webkit-box;
23
+ -webkit-line-clamp: var(--maxLine);
24
+ -webkit-box-orient: vertical;
25
+ overflow: hidden;
26
+ white-space: normal;
27
+ overflow-wrap: break-word;
28
+ }
29
+
30
+ SContainerMiddle> :has(SBeginning),
31
+ SContainerMiddle> :has(STail) {
32
+ display: flex;
33
+ width: 100%;
34
+ }
35
+
36
+ STail {
37
+ white-space: pre;
38
+ }
@@ -1,24 +1,36 @@
1
- import o from "@babel/runtime/helpers/esm/slicedToArray";
2
- import c from "react";
3
- import m from "@semcore/utils/lib/use/useEnhancedEffect";
4
- import R from "@semcore/utils/lib/canUseDOM";
5
- var z = function(r, e) {
6
- var i = c.useState(0), n = o(i, 2), s = n[0], u = n[1], a = c.useCallback(function(t) {
7
- u(t[0].contentRect.width);
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import React from "react";
3
+ import useEnhancedEffect from "@semcore/utils/lib/use/useEnhancedEffect";
4
+ import canUseDOM from "@semcore/utils/lib/canUseDOM";
5
+ var useResizeObserver = function useResizeObserver2(ref, hookOverride) {
6
+ var _React$useState = React.useState(0), _React$useState2 = _slicedToArray(_React$useState, 2), width = _React$useState2[0], setWidth = _React$useState2[1];
7
+ var handleResize = React.useCallback(function(entries) {
8
+ setWidth(entries[0].contentRect.width);
8
9
  }, []);
9
- return m(function() {
10
- if (r.current && !e && R()) {
11
- var t = new ResizeObserver(function(f) {
12
- a(f);
10
+ useEnhancedEffect(function() {
11
+ if (!ref.current) {
12
+ return;
13
+ }
14
+ if (hookOverride) {
15
+ return;
16
+ }
17
+ if (canUseDOM()) {
18
+ var ro = new ResizeObserver(function(entries) {
19
+ handleResize(entries);
13
20
  });
14
- return t.observe(r.current), function() {
15
- t.disconnect();
21
+ ro.observe(ref.current);
22
+ return function() {
23
+ ro.disconnect();
16
24
  };
17
25
  }
18
- }, [e]), e || {
19
- width: s
26
+ }, [hookOverride]);
27
+ if (hookOverride) {
28
+ return hookOverride;
29
+ }
30
+ return {
31
+ width
20
32
  };
21
33
  };
22
34
  export {
23
- z as useResizeObserver
35
+ useResizeObserver
24
36
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/ellipsis",
3
3
  "description": "Semrush Ellipsis Component",
4
- "version": "2.39.2",
4
+ "version": "2.39.3-prerelease.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,12 +14,12 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/utils": "4.48.2",
18
- "@semcore/flex-box": "5.41.2",
19
- "@semcore/tooltip": "6.49.2"
17
+ "@semcore/utils": "4.48.4-prerelease.0",
18
+ "@semcore/flex-box": "5.41.3-prerelease.0",
19
+ "@semcore/tooltip": "6.49.3-prerelease.0"
20
20
  },
21
21
  "peerDependencies": {
22
- "@semcore/core": "^2.17.5",
22
+ "@semcore/core": "^2.39.3-prerelease.0",
23
23
  "react": "16.8 - 18",
24
24
  "react-dom": "16.8 - 18"
25
25
  },