mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
// Type definitions for slate-html-serializer 0.6
|
|
// Project: https://github.com/ianstormtaylor/slate
|
|
// Definitions by: Brandon Shelton <https://github.com/YangusKhan>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.8
|
|
import * as React from 'react';
|
|
import { BlockProperties, ValueJSON, Value, Node as SlateNode, Mark, Leaf } from 'slate';
|
|
|
|
export interface Rule {
|
|
deserialize?: (el: Element, next: (elements: Element[] | NodeList | Array<Node & ChildNode>) => any) => any;
|
|
serialize?: (obj: any, children: string) => React.ReactNode;
|
|
}
|
|
|
|
export interface HtmlOptions {
|
|
rules?: Rule[];
|
|
defaultBlock?: BlockProperties;
|
|
parseHtml?: (html: string) => HTMLElement;
|
|
}
|
|
|
|
export default class Html {
|
|
constructor(options?: HtmlOptions);
|
|
|
|
deserialize(html: string, options: { toJSON: true }): ValueJSON;
|
|
deserialize(html: string, options?: { toJSON?: false }): Value;
|
|
|
|
serialize(value: Value, options?: { render?: true }): string;
|
|
serialize(value: Value, options: { render: false }): Element[];
|
|
|
|
protected rules: Rule[];
|
|
protected defaultBlock: BlockProperties;
|
|
protected parseHtml: (html: string) => HTMLElement;
|
|
|
|
protected deserializeElements: (elements: HTMLElement[]) => SlateNode[];
|
|
protected deserializeElement: (element: HTMLElement) => any;
|
|
protected deserializeMark: (mark: Mark) => SlateNode[];
|
|
|
|
protected serializeNode: (node: SlateNode) => string;
|
|
protected serializeLeaf: (leaf: Leaf) => string;
|
|
protected serializeString: (string: string) => string;
|
|
}
|