devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
20 lines (19 loc) • 1.19 kB
TypeScript
import { EqualFunc } from '@devexpress/utils/lib/types';
import { IMaskedProperties } from '../interfaces';
export interface IMergerPropertyDescriptor<TProps, TMask, T> {
setProp(props: TProps, newValue: T): any;
getProp(props: TProps): T;
maskValue(): TMask;
readonly binaryEquals: EqualFunc<T>;
}
export declare abstract class PropertiesMergerBase<TMask, TProps, TMaskedProps extends TProps & IMaskedProperties<TMask>> {
innerProperties: TMaskedProps;
private descriptors;
constructor(initialialProperties: TMaskedProps, descriptors: IMergerPropertyDescriptor<TProps, TMask, any>[]);
protected mergeInternal(properties: TMaskedProps, mask: TMask, setValue: () => void): void;
protected mergeOnlyOwnInternal(properties: TMaskedProps, parentProperties: TMaskedProps, mask: TMask, setValue: () => void, equals: () => boolean): void;
protected mergeTableProperties<T>(descriptor: IMergerPropertyDescriptor<TProps, TMask, T>, getValue: () => T): void;
abstract getMergedProperties(): TProps;
protected mergeAll(from: TMaskedProps): void;
protected mergeOnlyOwnProperties(from: TMaskedProps, parent: TMaskedProps): void;
}