Value
import { Value } from 'slate'
A Value
is the top-level representation of data in Slate, containing both a Document
and a selection Range
. It's what you need to pass into the Slate <Editor>
to render something onto the page.
All changes to the document and selection are also performed through the value object, so that they can stay in sync, and be propagated to its internal history of undo/redo value.
For convenience, in addition to changes, many of the selection and document properties are exposed as proxies on the Value
object.
Properties
Value({
document: Document,
selection: Range,
history: History,
schema: Schema,
data: Data,
decorations: List<Ranges>|Null,
})
data
Data
An object containing arbitrary data for the value.
decorations
List<Ranges>|Null
A list of ranges in the document with marks that aren't part of the content itself—like matches for the current search string.
document
Document
The current document of the value.
history
History
An object that stores the history of changes.
object
String
A string with a value of 'value'
.
schema
Schema
An object representing the schema of the value's document.
selection
Range
The current selection of the value.
Computed Properties
These properties aren't supplied when creating a Value
, but are instead computed based on the current document
and selection
.
{edge}Text
Text
Get the leaf Text
node at {edge}
. Where {edge}
is one of: anchor
, focus
, start
or end
.
{edge}Block
Block
Get the leaf Block
node at {edge}
. Where {edge}
is one of: anchor
, focus
, start
or end
.
marks
Set
Get a set of the Marks
in the current selection.
activeMarks
Set
Get a subset of the Marks
that are present in all the characters in the current selection. It can be used to determine the active/inactive state of toolbar buttons corresponding to marks, based on the usual rich text editing conventions.
blocks
List
Get a list of the lowest-depth Block
nodes in the current selection.
fragment
Document
Get a Document
fragment of the current selection.
inlines
List
Get a list of the lowest-depth Inline
nodes in the current selection.
texts
List
Get a list of the Text
nodes in the current selection.
characters
List
Get a list of the Character
objects in the current selection.
hasUndos
Boolean
Whether there are undoable snapshots to revert to in the history.
hasRedos
Boolean
Whether there are redoable snapshots to revert to in the history.
Range-like Properties
These properties are exact proxies of the selection Range
equivalents.
{edge}Key
String
Get the current key at an {edge}
. Where {edge}
is one of: anchor
, focus
, start
or end
.
{edge}Offset
Number
Get the current offset at an {edge}
. Where {edge}
is one of: anchor
, focus
, start
or end
.
isBackward
Boolean
Whether the current selection is backward.
isBlurred
Boolean
Whether the current selection is blurred.
isCollapsed
Boolean
Whether the current selection is collapsed.
isExpanded
Boolean
Whether the current selection is expanded.
isFocused
Boolean
Whether the current selection is focused.
isForward
Boolean
Whether the current selection is forward.
isEmpty
Boolean
Whether the current selection is empty.
Static Methods
Value.create
Value.create(properties: Object) => Value
Create a new Value
instance with properties
.
Value.fromJSON
Value.fromJSON(object: Object) => Value
Create a value from a JSON object
.
Value.isValue
Value.isValue(any: Any) => Boolean
Returns a boolean if the passed in argument is a Value
.
Instance Methods
change
change() => Change
Create a new Change
that acts on the current value.
toJSON
toJSON() => Object
Returns a JSON representation of the value.