12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import Scale from '../scale/Scale.js';
- import { AxisBaseModel } from './AxisBaseModel.js';
- import { ScaleDataValue } from '../util/types.js';
- export interface ScaleRawExtentResult {
- readonly min: number;
- readonly max: number;
- readonly minFixed: boolean;
- readonly maxFixed: boolean;
- readonly isBlank: boolean;
- }
- export declare class ScaleRawExtentInfo {
- private _needCrossZero;
- private _isOrdinal;
- private _axisDataLen;
- private _boundaryGapInner;
- private _modelMinRaw;
- private _modelMaxRaw;
- private _modelMinNum;
- private _modelMaxNum;
- private _dataMin;
- private _dataMax;
- private _determinedMin;
- private _determinedMax;
- readonly frozen: boolean;
- constructor(scale: Scale, model: AxisBaseModel, originalExtent: number[]);
- /**
- * Parameters depending on ouside (like model, user callback)
- * are prepared and fixed here.
- */
- private _prepareParams;
- /**
- * Calculate extent by prepared parameters.
- * This method has no external dependency and can be called duplicatedly,
- * getting the same result.
- * If parameters changed, should call this method to recalcuate.
- */
- calculate(): ScaleRawExtentResult;
- modifyDataMinMax(minMaxName: 'min' | 'max', val: number): void;
- setDeterminedMinMax(minMaxName: 'min' | 'max', val: number): void;
- freeze(): void;
- }
- /**
- * Get scale min max and related info only depends on model settings.
- * This method can be called after coordinate system created.
- * For example, in data processing stage.
- *
- * Scale extent info probably be required multiple times during a workflow.
- * For example:
- * (1) `dataZoom` depends it to get the axis extent in "100%" state.
- * (2) `processor/extentCalculator` depends it to make sure whether axis extent is specified.
- * (3) `coordSys.update` use it to finally decide the scale extent.
- * But the callback of `min`/`max` should not be called multiple times.
- * The code below should not be implemented repeatedly either.
- * So we cache the result in the scale instance, which will be recreated at the begining
- * of the workflow (because `scale` instance will be recreated each round of the workflow).
- */
- export declare function ensureScaleRawExtentInfo(scale: Scale, model: AxisBaseModel, originalExtent: number[]): ScaleRawExtentInfo;
- export declare function parseAxisModelMinMax(scale: Scale, minMax: ScaleDataValue): number;
|