'use strict'; (function (m, p) { "object" === typeof exports && "undefined" !== typeof module ? module.exports = p() : "function" === typeof define && define.amd ? define(p) : (m = m || self, m.AMapLoader = p()) })(this, function () {
    function m(a) { var b = []; a.AMapUI && b.push(p(a.AMapUI)); a.Loca && b.push(r(a.Loca)); return Promise.all(b) } function p(a) {
        return new Promise(function (h, c) {
            var f = []; if (a.plugins) for (var e = 0; e < a.plugins.length; e += 1)-1 == d.AMapUI.plugins.indexOf(a.plugins[e]) && f.push(a.plugins[e]); if (g.AMapUI === b.failed) c("\u524d\u6b21\u8bf7\u6c42 AMapUI \u5931\u8d25");
            else if (g.AMapUI === b.notload) {
                g.AMapUI = b.loading; d.AMapUI.version = a.version || d.AMapUI.version; e = d.AMapUI.version; var l = document.body || document.head, k = document.createElement("script"); k.type = "text/javascript"; k.src = "https://webapi.amap.com/ui/" + e + "/main.js"; k.onerror = function (a) { g.AMapUI = b.failed; c("\u8bf7\u6c42 AMapUI \u5931\u8d25") }; k.onload = function () {
                    g.AMapUI = b.loaded; if (f.length) window.AMapUI.loadUI(f, function () {
                        for (var a = 0, b = f.length; a < b; a++) {
                            var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] =
                                arguments[a]
                        } for (h(); n.AMapUI.length;)n.AMapUI.splice(0, 1)[0]()
                    }); else for (h(); n.AMapUI.length;)n.AMapUI.splice(0, 1)[0]()
                }; l.appendChild(k)
            } else g.AMapUI === b.loaded ? a.version && a.version !== d.AMapUI.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528") : f.length ? window.AMapUI.loadUI(f, function () { for (var a = 0, b = f.length; a < b; a++) { var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] = arguments[a] } h() }) : h() : a.version && a.version !== d.AMapUI.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528") :
                n.AMapUI.push(function (a) { a ? c(a) : f.length ? window.AMapUI.loadUI(f, function () { for (var a = 0, b = f.length; a < b; a++) { var c = f[a].split("/").slice(-1)[0]; window.AMapUI[c] = arguments[a] } h() }) : h() })
        })
    } function r(a) {
        return new Promise(function (h, c) {
            if (g.Loca === b.failed) c("\u524d\u6b21\u8bf7\u6c42 Loca \u5931\u8d25"); else if (g.Loca === b.notload) {
                g.Loca = b.loading; d.Loca.version = a.version || d.Loca.version; var f = d.Loca.version, e = d.AMap.version.startsWith("2"), l = f.startsWith("2"); if (e && !l || !e && l) c("JSAPI \u4e0e Loca \u7248\u672c\u4e0d\u5bf9\u5e94\uff01\uff01");
                else { e = d.key; l = document.body || document.head; var k = document.createElement("script"); k.type = "text/javascript"; k.src = "https://webapi.amap.com/loca?v=" + f + "&key=" + e; k.onerror = function (a) { g.Loca = b.failed; c("\u8bf7\u6c42 AMapUI \u5931\u8d25") }; k.onload = function () { g.Loca = b.loaded; for (h(); n.Loca.length;)n.Loca.splice(0, 1)[0]() }; l.appendChild(k) }
            } else g.Loca === b.loaded ? a.version && a.version !== d.Loca.version ? c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528") : h() : a.version && a.version !== d.Loca.version ?
                c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528") : n.Loca.push(function (a) { a ? c(a) : c() })
        })
    } if (!window) throw Error("AMap JSAPI can only be used in Browser."); var b; (function (a) { a.notload = "notload"; a.loading = "loading"; a.loaded = "loaded"; a.failed = "failed" })(b || (b = {})); var d = { key: "", AMap: { version: "1.4.15", plugins: [] }, AMapUI: { version: "1.1", plugins: [] }, Loca: { version: "1.3.2" } }, g = { AMap: b.notload, AMapUI: b.notload, Loca: b.notload }, n = { AMap: [], AMapUI: [], Loca: [] }, q = [], t = function (a) {
        "function" == typeof a &&
        (g.AMap === b.loaded ? a(window.AMap) : q.push(a))
    }; return {
        load: function (a) {
            return new Promise(function (h, c) {
                if (g.AMap == b.failed) c(""); else if (g.AMap == b.notload) {
                    var f = a.key, e = a.version, l = a.plugins; f ? (window.AMap && "lbs.amap.com" !== location.host && c("\u7981\u6b62\u591a\u79cdAPI\u52a0\u8f7d\u65b9\u5f0f\u6df7\u7528"), d.key = f, d.AMap.version = e || d.AMap.version, d.AMap.plugins = l || d.AMap.plugins, g.AMap = b.loading, e = document.body || document.head, window.___onAPILoaded = function (d) {
                        delete window.___onAPILoaded; if (d) g.AMap =
                            b.failed, c(d); else for (g.AMap = b.loaded, m(a).then(function () { h(window.AMap) })["catch"](c); q.length;)q.splice(0, 1)[0]()
                    }, l = document.createElement("script"), l.type = "text/javascript", l.src = "https://webapi.amap.com/maps?callback=___onAPILoaded&v=" + d.AMap.version + "&key=" + f + "&plugin=" + d.AMap.plugins.join(","), l.onerror = function (a) { g.AMap = b.failed; c(a) }, e.appendChild(l)) : c("\u8bf7\u586b\u5199key")
                } else if (g.AMap == b.loaded) if (a.key && a.key !== d.key) c("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key"); else if (a.version &&
                    a.version !== d.AMap.version) c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528"); else { f = []; if (a.plugins) for (e = 0; e < a.plugins.length; e += 1)-1 == d.AMap.plugins.indexOf(a.plugins[e]) && f.push(a.plugins[e]); if (f.length) window.AMap.plugin(f, function () { m(a).then(function () { h(window.AMap) })["catch"](c) }); else m(a).then(function () { h(window.AMap) })["catch"](c) } else if (a.key && a.key !== d.key) c("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key"); else if (a.version && a.version !== d.AMap.version) c("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528");
                    else { var k = []; if (a.plugins) for (e = 0; e < a.plugins.length; e += 1)-1 == d.AMap.plugins.indexOf(a.plugins[e]) && k.push(a.plugins[e]); t(function () { if (k.length) window.AMap.plugin(k, function () { m(a).then(function () { h(window.AMap) })["catch"](c) }); else m(a).then(function () { h(window.AMap) })["catch"](c) }) }
            })
        }, reset: function () {
            delete window.AMap; delete window.AMapUI; delete window.Loca; d = { key: "", AMap: { version: "1.4.15", plugins: [] }, AMapUI: { version: "1.1", plugins: [] }, Loca: { version: "1.3.2" } }; g = {
                AMap: b.notload, AMapUI: b.notload,
                Loca: b.notload
            }; n = { AMap: [], AMapUI: [], Loca: [] }
        }
    }
})