1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import * as clazzUtil from '../util/clazz.js';
- import { Dictionary } from 'zrender/lib/core/types.js';
- import SeriesData from '../data/SeriesData.js';
- import { DimensionName, ScaleDataValue, OptionDataValue, DimensionLoose, ScaleTick } from '../util/types.js';
- import { ScaleRawExtentInfo } from '../coord/scaleRawExtentInfo.js';
- declare abstract class Scale<SETTING extends Dictionary<unknown> = Dictionary<unknown>> {
- type: string;
- private _setting;
- protected _extent: [number, number];
- private _isBlank;
- readonly rawExtentInfo: ScaleRawExtentInfo;
- constructor(setting?: SETTING);
- getSetting<KEY extends keyof SETTING>(name: KEY): SETTING[KEY];
- /**
- * Parse input val to valid inner number.
- * Notice: This would be a trap here, If the implementation
- * of this method depends on extent, and this method is used
- * before extent set (like in dataZoom), it would be wrong.
- * Nevertheless, parse does not depend on extent generally.
- */
- abstract parse(val: OptionDataValue): number;
- /**
- * Whether contain the given value.
- */
- abstract contain(val: ScaleDataValue): boolean;
- /**
- * Normalize value to linear [0, 1], return 0.5 if extent span is 0.
- */
- abstract normalize(val: ScaleDataValue): number;
- /**
- * Scale normalized value to extent.
- */
- abstract scale(val: number): number;
- /**
- * Set extent from data
- */
- unionExtent(other: [number, number]): void;
- /**
- * Set extent from data
- */
- unionExtentFromData(data: SeriesData, dim: DimensionName | DimensionLoose): void;
- /**
- * Get extent
- *
- * Extent is always in increase order.
- */
- getExtent(): [number, number];
- /**
- * Set extent
- */
- setExtent(start: number, end: number): void;
- /**
- * If value is in extent range
- */
- isInExtentRange(value: number): boolean;
- /**
- * When axis extent depends on data and no data exists,
- * axis ticks should not be drawn, which is named 'blank'.
- */
- isBlank(): boolean;
- /**
- * When axis extent depends on data and no data exists,
- * axis ticks should not be drawn, which is named 'blank'.
- */
- setBlank(isBlank: boolean): void;
- /**
- * Update interval and extent of intervals for nice ticks
- *
- * @param splitNumber Approximated tick numbers. Optional.
- * The implementation of `niceTicks` should decide tick numbers
- * whether `splitNumber` is given.
- * @param minInterval Optional.
- * @param maxInterval Optional.
- */
- abstract calcNiceTicks(splitNumber?: number, minInterval?: number, maxInterval?: number): void;
- abstract calcNiceExtent(opt?: {
- splitNumber?: number;
- fixMin?: boolean;
- fixMax?: boolean;
- minInterval?: number;
- maxInterval?: number;
- }): void;
- /**
- * @return label of the tick.
- */
- abstract getLabel(tick: ScaleTick): string;
- abstract getTicks(): ScaleTick[];
- abstract getMinorTicks(splitNumber: number): number[][];
- static registerClass: clazzUtil.ClassManager['registerClass'];
- static getClass: clazzUtil.ClassManager['getClass'];
- }
- export default Scale;
|