diff --git a/docs/api/locations.md b/docs/api/locations.md index 86d6ba944..4f5fabaaf 100644 --- a/docs/api/locations.md +++ b/docs/api/locations.md @@ -22,6 +22,116 @@ Check if a value implements the `Location` interface. type Path = number[] ``` +### Static methods + +###### `ancestors(path: Path, options: { reverse?: boolean } = {}): Path[]` + +Get a list of ancestor paths for a given path. + * +The paths are sorted from deepest to shallowest ancestor. However, if the +`reverse: true` option is passed, they are reversed. + +###### `common(path: Path, another: Path): Path` + +Get the common ancestor path of two paths. + +###### `compare(path: Path, another: Path): -1 | 0 | 1` + +Compare a path to another, returning an integer indicating whether the path +was before, at, or after the other. + +Note: Two paths of unequal length can still receive a `0` result if one is +directly above or below the other. If you want exact matching, use +[[Path.equals]] instead. + +###### `endsAfter(path: Path, another: Path): boolean` + +Check if a path ends after one of the indexes in another. + +###### `endsAt(path: Path, another: Path): boolean` + +Check if a path ends at one of the indexes in another. + +###### `endsBefore(path: Path, another: Path): boolean` + +Check if a path ends before one of the indexes in another. + +###### `equals(path: Path, another: Path): boolean` + +Check if a path is exactly equal to another. + +###### `hasPrevious(path: Path): boolean` + +Check if the path of previous sibling node exists + +###### `isAfter(path: Path, another: Path): boolean` + +Check if a path is after another. + +###### `isAncestor(path: Path, another: Path): boolean` + +Check if a path is an ancestor of another. + +###### `isBefore(path: Path, another: Path): boolean` + +Check if a path is before another. + +###### `isChild(path: Path, another: Path): boolean` + +Check if a path is a child of another. + +###### `isCommon(path: Path, another: Path): boolean` + +Check if a path is equal to or an ancestor of another. + +###### `isDescendant(path: Path, another: Path): boolean` + +Check if a path is a descendant of another. + +###### `isParent(path: Path, another: Path): boolean` + +Check if a path is the parent of another. + +###### `isPath(value: any): value is Path` + +Check is a value implements the `Path` interface. + +###### `isSibling(path: Path, another: Path): boolean` + +Check if a path is a sibling of another. + +###### `levels(path: Path, options?): Path[]` + +Get a list of paths at every level down to a path. Note: this is the same +as `Path.ancestors`, but including the path itself. + +The paths are sorted from shallowest to deepest. However, if the `reverse: +true` option is passed, they are reversed. + +Options: `{reverse?: boolean}` + +###### `next(path: Path): Path` + +Given a path, get the path to the next sibling node. + +###### `parent(path: Path): Path` + +Given a path, return a new path referring to the parent node above it. + +###### `previous(path: Path): Path` + +Given a path, get the path to the previous sibling node. + +###### `relative(path: Path, ancestor: Path): Path` + +Get a path relative to an ancestor. + +###### `transform(path: Path, operation: Operation, options?): Path | null` + +Transform a path by an operation. + +Options: `{ affinity?: 'forward' | 'backward' | null }` + ## Point `Point` objects refer to a specific location in a text node in a Slate document. Its `path` refers to the location of the node in the tree, and its offset refers to distance into the node's string of text. Points may only refer to `Text` nodes.