am-editor-001/docs/api/editor-change.zh-CN.md

3.7 KiB
Raw Blame History

Change

编辑器变更的相关操作

类型:ChangeInterface

使用

new Engine(...).change

构造函数

new (container: NodeInterface, options: ChangeOptions): ChangeInterface;

属性

rangePathBeforeCommand

命令执行前的光标转换后的路径

rangePathBeforeCommand?: { start: RangePath; end: RangePath };

event

事件

event: ChangeEventInterface;

range

Range 对象

range: ChangeRangeInterface;

marks

当前光标选区中的所有样式节点

marks: Array<NodeInterface>;

blocks

当前光标选区中的所有块级节点

blocks: Array<NodeInterface>;

inlines

当前光标选区中的所有行内节点

inlines: Array<NodeInterface>;

方法

apply

应用一个具有改变 dom 结构的操作

/**
 * 应用一个具有改变dom结构的操作
 * @param range 光标
 */
apply(range?: RangeInterface): void;

combinText

把当前编辑中间断的字符组合成一段不间断的字符

combinText(): void;

isComposing

是否在组合输入中

isComposing(): boolean;

isSelecting

是否正在选择中

isSelecting(): boolean;

setValue

设置编辑器值

/**
 * @param value 值
 * @param onParse 在转换为符合标准的编辑器值前使用根节点解析过滤
 * @param options 异步渲染卡片回调
 * */
setValue(value: string, onParse?: (node: Node) => void, callback?: (count: number) => void): void;

setHtml

设置 html 作为编辑器值

/**
 * 设置html会格式化为合法的编辑器值
 * @param html html
 * @param options 异步渲染卡片回调
 */
setHtml(html: string, callback?: (count: number) => void): void

getOriginValue

获取编辑器原始值

getOriginValue(): string;

getValue

获取编辑器值

/**
 * @param ignoreCursor 是否忽悠光标所在的记录节点
 * */
getValue(options: { ignoreCursor?: boolean }): string;

cacheRangeBeforeCommand

在执行命令前缓存光标对象

cacheRangeBeforeCommand(): void;

getRangePathBeforeCommand

获取命令执行前的光标转换后的路径

getRangePathBeforeCommand(): Path[] | null;

isEmpty

当前编辑器是否是空值

isEmpty(): boolean;

destroy

销毁

destroy(): void;

insert

插入 Fragment

/**
 * 插入片段
 * @param fragment 片段
 * @param range 光标位置,默认当前光标位置
 * @param callback 插入后的回调函数
 * @param followActiveMark 删除后空标签是否跟随当前激活的mark样式
 */
insert(
	fragment: DocumentFragment,
	range?: RangeInterface,
	callback?: (range: RangeInterface) => void,
	followActiveMark?: boolean,
): void;

delete

删除内容

/**
 * 删除内容
 * @param range 光标,默认获取当前光标
 * @param isDeepMerge 删除后是否合并
 * @param followActiveMark 删除后空标签是否跟随当前激活的mark样式
 */
delete(
	range?: RangeInterface,
	isDeepMerge?: boolean,
	followActiveMark?: boolean,
): void;

unwrap

去除当前光标最接近的 block 节点或传入的节点外层包裹

/**
 * 去除当前光标最接近的block节点或传入的节点外层包裹
 * @param node 节点
 */
unwrap(node?: NodeInterface): void;

mergeAfterDelete

删除当前光标最接近的 block 节点或传入的节点的前面一个节点后合并

/**
 * 删除当前光标最接近的block节点或传入的节点的前面一个节点后合并
 * @param node 节点
 */
mergeAfterDelete(node?: NodeInterface): void;