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. | |
*/ | |
import { | |
registerPreprocessor, | |
registerProcessor, | |
registerPostInit, | |
registerPostUpdate, | |
registerAction, | |
registerCoordinateSystem, | |
registerLayout, | |
registerVisual, | |
registerTransform, | |
registerLoading, | |
registerMap, | |
registerUpdateLifecycle, | |
PRIORITY | |
} from './core/echarts'; | |
import ComponentView from './view/Component'; | |
import ChartView from './view/Chart'; | |
import ComponentModel from './model/Component'; | |
import SeriesModel from './model/Series'; | |
import { isFunction, indexOf, isArray, each } from 'zrender/src/core/util'; | |
import { Constructor } from './util/clazz'; | |
import { SubTypeDefaulter } from './util/component'; | |
import { registerImpl } from './core/impl'; | |
import { registerPainter } from 'zrender/src/zrender'; | |
const extensions: (EChartsExtensionInstaller | EChartsExtension)[] = []; | |
const extensionRegisters = { | |
registerPreprocessor, | |
registerProcessor, | |
registerPostInit, | |
registerPostUpdate, | |
registerUpdateLifecycle, | |
registerAction, | |
registerCoordinateSystem, | |
registerLayout, | |
registerVisual, | |
registerTransform, | |
registerLoading, | |
registerMap, | |
registerImpl, | |
PRIORITY, | |
ComponentModel, | |
ComponentView, | |
SeriesModel, | |
ChartView, | |
// TODO Use ComponentModel and SeriesModel instead of Constructor | |
registerComponentModel(ComponentModelClass: Constructor) { | |
ComponentModel.registerClass(ComponentModelClass); | |
}, | |
registerComponentView(ComponentViewClass: typeof ComponentView) { | |
ComponentView.registerClass(ComponentViewClass); | |
}, | |
registerSeriesModel(SeriesModelClass: Constructor) { | |
SeriesModel.registerClass(SeriesModelClass); | |
}, | |
registerChartView(ChartViewClass: typeof ChartView) { | |
ChartView.registerClass(ChartViewClass); | |
}, | |
registerSubTypeDefaulter(componentType: string, defaulter: SubTypeDefaulter) { | |
ComponentModel.registerSubTypeDefaulter(componentType, defaulter); | |
}, | |
registerPainter(painterType: string, PainterCtor: Parameters<typeof registerPainter>[1]) { | |
registerPainter(painterType, PainterCtor); | |
} | |
}; | |
export type EChartsExtensionInstallRegisters = typeof extensionRegisters; | |
export type EChartsExtensionInstaller = (ec: EChartsExtensionInstallRegisters) => void; | |
export interface EChartsExtension { | |
install: EChartsExtensionInstaller | |
} | |
export function use( | |
ext: EChartsExtensionInstaller | EChartsExtension | (EChartsExtensionInstaller | EChartsExtension)[] | |
) { | |
if (isArray(ext)) { | |
// use([ChartLine, ChartBar]); | |
each(ext, (singleExt) => { | |
use(singleExt); | |
}); | |
return; | |
} | |
if (indexOf(extensions, ext) >= 0) { | |
return; | |
} | |
extensions.push(ext); | |
if (isFunction(ext)) { | |
ext = { | |
install: ext | |
}; | |
} | |
ext.install(extensionRegisters); | |
} | |
// A simpler use type for exporting to reduce exported inner modules. | |
export type EChartsExtensionInstallerSimple = (registers: any) => void; | |
type SimpleEChartsExtensionType = EChartsExtensionInstallerSimple | { install: EChartsExtensionInstallerSimple }; | |
export declare function useSimple(ext: SimpleEChartsExtensionType | (SimpleEChartsExtensionType)[]): void; | |