| /* | 
 | * Licensed to the Apache Software Foundation (ASF) under one | 
 | * or more contributor license agreements.  See the NOTICE file | 
 | * distributed with this work for additional information | 
 | * regarding copyright ownership.  The ASF licenses this file | 
 | * to you under the Apache License, Version 2.0 (the | 
 | * "License"); you may not use this file except in compliance | 
 | * with the License.  You may obtain a copy of the License at | 
 | * | 
 | *   http://www.apache.org/licenses/LICENSE-2.0 | 
 | * | 
 | * Unless required by applicable law or agreed to in writing, | 
 | * software distributed under the License is distributed on an | 
 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 | * KIND, either express or implied.  See the License for the | 
 | * specific language governing permissions and limitations | 
 | * under the License. | 
 | */ | 
 |  | 
 | import * as zrUtil from 'zrender/src/core/util'; | 
 | import OrdinalMeta from './OrdinalMeta'; | 
 | import { DataVisualDimensions, DimensionType } from '../util/types'; | 
 |  | 
 | class SeriesDimensionDefine { | 
 |  | 
 |     /** | 
 |      * Dimension type. The enumerable values are the key of | 
 |      * Optional. | 
 |      */ | 
 |     type?: DimensionType; | 
 |  | 
 |     /** | 
 |      * Dimension name. | 
 |      * Mandatory. | 
 |      */ | 
 |     name: string; | 
 |     /** | 
 |      * The origin name in dimsDef, see source helper. | 
 |      * If displayName given, the tooltip will displayed vertically. | 
 |      * Optional. | 
 |      */ | 
 |     displayName?: string; | 
 |  | 
 |     // FIXME: check whether it is still used. | 
 |     // See Series.ts#formatArrayValue | 
 |     tooltip?: boolean; | 
 |  | 
 |     /** | 
 |      * This dimension maps to the the dimension in dataStore by `storeDimIndex`. | 
 |      * Notice the facts: | 
 |      * 1. When there are too many dimensions in data store, seriesData only save the | 
 |      * used store dimensions. | 
 |      * 2. We use dimensionIndex but not name to reference store dimension | 
 |      * becuause the dataset dimension definition might has no name specified by users, | 
 |      * or names in sereis dimension definition might be different from dataset. | 
 |      */ | 
 |     storeDimIndex?: number; | 
 |  | 
 |     /** | 
 |      * Which coordSys dimension this dimension mapped to. | 
 |      * A `coordDim` can be a "coordSysDim" that the coordSys required | 
 |      * (for example, an item in `coordSysDims` of `model/referHelper#CoordSysInfo`), | 
 |      * or an generated "extra coord name" if does not mapped to any "coordSysDim" | 
 |      * (That is determined by whether `isExtraCoord` is `true`). | 
 |      * Mandatory. | 
 |      */ | 
 |     coordDim?: string; | 
 |  | 
 |     /** | 
 |      * The index of this dimension in `series.encode[coordDim]`. | 
 |      * Mandatory. | 
 |      */ | 
 |     coordDimIndex?: number; | 
 |     /** | 
 |      * The format of `otherDims` is: | 
 |      * ```js | 
 |      * { | 
 |      *     tooltip?: number | 
 |      *     label?: number | 
 |      *     itemName?: number | 
 |      *     seriesName?: number | 
 |      * } | 
 |      * ``` | 
 |      * | 
 |      * A `series.encode` can specified these fields: | 
 |      * ```js | 
 |      * encode: { | 
 |      *     // "3, 1, 5" is the index of data dimension. | 
 |      *     tooltip: [3, 1, 5], | 
 |      *     label: [0, 3], | 
 |      *     ... | 
 |      * } | 
 |      * ``` | 
 |      * `otherDims` is the parse result of the `series.encode` above, like: | 
 |      * ```js | 
 |      * // Suppose the index of this data dimension is `3`. | 
 |      * this.otherDims = { | 
 |      *     // `3` is at the index `0` of the `encode.tooltip` | 
 |      *     tooltip: 0, | 
 |      *     // `3` is at the index `1` of the `encode.label` | 
 |      *     label: 1 | 
 |      * }; | 
 |      * ``` | 
 |      * | 
 |      * This prop should never be `null`/`undefined` after initialized. | 
 |      */ | 
 |     otherDims?: DataVisualDimensions = {}; | 
 |  | 
 |     /** | 
 |      * Be `true` if this dimension is not mapped to any "coordSysDim" that the | 
 |      * "coordSys" required. | 
 |      * Mandatory. | 
 |      */ | 
 |     isExtraCoord?: boolean; | 
 |     /** | 
 |      * If this dimension if for calculated value like stacking | 
 |      */ | 
 |     isCalculationCoord?: boolean; | 
 |  | 
 |     defaultTooltip?: boolean; | 
 |  | 
 |     ordinalMeta?: OrdinalMeta; | 
 |  | 
 |     /** | 
 |      * Whether to create inverted indices. | 
 |      */ | 
 |     createInvertedIndices?: boolean; | 
 |  | 
 |     /** | 
 |      * @param opt All of the fields will be shallow copied. | 
 |      */ | 
 |     constructor(opt?: object | SeriesDimensionDefine) { | 
 |         if (opt != null) { | 
 |             zrUtil.extend(this, opt); | 
 |         } | 
 |     } | 
 |  | 
 | }; | 
 |  | 
 | export default SeriesDimensionDefine; |