MCPcopy Index your code
hub / github.com/apache/echarts / enableDataStack

Function enableDataStack

src/data/helper/dataStackHelper.ts:59–219  ·  view source on GitHub ↗
(
    seriesModel: SeriesModel<SeriesOption & SeriesStackOptionMixin>,
    dimensionsInput: EnableDataStackDimensionsInput | EnableDataStackDimensionsInputLegacy,
    opt?: {
        // Backward compat
        stackedCoordDimension?: string
        byIndex?: boolean
    }
)

Source from the content-addressed store, hash-verified

57 * }
58 */
59export function enableDataStack(
60 seriesModel: SeriesModel<SeriesOption & SeriesStackOptionMixin>,
61 dimensionsInput: EnableDataStackDimensionsInput | EnableDataStackDimensionsInputLegacy,
62 opt?: {
63 // Backward compat
64 stackedCoordDimension?: string
65 byIndex?: boolean
66 }
67): Pick<
68 DataCalculationInfo<unknown>,
69 'stackedDimension'
70 | 'stackedByDimension'
71 | 'isStackedByIndex'
72 | 'stackedOverDimension'
73 | 'stackResultDimension'
74> {
75 opt = opt || {};
76 let byIndex = opt.byIndex;
77 const stackedCoordDimension = opt.stackedCoordDimension;
78
79 let dimensionDefineList: EnableDataStackDimensionsInputLegacy;
80 let schema: SeriesDataSchema;
81 let store: DataStore;
82
83 if (isLegacyDimensionsInput(dimensionsInput)) {
84 dimensionDefineList = dimensionsInput;
85 }
86 else {
87 schema = dimensionsInput.schema;
88 dimensionDefineList = schema.dimensions;
89 store = dimensionsInput.store;
90 }
91
92 // compatible: when `stack` is set as '', do not stack.
93 const mayStack = !!(seriesModel && seriesModel.get('stack'));
94 let stackedByDimInfo: SeriesDimensionDefine;
95 let stackedDimInfo: SeriesDimensionDefine;
96 let stackResultDimension: string;
97 let stackedOverDimension: string;
98 let allDimTypesAreNotOrdinalAndTime = true;
99
100 function dimTypeIsNotOrdinalAndTime(dimensionInfo: SeriesDimensionDefine): boolean {
101 return dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time';
102 }
103
104 each(dimensionDefineList, function (dimensionInfo, index) {
105 if (isString(dimensionInfo)) {
106 dimensionDefineList[index] = dimensionInfo = {
107 name: dimensionInfo as string
108 } as SeriesDimensionDefine;
109 }
110 if (!dimTypeIsNotOrdinalAndTime(dimensionInfo)) {
111 allDimTypesAreNotOrdinalAndTime = false;
112 }
113 });
114
115 each(dimensionDefineList, function (dimensionInfo: SeriesDimensionDefine, index) {
116 if (mayStack && !dimensionInfo.isExtraCoord) {

Callers 1

createSeriesDataFunction · 0.90

Calls 6

isLegacyDimensionsInputFunction · 0.85
eachFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…