Skip to content
On this page

module domain.ts

type NumericDomain

ts
export type NumericDomain = {
  min: number;
  max: number;
};

Domains are used to represent a range of values, usually in data-space, but can be used to represent screen-space ranges as well

Note even with negative ranges the higher negative value shoudld still be set on min. like so... {min: -822, max: -400}

  • min number
  • max number

type DateDomain

ts
export type DateDomain = {
  min: Date;
  max: Date;
};
  • min Date
  • max Date

type Domain

ts
export type Domain = NumericDomain | DateDomain | DiscreteDomain;

interface DiscreteDomain

ts
export interface DiscreteDomain extends NumericDomain {
  values: string[];
}

function isNumberDomain

ts
(d: Domain) => d is NumericDomain

Parameters

Returns boolean

function isDateDomain

ts
(d: Domain) => d is DateDomain

Parameters

Returns boolean

function isDiscreteDomain

ts
(d: Domain) => d is DiscreteDomain

Parameters

Returns boolean

function fromValues

ts
(values: string[]) => DiscreteDomain

Parameters

  • values string[]

Returns DiscreteDomain

function toNumericDomain

ts
(d: DateDomain) => NumericDomain

Parameters

Returns NumericDomain

function fromTimeFrame

ts
(vals: [Date, Date]) => DateDomain

Parameters

  • vals [Date, Date]

Returns DateDomain

function fromRange

ts
(range: number, offset?: number) => NumericDomain

returns a new Domain given a range and optional offset. fromRange(100, 20) == {min: 20, max: 120}

Parameters

  • range number

    distance between the minimum and maximum values

  • offset number

    where the range begins (defaults to 0)

Returns NumericDomain

function getExtents

ts
(values: number[]) => NumericDomain

creates a new domain by finding the numeric min and max in a given array of numbers

getExtents([1,2,3,-10]) == {min:-10, max: 3}

Parameters

  • values number[]

Returns NumericDomain

function getAbsoluteExtents

ts
(values: number[]) => NumericDomain

like getExtents but ensures 0 is part of the resulting range

Parameters

  • values number[]

Returns NumericDomain

function getRange

ts
(domain: Domain) => number

gets the distance between a domain's min and max while considering negative values

Parameters

Returns number

function scale

ts
(domain: Domain, offset: number, factor?: number) => Domain

scales a domain by a given factor

Parameters

  • domain Domain
  • offset number
  • factor number

Returns Domain

function valueInside

ts
(value: Value, domain: Domain) => boolean

returns true if value is between a domain's min and max (inclusively of min and max)

Parameters

Returns boolean

function normalize

ts
(value: number | Date, domain: Domain) => number

Parameters

  • value number | Date
  • domain Domain

Returns number

Released under the MIT License.