@wordpress/blocks
Version:
Block API for WordPress.
80 lines • 2.52 kB
TypeScript
/**
* A representation of a single node within a block's rich text value. If
* representing a text node, the value is simply a string of the node value.
* As representing an element node, it is an object of:
*
* 1. `type` (string): Tag name.
* 2. `props` (object): Attributes and children array of BlockNode.
*/
type BlockNode = string | {
type: string;
props: Record<string, unknown>;
};
/**
* Given a single node and a node type (e.g. `'br'`), returns true if the node
* corresponds to that type, false otherwise.
*
* @param node Block node to test
* @param type Node to type to test against.
*
* @return Whether node is of intended type.
*/
declare function isNodeOfType(node: BlockNode, type: string): boolean;
/**
* Given an object implementing the NamedNodeMap interface, returns a plain
* object equivalent value of name, value key-value pairs.
*
* @see https://dom.spec.whatwg.org/#interface-namednodemap
*
* @param nodeMap NamedNodeMap to convert to object.
*
* @return Object equivalent value of NamedNodeMap.
*/
export declare function getNamedNodeMapAsObject(nodeMap: NamedNodeMap): Record<string, string>;
/**
* Given a DOM Element or Text node, returns an equivalent block node. Throws
* if passed any node type other than element or text.
*
* @throws {TypeError} If non-element/text node is passed.
*
* @param domNode DOM node to convert.
*
* @return Block node equivalent to DOM node.
*/
export declare function fromDOM(domNode: Node): BlockNode;
/**
* Given a block node, returns its HTML string representation.
*
* @param node Block node to convert to string.
*
* @return String HTML representation of block node.
*/
export declare function toHTML(node: BlockNode): string;
/**
* Given a selector, returns an hpq matcher generating a BlockNode value
* matching the selector result.
*
* @param selector DOM selector.
*
* @return hpq matcher.
*/
export declare function matcher(selector?: string): (domNode: Element) => BlockNode | null;
/**
* Object of utility functions used in managing block attribute values of
* source `node`.
*
* @see https://github.com/WordPress/gutenberg/pull/10439
*
* @deprecated since 4.0. The `node` source should not be used, and can be
* replaced by the `html` source.
*
* @private
*/
declare const _default: {
isNodeOfType: typeof isNodeOfType;
fromDOM: typeof fromDOM;
toHTML: typeof toHTML;
matcher: typeof matcher;
};
export default _default;
//# sourceMappingURL=node.d.ts.map