Spaces:
Running
Running
| /* | |
| * 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. | |
| */ | |
| /** | |
| * This module is imported by echarts directly. | |
| * | |
| * Notice: | |
| * Always keep this file exists for backward compatibility. | |
| * Because before 4.1.0, dataset is an optional component, | |
| * some users may import this module manually. | |
| */ | |
| import ComponentModel from '../../model/Component'; | |
| import ComponentView from '../../view/Component'; | |
| import { | |
| SERIES_LAYOUT_BY_COLUMN, ComponentOption, SeriesEncodeOptionMixin, | |
| OptionSourceData, SeriesLayoutBy, OptionSourceHeader | |
| } from '../../util/types'; | |
| import { DataTransformOption, PipedDataTransformOption } from '../../data/helper/transform'; | |
| import GlobalModel from '../../model/Global'; | |
| import Model from '../../model/Model'; | |
| import { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager'; | |
| import { EChartsExtensionInstallRegisters } from '../../extension'; | |
| export interface DatasetOption extends | |
| Pick<ComponentOption, 'type' | 'id' | 'name'>, | |
| Pick<SeriesEncodeOptionMixin, 'dimensions'> { | |
| mainType?: 'dataset'; | |
| seriesLayoutBy?: SeriesLayoutBy; | |
| sourceHeader?: OptionSourceHeader; | |
| source?: OptionSourceData; | |
| fromDatasetIndex?: number; | |
| fromDatasetId?: string; | |
| transform?: DataTransformOption | PipedDataTransformOption; | |
| // When a transform result more than on results, the results can be referenced only by: | |
| // Using `fromDatasetIndex`/`fromDatasetId` and `transfromResultIndex` to retrieve | |
| // the results from other dataset. | |
| fromTransformResult?: number; | |
| } | |
| export class DatasetModel<Opts extends DatasetOption = DatasetOption> extends ComponentModel<Opts> { | |
| type = 'dataset'; | |
| static type = 'dataset'; | |
| static defaultOption: DatasetOption = { | |
| seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN | |
| }; | |
| private _sourceManager: SourceManager; | |
| init(option: Opts, parentModel: Model, ecModel: GlobalModel): void { | |
| super.init(option, parentModel, ecModel); | |
| this._sourceManager = new SourceManager(this); | |
| disableTransformOptionMerge(this); | |
| } | |
| mergeOption(newOption: Opts, ecModel: GlobalModel): void { | |
| super.mergeOption(newOption, ecModel); | |
| disableTransformOptionMerge(this); | |
| } | |
| optionUpdated() { | |
| this._sourceManager.dirty(); | |
| } | |
| getSourceManager() { | |
| return this._sourceManager; | |
| } | |
| } | |
| class DatasetView extends ComponentView { | |
| static type = 'dataset'; | |
| type = 'dataset'; | |
| } | |
| export function install(registers: EChartsExtensionInstallRegisters) { | |
| registers.registerComponentModel(DatasetModel); | |
| registers.registerComponentView(DatasetView); | |
| } |