@tiny-codes/react-easy 1.7.1 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## 1.7.2
6
+
7
+ 2026-2-12
8
+
9
+ ### Features
10
+
11
+ - **EllipsisText**, **EllipsisParagraph**, **EllipsisTitle**
12
+ - ✨ Support `children` as the fallback of `text` prop.
13
+
5
14
  ## 1.7.1
6
15
 
7
16
  2026-2-12
@@ -5,5 +5,6 @@ import type { TitleProps } from 'antd/es/typography/Title';
5
5
  declare function withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(Component: ComponentType<MakeEllipsisTypographyProps<T>>): (props: MakeEllipsisTypographyProps<T>) => import("react/jsx-runtime").JSX.Element;
6
6
  export type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {
7
7
  text: string | undefined;
8
+ children?: string | undefined | null;
8
9
  };
9
10
  export default withEllipsisTypography;
@@ -1,4 +1,4 @@
1
- var _excluded = ["ellipsis", "text"];
1
+ var _excluded = ["ellipsis", "children", "text"];
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -20,7 +20,9 @@ function withEllipsisTypography(Component) {
20
20
  return function EllipsisText(props) {
21
21
  var _props$ellipsis = props.ellipsis,
22
22
  ellipsis = _props$ellipsis === void 0 ? true : _props$ellipsis,
23
- text = props.text,
23
+ children = props.children,
24
+ _props$text = props.text,
25
+ text = _props$text === void 0 ? children : _props$text,
24
26
  rest = _objectWithoutProperties(props, _excluded);
25
27
  var _useState = useState(false),
26
28
  _useState2 = _slicedToArray(_useState, 2),
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useState","Tooltip","jsx","_jsx","withEllipsisTypography","Component","EllipsisText","props","_props$ellipsis","ellipsis","text","rest","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","isEllipsis","setIsEllipsis","_useState3","_useState4","dom","setDom","isAutoEllipsis","isAutoTooltip","_typeof","tooltip","isAutoTooltipTitle","title","isAuto","tooltipTitle","undefined","Promise","resolve","then","scrollWidth","clientWidth","scrollHeight","clientHeight","_objectSpread","children","ref"],"sources":["../../../src/components/EllipsisTypography/withEllipsisTypography.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport type { TooltipProps } from 'antd';\nimport { Tooltip } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\n\nfunction withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(\n Component: ComponentType<MakeEllipsisTypographyProps<T>>\n) {\n return function EllipsisText(props: MakeEllipsisTypographyProps<T>) {\n const { ellipsis = true, text, ...rest } = props;\n const [isEllipsis, setIsEllipsis] = useState(false);\n const [dom, setDom] = useState<HTMLElement | null>(null);\n const isAutoEllipsis = useMemo(() => ellipsis === true, [ellipsis]);\n const isAutoTooltip = useMemo(() => typeof ellipsis === 'object' && ellipsis.tooltip === true, [ellipsis]);\n const isAutoTooltipTitle = useMemo(\n () =>\n typeof ellipsis === 'object' &&\n ellipsis.tooltip &&\n typeof ellipsis.tooltip === 'object' &&\n 'title' in ellipsis.tooltip &&\n ellipsis.tooltip.title === true,\n [ellipsis]\n );\n const isAuto = useMemo(\n () => isAutoEllipsis || isAutoTooltip || isAutoTooltipTitle,\n [isAutoEllipsis, isAutoTooltip, isAutoTooltipTitle]\n );\n const tooltipTitle = useMemo(() => (isEllipsis ? text : undefined), [isEllipsis, text]);\n\n useEffect(() => {\n if (dom && isAuto) {\n Promise.resolve().then(() => {\n setIsEllipsis(dom.scrollWidth > dom.clientWidth || dom.scrollHeight > dom.clientHeight);\n });\n }\n }, [text, isAuto, dom]);\n\n return (\n <Tooltip {...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps)} title={tooltipTitle}>\n <Component\n ref={setDom}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n ellipsis={\n isAutoEllipsis\n ? { tooltip: undefined }\n : isAutoTooltip\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: undefined,\n }\n : isAutoTooltipTitle\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: {\n ...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps),\n title: undefined,\n },\n }\n : ellipsis\n }\n >\n {text}\n </Component>\n </Tooltip>\n );\n };\n}\n\nexport type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {\n text: string | undefined;\n};\n\nexport default withEllipsisTypography;\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useMemo","useState","Tooltip","jsx","_jsx","withEllipsisTypography","Component","EllipsisText","props","_props$ellipsis","ellipsis","children","_props$text","text","rest","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","isEllipsis","setIsEllipsis","_useState3","_useState4","dom","setDom","isAutoEllipsis","isAutoTooltip","_typeof","tooltip","isAutoTooltipTitle","title","isAuto","tooltipTitle","undefined","Promise","resolve","then","scrollWidth","clientWidth","scrollHeight","clientHeight","_objectSpread","ref"],"sources":["../../../src/components/EllipsisTypography/withEllipsisTypography.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport type { TooltipProps } from 'antd';\nimport { Tooltip } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\n\nfunction withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(\n Component: ComponentType<MakeEllipsisTypographyProps<T>>\n) {\n return function EllipsisText(props: MakeEllipsisTypographyProps<T>) {\n const { ellipsis = true, children, text = children, ...rest } = props;\n const [isEllipsis, setIsEllipsis] = useState(false);\n const [dom, setDom] = useState<HTMLElement | null>(null);\n const isAutoEllipsis = useMemo(() => ellipsis === true, [ellipsis]);\n const isAutoTooltip = useMemo(() => typeof ellipsis === 'object' && ellipsis.tooltip === true, [ellipsis]);\n const isAutoTooltipTitle = useMemo(\n () =>\n typeof ellipsis === 'object' &&\n ellipsis.tooltip &&\n typeof ellipsis.tooltip === 'object' &&\n 'title' in ellipsis.tooltip &&\n ellipsis.tooltip.title === true,\n [ellipsis]\n );\n const isAuto = useMemo(\n () => isAutoEllipsis || isAutoTooltip || isAutoTooltipTitle,\n [isAutoEllipsis, isAutoTooltip, isAutoTooltipTitle]\n );\n const tooltipTitle = useMemo(() => (isEllipsis ? text : undefined), [isEllipsis, text]);\n\n useEffect(() => {\n if (dom && isAuto) {\n Promise.resolve().then(() => {\n setIsEllipsis(dom.scrollWidth > dom.clientWidth || dom.scrollHeight > dom.clientHeight);\n });\n }\n }, [text, isAuto, dom]);\n\n return (\n <Tooltip {...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps)} title={tooltipTitle}>\n <Component\n ref={setDom}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n ellipsis={\n isAutoEllipsis\n ? { tooltip: undefined }\n : isAutoTooltip\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: undefined,\n }\n : isAutoTooltipTitle\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: {\n ...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps),\n title: undefined,\n },\n }\n : ellipsis\n }\n >\n {text}\n </Component>\n </Tooltip>\n );\n };\n}\n\nexport type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {\n text: string | undefined;\n children?: string | undefined | null;\n};\n\nexport default withEllipsisTypography;\n"],"mappings":";;;;;;;;;;;;;;;AACA,SAASA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEpD,SAASC,OAAO,QAAQ,MAAM;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM/B,SAASC,sBAAsBA,CAC7BC,SAAwD,EACxD;EACA,OAAO,SAASC,YAAYA,CAACC,KAAqC,EAAE;IAClE,IAAAC,eAAA,GAAgED,KAAK,CAA7DE,QAAQ;MAARA,QAAQ,GAAAD,eAAA,cAAG,IAAI,GAAAA,eAAA;MAAEE,QAAQ,GAA+BH,KAAK,CAA5CG,QAAQ;MAAAC,WAAA,GAA+BJ,KAAK,CAAlCK,IAAI;MAAJA,IAAI,GAAAD,WAAA,cAAGD,QAAQ,GAAAC,WAAA;MAAKE,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;IACrE,IAAAC,SAAA,GAAoChB,QAAQ,CAAC,KAAK,CAAC;MAAAiB,UAAA,GAAAC,cAAA,CAAAF,SAAA;MAA5CG,UAAU,GAAAF,UAAA;MAAEG,aAAa,GAAAH,UAAA;IAChC,IAAAI,UAAA,GAAsBrB,QAAQ,CAAqB,IAAI,CAAC;MAAAsB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;MAAjDE,GAAG,GAAAD,UAAA;MAAEE,MAAM,GAAAF,UAAA;IAClB,IAAMG,cAAc,GAAG1B,OAAO,CAAC;MAAA,OAAMU,QAAQ,KAAK,IAAI;IAAA,GAAE,CAACA,QAAQ,CAAC,CAAC;IACnE,IAAMiB,aAAa,GAAG3B,OAAO,CAAC;MAAA,OAAM4B,OAAA,CAAOlB,QAAQ,MAAK,QAAQ,IAAIA,QAAQ,CAACmB,OAAO,KAAK,IAAI;IAAA,GAAE,CAACnB,QAAQ,CAAC,CAAC;IAC1G,IAAMoB,kBAAkB,GAAG9B,OAAO,CAChC;MAAA,OACE4B,OAAA,CAAOlB,QAAQ,MAAK,QAAQ,IAC5BA,QAAQ,CAACmB,OAAO,IAChBD,OAAA,CAAOlB,QAAQ,CAACmB,OAAO,MAAK,QAAQ,IACpC,OAAO,IAAInB,QAAQ,CAACmB,OAAO,IAC3BnB,QAAQ,CAACmB,OAAO,CAACE,KAAK,KAAK,IAAI;IAAA,GACjC,CAACrB,QAAQ,CACX,CAAC;IACD,IAAMsB,MAAM,GAAGhC,OAAO,CACpB;MAAA,OAAM0B,cAAc,IAAIC,aAAa,IAAIG,kBAAkB;IAAA,GAC3D,CAACJ,cAAc,EAAEC,aAAa,EAAEG,kBAAkB,CACpD,CAAC;IACD,IAAMG,YAAY,GAAGjC,OAAO,CAAC;MAAA,OAAOoB,UAAU,GAAGP,IAAI,GAAGqB,SAAS;IAAA,CAAC,EAAE,CAACd,UAAU,EAAEP,IAAI,CAAC,CAAC;IAEvFd,SAAS,CAAC,YAAM;MACd,IAAIyB,GAAG,IAAIQ,MAAM,EAAE;QACjBG,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,YAAM;UAC3BhB,aAAa,CAACG,GAAG,CAACc,WAAW,GAAGd,GAAG,CAACe,WAAW,IAAIf,GAAG,CAACgB,YAAY,GAAGhB,GAAG,CAACiB,YAAY,CAAC;QACzF,CAAC,CAAC;MACJ;IACF,CAAC,EAAE,CAAC5B,IAAI,EAAEmB,MAAM,EAAER,GAAG,CAAC,CAAC;IAEvB,oBACEpB,IAAA,CAACF,OAAO,EAAAwC,aAAA,CAAAA,aAAA,KAAOhC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAqBmB,OAAO;MAAmBE,KAAK,EAAEE,YAAa;MAAAtB,QAAA,eACxFP,IAAA,CAACE,SAAS,EAAAoC,aAAA,CAAAA,aAAA;QACRC,GAAG,EAAElB;QACL;MAAA,GACKX,IAAI;QACTJ,QAAQ,EACNgB,cAAc,GACV;UAAEG,OAAO,EAAEK;QAAU,CAAC,GACtBP,aAAa,GAAAe,aAAA,CAAAA,aAAA,KAELhC,QAAQ;UACZmB,OAAO,EAAEK;QAAS,KAEpBJ,kBAAkB,GAAAY,aAAA,CAAAA,aAAA,KAEVhC,QAAQ;UACZmB,OAAO,EAAAa,aAAA,CAAAA,aAAA,KACAhC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAqBmB,OAAO;YACzCE,KAAK,EAAEG;UAAS;QACjB,KAEHxB,QACT;QAAAC,QAAA,EAEAE;MAAI,EACI;IAAC,EACL,CAAC;EAEd,CAAC;AACH;AAOA,eAAeR,sBAAsB"}
@@ -5,5 +5,6 @@ import type { TitleProps } from 'antd/es/typography/Title';
5
5
  declare function withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(Component: ComponentType<MakeEllipsisTypographyProps<T>>): (props: MakeEllipsisTypographyProps<T>) => import("react/jsx-runtime").JSX.Element;
6
6
  export type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {
7
7
  text: string | undefined;
8
+ children?: string | undefined | null;
8
9
  };
9
10
  export default withEllipsisTypography;
@@ -26,7 +26,7 @@ var import_react = require("react");
26
26
  var import_antd = require("antd");
27
27
  function withEllipsisTypography(Component) {
28
28
  return function EllipsisText(props) {
29
- const { ellipsis = true, text, ...rest } = props;
29
+ const { ellipsis = true, children, text = children, ...rest } = props;
30
30
  const [isEllipsis, setIsEllipsis] = (0, import_react.useState)(false);
31
31
  const [dom, setDom] = (0, import_react.useState)(null);
32
32
  const isAutoEllipsis = (0, import_react.useMemo)(() => ellipsis === true, [ellipsis]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/EllipsisTypography/withEllipsisTypography.tsx"],
4
- "sourcesContent": ["import type { ComponentType } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport type { TooltipProps } from 'antd';\nimport { Tooltip } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\n\nfunction withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(\n Component: ComponentType<MakeEllipsisTypographyProps<T>>\n) {\n return function EllipsisText(props: MakeEllipsisTypographyProps<T>) {\n const { ellipsis = true, text, ...rest } = props;\n const [isEllipsis, setIsEllipsis] = useState(false);\n const [dom, setDom] = useState<HTMLElement | null>(null);\n const isAutoEllipsis = useMemo(() => ellipsis === true, [ellipsis]);\n const isAutoTooltip = useMemo(() => typeof ellipsis === 'object' && ellipsis.tooltip === true, [ellipsis]);\n const isAutoTooltipTitle = useMemo(\n () =>\n typeof ellipsis === 'object' &&\n ellipsis.tooltip &&\n typeof ellipsis.tooltip === 'object' &&\n 'title' in ellipsis.tooltip &&\n ellipsis.tooltip.title === true,\n [ellipsis]\n );\n const isAuto = useMemo(\n () => isAutoEllipsis || isAutoTooltip || isAutoTooltipTitle,\n [isAutoEllipsis, isAutoTooltip, isAutoTooltipTitle]\n );\n const tooltipTitle = useMemo(() => (isEllipsis ? text : undefined), [isEllipsis, text]);\n\n useEffect(() => {\n if (dom && isAuto) {\n Promise.resolve().then(() => {\n setIsEllipsis(dom.scrollWidth > dom.clientWidth || dom.scrollHeight > dom.clientHeight);\n });\n }\n }, [text, isAuto, dom]);\n\n return (\n <Tooltip {...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps)} title={tooltipTitle}>\n <Component\n ref={setDom}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n ellipsis={\n isAutoEllipsis\n ? { tooltip: undefined }\n : isAutoTooltip\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: undefined,\n }\n : isAutoTooltipTitle\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: {\n ...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps),\n title: undefined,\n },\n }\n : ellipsis\n }\n >\n {text}\n </Component>\n </Tooltip>\n );\n };\n}\n\nexport type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {\n text: string | undefined;\n};\n\nexport default withEllipsisTypography;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA6C;AAE7C,kBAAwB;AAMxB,SAAS,uBACP,WACA;AACA,SAAO,SAAS,aAAa,OAAuC;AAClE,UAAM,EAAE,WAAW,MAAM,MAAM,GAAG,KAAK,IAAI;AAC3C,UAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAClD,UAAM,CAAC,KAAK,MAAM,QAAI,uBAA6B,IAAI;AACvD,UAAM,qBAAiB,sBAAQ,MAAM,aAAa,MAAM,CAAC,QAAQ,CAAC;AAClE,UAAM,oBAAgB,sBAAQ,MAAM,OAAO,aAAa,YAAY,SAAS,YAAY,MAAM,CAAC,QAAQ,CAAC;AACzG,UAAM,yBAAqB;AAAA,MACzB,MACE,OAAO,aAAa,YACpB,SAAS,WACT,OAAO,SAAS,YAAY,YAC5B,WAAW,SAAS,WACpB,SAAS,QAAQ,UAAU;AAAA,MAC7B,CAAC,QAAQ;AAAA,IACX;AACA,UAAM,aAAS;AAAA,MACb,MAAM,kBAAkB,iBAAiB;AAAA,MACzC,CAAC,gBAAgB,eAAe,kBAAkB;AAAA,IACpD;AACA,UAAM,mBAAe,sBAAQ,MAAO,aAAa,OAAO,QAAY,CAAC,YAAY,IAAI,CAAC;AAEtF,gCAAU,MAAM;AACd,UAAI,OAAO,QAAQ;AACjB,gBAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,wBAAc,IAAI,cAAc,IAAI,eAAe,IAAI,eAAe,IAAI,YAAY;AAAA,QACxF,CAAC;AAAA,MACH;AAAA,IACF,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC;AAEtB,WACE,oCAAC,uBAAS,GAAK,qCAA6B,SAA0B,OAAO,gBAC3E;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QAEJ,GAAI;AAAA,QACL,UACE,iBACI,EAAE,SAAS,OAAU,IACrB,gBACE;AAAA,UACE,GAAI;AAAA,UACJ,SAAS;AAAA,QACX,IACA,qBACE;AAAA,UACE,GAAI;AAAA,UACJ,SAAS;AAAA,YACP,GAAK,qCAA6B;AAAA,YAClC,OAAO;AAAA,UACT;AAAA,QACF,IACA;AAAA;AAAA,MAGT;AAAA,IACH,CACF;AAAA,EAEJ;AACF;AAMA,IAAO,iCAAQ;",
4
+ "sourcesContent": ["import type { ComponentType } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport type { TooltipProps } from 'antd';\nimport { Tooltip } from 'antd';\nimport type { EllipsisConfig } from 'antd/es/typography/Base';\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport type { TitleProps } from 'antd/es/typography/Title';\n\nfunction withEllipsisTypography<T extends TextProps | ParagraphProps | TitleProps>(\n Component: ComponentType<MakeEllipsisTypographyProps<T>>\n) {\n return function EllipsisText(props: MakeEllipsisTypographyProps<T>) {\n const { ellipsis = true, children, text = children, ...rest } = props;\n const [isEllipsis, setIsEllipsis] = useState(false);\n const [dom, setDom] = useState<HTMLElement | null>(null);\n const isAutoEllipsis = useMemo(() => ellipsis === true, [ellipsis]);\n const isAutoTooltip = useMemo(() => typeof ellipsis === 'object' && ellipsis.tooltip === true, [ellipsis]);\n const isAutoTooltipTitle = useMemo(\n () =>\n typeof ellipsis === 'object' &&\n ellipsis.tooltip &&\n typeof ellipsis.tooltip === 'object' &&\n 'title' in ellipsis.tooltip &&\n ellipsis.tooltip.title === true,\n [ellipsis]\n );\n const isAuto = useMemo(\n () => isAutoEllipsis || isAutoTooltip || isAutoTooltipTitle,\n [isAutoEllipsis, isAutoTooltip, isAutoTooltipTitle]\n );\n const tooltipTitle = useMemo(() => (isEllipsis ? text : undefined), [isEllipsis, text]);\n\n useEffect(() => {\n if (dom && isAuto) {\n Promise.resolve().then(() => {\n setIsEllipsis(dom.scrollWidth > dom.clientWidth || dom.scrollHeight > dom.clientHeight);\n });\n }\n }, [text, isAuto, dom]);\n\n return (\n <Tooltip {...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps)} title={tooltipTitle}>\n <Component\n ref={setDom}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n {...(rest as any)}\n ellipsis={\n isAutoEllipsis\n ? { tooltip: undefined }\n : isAutoTooltip\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: undefined,\n }\n : isAutoTooltipTitle\n ? {\n ...(ellipsis as EllipsisConfig),\n tooltip: {\n ...((ellipsis as EllipsisConfig)?.tooltip as TooltipProps),\n title: undefined,\n },\n }\n : ellipsis\n }\n >\n {text}\n </Component>\n </Tooltip>\n );\n };\n}\n\nexport type MakeEllipsisTypographyProps<T> = Omit<T, 'children'> & {\n text: string | undefined;\n children?: string | undefined | null;\n};\n\nexport default withEllipsisTypography;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA6C;AAE7C,kBAAwB;AAMxB,SAAS,uBACP,WACA;AACA,SAAO,SAAS,aAAa,OAAuC;AAClE,UAAM,EAAE,WAAW,MAAM,UAAU,OAAO,UAAU,GAAG,KAAK,IAAI;AAChE,UAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAClD,UAAM,CAAC,KAAK,MAAM,QAAI,uBAA6B,IAAI;AACvD,UAAM,qBAAiB,sBAAQ,MAAM,aAAa,MAAM,CAAC,QAAQ,CAAC;AAClE,UAAM,oBAAgB,sBAAQ,MAAM,OAAO,aAAa,YAAY,SAAS,YAAY,MAAM,CAAC,QAAQ,CAAC;AACzG,UAAM,yBAAqB;AAAA,MACzB,MACE,OAAO,aAAa,YACpB,SAAS,WACT,OAAO,SAAS,YAAY,YAC5B,WAAW,SAAS,WACpB,SAAS,QAAQ,UAAU;AAAA,MAC7B,CAAC,QAAQ;AAAA,IACX;AACA,UAAM,aAAS;AAAA,MACb,MAAM,kBAAkB,iBAAiB;AAAA,MACzC,CAAC,gBAAgB,eAAe,kBAAkB;AAAA,IACpD;AACA,UAAM,mBAAe,sBAAQ,MAAO,aAAa,OAAO,QAAY,CAAC,YAAY,IAAI,CAAC;AAEtF,gCAAU,MAAM;AACd,UAAI,OAAO,QAAQ;AACjB,gBAAQ,QAAQ,EAAE,KAAK,MAAM;AAC3B,wBAAc,IAAI,cAAc,IAAI,eAAe,IAAI,eAAe,IAAI,YAAY;AAAA,QACxF,CAAC;AAAA,MACH;AAAA,IACF,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC;AAEtB,WACE,oCAAC,uBAAS,GAAK,qCAA6B,SAA0B,OAAO,gBAC3E;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QAEJ,GAAI;AAAA,QACL,UACE,iBACI,EAAE,SAAS,OAAU,IACrB,gBACE;AAAA,UACE,GAAI;AAAA,UACJ,SAAS;AAAA,QACX,IACA,qBACE;AAAA,UACE,GAAI;AAAA,UACJ,SAAS;AAAA,YACP,GAAK,qCAA6B;AAAA,YAClC,OAAO;AAAA,UACT;AAAA,QACF,IACA;AAAA;AAAA,MAGT;AAAA,IACH,CACF;AAAA,EAEJ;AACF;AAOA,IAAO,iCAAQ;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiny-codes/react-easy",
3
- "version": "1.7.1",
3
+ "version": "1.7.2",
4
4
  "description": "Simplify React and AntDesign development with practical components and hooks",
5
5
  "keywords": [
6
6
  "react",