{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["enum LoadStatus {\n    notload = \"notload\",\n    loading = \"loading\",\n    loaded = \"loaded\",\n    failed = \"failed\",\n}\nlet config = {\n    key: \"\",\n    AMap: {\n        version: \"1.4.15\",\n        plugins: [],\n    },\n    AMapUI: {\n        version: \"1.1\",\n        plugins: [],\n    },\n    Loca: {\n        version: \"1.3.2\",\n    },\n} as any;\n\nlet Status = {\n    AMap: LoadStatus.notload,\n    AMapUI: LoadStatus.notload,\n    Loca: LoadStatus.notload,\n};\nlet Callback: {\n    AMap: any[],\n    AMapUI: any[],\n    Loca: any[]\n} = {\n    AMap: [],\n    AMapUI: [],\n    Loca: [],\n};\n\nlet onloadCBKs: any[] = [];\nconst onload = function (callback) {\n    if (typeof callback == \"function\") {\n        if (Status.AMap === LoadStatus.loaded) {\n            callback(window.AMap);\n            return;\n        }\n        onloadCBKs.push(callback);\n    }\n};\n\ninterface LoadOption {\n    key: string;\n    version?: string;\n    plugins?: string[];\n    AMapUI?: {\n        version?: string;\n        plugins?: string[];\n    };\n    Loca?: {\n        version?: string;\n    };\n}\nfunction appendOther(option: LoadOption): Promise<any> {\n    let pros: Promise<void>[] = [];\n    if (option.AMapUI) {\n        pros.push(loadAMapUI(option.AMapUI));\n    }\n    if (option.Loca) {\n        pros.push(loadLoca(option.Loca));\n    }\n    return Promise.all(pros);\n}\nfunction loadAMapUI(params: { version?: string; plugins?: string[] }): Promise<void> {\n    return new Promise((res, rej) => {\n        const newPlugins: string[] = [];\n        if (params.plugins) {\n            for (let i = 0; i < params.plugins.length; i += 1) {\n                if (config.AMapUI.plugins.indexOf(params.plugins[i]) == -1) {\n                    newPlugins.push(params.plugins[i]);\n                }\n            }\n        }\n        if (Status.AMapUI === LoadStatus.failed) {\n            rej(\"前次请求 AMapUI 失败\");\n        } else if (Status.AMapUI === LoadStatus.notload) {\n            Status.AMapUI = LoadStatus.loading;\n            config.AMapUI.version = params.version || config.AMapUI.version;\n            const version = config.AMapUI.version;\n            const parentNode = document.body || document.head;\n            const script = document.createElement(\"script\");\n            script.type = \"text/javascript\";\n            script.src = `https://webapi.amap.com/ui/${version}/main.js`;\n\n            script.onerror = (e) => {\n                Status.AMapUI = LoadStatus.failed;\n                rej(\"请求 AMapUI 失败\");\n            };\n            script.onload = () => {\n                Status.AMapUI = LoadStatus.loaded;\n                if (newPlugins.length) {\n                    window.AMapUI.loadUI(newPlugins, function () {\n                        for (let i = 0, len = newPlugins.length; i < len; i++) {\n                            const path = newPlugins[i];\n                            const name = path.split(\"/\").slice(-1)[0];\n                            window.AMapUI[name] = arguments[i];\n                        }\n                        res();\n                        while (Callback.AMapUI.length) {\n                            Callback.AMapUI.splice(0, 1)[0]();\n                        }\n                    });\n                } else {\n                    res();\n                    while (Callback.AMapUI.length) {\n                        Callback.AMapUI.splice(0, 1)[0]();\n                    }\n                }\n            };\n            parentNode.appendChild(script);\n        } else if (Status.AMapUI === LoadStatus.loaded) {\n            if (params.version && params.version !== config.AMapUI.version) {\n                rej(\"不允许多个版本 AMapUI 混用\");\n            } else {\n                if (newPlugins.length) {\n                    window.AMapUI.loadUI(newPlugins, function () {\n                        for (let i = 0, len = newPlugins.length; i < len; i++) {\n                            const path = newPlugins[i];\n                            const name = path.split(\"/\").slice(-1)[0];\n                            window.AMapUI[name] = arguments[i];\n                        }\n                        res();\n                    });\n                } else {\n                    res();\n                }\n            }\n        } else {\n            if (params.version && params.version !== config.AMapUI.version) {\n                rej(\"不允许多个版本 AMapUI 混用\");\n            } else {\n                Callback.AMapUI.push((err) => {\n                    if (err) {\n                        rej(err);\n                    } else {\n                        if (newPlugins.length) {\n                            window.AMapUI.loadUI(newPlugins, function () {\n                                for (let i = 0, len = newPlugins.length; i < len; i++) {\n                                    const path = newPlugins[i];\n                                    const name = path.split(\"/\").slice(-1)[0];\n                                    window.AMapUI[name] = arguments[i];\n                                }\n                                res();\n                            });\n                        } else {\n                            res();\n                        }\n                    }\n                });\n            }\n        }\n    });\n}\n\nfunction loadLoca(params: { version?: string }): Promise<void> {\n    return new Promise((res, rej) => {\n        if (Status.Loca === LoadStatus.failed) {\n            rej(\"前次请求 Loca 失败\");\n        } else if (Status.Loca === LoadStatus.notload) {\n            Status.Loca = LoadStatus.loading;\n            config.Loca.version = params.version || config.Loca.version;\n            const version = config.Loca.version;\n            const isApiV2 = config.AMap.version.startsWith(\"2\");\n            const isLocaV2 = version.startsWith(\"2\");\n            if ((isApiV2 && !isLocaV2) || (!isApiV2 && isLocaV2)) {\n                rej(\"JSAPI 与 Loca 版本不对应！！\");\n                return;\n            }\n            const key = config.key;\n            const parentNode = document.body || document.head;\n            const script = document.createElement(\"script\");\n            script.type = \"text/javascript\";\n            script.src = `https://webapi.amap.com/loca?v=${version}&key=${key}`;\n\n            script.onerror = (e) => {\n                Status.Loca = LoadStatus.failed;\n                rej(\"请求 AMapUI 失败\");\n            };\n            script.onload = () => {\n                Status.Loca = LoadStatus.loaded;\n                res();\n                while (Callback.Loca.length) {\n                    Callback.Loca.splice(0, 1)[0]();\n                }\n            };\n            parentNode.appendChild(script);\n        } else if (Status.Loca === LoadStatus.loaded) {\n            if (params.version && params.version !== config.Loca.version) {\n                rej(\"不允许多个版本 Loca 混用\");\n            } else {\n                res();\n            }\n        } else {\n            if (params.version && params.version !== config.Loca.version) {\n                rej(\"不允许多个版本 Loca 混用\");\n            } else {\n                Callback.Loca.push((err) => {\n                    if (err) {\n                        rej(err);\n                    } else {\n                        rej();\n                    }\n                });\n            }\n        }\n    });\n}\n\nconst load = function (options: LoadOption) {\n    if (typeof window === 'undefined') {\n        throw Error(\"AMap JSAPI can only be used in Browser.\");\n    }\n    return new Promise((resolve, reject) => {\n        if (Status.AMap == LoadStatus.failed) {\n            reject(\"\");\n        } else if (Status.AMap == LoadStatus.notload) {\n            //初次加载\n            let { key, version, plugins } = options;\n            if (!key) {\n                reject(\"请填写key\");\n                return;\n            }\n            if (window.AMap && location.host !== \"lbs.amap.com\") {\n                reject(\"禁止多种API加载方式混用\");\n            }\n            config.key = key;\n            config.AMap.version = version || config.AMap.version;\n            config.AMap.plugins = plugins || config.AMap.plugins;\n            Status.AMap = LoadStatus.loading;\n\n            const parentNode = document.body || document.head;\n\n            window.___onAPILoaded = function (err) {\n                delete window.___onAPILoaded;\n                if (err) {\n                    Status.AMap = LoadStatus.failed;\n                    reject(err);\n                } else {\n                    Status.AMap = LoadStatus.loaded;\n                    appendOther(options)\n                        .then(() => {\n                            resolve(window.AMap);\n                        })\n                        .catch(reject);\n                    while (onloadCBKs.length) {\n                        onloadCBKs.splice(0, 1)[0]();\n                    }\n                }\n            };\n            const script = document.createElement(\"script\");\n            script.type = \"text/javascript\";\n\n            script.src =\n                \"https://webapi.amap.com/maps?callback=___onAPILoaded&v=\" +\n                config.AMap.version +\n                \"&key=\" +\n                key +\n                \"&plugin=\" +\n                config.AMap.plugins.join(\",\");\n            script.onerror = (e) => {\n                Status.AMap = LoadStatus.failed;\n                reject(e);\n            };\n            parentNode.appendChild(script);\n        } else if (Status.AMap == LoadStatus.loaded) {\n            //deal multi load\n            if (options.key && options.key !== config.key) {\n                reject(\"多个不一致的 key\");\n                return;\n            }\n            if (options.version && options.version !== config.AMap.version) {\n                reject(\"不允许多个版本 JSAPI 混用\");\n                return;\n            }\n            const newPlugins: any[] = [];\n            if (options.plugins) {\n                for (var i = 0; i < options.plugins.length; i += 1) {\n                    if (config.AMap.plugins.indexOf(options.plugins[i]) == -1) {\n                        newPlugins.push(options.plugins[i]);\n                    }\n                }\n            }\n            if (newPlugins.length) {\n                window.AMap.plugin(newPlugins, () => {\n                    appendOther(options)\n                        .then(() => {\n                            resolve(window.AMap);\n                        })\n                        .catch(reject);\n                });\n            } else {\n                appendOther(options)\n                    .then(() => {\n                        resolve(window.AMap);\n                    })\n                    .catch(reject);\n            }\n        } else {\n            // loading\n            if (options.key && options.key !== config.key) {\n                reject(\"多个不一致的 key\");\n                return;\n            }\n            if (options.version && options.version !== config.AMap.version) {\n                reject(\"不允许多个版本 JSAPI 混用\");\n                return;\n            }\n            const newPlugins: any[] = [];\n            if (options.plugins) {\n                for (var i = 0; i < options.plugins.length; i += 1) {\n                    if (config.AMap.plugins.indexOf(options.plugins[i]) == -1) {\n                        newPlugins.push(options.plugins[i]);\n                    }\n                }\n            }\n            onload(() => {\n                if (newPlugins.length) {\n                    window.AMap.plugin(newPlugins, () => {\n                        appendOther(options)\n                            .then(() => {\n                                resolve(window.AMap);\n                            })\n                            .catch(reject);\n                    });\n                } else {\n                    appendOther(options)\n                        .then(() => {\n                            resolve(window.AMap);\n                        })\n                        .catch(reject);\n                }\n            });\n        }\n    });\n};\nfunction reset() {\n    delete window.AMap;\n    delete window.AMapUI;\n    delete window.Loca;\n    config = {\n        key: \"\",\n        AMap: {\n            version: \"1.4.15\",\n            plugins: [],\n        },\n        AMapUI: {\n            version: \"1.1\",\n            plugins: [],\n        },\n        Loca: {\n            version: \"1.3.2\",\n        },\n    };\n    Status = {\n        AMap: LoadStatus.notload,\n        AMapUI: LoadStatus.notload,\n        Loca: LoadStatus.notload,\n    };\n    Callback = {\n        AMap: [],\n        AMapUI: [],\n        Loca: [],\n    };\n}\nexport default { load, reset };\n"],"names":["LoadStatus","config","key","AMap","version","plugins","AMapUI","Loca","Status","notload","Callback","onloadCBKs","callback","loaded","window","push","appendOther","option","pros","loadAMapUI","loadLoca","Promise","all","params","res","rej","i","length","indexOf","newPlugins","failed","loading","script","type","src","onerror","e","script.onerror","onload","script.onload","loadUI","len","name","arguments","splice","parentNode","appendChild","err","isApiV2","isLocaV2","Error","resolve","reject","options","location","host","document","body","head","___onAPILoaded","window.___onAPILoaded","then","catch","createElement","join","plugin","reset","load"],"mappings":"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"}