42e0b505b8bb8d3383293b294d22e0e66ff492f609ee3f4977bcbf0876e5035499298e02d3b2d5bb2cab88ffaedb15f68d9e817c9e9b39556c516697c1f369 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import GlobalModel from '../../model/Global.js';
  2. import SeriesModel from '../../model/Series.js';
  3. import ExtensionAPI from '../../core/ExtensionAPI.js';
  4. import DataZoomModel from './DataZoomModel.js';
  5. import { AxisBaseModel } from '../../coord/AxisBaseModel.js';
  6. import { DataZoomAxisDimension } from './helper.js';
  7. interface MinMaxSpan {
  8. minSpan: number;
  9. maxSpan: number;
  10. minValueSpan: number;
  11. maxValueSpan: number;
  12. }
  13. /**
  14. * Operate single axis.
  15. * One axis can only operated by one axis operator.
  16. * Different dataZoomModels may be defined to operate the same axis.
  17. * (i.e. 'inside' data zoom and 'slider' data zoom components)
  18. * So dataZoomModels share one axisProxy in that case.
  19. */
  20. declare class AxisProxy {
  21. ecModel: GlobalModel;
  22. private _dimName;
  23. private _axisIndex;
  24. private _valueWindow;
  25. private _percentWindow;
  26. private _dataExtent;
  27. private _minMaxSpan;
  28. private _dataZoomModel;
  29. constructor(dimName: DataZoomAxisDimension, axisIndex: number, dataZoomModel: DataZoomModel, ecModel: GlobalModel);
  30. /**
  31. * Whether the axisProxy is hosted by dataZoomModel.
  32. */
  33. hostedBy(dataZoomModel: DataZoomModel): boolean;
  34. /**
  35. * @return Value can only be NaN or finite value.
  36. */
  37. getDataValueWindow(): [number, number];
  38. /**
  39. * @return {Array.<number>}
  40. */
  41. getDataPercentWindow(): [number, number];
  42. getTargetSeriesModels(): SeriesModel<import("../../util/types").SeriesOption<unknown, import("../../util/types").DefaultStatesMixin>>[];
  43. getAxisModel(): AxisBaseModel;
  44. getMinMaxSpan(): MinMaxSpan;
  45. /**
  46. * Only calculate by given range and this._dataExtent, do not change anything.
  47. */
  48. calculateDataWindow(opt?: {
  49. start?: number;
  50. end?: number;
  51. startValue?: number | string | Date;
  52. endValue?: number | string | Date;
  53. }): {
  54. valueWindow: [number, number];
  55. percentWindow: [number, number];
  56. };
  57. /**
  58. * Notice: reset should not be called before series.restoreData() called,
  59. * so it is recommanded to be called in "process stage" but not "model init
  60. * stage".
  61. */
  62. reset(dataZoomModel: DataZoomModel): void;
  63. filterData(dataZoomModel: DataZoomModel, api: ExtensionAPI): void;
  64. private _updateMinMaxSpan;
  65. private _setAxisModel;
  66. }
  67. export default AxisProxy;