json-joy
Version:
Collection of libraries for building collaborative editing apps.
26 lines (25 loc) • 1.31 kB
TypeScript
import type { MarkerOverlayPoint } from './MarkerOverlayPoint';
import type { OverlayPoint } from './OverlayPoint';
/**
* Represents a two adjacent overlay points. The first point is the point
* that is closer to the start of the document, and the second point is the
* point that is closer to the end of the document. When an absolute start is
* missing, the `p1` will be `undefined`. When an absolute end is missing, the
* `p2` will be `undefined`.
*/
export type OverlayPair<T> = [p1: OverlayPoint<T> | undefined, p2: OverlayPoint<T> | undefined];
/**
* The *overlay tuple* is similar to the {@link OverlayPair}, but ensures that
* both points are defined. The leasing and trailing `undefined` are substituted
* by virtual points.
*/
export type OverlayTuple<T> = [p1: OverlayPoint<T>, p2: OverlayPoint<T>];
/**
* Represents a two adjacent marker overlay points. The first point is the point
* that is closer to the start of the document, and the second point is the
* point that is closer to the end of the document.
*
* When point is `undefined`, it means the point represents the end of range.
* In the complete document it is ABS start or ABS end of the document.
*/
export type MarkerOverlayPair<T> = [p1: MarkerOverlayPoint<T> | undefined, p2: MarkerOverlayPoint<T> | undefined];