ag-charts-community
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
50 lines (49 loc) • 1.82 kB
TypeScript
import type { ScaleAlignment } from 'ag-charts-core';
import { AbstractScale } from './abstractScale';
/**
* Maps a discrete domain to a continuous numeric range.
*/
export declare abstract class BandScale<D, I = number> extends AbstractScale<D, number, I> {
static is(value: unknown): value is BandScale<any, any>;
abstract readonly type: 'category' | 'unit-time' | 'ordinal-time';
protected invalid: boolean;
range: number[];
round: boolean;
protected _bandwidth: number;
get bandwidth(): number;
private _step;
get step(): number;
protected _inset: number;
get inset(): number;
protected _rawBandwidth: number;
get rawBandwidth(): number;
set padding(value: number);
get padding(): number;
/**
* The ratio of the range that is reserved for space between bands.
*/
private _paddingInner;
set paddingInner(value: number);
get paddingInner(): number;
/**
* The ratio of the range that is reserved for space before the first
* and after the last band.
*/
private _paddingOuter;
set paddingOuter(value: number);
get paddingOuter(): number;
abstract readonly bands: readonly D[];
/** Override in subclass to provide band count without triggering full band materialization */
protected getBandCountForUpdate(): number;
protected refresh(): void;
convert(d: D, options?: {
clamp?: boolean;
alignment?: ScaleAlignment;
alignmentExclusive?: boolean;
}): number;
getDomainMinMax(): [undefined, undefined] | [D, D];
protected invertNearestIndex(position: number): number;
update(): void;
protected ordinalRange(i: number): number;
abstract findIndex(value: D, alignment?: ScaleAlignment, alignmentExclusive?: boolean): number | undefined;
}