| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | import React, { PureComponent } from 'react';import PropTypes from 'prop-types';import cls from 'classnames';import { strings, cssClasses } from '@douyinfe/semi-foundation/typography/constants';import Base from './base';import {    Ellipsis,    TypographyBaseSize,    TypographyBaseSpacing,    TypographyBaseType,    OmitTypographyProps} from './interface';import { CopyableConfig, LinkType } from './title';type OmitParagraphProps = OmitTypographyProps;export interface ParagraphProps extends Omit<React.HTMLAttributes<HTMLParagraphElement>, OmitParagraphProps>{    className?: string;    component?: React.ElementType;    copyable?: CopyableConfig | boolean;    delete?: boolean;    disabled?: boolean;    ellipsis?: Ellipsis | boolean;    link?: LinkType;    mark?: boolean;    size?: TypographyBaseSize;    spacing?: TypographyBaseSpacing;    strong?: boolean;    style?: React.CSSProperties;    type?: TypographyBaseType;    underline?: boolean;}const prefixCls = cssClasses.PREFIX;export default class Paragraph extends PureComponent<ParagraphProps> {    static propTypes = {        copyable: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),        delete: PropTypes.bool,        disabled: PropTypes.bool,        // editable: PropTypes.bool,        ellipsis: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),        mark: PropTypes.bool,        link: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),        underline: PropTypes.bool,        strong: PropTypes.bool,        type: PropTypes.oneOf(strings.TYPE),        size: PropTypes.oneOf(strings.SIZE),        spacing: PropTypes.oneOf(strings.SPACING),        style: PropTypes.object,        className: PropTypes.string,        component: PropTypes.string,    };    static defaultProps = {        copyable: false,        delete: false,        disabled: false,        // editable: false,        ellipsis: false,        mark: false,        underline: false,        strong: false,        link: false,        type: 'primary',        size: 'normal',        spacing: 'normal',        style: {},        className: '',    };    render() {        const { className } = this.props;        const paragraphCls = cls(className, `${prefixCls}-paragraph`);        return <Base component={'p'} {...this.props} className={paragraphCls} />;    }}
 |