mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-01 21:10:14 +02:00
feat: add prop surrounds with range (#5729)
* feat: add prop surrounds with range * Create small-carrots-jam.md * fix: docx about range.included --------- Co-authored-by: Dylan Schiemann <dylan@dojotoolkit.org>
This commit is contained in:
5
.changeset/small-carrots-jam.md
Normal file
5
.changeset/small-carrots-jam.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'slate': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
feat: add prop surrounds with range
|
@@ -54,6 +54,10 @@ Check if a `range` includes a path, a point, or part of another range.
|
|||||||
|
|
||||||
For clarity the definition of `includes` can mean partially includes. Another way to describe this is if one Range intersects the other Range.
|
For clarity the definition of `includes` can mean partially includes. Another way to describe this is if one Range intersects the other Range.
|
||||||
|
|
||||||
|
#### `Range.surrounds(range: Range, target: Range) => boolean`
|
||||||
|
|
||||||
|
Check if a `range` includes another range.
|
||||||
|
|
||||||
#### `Range.isBackward(range: Range) => boolean`
|
#### `Range.isBackward(range: Range) => boolean`
|
||||||
|
|
||||||
Check if a `range` is backward, meaning that its anchor point appears _after_ its focus point in the document.
|
Check if a `range` is backward, meaning that its anchor point appears _after_ its focus point in the document.
|
||||||
|
@@ -46,6 +46,11 @@ export interface RangeInterface {
|
|||||||
*/
|
*/
|
||||||
includes: (range: Range, target: Path | Point | Range) => boolean
|
includes: (range: Range, target: Path | Point | Range) => boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a range includes another range.
|
||||||
|
*/
|
||||||
|
surrounds: (range: Range, target: Range) => boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the intersection of a range with another.
|
* Get the intersection of a range with another.
|
||||||
*/
|
*/
|
||||||
@@ -124,6 +129,14 @@ export const Range: RangeInterface = {
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
surrounds(range: Range, target: Range): boolean {
|
||||||
|
const intersectionRange = Range.intersection(range, target)
|
||||||
|
if (!intersectionRange) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return Range.equals(intersectionRange, target)
|
||||||
|
},
|
||||||
|
|
||||||
includes(range: Range, target: Path | Point | Range): boolean {
|
includes(range: Range, target: Path | Point | Range): boolean {
|
||||||
if (Range.isRange(target)) {
|
if (Range.isRange(target)) {
|
||||||
if (
|
if (
|
||||||
|
Reference in New Issue
Block a user