This is an automated email from the ASF dual-hosted git repository.

100pah pushed a commit to branch release-dev
in repository https://gitbox.apache.org/repos/asf/echarts.git

commit 23438b8c963473c269809bd783e5a0fb00cdc2f4
Author: 100pah <[email protected]>
AuthorDate: Thu May 7 19:28:08 2026 +0800

    ts: Add ts to bmap (remove @ts-nocheck)
---
 build/pre-publish.js                              |  76 ++++--
 extension-src/bmap/BMapCoordSys.ts                | 292 +++++++++++++++-------
 extension-src/bmap/BMapModel.ts                   |  48 +++-
 extension-src/bmap/BMapView.ts                    |  30 ++-
 extension-src/bmap/bmap.ts                        |   9 +-
 tsconfig.json => extension-src/bmap/tsconfig.json |  10 +-
 tsconfig.json                                     |   2 +-
 7 files changed, 325 insertions(+), 142 deletions(-)

diff --git a/build/pre-publish.js b/build/pre-publish.js
index f7476b2af..c2ca8a010 100644
--- a/build/pre-publish.js
+++ b/build/pre-publish.js
@@ -43,8 +43,8 @@ const { transformImport } = 
require('zrender/build/transformImport.js');
 
 const ecDir = nodePath.resolve(__dirname, '..');
 const tmpDir = nodePath.resolve(ecDir, 'pre-publish-tmp');
-
-const tsConfig = readTSConfig();
+const rootTSConfigFilePath = nodePath.resolve(ecDir, 'tsconfig.json');
+const bmapTSConfigFilePath = nodePath.resolve(ecDir, 
'extension-src/bmap/tsconfig.json');
 
 const autoGeneratedFileAlert = `
 /**
@@ -59,12 +59,20 @@ const mainSrcGlobby = {
     ],
     cwd: ecDir
 };
-const extensionSrcGlobby = {
+const extensionDataToolSrcGlobby = {
+    patterns: [
+        'extension-src/dataTool/**/*.ts'
+    ],
+    cwd: ecDir
+};
+const extensionBMapSrcGlobby = {
     patterns: [
-        'extension-src/**/*.ts'
+        'extension-src/bmap/**/*.ts'
     ],
     cwd: ecDir
 };
+const extensionBMapSrcDir = nodePath.resolve(ecDir, 'extension-src/bmap');
+const extensionBMapESMDir = nodePath.resolve(ecDir, 'extension/bmap');
 const extensionSrcDir = nodePath.resolve(ecDir, 'extension-src');
 const extensionESMDir = nodePath.resolve(ecDir, 'extension');
 const ssrClientGlobby = {
@@ -125,14 +133,14 @@ const compileWorkList = [
         }
     },
     {
-        logLabel: 'extension ts -> js-esm',
+        logLabel: 'extension dataTool ts -> js-esm',
         compilerOptionsOverride: {
             module: 'ES2015',
             declaration: false,
             rootDir: extensionSrcDir,
             outDir: extensionESMDir
         },
-        srcGlobby: extensionSrcGlobby,
+        srcGlobby: extensionDataToolSrcGlobby,
         transformOptions: {
             filesGlobby: {patterns: ['**/*.js'], cwd: extensionESMDir},
             preamble: preamble.js,
@@ -168,6 +176,30 @@ const compileWorkList = [
     }
 ];
 
+const bmapCompileWork = {
+    logLabel: 'extension bmap ts -> js-esm',
+    compilerOptionsOverride: {
+        module: 'ES2015',
+        declaration: false,
+        rootDir: extensionBMapSrcDir,
+        outDir: extensionBMapESMDir,
+        paths: {
+            'echarts': [ecDir]
+        }
+    },
+    srcGlobby: extensionBMapSrcGlobby,
+    transformOptions: {
+        filesGlobby: {patterns: ['**/*.js'], cwd: extensionBMapESMDir},
+        preamble: preamble.js,
+        transformDEV: true
+    },
+    before: async function () {
+        fsExtra.removeSync(extensionBMapESMDir);
+    },
+    after: async function () {
+        await transformLibFiles(extensionBMapESMDir, 'lib');
+    }
+};
 
 
 /**
@@ -175,18 +207,20 @@ const compileWorkList = [
  */
 module.exports = async function () {
 
-    for (let {
-        logLabel, compilerOptionsOverride, srcGlobby,
-        transformOptions, before, after
-    } of compileWorkList) {
-
+    async function performCompileWork(
+        tsConfigFilePath,
+        {
+            logLabel, compilerOptionsOverride, srcGlobby,
+            transformOptions, before, after
+        }
+    ) {
         process.stdout.write(chalk.green.dim(`[${logLabel}]: compiling ...`));
 
         before && await before();
 
         let srcPathList = await readFilePaths(srcGlobby);
 
-        await tsCompile(compilerOptionsOverride, srcPathList);
+        await tsCompile(compilerOptionsOverride, tsConfigFilePath, 
srcPathList);
 
         process.stdout.write(chalk.green.dim(` done \n`));
 
@@ -199,10 +233,19 @@ module.exports = async function () {
         process.stdout.write(chalk.green.dim(` done \n`));
     }
 
+    for (let compileWork of compileWorkList) {
+        await performCompileWork(rootTSConfigFilePath, compileWork);
+    }
+
     process.stdout.write(chalk.green.dim(`Generating entries ...`));
     generateEntries();
+    process.stdout.write(chalk.green.dim(` done \n`));
     process.stdout.write(chalk.green.dim(`Bundling DTS ...`));
     await bundleDTS();
+    process.stdout.write(chalk.green.dim(` done \n`));
+
+    // bmap require echarts DTS build results.
+    await performCompileWork(bmapTSConfigFilePath, bmapCompileWork);
 
     console.log(chalk.green.dim('All done.'));
 };
@@ -244,7 +287,9 @@ async function runTsCompile(localTs, compilerOptions, 
srcPathList) {
 }
 module.exports.runTsCompile = runTsCompile;
 
-async function tsCompile(compilerOptionsOverride, srcPathList) {
+async function tsCompile(compilerOptionsOverride, tsConfigFilePath, 
srcPathList) {
+    const tsConfig = readTSConfig(tsConfigFilePath);
+
     assert(
         compilerOptionsOverride
         && compilerOptionsOverride.module
@@ -458,11 +503,10 @@ async function bundleDTS() {
     });
 }
 
-function readTSConfig() {
+function readTSConfig(tsConfigFilePath) {
     // tsconfig.json may have comment string, which is invalid if
     // using `require('tsconfig.json'). So we use a loose parser.
-    let filePath = nodePath.resolve(ecDir, 'tsconfig.json');
-    const tsConfigText = fs.readFileSync(filePath, {encoding: 'utf8'});
+    const tsConfigText = fs.readFileSync(tsConfigFilePath, {encoding: 'utf8'});
     return (new Function(`return ( ${tsConfigText} )`))();
 }
 
diff --git a/extension-src/bmap/BMapCoordSys.ts 
b/extension-src/bmap/BMapCoordSys.ts
index 96f24de38..bd364f416 100644
--- a/extension-src/bmap/BMapCoordSys.ts
+++ b/extension-src/bmap/BMapCoordSys.ts
@@ -17,114 +17,221 @@
 * under the License.
 */
 
-// @ts-nocheck
-/* global BMap */
+/* global BMap, document */
 
 import {
     util as zrUtil,
     graphic,
-    matrix
+    matrix,
+    registerCoordinateSystem,
 } from 'echarts';
+import {
+    COMPONENT_MAIN_TYPE_BMAP,
+    BMapModel,
+} from './BMapModel';
+
+
+// ------ START: Mock of bmap lib types ------
+export declare namespace bmapLib {
+    interface Map { // This is `BMap.Map`
+        pointToOverlayPixel(point: Point): Pixel;
+        overlayPixelToPoint(px: Pixel): Point;
+        getPanes(): MapPanes;
+        getCenter(): Point;
+        getZoom(): number;
+        addOverlay(overlay: Overlay): void;
+        centerAndZoom(pt: Point, zoom: number): void;
+        addEventListener(event: string, handler: Callback): void;
+        removeEventListener(event: string, handler: Callback): void;
+        enableDragging(): void;
+        disableDragging(): void;
+        enableScrollWheelZoom(): void;
+        disableScrollWheelZoom(): void;
+        enableDoubleClickZoom(): void;
+        disableDoubleClickZoom(): void;
+        enablePinchToZoom(): void;
+        disablePinchToZoom(): void;
+        setMapStyle(mapStyle: MapStyle): void;
+        setMapStyleV2(mapStyle: MapStyleV2): void;
+    }
+    interface MercatorProjection {
+        lngLatToPoint(point: Point): number[];
+    }
+    interface Point {lng: number; lat: number;}
+    interface Pixel {x: number; y: number;}
+    interface Overlay {
+        initialize(map: Map): HTMLElement;
+        draw(): void;
+    }
+    interface MapPanes {
+        labelPane: HTMLElement;
+    }
+    type MapOptions = {
+        mainType: unknown;
+    } & {
+        [key in string]: unknown
+    };
+    type MapStyle = object;
+    type MapStyleV2 = object;
+    type Callback = (...args: any[]) => void;
+}
+declare const BMap: {
+    MercatorProjection: new () => bmapLib.MercatorProjection;
+    Point: new (x: number, y: number) => bmapLib.Point;
+    Overlay: new () => bmapLib.Overlay;
+    Map: new (root: HTMLElement, mapOptions: bmapLib.MapOptions) => 
bmapLib.Map;
+};
+// ------ END: Mock of BMap types ------
+
+
+interface BMapECExtendedOverlay extends bmapLib.Overlay {
+    _root: HTMLElement;
+}
+interface BMapECExtendedOverlayCtor {
+    (root: HTMLElement): BMapECExtendedOverlay;
+    new (root: HTMLElement): BMapECExtendedOverlay;
+}
 
-function BMapCoordSys(bmap, api) {
-    this._bmap = bmap;
-    this.dimensions = ['lng', 'lat'];
-    this._mapOffset = [0, 0];
+type ECCoordinateSystemCreator = Parameters<typeof 
registerCoordinateSystem>[1];
+type ECCoordinateSystemMaster = 
ReturnType<ECCoordinateSystemCreator['create']>[number];
+export type ECExtensionAPI = 
Parameters<ECCoordinateSystemCreator['create']>[1];
+export type ECGlobalModel = Parameters<ECCoordinateSystemCreator['create']>[0]
 
-    this._api = api;
 
-    this._projection = new BMap.MercatorProjection();
+const COORD_SYS_BMAP = COMPONENT_MAIN_TYPE_BMAP;
+function makeDimensions(): ['lng', 'lat'] {
+    return ['lng', 'lat'];
 }
 
-BMapCoordSys.prototype.type = 'bmap';
+export class BMapCoordSys implements ECCoordinateSystemMaster {
 
-BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
+    dimensions: ['lng', 'lat'] = makeDimensions();
+    // For deciding which dimensions to use when creating list data
+    static dimensions: ['lng', 'lat'] = makeDimensions();
 
-BMapCoordSys.prototype.setZoom = function (zoom) {
-    this._zoom = zoom;
-};
+    type = COORD_SYS_BMAP;
 
-BMapCoordSys.prototype.setCenter = function (center) {
-    this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], 
center[1]));
-};
+    private _bmap: bmapLib.Map;
+    private _mapOffset: number[] = [0, 0];
+    private _api: ECExtensionAPI;
+    private _projection: bmapLib.MercatorProjection = new 
BMap.MercatorProjection();
+    private _zoom: number;
+    private _center: number[];
 
-BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
-    this._mapOffset = mapOffset;
-};
+    constructor(bmap: bmapLib.Map, api: ECExtensionAPI) {
+        this._bmap = bmap;
+        this._api = api;
+    }
 
-BMapCoordSys.prototype.getBMap = function () {
-    return this._bmap;
-};
+    setZoom(zoom: number): void {
+        this._zoom = zoom;
+    }
 
-BMapCoordSys.prototype.dataToPoint = function (data) {
-    const point = new BMap.Point(data[0], data[1]);
-    // TODO mercator projection is toooooooo slow
-    // let mercatorPoint = this._projection.lngLatToPoint(point);
-
-    // let width = this._api.getZr().getWidth();
-    // let height = this._api.getZr().getHeight();
-    // let divider = Math.pow(2, 18 - 10);
-    // return [
-    //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 
2),
-    //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 
2)
-    // ];
-    const px = this._bmap.pointToOverlayPixel(point);
-    const mapOffset = this._mapOffset;
-    return [px.x - mapOffset[0], px.y - mapOffset[1]];
-};
+    setCenter(center: number[]): void {
+        this._center = this._projection.lngLatToPoint(new 
BMap.Point(center[0], center[1]));
+    }
 
-BMapCoordSys.prototype.pointToData = function (pt) {
-    const mapOffset = this._mapOffset;
-    pt = this._bmap.overlayPixelToPoint({
-        x: pt[0] + mapOffset[0],
-        y: pt[1] + mapOffset[1]
-    });
-    return [pt.lng, pt.lat];
-};
+    setMapOffset(mapOffset: number[]): void {
+        this._mapOffset = mapOffset;
+    }
 
-BMapCoordSys.prototype.getViewRect = function () {
-    const api = this._api;
-    return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
-};
+    getBMap(): bmapLib.Map {
+        return this._bmap;
+    }
 
-BMapCoordSys.prototype.getRoamTransform = function () {
-    return matrix.create();
-};
+    dataToPoint(data: number[]): number[] {
+        const point = new BMap.Point(data[0], data[1]);
+        // TODO mercator projection is toooooooo slow
+        // let mercatorPoint = this._projection.lngLatToPoint(point);
+
+        // let width = this._api.getZr().getWidth();
+        // let height = this._api.getZr().getHeight();
+        // let divider = Math.pow(2, 18 - 10);
+        // return [
+        //     Math.round((mercatorPoint.x - this._center.x) / divider + width 
/ 2),
+        //     Math.round((this._center.y - mercatorPoint.y) / divider + 
height / 2)
+        // ];
+        const px = this._bmap.pointToOverlayPixel(point);
+        const mapOffset = this._mapOffset;
+        return [px.x - mapOffset[0], px.y - mapOffset[1]];
+    }
+
+    pointToData(point: number[]): number[] {
+        const mapOffset = this._mapOffset;
+        const pt = this._bmap.overlayPixelToPoint({
+            x: point[0] + mapOffset[0],
+            y: point[1] + mapOffset[1]
+        });
+        return [pt.lng, pt.lat];
+    }
+
+    containPoint(point: number[]): boolean {
+        // Currently, bmap takes the entire canvas.
+        return true;
+    }
+
+    getViewRect(): graphic.BoundingRect {
+        const api = this._api;
+        return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
+    }
 
-BMapCoordSys.prototype.prepareCustoms = function () {
-    const rect = this.getViewRect();
-    return {
+    getRoamTransform(): matrix.MatrixArray {
+        return matrix.create();
+    }
+
+    prepareCustoms(this: BMapCoordSys): {
         coordSys: {
-            // The name exposed to user is always 'cartesian2d' but not 'grid'.
-            type: 'bmap',
-            x: rect.x,
-            y: rect.y,
-            width: rect.width,
-            height: rect.height
-        },
+            type: typeof COORD_SYS_BMAP;
+            x: number;
+            y: number;
+            width: number;
+            height: number;
+        };
         api: {
-            coord: zrUtil.bind(this.dataToPoint, this),
-            size: zrUtil.bind(dataToCoordSize, this)
-        }
-    };
-};
+            coord: (p: number[]) => number[];
+            size: (dataSize: number[], dataItem: number[]) => number[];
+        };
+    } {
+        const rect = this.getViewRect();
+        return {
+            coordSys: {
+                // The name exposed to user is always 'cartesian2d' but not 
'grid'.
+                type: COORD_SYS_BMAP,
+                x: rect.x,
+                y: rect.y,
+                width: rect.width,
+                height: rect.height
+            },
+            api: {
+                coord: zrUtil.bind(this.dataToPoint, this),
+                size: zrUtil.bind(dataToCoordSize, this)
+            }
+        };
+    }
 
-BMapCoordSys.prototype.convertToPixel = function (ecModel, finder, value) {
-    // here we ignore finder as only one bmap component is allowed
-    return this.dataToPoint(value);
-};
+    convertToPixel(ecModel: unknown, finder: unknown, value: number[]): 
number[] {
+        // here we ignore finder as only one bmap component is allowed
+        return this.dataToPoint(value);
+    }
 
-BMapCoordSys.prototype.convertFromPixel = function (ecModel, finder, value) {
-    return this.pointToData(value);
-};
+    convertFromPixel(ecModel: unknown, finder: unknown, value: number[]): 
number[] {
+        return this.pointToData(value);
+    }
+
+    static create: ECCoordinateSystemCreator['create'];
 
-function dataToCoordSize(dataSize, dataItem) {
+}
+
+BMapCoordSys.prototype.dimensions = makeDimensions(); // For backward 
compatibility.
+
+
+function dataToCoordSize(this: BMapCoordSys, dataSize: number[], dataItem: 
number[]): number[] {
     dataItem = dataItem || [0, 0];
     return zrUtil.map([0, 1], function (dimIdx) {
         const val = dataItem[dimIdx];
         const halfSize = dataSize[dimIdx] / 2;
-        const p1 = [];
-        const p2 = [];
+        const p1: number[] = [];
+        const p2: number[] = [];
         p1[dimIdx] = val - halfSize;
         p2[dimIdx] = val + halfSize;
         p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
@@ -132,24 +239,19 @@ function dataToCoordSize(dataSize, dataItem) {
     }, this);
 }
 
-let Overlay;
-
-// For deciding which dimensions to use when creating list data
-BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
+let Overlay: BMapECExtendedOverlayCtor;
 
-function createOverlayCtor() {
-    function Overlay(root) {
+function createOverlayCtor(): BMapECExtendedOverlayCtor {
+    function Overlay(this: BMapECExtendedOverlay, root: HTMLElement) {
         this._root = root;
     }
 
     Overlay.prototype = new BMap.Overlay();
+
     /**
-     * 初始化
-     *
-     * @param {BMap.Map} map
      * @override
      */
-    Overlay.prototype.initialize = function (map) {
+    Overlay.prototype.initialize = function (this: BMapECExtendedOverlay, map: 
bmapLib.Map): HTMLElement {
         map.getPanes().labelPane.appendChild(this._root);
         return this._root;
     };
@@ -158,15 +260,15 @@ function createOverlayCtor() {
      */
     Overlay.prototype.draw = function () {};
 
-    return Overlay;
+    return Overlay as BMapECExtendedOverlayCtor;
 }
 
 BMapCoordSys.create = function (ecModel, api) {
-    let bmapCoordSys;
+    let bmapCoordSys: BMapCoordSys;
     const root = api.getDom();
 
     // TODO Dispose
-    ecModel.eachComponent('bmap', function (bmapModel) {
+    ecModel.eachComponent(COMPONENT_MAIN_TYPE_BMAP, function (bmapModel: 
BMapModel) {
         const painter = api.getZr().painter;
         const viewportRoot = painter.getViewportRoot();
         if (typeof BMap === 'undefined') {
@@ -179,7 +281,7 @@ BMapCoordSys.create = function (ecModel, api) {
         let bmap;
         if (!bmapModel.__bmap) {
             // Not support IE8
-            let bmapRoot = root.querySelector('.ec-extension-bmap');
+            let bmapRoot: HTMLElement = 
root.querySelector('.ec-extension-bmap');
             if (bmapRoot) {
                 // Reset viewport left and top, which will be changed
                 // in moving handler in BMapView
@@ -236,7 +338,7 @@ BMapCoordSys.create = function (ecModel, api) {
     });
 
     ecModel.eachSeries(function (seriesModel) {
-        if (seriesModel.get('coordinateSystem') === 'bmap') {
+        if (seriesModel.get('coordinateSystem') === COORD_SYS_BMAP) {
             seriesModel.coordinateSystem = bmapCoordSys;
         }
     });
@@ -245,4 +347,4 @@ BMapCoordSys.create = function (ecModel, api) {
     return bmapCoordSys && [bmapCoordSys];
 };
 
-export default BMapCoordSys;
+registerCoordinateSystem('bmap', BMapCoordSys);
diff --git a/extension-src/bmap/BMapModel.ts b/extension-src/bmap/BMapModel.ts
index f84c127c8..101ebbb8a 100644
--- a/extension-src/bmap/BMapModel.ts
+++ b/extension-src/bmap/BMapModel.ts
@@ -17,27 +17,57 @@
 * under the License.
 */
 
-// @ts-nocheck
-import * as echarts from 'echarts';
+import {
+    ComponentModel,
+    extendComponentModel,
+} from 'echarts';
+import type {
+    BMapCoordSys,
+    bmapLib,
+} from './BMapCoordSys';
 
-function v2Equal(a, b) {
+
+export interface BMapOption {
+    type?: string;
+    center?: number[];
+    zoom?: number;
+    roam?: boolean | 'scale' | 'move';
+    mapOptions?: bmapLib.MapOptions;
+    mapStyle?: bmapLib.MapStyle;
+    mapStyleV2?: bmapLib.MapStyleV2;
+}
+type BMapComponentExtended = ComponentModel<BMapOption>;
+export type BMapModel = (typeof proto) & BMapComponentExtended;
+
+
+function v2Equal(a: number[], b: number[]): boolean {
     return a && b && a[0] === b[0] && a[1] === b[1];
 }
 
-export default echarts.extendComponentModel({
-    type: 'bmap',
+export const COMPONENT_MAIN_TYPE_BMAP = 'bmap';
+
+
+const proto = {
+
+    type: COMPONENT_MAIN_TYPE_BMAP,
+
+    __bmap: undefined as bmapLib.Map,
+    __mapOffset: undefined as number[],
+    __mapStyle: undefined as object,
+    __mapStyle2: undefined as object,
+    coordinateSystem: undefined as BMapCoordSys,
 
     getBMap: function () {
         // __bmap is injected when creating BMapCoordSys
         return this.__bmap;
     },
 
-    setCenterAndZoom: function (center, zoom) {
+    setCenterAndZoom: function (this: BMapComponentExtended, center: number[], 
zoom: number): void {
         this.option.center = center;
         this.option.zoom = zoom;
     },
 
-    centerOrZoomChanged: function (center, zoom) {
+    centerOrZoomChanged: function (this: BMapComponentExtended, center: 
number[], zoom: number): boolean {
         const option = this.option;
         return !(v2Equal(center, option.center) && zoom === option.zoom);
     },
@@ -59,4 +89,6 @@ export default echarts.extendComponentModel({
 
         roam: false
     }
-});
+};
+
+extendComponentModel(proto);
diff --git a/extension-src/bmap/BMapView.ts b/extension-src/bmap/BMapView.ts
index c125f6c41..eec413290 100644
--- a/extension-src/bmap/BMapView.ts
+++ b/extension-src/bmap/BMapView.ts
@@ -17,10 +17,12 @@
 * under the License.
 */
 
-// @ts-nocheck
-import * as echarts from 'echarts';
+import { extendComponentView, util as zrUtil } from 'echarts';
+import { BMapModel, COMPONENT_MAIN_TYPE_BMAP } from './BMapModel';
+import { bmapLib, ECExtensionAPI, ECGlobalModel } from './BMapCoordSys';
 
-function isEmptyObject(obj) {
+
+function isEmptyObject(obj: object) {
     for (const key in obj) {
         if (obj.hasOwnProperty(key)) {
             return false;
@@ -29,20 +31,24 @@ function isEmptyObject(obj) {
     return true;
 }
 
-export default echarts.extendComponentView({
-    type: 'bmap',
+const proto = {
+
+    type: COMPONENT_MAIN_TYPE_BMAP,
 
-    render: function (bMapModel, ecModel, api) {
+    _oldMoveHandler: undefined as bmapLib.Callback,
+    _oldZoomEndHandler: undefined as bmapLib.Callback,
+
+    render: function (bMapModel: BMapModel, ecModel: ECGlobalModel, api: 
ECExtensionAPI): void {
         let rendering = true;
 
         const bmap = bMapModel.getBMap();
         const viewportRoot = api.getZr().painter.getViewportRoot();
         const coordSys = bMapModel.coordinateSystem;
-        const moveHandler = function (type, target) {
+        const moveHandler = function () {
             if (rendering) {
                 return;
             }
-            const offsetEl = viewportRoot.parentNode.parentNode.parentNode;
+            const offsetEl = viewportRoot.parentNode.parentNode.parentNode as 
HTMLElement;
             const mapOffset = [
                 -parseInt(offsetEl.style.left, 10) || 0,
                 -parseInt(offsetEl.style.top, 10) || 0
@@ -118,7 +124,7 @@ export default echarts.extendComponentView({
         if (JSON.stringify(originalStyle) !== mapStyleStr) {
             // FIXME May have blank tile when dragging if setMapStyle
             if (!isEmptyObject(newMapStyle)) {
-                bmap.setMapStyle(echarts.util.clone(newMapStyle));
+                bmap.setMapStyle(zrUtil.clone(newMapStyle));
             }
             bMapModel.__mapStyle = JSON.parse(mapStyleStr);
         }
@@ -132,11 +138,13 @@ export default echarts.extendComponentView({
         if (JSON.stringify(originalStyle2) !== mapStyleStr2) {
             // FIXME May have blank tile when dragging if setMapStyle
             if (!isEmptyObject(newMapStyle2)) {
-                bmap.setMapStyleV2(echarts.util.clone(newMapStyle2));
+                bmap.setMapStyleV2(zrUtil.clone(newMapStyle2));
             }
             bMapModel.__mapStyle2 = JSON.parse(mapStyleStr2);
         }
 
         rendering = false;
     }
-});
+};
+
+extendComponentView(proto);
diff --git a/extension-src/bmap/bmap.ts b/extension-src/bmap/bmap.ts
index d543d104f..054d28d23 100644
--- a/extension-src/bmap/bmap.ts
+++ b/extension-src/bmap/bmap.ts
@@ -17,18 +17,15 @@
 * under the License.
 */
 
-// @ts-nocheck
 /**
  * BMap component extension
  */
 
 import * as echarts from 'echarts';
-import BMapCoordSys from './BMapCoordSys';
-
+import './BMapCoordSys';
 import './BMapModel';
 import './BMapView';
-
-echarts.registerCoordinateSystem('bmap', BMapCoordSys);
+import { BMapModel, COMPONENT_MAIN_TYPE_BMAP } from './BMapModel';
 
 // Action
 echarts.registerAction({
@@ -36,7 +33,7 @@ echarts.registerAction({
     event: 'bmapRoam',
     update: 'updateLayout'
 }, function (payload, ecModel) {
-    ecModel.eachComponent('bmap', function (bMapModel) {
+    ecModel.eachComponent(COMPONENT_MAIN_TYPE_BMAP, function (bMapModel: 
BMapModel) {
         const bmap = bMapModel.getBMap();
         const center = bmap.getCenter();
         bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());
diff --git a/tsconfig.json b/extension-src/bmap/tsconfig.json
similarity index 76%
copy from tsconfig.json
copy to extension-src/bmap/tsconfig.json
index 3d7d3c377..8165a04cf 100644
--- a/tsconfig.json
+++ b/extension-src/bmap/tsconfig.json
@@ -18,12 +18,12 @@
 
         "pretty": true,
 
-        "outDir": "lib"
+        "baseUrl": ".",
+        "paths": {
+            "echarts": ["../.."]
+        }
     },
     "include": [
-        "src/**/*.ts",
-        "extension-src/**/*.ts",
-        "ssr/client/**/*.ts",
-        "test/lib/myTransform/src/**/*.ts"
+        "./**/*.ts"
     ]
 }
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 3d7d3c377..4d134ea36 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -22,7 +22,7 @@
     },
     "include": [
         "src/**/*.ts",
-        "extension-src/**/*.ts",
+        "extension-src/dataTool/**/*.ts",
         "ssr/client/**/*.ts",
         "test/lib/myTransform/src/**/*.ts"
     ]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to