docs/api/slate/range.mdx
A Range is a set of points that refer to a specific span of a Plate document. They can define a span inside a single node or span across multiple nodes. A range consists of two points: an anchor (start) and a focus (end).
type TRange = {
anchor: Point
focus: Point
}
RangeAPItransformTransform a range by an operation.
<API name="transform"> <APIParameters> <APIItem name="range" type="TRange"> The range to transform. </APIItem> <APIItem name="op" type="Operation"> The operation to apply to the range. </APIItem> <APIItem name="options" type="RangeTransformOptions" optional> Options for transforming the range. </APIItem> </APIParameters> <APIOptions type="RangeTransformOptions"> <APIItem name="affinity" type="RangeDirection | null" optional> The direction to prefer when transforming the range. </APIItem> </APIOptions> <APIReturns type="TRange | null"> The transformed range, or `null` if the range was deleted. </APIReturns> </API>edgesGet the start and end points of a range.
<API name="edges"> <APIParameters> <APIItem name="range" type="TRange"> The range to get edges from. </APIItem> <APIItem name="options" type="RangeEdgesOptions" optional> Options for retrieving edges. </APIItem> </APIParameters> <APIOptions type="RangeEdgesOptions"> <APIItem name="reverse" type="boolean" optional> If true, returns points in reverse order. </APIItem> </APIOptions> <APIReturns type="[Point, Point]"> A tuple of points representing the start and end points. </APIReturns> </API>endGet the end point of a range.
<API name="end"> <APIParameters> <APIItem name="range" type="TRange"> The range to get the end point from. </APIItem> </APIParameters> <APIReturns type="Point"> The end point of the range. </APIReturns> </API>equalsCheck if two ranges are exactly equal.
<API name="equals"> <APIParameters> <APIItem name="range" type="TRange"> The first range to compare. </APIItem> <APIItem name="another" type="TRange"> The second range to compare. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the ranges are exactly equal. </APIReturns> </API>includesCheck if a range includes a path, point, or part of another range.
<API name="includes"> <APIParameters> <APIItem name="range" type="TRange"> The range to check. </APIItem> <APIItem name="target" type="Path | Point | TRange"> The target to check for inclusion. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range includes the target. </APIReturns> </API>intersectionGet the intersection of two ranges.
<API name="intersection"> <APIParameters> <APIItem name="range" type="TRange"> The first range. </APIItem> <APIItem name="another" type="TRange"> The second range. </APIItem> </APIParameters> <APIReturns type="TRange | null"> The intersecting range, or `null` if there is no intersection. </APIReturns> </API>isBackwardCheck if a range is backward (anchor point appears after focus point).
<API name="isBackward"> <APIParameters> <APIItem name="range" type="TRange"> The range to check. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range is backward. </APIReturns> </API>isCollapsedCheck if a range is collapsed (both points refer to the same position).
<API name="isCollapsed"> <APIParameters> <APIItem name="range" type="TRange | null" optional> The range to check. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range exists and is collapsed. </APIReturns> </API>isExpandedCheck if a range is expanded (not collapsed).
<API name="isExpanded"> <APIParameters> <APIItem name="range" type="TRange | null" optional> The range to check. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range exists and is expanded. </APIReturns> </API>isForwardCheck if a range is forward (anchor point appears before focus point).
<API name="isForward"> <APIParameters> <APIItem name="range" type="TRange"> The range to check. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range is forward. </APIReturns> </API>isRangeCheck if a value implements the TRange interface.
pointsIterate through all point entries in a range.
<API name="points"> <APIParameters> <APIItem name="range" type="TRange"> The range to iterate through. </APIItem> </APIParameters> <APIReturns type="Generator<PointEntry, void, undefined>"> A generator that yields point entries. </APIReturns> </API>startGet the start point of a range.
<API name="start"> <APIParameters> <APIItem name="range" type="TRange"> The range to get the start point from. </APIItem> </APIParameters> <APIReturns type="Point"> The start point of the range. </APIReturns> </API>surroundsCheck if a range completely surrounds another range.
<API name="surrounds"> <APIParameters> <APIItem name="range" type="TRange"> The range that might surround the target. </APIItem> <APIItem name="target" type="TRange"> The target range that might be surrounded. </APIItem> </APIParameters> <APIReturns type="boolean"> `true` if the range surrounds the target. </APIReturns> </API>TRangeTRange objects are a set of points that refer to a specific span of a Plate document. They can define a span inside a
single node or span across multiple nodes.
Range is a type alias for TRange.