@textbus/core
Version:
Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.
43 lines (42 loc) • 1.36 kB
TypeScript
import { Observable } from '@tanbo/stream';
import { Action, Operation } from '../model/types';
import { Component } from '../model/component';
import { Model } from './observe';
export type Paths = Array<string | number>;
/**
* 用来标识数据模型的数据变化
*/
export declare class ChangeMarker {
host: object;
onForceChange: Observable<void>;
onChange: Observable<Operation>;
onSelfChange: Observable<Action[]>;
get irrevocableUpdate(): boolean;
get dirty(): boolean;
get changed(): boolean;
parentModel: Model | null;
private detachCallbacks;
private _irrevocableUpdate;
private _dirty;
private _changed;
private changeEvent;
private selfChangeEvent;
private childComponentRemovedEvent;
private forceChangeEvent;
constructor(host: object);
addDetachCallback(callback: () => void): void;
getPaths(): Paths;
forceMarkDirtied(source?: Component<any>): void;
forceMarkChanged(source?: Component<any>): void;
markAsDirtied(operation: Operation): void;
markAsChanged(operation: Operation): void;
rendered(): void;
reset(): void;
detach(): void;
private getPathInParent;
}
/**
* 在回调函数内改变组件状态时,将更改的状态标记为不可撤回的
* @param fn
*/
export declare function irrevocableUpdate(fn: () => void): void;