drip-table
Version:
A tiny and powerful enterprise-class solution for building tables.
53 lines (52 loc) • 1.88 kB
TypeScript
import 'viewerjs/dist/viewer.css';
import React from 'react';
import { HighlightProps } from "../highlight";
import { DripTableContext } from "../../../hooks";
declare type UppercaseLetter = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z';
declare type HTMLTagName = string;
declare type DOMEventType = keyof React.DOMAttributes<unknown> & `on${UppercaseLetter}${string}`;
interface RichTextProps {
style?: React.CSSProperties;
className?: string;
onRef?: React.RefCallback<HTMLDivElement>;
html: string;
singleLine?: boolean;
maxLength?: number;
highlight?: Omit<HighlightProps, 'content' | 'tagName'>;
tagNames?: HTMLTagName[];
domEvents?: DOMEventType[];
}
/**
* 高亮文本
*/
export default class RichText extends React.PureComponent<RichTextProps> {
static contextType: React.Context<import("../../../hooks").IDripTableContext<import("../../..").DripTableRecordTypeWithSubtable<import("../../..").DripTableRecordTypeBase, never>, never>>;
context: React.ContextType<typeof DripTableContext>;
private viewer;
/**
* 迭代渲染一个节点
*
* @private
* @param {ReducerRenderValue} prevVal 迭代器当前数据
* @param {CheerioElement} el 节点原始数据
* @param {number} key 节点唯一标识
* @param {number} maxLength 最大剩余渲染文本长度
* @returns {ReducerRenderValue} 迭代器当前数据
*
* @memberOf RichText
*/
private reducerRenderEl;
/**
* 处理页面,绑定图片查看器
*
* @private
* @param {HTMLDivElement} el 页面根节点
* @returns {void}
*
* @memberOf RichText
*/
private onRef;
componentDidUpdate(): void;
render(): JSX.Element | null;
}
export {};