import { RichElement } from '../parser'; /** * 富文本渲染器配置参数 */ export interface RichHTMLOptions { /** * 是否在视频播放时,自动停止其他视频播放. 默认为 true */ pauseVideo?: boolean; /** * 图片点击是否可以预览,默认所有图片都可以预览,你可以传入 false 禁止预览 * 或者可以传入自定义函数,判断是否开启预览 * 默认开启 */ previewImage?: boolean | ((element: RichElement) => boolean); /** * 是否在长按图片时显示菜单,比如保存图片、发送朋友、识别二维码等等 * 默认关闭 */ showMenuOnImageLongPress?: boolean | ((element: RichElement) => boolean); /** * 是否在图片大小溢出时,自动缩放 * 如果没有传递 width,默认会按照图片原始尺寸展示,如果超过屏幕大小,则以屏幕大小为准 * 默认为 true */ adjustImageSize?: boolean; /** * 点击链接是否拷贝, 默认开启 */ copyLink?: boolean | ((element: RichElement) => boolean); /** * 基础路径 * 如果图片、视频、链接等路径不是 http URL,会和 baseURL 做拼接。 * 否则会抛出异常 */ baseURL?: string; /** * 支持 URL 转换 */ transformURL?: (url: string) => string; } export interface RichImageEvents { /** * 图片点击。对于可预览的图片,默认行为是预览图片,你可以调用 preventDefault() 阻止预览 */ onImageClick?: (evt: RichEventPreventable) => void; /** * 图片加载失败 */ onImageLoadError?: (evt: RichEvent) => void; /** * 图片加载完成 */ onImageLoad?: (evt: RichEvent) => void; } export interface RichVideoEvents { /** * 视频播放事件 */ onVideoPlay?: (evt: RichEvent) => void; /** * 视频停止播放事件 */ onVideoPause?: (evt: RichEvent) => void; } export interface RichLinkEvents { /** * 超链接点击, 默认行为是拷贝链接,你可以通过 preventDefault 阻止默认行为。 * 比如在 webview 中打开 */ onLinkClick?: (evt: RichEventPreventable) => void; } /** * 富文本渲染器事件 */ export interface RichHTMLEvents extends RichImageEvents, RichVideoEvents, RichLinkEvents { } /** * 事件对象 */ export interface RichEvent { /** * 事件名称 */ type: string; target: T; /** * 底层元素 */ element: RichElement; } /** * 可以阻止默认事件的事件对象 */ export interface RichEventPreventable extends RichEvent { /** * 默认行为是否被禁用 */ readonly defaultPrevented: boolean; /** * 阻止默认行为。 * 不一定所有的事件都能阻止 */ preventDefault(): void; } /** * 富文本渲染上下文 * * 注意这个上下文是引用类型,而且变动不会触发视图更新 */ export interface RichHTMLContext extends RichHTMLEvents { /** * 配置选项 */ options: RichHTMLOptions; /** * 当前正在播放的视频 */ currentPlayingVideo?: RichVideoInstance[]; /** * 所有图片 */ images?: RichImageInstance[]; } /** * 图片实例 */ export interface RichImageInstance { /** * 唯一 id */ id: string; src: string; /** * 原始大图 */ originSrc: string; /** * 是否可以预览 */ previewable: boolean; element: RichElement; } /** * 视频实例 */ export interface RichVideoInstance { /** * 唯一 id */ id: string; src: string; /** * 暂停播放, 开始播放由用户控制 */ pause(): void; element: RichElement; } /** * 超链接 */ export interface RichLinkInstance { /** * 唯一 id。 后面可以通过这个 id 来查找到超链接, 或者进行当前页面锚点跳转 */ id: string; link: string; element: RichElement; } //# sourceMappingURL=type.d.ts.map