import { type CSSProperties, type PropType, type VNode } from 'vue'; import type { Ellipsis, TypographyBaseSize, TypographyBaseType } from './interface'; import type { CopyableConfig, LinkType } from './title'; import type { BaseProps } from '../_base/baseComponent'; import { CombineProps } from '../interface'; export interface BaseTypographyProps extends BaseProps { copyable?: CopyableConfig | boolean; delete?: boolean; disabled?: boolean; icon?: VNode; /** * ellipsis 用于设置截断相关参数. * Ellipsis is used to set ellipsis related parameters. * ellipsis 仅支持纯文本的截断,不支持 reactNode 等复杂类型,请确保 children 传入内容类型为 string. * Ellipsis only supports ellipsis of plain text, and does not support complex types such as reactNode. * Please ensure that the content type of children is string. * Semi 截断有两种策略, CSS 截断和 JS 截断。 * Semi ellipsis has two strategies, CSS ellipsis and JS ellipsis. * - 当设置中间截断(pos='middle')、可展开(expandable)、有后缀(suffix 非空)、可复制(copyable),启用 JS 截断策略 * - When setting middle ellipsis (pos='middle')、expandable、suffix is not empty string、copyable, * the JS ellipsis strategy is enabled * - 非以上场景,启用 CSS 截断策略 * - Otherwise, enable the CSS ellipsis strategy * * 通常来说 CSS 截断的性能优于 JS 截断。在 children 不变, 容器尺寸不变的情况下,CSS 截断只涉及 1-2 次计算,js 截断基于二分法,可能涉及多次计算。 * In general CSS ellipsis performs better than JS ellipsis. when the children and container size remain unchanged, * CSS ellipsis only involves 1-2 calculations, while JS ellipsis is based on dichotomy and may require multiple calculations. * 同时使用大量带有截断功能的 Typography 需注意性能消耗,如在 Table 中,可通过设置合理的页容量进行分页减少性能损耗 * Pay attention to performance consumption when using a large number of Typography with ellipsis. For example, in Table, * you can reduce performance loss by setting a reasonable pageSize for paging */ ellipsis?: Ellipsis | boolean; mark?: boolean; underline?: boolean; link?: LinkType; strong?: boolean; type?: TypographyBaseType; size?: TypographyBaseSize; style?: CSSProperties; className?: string; code?: boolean; children?: any; component?: any; spacing?: string; heading?: string; weight?: string | number; component_?: any; class?: string; id?: string; 'x-semi-prop'?: string; } export declare const vuePropsType: CombineProps; declare const Base: import("vue").DefineComponent | { type: PropType; default?: any; required?: false; }; delete: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; icon: PropType> | { type: PropType>; default?: any; required?: false; }; ellipsis: PropType | { type: PropType; default?: any; required?: false; }; mark: PropType | { type: PropType; default?: any; required?: false; }; underline: PropType | { type: PropType; default?: any; required?: false; }; link: PropType | { type: PropType; default?: any; required?: false; }; strong: PropType | { type: PropType; default?: any; required?: false; }; type: PropType<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary"> | { type: PropType<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">; default?: any; required?: false; }; size: PropType<"small" | "normal" | "inherit"> | { type: PropType<"small" | "normal" | "inherit">; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; code: PropType | { type: PropType; default?: any; required?: false; }; children: PropType | { type: PropType; default?: any; required?: false; }; component: PropType | { type: PropType; default?: any; required?: false; }; spacing: PropType | { type: PropType; default?: any; required?: false; }; heading: PropType | { type: PropType; default?: any; required?: false; }; weight: PropType | { type: PropType; default?: any; required?: false; }; component_: PropType | { type: PropType; default?: any; required?: false; }; class: PropType | { type: PropType; default?: any; required?: false; }; id: PropType | { type: PropType; default?: any; required?: false; }; 'x-semi-prop': PropType | { type: PropType; default?: any; required?: false; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | { type: PropType; default?: any; required?: false; }; delete: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; icon: PropType> | { type: PropType>; default?: any; required?: false; }; ellipsis: PropType | { type: PropType; default?: any; required?: false; }; mark: PropType | { type: PropType; default?: any; required?: false; }; underline: PropType | { type: PropType; default?: any; required?: false; }; link: PropType | { type: PropType; default?: any; required?: false; }; strong: PropType | { type: PropType; default?: any; required?: false; }; type: PropType<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary"> | { type: PropType<"warning" | "success" | "primary" | "secondary" | "danger" | "tertiary" | "quaternary">; default?: any; required?: false; }; size: PropType<"small" | "normal" | "inherit"> | { type: PropType<"small" | "normal" | "inherit">; default?: any; required?: false; }; style: PropType | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; code: PropType | { type: PropType; default?: any; required?: false; }; children: PropType | { type: PropType; default?: any; required?: false; }; component: PropType | { type: PropType; default?: any; required?: false; }; spacing: PropType | { type: PropType; default?: any; required?: false; }; heading: PropType | { type: PropType; default?: any; required?: false; }; weight: PropType | { type: PropType; default?: any; required?: false; }; component_: PropType | { type: PropType; default?: any; required?: false; }; class: PropType | { type: PropType; default?: any; required?: false; }; id: PropType | { type: PropType; default?: any; required?: false; }; 'x-semi-prop': PropType | { type: PropType; default?: any; required?: false; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default Base;