| /* | 
 | * 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 {EChartsType} from './echarts'; | 
 |  | 
 | import type {CoordinateSystemMaster} from '../coord/CoordinateSystem'; | 
 | import type Element from 'zrender/src/Element'; | 
 | import type ComponentModel from '../model/Component'; | 
 | import type ComponentView from '../view/Component'; | 
 | import type ChartView from '../view/Chart'; | 
 | import type SeriesModel from '../model/Series'; | 
 | import type GlobalModel from '../model/Global'; | 
 |  | 
 | const availableMethods: (keyof EChartsType)[] = [ | 
 |     'getDom', | 
 |     'getZr', | 
 |     'getWidth', | 
 |     'getHeight', | 
 |     'getDevicePixelRatio', | 
 |     'dispatchAction', | 
 |     'isSSR', | 
 |     'isDisposed', | 
 |     'on', | 
 |     'off', | 
 |     'getDataURL', | 
 |     'getConnectedDataURL', | 
 |     // 'getModel', | 
 |     'getOption', | 
 |     // 'getViewOfComponentModel', | 
 |     // 'getViewOfSeriesModel', | 
 |     'getId', | 
 |     'updateLabelLayout' | 
 | ]; | 
 |  | 
 | interface ExtensionAPI extends Pick<EChartsType, (typeof availableMethods)[number]> {} | 
 |  | 
 | abstract class ExtensionAPI { | 
 |  | 
 |     constructor(ecInstance: EChartsType) { | 
 |         zrUtil.each(availableMethods, function (methodName: string) { | 
 |             (this as any)[methodName] = zrUtil.bind((ecInstance as any)[methodName], ecInstance); | 
 |         }, this); | 
 |     } | 
 |  | 
 |     // Implemented in echarts.js | 
 |     abstract getCoordinateSystems(): CoordinateSystemMaster[]; | 
 |     abstract getComponentByElement(el: Element): ComponentModel; | 
 |     abstract enterEmphasis(el: Element, highlightDigit?: number): void; | 
 |     abstract leaveEmphasis(el: Element, highlightDigit?: number): void; | 
 |     abstract enterSelect(el: Element): void; | 
 |     abstract leaveSelect(el: Element): void; | 
 |     abstract enterBlur(el: Element): void; | 
 |     abstract leaveBlur(el: Element): void; | 
 |     // These methods are not planned to be exposed to outside. | 
 |     abstract getViewOfComponentModel(componentModel: ComponentModel): ComponentView; | 
 |     abstract getViewOfSeriesModel(seriesModel: SeriesModel): ChartView; | 
 |     abstract getModel(): GlobalModel; | 
 | } | 
 |  | 
 | export default ExtensionAPI; |