1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-02-24 09:13:24 +01:00

216 lines
5.7 KiB
Markdown
Raw Normal View History

# `Node`
`Node` is not a publicly accessible module, but instead an interface that [`Document`](./document.md), [`Block`](./block.md) and [`Inline`](./inline.md) all implement.
- [Properties](#properties)
- [`nodes`](#nodes)
- [Computed Properties](#computed-properties)
- [`kind`](#kind)
- [`length`](#length)
- [`text`](#text)
- [Retrieval Methods](#retrieval-methods)
- [`filterDescendants`](#filterdescendants)
- [`findDescendant`](#finddescendant)
- [`getBlocksAtRange`](#getblockatrange)
- [`getBlocks`](#getblocks)
- [`getCharactersAtRange`](#getcharactersatrange)
- [`getChild`](#getchild)
- [`getClosestBlock`](#getclosestblock)
- [`getClosestInline`](#getclosestinline)
- [`getClosest`](#getclosest)
- [`getDepth`](#getdepth)
- [`getDescendant`](#getdescendant)
- [`getFragmentAtRange`](#getfragmentatrange)
- [`getInlinesAtRange`](#getinlinesatrange)
- [`getMarksAtRange`](#getmarksatrange)
- [`getNextBlock`](#getnextblock)
- [`getNextSibling`](#getnextsibling)
- [`getNextText`](#getnexttext)
- [`getParent`](#parent)
- [`getPreviousBlock`](#getpreviousblock)
- [`getPreviousSibling`](#getprevioussibling)
- [`getPreviousText`](#getprevioustext)
- [`getTextAtOffset`](#gettextatoffset)
- [`getTextsAtRange`](#gettextsatrange)
- [`hasChild`](#haschild)
- [`hasDescendant`](#hasdescendant)
- [Transform Methods](#transform-methods)
- [`mapDescendants`](#mapdescendants)
- [`removeDescendant`](#removedescendant)
- [`updateDescendant`](#updatedescendant)
## Properties
### `nodes`
`Immutable.List`
A list of child nodes. Defaults to a list with a single text node child.
## Computed Properties
### `kind`
`String`
An immutable string value of `'block'` for easily separating this node from [`Inline`](./inline.md) or [`Text`](./text.md) nodes.
### `length`
`Number`
The sum of the lengths of all of the descendant [`Text`](./text.md) nodes of this node.
### `text`
`String`
A concatenated string of all of the descendant [`Text`](./text.md) nodes of this node.
## Retrieval Methods
### `filterDescendants`
`filterDescendants(iterator: Function) => List`
Deeply filter the descendant nodes of a node by `iterator`.
### `findDescendant`
`findDescendant(iterator: Function) => Node || Void`
Deeply find a descendant node by `iterator`.
### `getBlocksAtRange`
`getBlocksAtRange(range: Selection) => List`
Get all of the bottom-most [`Block`](./block.md) nodes in a `range`.
### `getBlocks`
`getBlocks() => List`
Get all of the bottom-most [`Block`](./block.md) node descendants.
### `getCharactersAtRange`
`getCharactersAtRange(range: Selection) => List`
Get a list of all of the [`Charaters`](./character.md) in a `range`.
### `getChild`
`getChild(key: Key || Node) => Node || Void`
Get a child by `key`.
### `getClosestBlock`
`getClosestBlock(key: String || Node) => Node || Void`
Get the closest [`Block`](./block.md) node to a descendant node by `key`.
### `getClosestInline`
`getClosestInline(key: String || Node) => Node || Void`
Get the closest [`Inline`](./inline.md) node to a descendant node by `key`.
### `getClosest`
`getClosest(key: String || Node, match: Function) => Node || Void`
Get the closest parent node of a descendant node by `key` that matches a `match` function.
### `getDepth`
`getDepth(key: String || Node) => Number`
Get the depth of a descendant node by `key`.
### `getDescendant`
`getDescendant(key: String || Node) => Node || Void`
Get a descendant node by `key`.
### `getFragmentAtRange`
`getFragmentAtRange(range: Selection) => Document`
Get a document fragment of the nodes in a `range`.
### `getInlinesAtRange`
`getInlinesAtRange(range: Selection) => List`
Get all of the top-most [`Inline`](./inline.md) nodes in a `range`.
### `getMarksAtRange`
`getMarksAtRange(range: Selection) => Set`
Get a set of all of the marks in a `range`.
### `getNextBlock`
`getNextBlock(key: String || Node) => Node || Void`
Get the next, bottom-most [`Block`](./block.md) node after a descendant by `key`.
### `getNextSibling`
`getNextSibling(key: String || Node) => Node || Void`
Get the next sibling of a descendant by `key`.
### `getNextText`
`getNextText(key: String || Node) => Node || Void`
Get the next [`Text`](./text.md) node after a descendant by `key`.
### `getParent`
`getParent(key: String || Node) => Node || Void`
Get the parent node of a descendant by `key`.
### `getPreviousBlock`
`getPreviousBlock(key: String || Node) => Node || Void`
Get the previous, bottom-most [`Block`](./block.md) node before a descendant by `key`.
### `getPreviousSibling`
`getPreviousSibling(key: String || Node) => Node || Void`
Get the previous sibling of a descendant by `key`.
### `getPreviousText`
`getPreviousText(key: String || Node) => Node || Void`
Get the previous [`Text`](./text.md) node before a descendant by `key`.
### `getTextAtOffset`
`getTextAtOffset(offset: Number) => Text || Void`
Get the [`Text`](./text.md) node at an `offset`.
### `getTextsAtRange`
`getTextsAtRange(range: Selection) => List`
Get all of the [`Text`](./text.md) nodes in a `range`.
### `hasChild`
`hasChild(key: String || Node) => Boolean`
Check whether the node has a child node by `key`.
### `hasDescendant`
`hasDescendant(key: String || Node) => Boolean`
Check whether the node has a descendant node by `key`.
## Transform Methods
Since nodes are immutable, all of the transform methods return a new copy of the node in question.
### `mapDescendants`
`mapDescendants(iterator: Function) => Node`
Map all of the descendant nodes of a node through an `iterator` function.
### `removeDescendant`
`removeDescendant(key: String || Node) => Node`
Remove a descendant node from the tree by `key`.
### `updateDescendant`
`updateDescendant(node: Node) => Node`
Update a descendant `node` to the new value.