0ecd7d6934ae7e771438fcf861d41a45ddb85abbcc841aaab66c41ad7cb9833ad79447e5e2dff46ed8968f64c66331640ac088a2ac5eddbd1b83aebbe161d3 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Source } from '../Source.js';
  2. import { DimensionName, OptionEncode, DimensionIndex, SeriesEncodableModel } from '../../util/types.js';
  3. import { DatasetModel } from '../../component/dataset/install.js';
  4. import SeriesModel from '../../model/Series.js';
  5. import GlobalModel from '../../model/Global.js';
  6. import { CoordDimensionDefinition } from './createDimensions.js';
  7. export declare const BE_ORDINAL: {
  8. Must: number;
  9. Might: number;
  10. Not: number;
  11. };
  12. declare type BeOrdinalValue = (typeof BE_ORDINAL)[keyof typeof BE_ORDINAL];
  13. declare type SeriesEncodeInternal = {
  14. [key in keyof OptionEncode]: DimensionIndex[];
  15. };
  16. /**
  17. * MUST be called before mergeOption of all series.
  18. */
  19. export declare function resetSourceDefaulter(ecModel: GlobalModel): void;
  20. /**
  21. * [The strategy of the arrengment of data dimensions for dataset]:
  22. * "value way": all axes are non-category axes. So series one by one take
  23. * several (the number is coordSysDims.length) dimensions from dataset.
  24. * The result of data arrengment of data dimensions like:
  25. * | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y |
  26. * "category way": at least one axis is category axis. So the the first data
  27. * dimension is always mapped to the first category axis and shared by
  28. * all of the series. The other data dimensions are taken by series like
  29. * "value way" does.
  30. * The result of data arrengment of data dimensions like:
  31. * | ser_shared_x | ser0_y | ser1_y | ser2_y |
  32. *
  33. * @return encode Never be `null/undefined`.
  34. */
  35. export declare function makeSeriesEncodeForAxisCoordSys(coordDimensions: (DimensionName | CoordDimensionDefinition)[], seriesModel: SeriesModel, source: Source): SeriesEncodeInternal;
  36. /**
  37. * Work for data like [{name: ..., value: ...}, ...].
  38. *
  39. * @return encode Never be `null/undefined`.
  40. */
  41. export declare function makeSeriesEncodeForNameBased(seriesModel: SeriesModel, source: Source, dimCount: number): SeriesEncodeInternal;
  42. /**
  43. * @return If return null/undefined, indicate that should not use datasetModel.
  44. */
  45. export declare function querySeriesUpstreamDatasetModel(seriesModel: SeriesEncodableModel): DatasetModel;
  46. /**
  47. * @return Always return an array event empty.
  48. */
  49. export declare function queryDatasetUpstreamDatasetModels(datasetModel: DatasetModel): DatasetModel[];
  50. /**
  51. * The rule should not be complex, otherwise user might not
  52. * be able to known where the data is wrong.
  53. * The code is ugly, but how to make it neat?
  54. */
  55. export declare function guessOrdinal(source: Source, dimIndex: DimensionIndex): BeOrdinalValue;
  56. export {};