master
2022-03-25 c0f7b99859c8b958a3d1210a046b57dd1b89e411
1
{"version":3,"sources":["webpack://mars3dWidget/webpack/universalModuleDefinition","webpack://mars3dWidget/webpack/bootstrap","webpack://mars3dWidget/external \"mars3d\"","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/typeof.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/defineProperty.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/getPrototypeOf.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/classCallCheck.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/createClass.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/inherits.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/possibleConstructorReturn.js","webpack://mars3dWidget/./src/theme/widget.scss?dac4","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/setPrototypeOf.js","webpack://mars3dWidget/./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/assertThisInitialized.js","webpack://mars3dWidget/./src/widget/loader.js","webpack://mars3dWidget/./src/widget/WidgetEventType.js","webpack://mars3dWidget/./src/widget/widgetManager.js","webpack://mars3dWidget/./src/widget/BaseWidget.js","webpack://mars3dWidget/./src/index.js"],"names":["cssExpr","RegExp","nHead","document","head","getElementsByTagName","isOldWebKit","navigator","userAgent","replace","isReady","node","readyState","loadCss","url","setting","callback","createElement","rel","addOnload","async","href","appendChild","loadJs","charset","sync","src","pollCss","isLoaded","sheet","setTimeout","type","supportOnload","isCSS","onload","onerror","e","console","error","onreadystatechange","loadItem","list","onFinishLoading","test","urlIndex","indexOf","splice","length","doInit","cb","Array","prototype","slice","call","i","len","ready","timeLeft","isExecute","window","addEventListener","Loader","WidgetEventType","beforeCreate","created","beforeActivate","activated","openView","beforeDisable","disabled","loadBefore","load","jQuery","thismap","basePath","widgetsdata","defoptions","cacheVersion","isdebuger","removeKeys","init","map","widgetcfg","_basePath","mars3d","merge","windowOptions","position","maxmin","resize","autoDisable","disableOther","defaultOptions","version","Date","getTime","arrtemp","openAtStart","item","hasOwnProperty","uri","visible","_nodebug","bindDefOptions","_firstConfigBak","push","inhtml","append","click","removeDebugeBar","disableAll","widgets","name","j","children","childItem","each","attr","isActivate","disable","activate","createAtStart","_arrLoadWidget","_class","indexResize","hash","getLocationParam","loadWidgetJs","getDefWindowOptions","clone","param","location","toString","split","aa","path","getFilePath","label","noDisableOther","thisItem","othitem","id","isloading","log","disableOhter","group","disableGroup","update","_reStart","activateBase","timetemp","clearInterval","disableBase","setInterval","getWidget","getClass","nodisable","eachWidget","method","_uri","NProgress","start","fire","sourceTarget","done","shift","bindClass","_jspath","getThisJSPath","endsWith","jsPath","js","scripts","file","pos","lastIndexOf","substring","remove","getCacheVersion","getBasePath","destroy","eventTarget","on","types","fn","context","off","data","propagate","once","listens","layer","BaseClass","_resources_cache","BaseWidget","options","config","isCreate","_viewcreate_allcount","_viewcreate_okcount","_viewConfig","view","that","eachView","viewopt","_dom","css","resources","_resource","_getUrl","concat","result","create","_createWidgetView","undefined","_startActivate","isArray","createItemView","index","hascal","_openWindow","_openDivWindow","getHtml","html","_appendView","open","winCreateOK","dom","view_url","opts","content","success","layero","close","_layerIdx","_layerOpening","viewWindow","find","hide","setTop","initWidgetView","style","body","addClass","logError","_getWinOpt","show","addCacheVersion","startsWith","def","_size","_getWinSize","title","noTitle","icon","defOpts","area","offset","shade","beforeEnd","end","full","winFull","min","winMin","restore","winRestore","_width","bfb2Number","width","documentElement","clientWidth","_height","height","clientHeight","_top","_left","top","bottom","_hasresize","_bottom","left","right","_right","minHeight","maxHeight","minWidth","maxWidth","_style","iframeAuto","appendTo","parent","opt","autoReset","resetConfig","str","allnum","Number","_backData","ajax","dataType","timeout","widget","EventType"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,gD;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6E;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,6E;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6E;;;;;;ACTA;AACA;AACA;AACA;AACA;;AAEA;AACA,6E;;;;;;ACPA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6E;;;;;;ACjBA,qBAAqB,mBAAO,CAAC,CAAqB;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,6E;;;;;;AClBA,cAAc,mBAAO,CAAC,CAA+B;;AAErD,4BAA4B,mBAAO,CAAC,EAA4B;;AAEhE;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;A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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,IAAMC,qBAAb;AAAA;;AAAA;;AACE,sBAAYjH,GAAZ,EAAiBkH,OAAjB,EAA0B;AAAA;;AAAA;;AACxB,8BAAMA,OAAN;AAEA;AACJ;AACA;AACA;AACA;;AACI,UAAKlH,GAAL,GAAWA,GAAX;AAEA;AACJ;AACA;AACA;AACA;;AACI,UAAKkH,OAAL,GAAeA,OAAf,CAfwB,CAeA;;AAExB;AACJ;AACA;AACA;AACA;;AACI,UAAKC,MAAL,GAAcD,OAAd;AAEA;AACJ;AACA;AACA;AACA;;AACI,UAAK5D,IAAL,GAAY4D,OAAO,CAAC5D,IAAR,IAAgB,EAA5B,CA7BwB,CA6BQ;;AAEhC;AACJ;AACA;AACA;AACA;;AACI,UAAKjB,UAAL,GAAkB,KAAlB;AAEA;AACJ;AACA;AACA;AACA;;AACI,UAAK+E,QAAL,GAAgB,KAAhB;AAEA,UAAKC,oBAAL,GAA4B,CAA5B;AACA,UAAKC,mBAAL,GAA2B,CAA3B;AACA,UAAKC,WAAL,GAAmB,MAAKC,IAAxB;;AAEA,UAAKzH,IAAL;;AAjDwB;AAkDzB;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AA5DA;AAAA;AAAA,SA6DE,eAAgB;AACd,aAAO,IAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA3EA;AAAA;AAAA,SA4EE,eAAW;AACT,aAAO,IAAP;AACD,KA9EH,CAgFE;;AACA;AACF;AACA;AACA;;AApFA;AAAA;AAAA,WAqFE,wBAAe;AACb,UAAI0H,IAAI,GAAG,IAAX;;AAEA,UAAI,KAAKpF,UAAT,EAAqB;AACnB;AACA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","file":"mars3d-widget-src.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"mars3d\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mars3dWidget\", [\"mars3d\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mars3dWidget\"] = factory(require(\"mars3d\"));\n\telse\n\t\troot[\"mars3dWidget\"] = factory(root[\"mars3d\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n\n    module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n\n    module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// extracted by mini-css-extract-plugin","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","// cssExpr 用于判断资源是否是css\nlet cssExpr = new RegExp(\"\\\\.css\");\nlet nHead = document.head || document.getElementsByTagName(\"head\")[0];\n// `onload` 在WebKit < 535.23, Firefox < 9.0 不被支持\nlet isOldWebKit = +navigator.userAgent.replace(/.*(?:AppleWebKit|AndroidWebKit)\\/?(\\d+).*/i, \"$1\") < 536;\n\n// 判断对应的node节点是否已经载入完成\nfunction isReady(node) {\n  return node.readyState === \"complete\" || node.readyState === \"loaded\";\n}\n\n// loadCss 用于载入css资源\nfunction loadCss(url, setting, callback) {\n  let node = document.createElement(\"link\");\n\n  node.rel = \"stylesheet\";\n  addOnload(node, callback, \"css\");\n  node.async = true;\n  node.href = url;\n\n  nHead.appendChild(node);\n}\n\n// loadJs 用于载入js资源\nfunction loadJs(url, setting, callback) {\n  let node = document.createElement(\"script\");\n\n  node.charset = \"utf-8\";\n  addOnload(node, callback, \"js\");\n  node.async = !setting.sync;\n  node.src = url;\n\n  nHead.appendChild(node);\n}\n\n// 在老的webkit中,因不支持load事件,这里用轮询sheet来保证\nfunction pollCss(node, callback) {\n  let isLoaded;\n\n  if (node.sheet) {\n    isLoaded = true;\n  }\n\n  setTimeout(function () {\n    if (isLoaded) {\n      // 在这里callback 是为了让样式有足够的时间渲染\n      callback();\n    } else {\n      pollCss(node, callback);\n    }\n  }, 20);\n}\n\n// 用于给指定的节点绑定onload回调\n// 监听元素载入完成事件\nfunction addOnload(node, callback, type) {\n  let supportOnload = \"onload\" in node;\n  let isCSS = type === \"css\";\n\n  // 对老的webkit和老的firefox的兼容\n  if (isCSS && (isOldWebKit || !supportOnload)) {\n    setTimeout(function () {\n      pollCss(node, callback);\n    }, 1);\n    return;\n  }\n\n  if (supportOnload) {\n    node.onload = onload;\n    node.onerror = function (e) {\n      node.onerror = null;\n      //window._cdnFallback(node);\n      // eslint-disable-next-line no-console\n      if (type == \"css\") {\n        console.error(\"该css文件不存在:\" + node.href, e);\n      }\n      // eslint-disable-next-line no-console\n      else {\n        console.error(\"该js文件不存在:\" + node.src, e);\n      }\n      onload();\n    };\n  } else {\n    node.onreadystatechange = function () {\n      if (isReady(node)) {\n        onload();\n      }\n    };\n  }\n\n  function onload() {\n    // 执行一次后清除,防止重复执行\n    node.onload = node.onreadystatechange = null;\n\n    node = null;\n\n    callback();\n  }\n}\n\n// 资源下载入口,根绝文件类型的不同,调用loadCss或者loadJs\nfunction loadItem(url, list, setting, callback) {\n  // 如果加载的url为空,就直接成功返回\n  if (!url) {\n    setTimeout(function () {\n      onFinishLoading();\n    });\n    return;\n  }\n\n  if (cssExpr.test(url)) {\n    loadCss(url, setting, onFinishLoading);\n  } else {\n    loadJs(url, setting, onFinishLoading);\n  }\n\n  // 每次资源下载完成后,检验是否结束整个list下载过程\n  // 若已经完成所有下载,执行回调函数\n  function onFinishLoading() {\n    let urlIndex = list.indexOf(url);\n    if (urlIndex > -1) {\n      list.splice(urlIndex, 1);\n    }\n\n    if (list.length === 0) {\n      callback();\n    }\n  }\n}\n\nfunction doInit(list, setting, callback) {\n  let cb = function () {\n    callback && callback();\n  };\n\n  list = Array.prototype.slice.call(list || []);\n\n  if (list.length === 0) {\n    cb();\n    return;\n  }\n\n  for (let i = 0, len = list.length; i < len; i++) {\n    loadItem(list[i], list, setting, cb);\n  }\n}\n\n// 判断当前页面是否加载完\n// 加载完,立刻执行下载\n// 未加载完,等待页面load事件以后再进行下载\nfunction ready(node, callback) {\n  if (isReady(node)) {\n    callback();\n  } else {\n    // 1500ms 以后,直接开始下载资源文件,不再等待load事件\n    let timeLeft = 1500;\n    let isExecute = false;\n    window.addEventListener(\"load\", function () {\n      if (!isExecute) {\n        callback();\n        isExecute = true;\n      }\n    });\n\n    setTimeout(function () {\n      if (!isExecute) {\n        callback();\n        isExecute = true;\n      }\n    }, timeLeft);\n  }\n}\n\n// 暴露出去的Loader\n// 提供async, sync两个函数\n// async 用作异步下载执行用,不阻塞页面渲染\n// sync  用作异步下载,顺序执行,保证下载的js按照数组顺序执行\nlet Loader = {\n  async: function (list, callback) {\n    ready(document, function () {\n      doInit(list, {}, callback);\n    });\n  },\n\n  sync: function (list, callback) {\n    ready(document, function () {\n      doInit(\n        list,\n        {\n          sync: true,\n        },\n        callback\n      );\n    });\n  },\n};\n\n//window.Loader = Loader;\n\nexport { Loader };\n","/**\n * widget事件类型枚举, mars3d.widget.EventType\n * 【需要引入  mars3d-widget 插件库】\n *  @enum {String}\n */\nconst WidgetEventType = {\n  /**\n   * 在实例初始化之后、创建之前执行\n   */\n  beforeCreate: \"beforeCreate\",\n  /**\n   * 实例创建后执行\n   */\n  created: \"created\",\n  /**\n   * 在activat挂载开始之前调用\n   */\n  beforeActivate: \"beforeActivate\",\n  /**\n   * activate方法调用后\n   */\n  activated: \"activated\",\n  /**\n   *view弹窗构造完成后后调用\n   */\n  openView: \"openView\",\n  /**\n   * 实例销毁之前调用\n   */\n  beforeDisable: \"beforeDisable\",\n  /**\n   *实例销毁完成调用\n   */\n  disabled: \"disabled\",\n\n  /**\n   *加载完成 未做任何其他处理前\n   */\n  loadBefore: \"loadBefore\",\n  /**\n   *加载完成,执行所有内部处理后\n   */\n  load: \"load\",\n};\n\nexport { WidgetEventType };\n","/**\n * widget模块化框架,公共处理类\n * 【需要引入  mars3d-widget 插件库】\n * @module widget\n */\nimport * as mars3d from \"mars3d\";\nimport { Loader } from \"./loader\";\nimport { WidgetEventType } from \"./WidgetEventType\";\n\nlet jQuery = window.jQuery;\n\n//内部参数\nlet thismap;\nlet basePath = \"\";\nlet widgetsdata = [];\nlet defoptions;\nlet cacheVersion;\nlet isdebuger;\nlet removeKeys = [\"_class\"];\n\n/**\n * 初始化widget管理器,在构造完成map后调用一次即可。\n *\n * @param {Map} map 地图对象\n * @param {Object} [widgetcfg={}] 全局配置(一般存放在widget.json),包括:\n * @param {BaseWidget.widgetOptions} [widgetcfg.defaultOptions] 所有widget的默认参数值,可以系统内所有widget相同配置统一在此处传入,额外的个性化的再配置到各widget中。\n * @param {BaseWidget.widgetOptions[]} [widgetcfg.openAtStart] 默认自启动并不可释放的插件,其中autoDisable和openAtStart固定,设置无效。\n * @param {BaseWidget.widgetOptions[]} [widgetcfg.widgets] 所有插件配置,传入后后续激活时,只用传入uri即可。\n * @param {String} [widgetcfg.version] 加载资源时,附加的参数,主要为了清理浏览器缓存,可选值:\"time\"(实时时间戳)或固定的字符串值,每次发布新版本换下固定值。\n * @param {Boolean} [widgetcfg.debugger] 是否显示插件测试栏,true时会在地图下侧显示所有插件测试按钮,方便测试。\n *\n * @param {String} [_basePath=''] widgets目录所在的主路径(统一前缀), 如果widgets目录不在主页面一起或存在路由时,可以传入自定义主目录,值为 widgets目录相对于当前html页面的相对路径。\n * @return {void}  无\n * @example\nlet widgetCfg ={\n  \"version\": \"20210803\",\n  \"defaultOptions\": {\n    \"style\": \"dark\",\n    \"windowOptions\": {\n      \"skin\": \"layer-mars-dialog animation-scale-up\",\n      \"position\": {\n        \"top\": 50,\n        \"right\": 10\n      },\n      \"maxmin\": false,\n      \"resize\": true\n    },\n    \"autoReset\": false,\n    \"autoDisable\": true,\n    \"disableOther\": true\n  },\n  \"openAtStart\": [\n    {\n      \"name\": \"放大缩小按钮\",\n      \"uri\": \"widgets/toolButton/zoom.js\"\n    }\n  ],\n  \"widgets\": [\n    {\n      \"name\": \"模板-div弹窗\",\n      \"uri\": \"widgets/_example_divwin/widget.js\"\n    },\n    {\n      \"name\": \"模板-append模板\",\n      \"uri\": \"widgets/_example_append/widget.js\"\n    }\n  ]\n}\nmars3d.widget.init(map, widgetCfg, './')\n */\nexport function init(map, widgetcfg = {}, _basePath = \"\") {\n  thismap = map;\n\n  widgetsdata = [];\n  defoptions = mars3d.Util.merge(\n    {\n      windowOptions: { position: \"rt\", maxmin: false, resize: true },\n      autoDisable: true,\n      disableOther: true,\n    },\n    widgetcfg.defaultOptions\n  );\n\n  cacheVersion = widgetcfg.version;\n  if (cacheVersion == \"time\") {\n    cacheVersion = new Date().getTime();\n  }\n\n  //将自启动的加入\n  let arrtemp = widgetcfg.openAtStart;\n  if (arrtemp && arrtemp.length > 0) {\n    for (let i = 0; i < arrtemp.length; i++) {\n      let item = arrtemp[i];\n      if (!item.hasOwnProperty(\"uri\") || item.uri == \"\") {\n        // eslint-disable-next-line no-console\n        console.error(\"widget未配置uri\", item);\n        continue;\n      }\n      if (item.hasOwnProperty(\"visible\") && !item.visible) {\n        continue;\n      }\n\n      item.autoDisable = false;\n      item.openAtStart = true;\n      item._nodebug = true;\n\n      bindDefOptions(item);\n\n      item._firstConfigBak = { ...item };\n      widgetsdata.push(item);\n    }\n  }\n\n  //显示测试栏\n  //为了方便测试,所有widget会在页面下侧生成一排按钮,每个按钮对应一个widget,单击后激活对应widget\n  isdebuger = widgetcfg[\"debugger\"];\n  if (isdebuger) {\n    let inhtml =\n      '<div id=\"widget-testbar\" class=\"mars3d-widgetbar animation-slide-bottom no-print-view\" > ' +\n      '     <div style=\"height: 30px; line-height:30px;\"><b style=\"color: #4db3ff;\">widget测试栏</b>&nbsp;&nbsp;<button  id=\"widget-testbar-remove\"  type=\"button\" class=\"btn btn-link btn-xs\">关闭</button> </div>' +\n      '     <button id=\"widget-testbar-disableAll\" type=\"button\" class=\"btn btn-info\" ><i class=\"fa fa-globe\"></i>漫游</button>' +\n      \"</div>\";\n    jQuery(\"body\").append(inhtml);\n\n    jQuery(\"#widget-testbar-remove\").click(function (e) {\n      removeDebugeBar();\n    });\n    jQuery(\"#widget-testbar-disableAll\").click(function (e) {\n      disableAll();\n    });\n  }\n\n  //将配置的加入\n  arrtemp = widgetcfg.widgets;\n  if (arrtemp && arrtemp.length > 0) {\n    for (let i = 0; i < arrtemp.length; i++) {\n      let item = arrtemp[i];\n      if (item.type == \"group\") {\n        let inhtml =\n          ' <div class=\"btn-group dropup\">  <button type=\"button\" class=\"btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa fa-align-justify\"></i>' +\n          item.name +\n          ' <span class=\"caret\"></span></button> <ul class=\"dropdown-menu\">';\n        for (let j = 0; j < item.children.length; j++) {\n          let childItem = item.children[j];\n          if (!childItem.hasOwnProperty(\"uri\") || childItem.uri == \"\") {\n            // eslint-disable-next-line no-console\n            console.error(\"widget未配置uri\", childItem);\n            continue;\n          }\n\n          inhtml +=\n            ' <li data-widget=\"' + childItem.uri + '\" class=\"widget-btn\" ><a href=\"#\"><i class=\"fa fa-star\"></i>' + childItem.name + \"</a></li>\";\n\n          bindDefOptions(childItem);\n          childItem._firstConfigBak = { ...childItem };\n          widgetsdata.push(childItem); //将配置的加入\n        }\n        inhtml += \"</ul></div>\";\n\n        if (isdebuger && !item._nodebug) {\n          jQuery(\"#widget-testbar\").append(inhtml);\n        }\n      } else {\n        if (!item.hasOwnProperty(\"uri\") || item.uri == \"\") {\n          // eslint-disable-next-line no-console\n          console.error(\"widget未配置uri\", item);\n          continue;\n        }\n\n        //显示测试栏\n        if (isdebuger && !item._nodebug) {\n          let inhtml =\n            '<button type=\"button\" class=\"btn btn-primary widget-btn\" data-widget=\"' +\n            item.uri +\n            '\"  > <i class=\"fa fa-globe\"></i>' +\n            item.name +\n            \" </button>\";\n          jQuery(\"#widget-testbar\").append(inhtml);\n        }\n\n        bindDefOptions(item);\n        item._firstConfigBak = { ...item };\n        widgetsdata.push(item); //将配置的加入\n      }\n    }\n\n    if (isdebuger) {\n      jQuery(\"#widget-testbar .widget-btn\").each(function () {\n        jQuery(this).click(function (e) {\n          let uri = jQuery(this).attr(\"data-widget\");\n          if (uri == null || uri == \"\") {\n            return;\n          }\n\n          if (isActivate(uri)) {\n            disable(uri);\n          } else {\n            activate(uri);\n          }\n        });\n      });\n    }\n  }\n\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n\n    if (item.openAtStart || item.createAtStart) {\n      _arrLoadWidget.push(item);\n    }\n  }\n\n  jQuery(window).resize(function () {\n    for (let i = 0; i < widgetsdata.length; i++) {\n      let item = widgetsdata[i];\n      if (item._class) {\n        item._class.indexResize(); //BaseWidget: indexResize\n      }\n    }\n  });\n\n  if (isdebuger) {\n    let hash = getLocationParam();\n    if (hash) {\n      activate(hash);\n    }\n  }\n\n  loadWidgetJs();\n}\n\n/**\n * 获取默认init时中传入配置的 windowOptions 参数\n * @return {Object} windowOptions参数默认值\n * @see BaseWidget.widgetOptions\n */\nexport function getDefWindowOptions() {\n  return mars3d.Util.clone(defoptions.windowOptions, removeKeys);\n}\n\nfunction getLocationParam() {\n  let param = window.location.toString();\n  if (param.indexOf(\"#\") === -1) {\n    return \"\";\n  }\n  param = param.split(\"#\");\n  if (param && param.length > 0) {\n    return param[1];\n  }\n}\n\nfunction bindDefOptions(item) {\n  //赋默认值至options(跳过已存在设置值)\n  if (defoptions) {\n    for (let aa in defoptions) {\n      if (aa == \"windowOptions\") {\n        //for (var jj in defoptions['windowOptions']) {\n        //    if (!item['windowOptions'].hasOwnProperty(jj)) {\n        //        item['windowOptions'][jj] = defoptions['windowOptions'][jj];\n        //    }\n        //}\n      } else if (!item.hasOwnProperty(aa)) {\n        item[aa] = defoptions[aa];\n      }\n    }\n  }\n\n  //赋值内部使用属性\n  item.path = getFilePath(basePath + item.uri);\n  item.name = item.name || item.label; //兼容name和label命名\n}\n\n/**\n * 激活指定 widget模块\n *\n * @param {String|BaseWidget.widgetOptions} item 指widget模块的uri 或 指模块的配置参数,当有配置参数时,参数优先级是:\n * 【activate方法传入的配置 > init方法传入的配置(widget.json) > widget.js内部配置的】\n * @param {Map} [item.map] 当单页面简单场景没有init时,也可以传入map来使用单个widget\n * @param {Boolean} [noDisableOther=false]  不释放其他已激活的widget\n * @return {BaseWidget.widgetOptions}  指widget模块对象\n * @example\n//常用方式,直接使用uri\nmars3d.widget.activate(\"widgets/bookmark/widget.js\");\n\n//使用对象,可以传入更多参数,具体参数参看配置项手册,。\nmars3d.widget.activate({\n  name:\"视角书签\"\n  uri: \"widgets/bookmark/widget.js\",\n  autoDisable: true,\n  testdata:'测试数据1987', //传数据进widget内部,widget内部使用this.config.testdata获取到传的数据\n});\n */\nexport function activate(item, noDisableOther) {\n  if (thismap == null && item.map) {\n    init(item.map, {}, item.basePath);\n  }\n\n  //参数是字符串id或uri时\n  if (typeof item === \"string\") {\n    item = { uri: item };\n\n    if (noDisableOther != null) {\n      //是否释放其他已激活的widget\n      item.disableOther = !noDisableOther;\n    }\n  } else {\n    if (item.uri == null) {\n      // eslint-disable-next-line no-console\n      console.error(\"activate激活widget时需要uri参数!\", item);\n    }\n  }\n\n  let thisItem;\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let othitem = widgetsdata[i];\n    if (item.uri == othitem.uri || (othitem.id && item.uri == othitem.id)) {\n      thisItem = othitem;\n      if (thisItem.isloading) {\n        return thisItem;\n      } //激活了正在loading的widget 防止快速双击了菜单\n\n      //赋值\n      for (let aa in item) {\n        if (aa == \"uri\") {\n          continue;\n        }\n        thisItem[aa] = item[aa];\n      }\n      break;\n    }\n  }\n\n  if (thisItem == null) {\n    bindDefOptions(item);\n    thisItem = item;\n    //非config中配置的,外部传入,首次激活\n    if (!item._firstConfigBak) {\n      item._firstConfigBak = { ...item };\n    }\n    widgetsdata.push(item);\n  }\n\n  if (isdebuger) {\n    // eslint-disable-next-line no-console\n    console.log(\"开始激活widget:\" + thisItem.uri);\n    window.location.hash = \"#\" + thisItem.uri;\n  }\n\n  //兼容之前历史版本的错误命名时的属性名称\n  if (thisItem.hasOwnProperty(\"disableOhter\") && !thisItem.hasOwnProperty(\"disableOther\")) {\n    thisItem.disableOther = thisItem.disableOhter;\n  }\n\n  //释放其他已激活的widget\n  if (thisItem.disableOther) {\n    disableAll(thisItem.uri, thisItem.group);\n  } else {\n    disableGroup(thisItem.group, thisItem.uri);\n  }\n\n  //激活本widget\n  if (thisItem._class) {\n    if (thisItem._class.isActivate) {\n      //已激活时\n      if (thisItem._class.update) {\n        //刷新\n        thisItem._class.update();\n      } else {\n        //重启\n        _reStart(thisItem);\n      }\n    } else {\n      thisItem._class.activateBase(); // BaseWidget: activateBase\n    }\n  } else {\n    for (let i = 0; i < _arrLoadWidget.length; i++) {\n      if (_arrLoadWidget[i].uri == thisItem.uri) {\n        //如果已在加载列表中的直接跳出\n        return _arrLoadWidget[i];\n      }\n    }\n    _arrLoadWidget.push(thisItem);\n\n    if (_arrLoadWidget.length == 1) {\n      loadWidgetJs();\n    }\n  }\n  return thisItem;\n}\n\nlet timetemp;\n//重启\nfunction _reStart(thisItem) {\n  clearInterval(timetemp);\n\n  thisItem._class.disableBase();\n  timetemp = setInterval(function () {\n    if (thisItem._class.isActivate) {\n      return;\n    }\n    thisItem._class.activateBase();\n    clearInterval(timetemp);\n  }, 200);\n}\n\n/**\n * 获取指定的widget配置信息\n *\n * @param {String} uri widget的uri 或 id\n * @return {BaseWidget.widgetOptions} widget配置信息\n */\nexport function getWidget(uri) {\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n\n    if (uri == item.uri || uri == item.id) {\n      return item;\n    }\n  }\n}\n\n/**\n * 获取指定的widget 对应的实例化对象\n *\n * @param {String} uri widget的uri 或 id\n * @return {BaseWidget} widget对应的实例化对象\n */\nexport function getClass(uri) {\n  let item = getWidget(uri);\n  if (item) {\n    return item._class;\n  } else {\n    return null;\n  }\n}\n\n/**\n * 获取widget的当前激活状态\n *\n * @param {String} uri widget的uri 或 id\n * @return {Boolean} 是否激活\n */\nexport function isActivate(uri) {\n  let _class = getClass(uri);\n  if (_class == null) {\n    return false;\n  }\n  return _class.isActivate;\n}\n\n/**\n * 释放指定的widget\n *\n * @param {String} uri widget的uri 或 id\n * @return {Boolean} 是否成功调用了释放\n */\nexport function disable(uri) {\n  if (uri == null) {\n    return false;\n  }\n\n  if (typeof id === \"object\") {\n    uri = uri.uri;\n  }\n\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n\n    if (item._class && (uri == item.uri || uri == item.id)) {\n      item._class.disableBase();\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * 关闭释放所有widget\n *\n * @export\n * @param {String|Boolean} [nodisable]  指定不释放的widget的uri或id 或 传true值强制释放所有widget(默认autoDisable为false的widet不会释放)\n * @param {String} [group] 指定强制释放的group名(默认autoDisable为false的widet不会释放),传入group值后会强制释放所有同group组的widget\n * @return {void}  无\n */\nexport function disableAll(nodisable, group) {\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n\n    if (group && item.group == group) {\n      //同组别的全部释放\n    } else {\n      if (nodisable !== true && !item.autoDisable) {\n        continue;\n      }\n    }\n\n    //指定不释放的跳过\n    if (nodisable && (nodisable == item.uri || nodisable == item.id)) {\n      continue;\n    }\n\n    if (item._class) {\n      item._class.disableBase(); //BaseWidget: disableBase\n    }\n  }\n}\n\n/**\n * 关闭释放同组widget\n *\n * @param {String} group 指定强制释放的group名\n * @param {String} [nodisable]  指定不释放的widget的uri或id\n * @return {void}  无\n */\nexport function disableGroup(group, nodisable) {\n  if (group == null) {\n    return;\n  }\n\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n    if (item.group == group) {\n      //指定不释放的跳过\n      if (nodisable && (nodisable == item.uri || nodisable == item.id)) {\n        continue;\n      }\n      if (item._class) {\n        item._class.disableBase(); ////BaseWidget: disableBase\n      }\n    }\n  }\n}\n\n/**\n * 遍历所有widget\n * @param {Function} method 回调方法\n * @return {void}  无\n */\nexport function eachWidget(method) {\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n    method(item);\n  }\n}\n\nlet _arrLoadWidget = [];\nlet loadItem;\nlet isloading;\nfunction loadWidgetJs() {\n  if (_arrLoadWidget.length == 0) {\n    return;\n  }\n\n  if (isloading) {\n    setTimeout(loadWidgetJs, 500);\n    return;\n  }\n  isloading = true;\n\n  loadItem = _arrLoadWidget[0];\n  loadItem.isloading = true;\n  let _uri = loadItem.uri;\n  if (cacheVersion) {\n    if (_uri.indexOf(\"?\") == -1) {\n      _uri += \"?cache=\" + cacheVersion;\n    } else {\n      _uri += \"&cache=\" + cacheVersion;\n    }\n  }\n\n  if (window.NProgress) {\n    window.NProgress.start();\n  }\n\n  fire(WidgetEventType.loadBefore, {\n    sourceTarget: loadItem,\n  });\n\n  Loader.async([basePath + _uri], function () {\n    isloading = false;\n    loadItem.isloading = false;\n\n    if (window.NProgress) {\n      window.NProgress.done(true);\n    }\n\n    _arrLoadWidget.shift();\n    loadWidgetJs();\n  });\n}\n\n/**\n * 绑定类到当前对应js的widget中。\n *\n * @param {BaseWidget} _class 定义的BaseWidget子类\n * @return {Object} 实例化后的对象\n */\nexport function bindClass(_class) {\n  fire(WidgetEventType.load, {\n    sourceTarget: _class,\n  });\n\n  if (loadItem == null) {\n    let _jspath = getThisJSPath();\n    for (let i = 0; i < widgetsdata.length; i++) {\n      let item = widgetsdata[i];\n      if (_jspath.endsWith(item.uri)) {\n        item.isloading = false;\n        item._class = new _class(thismap, item);\n        item._class.activateBase(); // BaseWidget: activateBase\n        return item._class;\n      }\n    }\n  } else {\n    loadItem.isloading = false;\n    loadItem._class = new _class(thismap, loadItem);\n    loadItem._class.activateBase(); // BaseWidget: activateBase\n    return loadItem._class;\n  }\n}\n\nfunction getThisJSPath() {\n  let jsPath;\n  let js = document.scripts;\n  for (let i = js.length - 1; i >= 0; i--) {\n    jsPath = js[i].src;\n    if (jsPath == null || jsPath == \"\") {\n      continue;\n    }\n    if (jsPath.indexOf(\"widgets\") == -1) {\n      continue;\n    }\n    //jsPath = jsPath.substring(0, jsPath.lastIndexOf(\"/\") + 1);\n    return jsPath;\n  }\n  return \"\";\n}\n\n//获取路径\nfunction getFilePath(file) {\n  let pos = file.lastIndexOf(\"/\");\n  return file.substring(0, pos + 1);\n}\n\n/**\n * 移除Widget测试栏(当有开启debugger时)\n * @return {void}  无\n */\nexport function removeDebugeBar() {\n  jQuery(\"#widget-testbar\").remove();\n}\n\n/**\n * 获取配置的version配置参数,用于附加清除浏览器缓存\n * @return {String} 配置的version参数\n */\nexport function getCacheVersion() {\n  return cacheVersion;\n}\n\n/**\n * 获取init方法传入的主目录配置参数\n * @return {String} 主目录配置参数\n */\nexport function getBasePath() {\n  return basePath;\n}\n\n/**\n * 销毁对象\n * @return {void}  无\n */\nexport function destroy() {\n  for (let i = 0; i < widgetsdata.length; i++) {\n    let item = widgetsdata[i];\n\n    if (item._class) {\n      item._class.disableBase(); //BaseWidget: disableBase\n\n      if (item._class.destroy) {\n        item._class.destroy();\n      }\n      delete item._class;\n    }\n  }\n\n  thismap = null;\n}\n\n//事件相关\nexport let eventTarget = new mars3d.BaseClass();\n\n/**\n * 绑定指定类型事件监听器\n *\n * @param {WidgetEventType|WidgetEventType[]} types 事件类型\n * @param {Function} fn 绑定的监听器回调方法\n * @param {Object} context  侦听器的上下文(this关键字将指向的对象)。\n * @return {void}  无\n */\nexport function on(types, fn, context) {\n  return eventTarget.on(types, fn, context);\n}\n\n/**\n * 解除绑定指定类型事件监听器\n *\n * @param {WidgetEventType|WidgetEventType[]} types 事件类型\n * @param {Function} fn 绑定的监听器回调方法\n * @param {Object} context  侦听器的上下文(this关键字将指向的对象)。\n * @return {void}  无\n */\nexport function off(types, fn, context) {\n  return eventTarget.off(types, fn, context);\n}\n\n/**\n * 触发指定类型的事件。\n *\n * @param {WidgetEventType} type 事件类型\n * @param {Object} data 传输的数据或对象,可在事件回调方法中event对象中获取进行使用\n * @param {BaseClass} [propagate=null] 将事件传播给父类 (用addEventParent设置)\n * @return {void}  无\n */\nexport function fire(type, data, propagate) {\n  return eventTarget.fire(type, data, propagate);\n}\n\n/**\n * 绑定一次性执行的指定类型事件监听器\n * 与on类似,监听器只会被触发一次,然后被删除。\n *\n * @param {WidgetEventType|WidgetEventType[]} types 事件类型\n * @param {Function} fn 绑定的监听器回调方法\n * @param {Object} context  侦听器的上下文(this关键字将指向的对象)。\n * @return {void}  无\n */\nexport function once(types, fn, context) {\n  return eventTarget.once(types, fn, context);\n}\n\n/**\n * 是否有绑定指定的事件\n *\n * @param {WidgetEventType} type 事件类型\n * @param {BaseClass} [propagate=null] 是否判断指定的父类 (用addEventParent设置的)\n * @return {Boolean} 是否存在\n */\nexport function listens(type, propagate) {\n  return eventTarget.listens(type, propagate);\n}\n","import * as mars3d from \"mars3d\";\nimport { Loader } from \"./loader\";\nimport { eventTarget, getCacheVersion, getDefWindowOptions } from \"./widgetManager\";\nimport { WidgetEventType } from \"./WidgetEventType\";\n\nlet jQuery = window.jQuery;\nlet layer = window.layer; //请引入layer弹窗插件\nlet BaseClass = mars3d.BaseClass;\n\nlet _resources_cache = [];\n\n/**\n * widget 配置参数\n *\n * @typedef {Object} BaseWidget.widgetOptions\n *\n * @property {String} name 必须,中文名称,用于标识和弹窗标题。\n * @property {String} uri 必须,JS文件路径,路径是相对于widgets目录的路径。如:\"widgets/bookmark/widget.js\"\n * @property {String} [id] 定义该插件的唯一标识,方便后续判断。\n * @property {Boolean} [autoDisable=true] 激活其他新插件时,是否自动释放本插件\n * @property {Boolean} [disableOther=true] 激活本插件时,是否释放其它已激活的插件\n * @property {String} [group] 配置group后,同group下的widget互斥,打开任意一个会自动释放其他的\n * @property {object} [windowOptions] 存在弹窗的插件的弹窗相关参数配置,更多参数请参考 [layer弹窗API]{@link https://www.layui.com/doc/modules/layer.html} 包括:\n * @property {Number|String} [windowOptions.width] 窗口宽度,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:200 或 \"20%\"\n * @property {Number|String} [windowOptions.height] 窗口高度,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:600 或 \"50%\"\n * @property {String|Object} [windowOptions.position='auto'] 窗口所在位置坐标,配置字符串可选值:auto垂直水平居中,t顶部,b底部,r右边缘,l左边缘,lt左上角,lb左下角,rt右上角,rb右下角;也可以配置对象:\n * @property {Number|String} [windowOptions.position.top] 位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:10 或 \"5%\"\n * @property {Number|String} [windowOptions.position.bottom] 位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕高度百分比),示例:10 或 \"5%\"\n * @property {Number|String} [windowOptions.position.left] 位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:10 或 \"5%\"\n * @property {Number|String} [windowOptions.position.right] 位置css的top值,可以是 像素数字(像素值) 或者 字符串(屏幕宽度百分比),示例:10 或 \"5%\"\n * @property {Number} [windowOptions.minHeight] 限定的窗口最小高度(像素值),默认不限制\n * @property {Number} [windowOptions.maxHeight] 限定的窗口最大高度(像素值),默认不限制\n * @property {Number} [windowOptions.minWidth] 限定的窗口最小宽度(像素值),默认不限制\n * @property {Number} [windowOptions.maxWidth] 限定的窗口最大宽度(像素值),默认不限制\n *\n * @property {Boolean} [windowOptions.maxmin=true] 是否可以在弹层右下角拖动来拉伸尺寸\n * @property {Number|Array} [windowOptions.shade=0] 遮罩,默认为0不显示,可配置数字0.3透明度的黑色背景('#000'),其他颜色,可以shade: [0.8, '#393D49']\n * @property {Boolean} [windowOptions.shadeClose=false] 当shade是存在的,点击弹层外区域后是否关闭弹窗。\n * @property {Number} [windowOptions.closeBtn=1] 当为0时,不显示关闭按钮,配置1和2来展示两种风格的关闭按钮\n * @property {Number} [windowOptions.noTitle=false] 是否不显示标题,为true是不显示标题\n *\n * @property {Boolean} [openAtStart=false] 打开系统后是否自动启动本插件\n * @property {String} [style] 添加到widget的view中的class样式名\n * @property {Object} [css] 添加到widget的css值\n * @property {Boolean} [show=true] 激活后是否显示弹窗,false时激活后自动隐藏弹窗。\n * @property {*} [其他] 传入数据等,定义的任意参数在widget内部方法中都可以通过this.config获取到\n */\n\n/**\n * widget基础类,\n * 需要继承后使用,不用手动实例化,框架内部自动实例化及相关处理。\n * 【需要引入  mars3d-widget 插件库】\n *\n * @param {Map} map 地图对象\n * @param {BaseWidget.widgetOptions} options 配置参数\n * @class BaseWidget\n * @extends {BaseClass}\n * @see [支持的事件类型]{@link WidgetEventType}\n\n * @example\n//使用示例\nclass MyWidget extends mars3d.widget.BaseWidget {\n  //外部资源配置\n  get resources() {\n    return [\n      'js/test.js', //当前同目录下\n      './lib/dom2img/dom-to-image.js', //主页面相同目录下\n    ]\n  }\n  //弹窗配置\n  get view() {\n    return {\n      type: 'window',\n      url: 'view.html',\n      windowOptions: {  width: 250 },\n    }\n  }\n  //初始化[仅执行1次]\n  create() {}\n  //每个窗口创建完成后调用\n  winCreateOK(opt, result) {\n    this.viewWindow = result\n  }\n  //打开激活\n  activate() {}\n  //关闭释放\n  disable() {\n    this.viewWindow = null\n  }\n}\n\n//注册到widget管理器中。\nmars3d.widget.bindClass(MyWidget)\n */\nexport class BaseWidget extends BaseClass {\n  constructor(map, options) {\n    super(options);\n\n    /**\n     *  获取当前地图\n     * @type {Map}\n     * @readonly\n     */\n    this.map = map;\n\n    /**\n     *  获取当前配置参数\n     * @type {BaseWidget.widgetOptions}\n     * @readonly\n     */\n    this.options = options; //配置的config信息\n\n    /**\n     *  获取当前配置参数,别名,同options\n     * @type {BaseWidget.widgetOptions}\n     * @readonly\n     */\n    this.config = options;\n\n    /**\n     *  获取当前widget的目录路径\n     * @type {String}\n     * @readonly\n     */\n    this.path = options.path || \"\"; //当前widget目录相对路径\n\n    /**\n     *  是否激活状态\n     * @type {Boolean}\n     * @readonly\n     */\n    this.isActivate = false;\n\n    /**\n     *  是否已创建\n     * @type {Boolean}\n     * @readonly\n     */\n    this.isCreate = false;\n\n    this._viewcreate_allcount = 0;\n    this._viewcreate_okcount = 0;\n    this._viewConfig = this.view;\n\n    this.init();\n  }\n\n  /**\n   * 该模块依赖的外部js、css资源文件,会在实例化之前加入的页面中。\n   * 默认引用是当前widget所在同path目录的资源,\n   * 相当于html主页面的资源 或 外部资源 请 以 “/” 或 “.” 或 “http” 开始的url\n   * @type {String[]}\n   * @readonly\n   * @abstract\n   */\n  get resources() {\n    return null;\n  }\n\n  /**\n   * 定义关联的view弹窗或页面配置信息,目前支持3种类型,\n   * (1)type:'window',iframe模式弹窗\t,参考_example示例,\t独立的html子页面,比较自由,简单粗暴、无任何限制;可以每个页面用不同的UI和第三方插件不用考虑冲突问题;任何水平的开发人员均容易快速开发。\n   * (2)type:'divwindow',div元素模式弹窗\t参考_example_divwin示例,可直接互相访问,这种模式弊端是易引起模块间id命名冲突,在css和html中命名时需注意。\n   * (3)type:'append',任意html元素\t参考_example_append示例,任意div节点,比较自由。\n   * 为空时表示当前模块无关联的view页面,\n   * 其中url地址规则,参考resources说明\n   * @type {Object|Object[]}\n   * @readonly\n   * @abstract\n   */\n  get view() {\n    return null;\n  }\n\n  //==============激活插件=================\n  /**\n   * 激活widget,同 mars3d.widget.activate方法\n   * @return {void}  无\n   */\n  activateBase() {\n    let that = this;\n\n    if (this.isActivate) {\n      //已激活状态时跳出\n      this.eachView(function (viewopt) {\n        if (viewopt._dom) {\n          //将层置顶\n          jQuery(\".layui-layer\").each(function () {\n            jQuery(this).css(\"z-index\", 19891000);\n          });\n          jQuery(viewopt._dom).css(\"z-index\", 19891014);\n        }\n      });\n      return;\n    }\n\n    eventTarget.fire(WidgetEventType.beforeActivate, {\n      sourceTarget: this,\n    });\n    this.beforeActivate();\n    this.isActivate = true;\n\n    if (!this.isCreate) {\n      eventTarget.fire(WidgetEventType.beforeCreate, {\n        sourceTarget: this,\n      });\n\n      //首次进行创建\n      if (this.resources && this.resources.length > 0) {\n        let resources = [];\n\n        for (let i = 0; i < this.resources.length; i++) {\n          let _resource = this.resources[i];\n          _resource = this._getUrl(_resource);\n\n          if (_resources_cache.indexOf(_resource) != -1) {\n            continue;\n          } //不加重复资源\n\n          resources.push(_resource);\n        }\n        _resources_cache = _resources_cache.concat(resources); //不加重复资源\n\n        Loader.async(resources, function () {\n          let result = that.create(function () {\n            that._createWidgetView();\n            that.isCreate = true;\n          });\n          eventTarget.fire(WidgetEventType.created, {\n            sourceTarget: that,\n          });\n\n          if (result) {\n            return;\n          }\n          if (that.options.createAtStart) {\n            that.options.createAtStart = false;\n            that.isActivate = false;\n            that.isCreate = true;\n            return;\n          }\n          that._createWidgetView();\n          that.isCreate = true;\n        });\n        return;\n      } else {\n        let result = this.create(function () {\n          that._createWidgetView();\n          this.isCreate = true;\n        });\n        eventTarget.fire(WidgetEventType.created, {\n          sourceTarget: this,\n        });\n\n        if (result) {\n          return;\n        }\n        if (that.options.createAtStart) {\n          that.options.createAtStart = false;\n          that.isActivate = false;\n          that.isCreate = true;\n          return;\n        }\n      }\n      this.isCreate = true;\n    }\n    this._createWidgetView();\n  }\n\n  /**\n   * 构造方法完成后的钩子方法,子类继承后按需使用\n   * @return {void}  无\n   * @abstract\n   */\n  init() {}\n\n  /**\n   * 模块初始化,仅首次初始化执行1次\n   * @param {Function} [endfun] 当create内存在异步时,可以异步后调用下endfun\n   * @return {void}  无\n   * @abstract\n   */\n  create() {}\n\n  //创建插件的view\n  _createWidgetView() {\n    let viewopt = this._viewConfig;\n    if (viewopt === undefined || viewopt === null) {\n      this._startActivate();\n    } else if (Array.isArray(viewopt)) {\n      this._viewcreate_allcount = viewopt.length;\n      this._viewcreate_okcount = 0;\n\n      for (let i = 0; i < viewopt.length; i++) {\n        this.createItemView(viewopt[i]);\n      }\n    } else {\n      this._viewcreate_allcount = 1;\n      this._viewcreate_okcount = 0;\n      this.createItemView(viewopt);\n    }\n  }\n\n  /**\n   * 遍历所有view配置\n   *\n   * @param {Function} callback 回调方法\n   * @param {Number} [index] 当有多个view时,可以指定单个操作的view的index\n   * @return {*} callback执行的返回结果\n   */\n  eachView(callback, index) {\n    let viewopt = this._viewConfig;\n    if (viewopt === undefined || viewopt === null) {\n      return false;\n    } else if (Array.isArray(viewopt)) {\n      let hascal = false;\n      if (index != null) {\n        return callback(viewopt[index]);\n      }\n      for (let i = 0; i < viewopt.length; i++) {\n        hascal = callback(viewopt[i]);\n      }\n      return hascal;\n    } else {\n      return callback(viewopt);\n    }\n  }\n\n  createItemView(viewopt) {\n    let that = this;\n    switch (viewopt.type) {\n      default:\n      case \"window\":\n        this._openWindow(viewopt);\n        break;\n      case \"divwindow\":\n        this._openDivWindow(viewopt);\n        break;\n      case \"append\":\n        that.getHtml(this._getUrl(viewopt.url), function (html) {\n          that._appendView(viewopt, html);\n        });\n        break;\n      case \"custom\": //自定义\n        viewopt.open(\n          this._getUrl(viewopt.url),\n          function (html) {\n            that.winCreateOK(viewopt, html);\n            eventTarget.fire(WidgetEventType.openView, {\n              sourceTarget: that,\n              view: viewopt,\n              dom: html,\n            });\n            that._viewcreate_okcount++;\n            if (that._viewcreate_okcount >= that._viewcreate_allcount) {\n              that._startActivate(html);\n            }\n          },\n          this\n        );\n        break;\n    }\n  }\n\n  //==============layer弹窗=================\n  _openWindow(viewopt) {\n    let view_url = this._getUrl(viewopt.url);\n\n    let opts = {\n      type: 2,\n      content: [view_url, \"no\"],\n      success: (layero, index) => {\n        if (!this.isActivate) {\n          layer.close(index);\n          return;\n        }\n        if (viewopt._layerIdx != index) {\n          layer.close(viewopt._layerIdx);\n          viewopt._layerIdx = index;\n        }\n\n        viewopt._layerOpening = false;\n        viewopt._dom = layero;\n\n        //得到iframe页的窗口对象,执行iframe页的方法:viewWindow.method();\n        let viewWindow = window[layero.find(\"iframe\")[0][\"name\"]];\n\n        //设置css\n        if (this.options.css) {\n          jQuery(\"#layui-layer\" + viewopt._layerIdx).css(this.options.css);\n        }\n\n        //隐藏弹窗\n        if (this.options.hasOwnProperty(\"visible\") && !this.options.visible) {\n          jQuery(layero).hide();\n        }\n\n        layer.setTop(layero);\n\n        this.winCreateOK(viewopt, viewWindow);\n        eventTarget.fire(WidgetEventType.openView, {\n          sourceTarget: this,\n          view: viewopt,\n          dom: layero,\n        });\n\n        this._viewcreate_okcount++;\n        if (this._viewcreate_okcount >= this._viewcreate_allcount) {\n          this._startActivate(layero);\n        }\n\n        //通知页面,页面需要定义initWidgetView方法\n        if (viewWindow && viewWindow.initWidgetView) {\n          if (this.config?.style) {\n            jQuery(viewWindow.document.body).addClass(this.config.style);\n          }\n\n          viewWindow.initWidgetView(this);\n        } else {\n          mars3d.Log.logError(view_url + \"页面没有定义function initWidgetView(widget)方法,无法初始化widget页面!\");\n        }\n      },\n    };\n    if (viewopt._layerIdx && viewopt._layerIdx > 0) {\n      layer.close(viewopt._layerIdx);\n      viewopt._layerIdx = -1;\n    }\n\n    viewopt._layerOpening = true;\n    viewopt._layerIdx = layer.open(this._getWinOpt(viewopt, opts));\n  }\n  _openDivWindow(viewopt) {\n    let view_url = this._getUrl(viewopt.url);\n    //div弹窗\n    this.getHtml(view_url, (data) => {\n      let opts = {\n        type: 1,\n        content: data,\n        success: (layero, index) => {\n          if (!this.isActivate) {\n            layer.close(index);\n            return;\n          }\n          if (viewopt._layerIdx != index) {\n            layer.close(viewopt._layerIdx);\n            viewopt._layerIdx = index;\n          }\n\n          viewopt._layerOpening = false;\n          viewopt._dom = layero;\n\n          //隐藏弹窗\n          if (this.options.hasOwnProperty(\"show\") && !this.options.show) {\n            jQuery(layero).hide();\n          }\n\n          layer.setTop(layero);\n          this.winCreateOK(viewopt, layero);\n          eventTarget.fire(WidgetEventType.openView, {\n            sourceTarget: this,\n            view: viewopt,\n            dom: layero,\n          });\n\n          this._viewcreate_okcount++;\n          if (this._viewcreate_okcount >= this._viewcreate_allcount) {\n            this._startActivate(layero);\n          }\n        },\n      };\n      viewopt._layerOpening = true;\n      viewopt._layerIdx = layer.open(this._getWinOpt(viewopt, opts));\n    });\n  }\n  _getUrl(url) {\n    url = this.addCacheVersion(url);\n\n    if (url.startsWith(\"/\") || url.startsWith(\".\") || url.startsWith(\"http\")) {\n      return url;\n    } else {\n      return this.path + url;\n    }\n  }\n  _getWinOpt(viewopt, opts) {\n    //优先使用cofig中配置,覆盖js中的定义\n    let def = getDefWindowOptions();\n\n    let windowOptions = { ...def, ...viewopt.windowOptions, ...this.options.windowOptions };\n    viewopt.windowOptions = windowOptions; //赋值\n\n    let that = this;\n    let _size = this._getWinSize(windowOptions);\n\n    let title = false;\n    if (!windowOptions.noTitle) {\n      title = this.options.name || \" \";\n      if (this.options.icon) {\n        title = '<i class=\"' + this.options.icon + '\" ></i>&nbsp;' + title;\n      }\n    }\n\n    //默认值\n    let defOpts = {\n      title: title,\n      area: _size.area,\n      offset: _size.offset,\n      shade: 0,\n      maxmin: false,\n      beforeEnd: function () {\n        that.beforeDisable();\n      },\n      end: function () {\n        // 销毁后触发的回调\n        viewopt._layerIdx = -1;\n        viewopt._dom = null;\n        that.disableBase();\n      },\n      full: function (dom) {\n        //最大化后触发的回调\n        that.winFull(dom);\n      },\n      min: function (dom) {\n        //最小化后触发的回调\n        that.winMin(dom);\n      },\n      restore: function (dom) {\n        //还原 后触发的回调\n        that.winRestore(dom);\n      },\n    };\n    return { ...defOpts, ...windowOptions, ...opts };\n  }\n  //计算弹窗大小和位置\n  _getWinSize(windowOptions) {\n    //获取高宽\n    let _width = this.bfb2Number(windowOptions.width, document.documentElement.clientWidth, windowOptions);\n    let _height = this.bfb2Number(windowOptions.height, document.documentElement.clientHeight, windowOptions);\n\n    //计算位置offset\n    let offset = \"\";\n    let position = windowOptions.position;\n    if (position) {\n      if (typeof position === \"string\") {\n        //t顶部,b底部,r右边缘,l左边缘,lt左上角,lb左下角,rt右上角,rb右下角\n        offset = position;\n      } else if (typeof position === \"object\") {\n        let _top;\n        let _left;\n\n        if (position.hasOwnProperty(\"top\") && position.top != null) {\n          _top = this.bfb2Number(position.top, document.documentElement.clientHeight, windowOptions);\n        }\n        if (position.hasOwnProperty(\"bottom\") && position.bottom != null) {\n          windowOptions._hasresize = true;\n\n          let _bottom = this.bfb2Number(position.bottom, document.documentElement.clientHeight, windowOptions);\n\n          if (_top != null) {\n            _height = document.documentElement.clientHeight - _top - _bottom;\n          } else {\n            _top = document.documentElement.clientHeight - _height - _bottom;\n          }\n        }\n\n        if (position.hasOwnProperty(\"left\") && position.left != null) {\n          _left = this.bfb2Number(position.left, document.documentElement.clientWidth, windowOptions);\n        }\n        if (position.hasOwnProperty(\"right\") && position.right != null) {\n          windowOptions._hasresize = true;\n          let _right = this.bfb2Number(position.right, document.documentElement.clientWidth, windowOptions);\n\n          if (_left != null) {\n            _width = document.documentElement.clientWidth - _left - _right;\n          } else {\n            _left = document.documentElement.clientWidth - _width - _right;\n          }\n        }\n\n        if (_top == null) {\n          _top = (document.documentElement.clientHeight - _height) / 2;\n        }\n        if (_left == null) {\n          _left = (document.documentElement.clientWidth - _width) / 2;\n        }\n\n        offset = [_top + \"px\", _left + \"px\"];\n      }\n    }\n\n    //最大最小高度判断\n    if (windowOptions.hasOwnProperty(\"minHeight\") && _height < windowOptions.minHeight) {\n      windowOptions._hasresize = true;\n      _height = windowOptions.minHeight;\n    }\n    if (windowOptions.hasOwnProperty(\"maxHeight\") && _height > windowOptions.maxHeight) {\n      windowOptions._hasresize = true;\n      _height = windowOptions.maxHeight;\n    }\n\n    //最大最小宽度判断\n    if (windowOptions.hasOwnProperty(\"minWidth\") && _width < windowOptions.minWidth) {\n      windowOptions._hasresize = true;\n      _width = windowOptions.minWidth;\n    }\n    if (windowOptions.hasOwnProperty(\"maxWidth\") && _width > windowOptions.maxWidth) {\n      windowOptions._hasresize = true;\n      _width = windowOptions.maxWidth;\n    }\n\n    let area;\n    if (_width && _height) {\n      area = [_width + \"px\", _height + \"px\"];\n    } else {\n      area = _width + \"px\";\n    }\n\n    return { area: area, offset: offset };\n  }\n\n  /**\n   * 更新窗口大小或位置,改变了主页面尺寸后需要调用(内部已自动调用)。\n   * @return {void}  无\n   */\n  indexResize() {\n    if (!this.isActivate) {\n      return;\n    }\n\n    let that = this;\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx == null || viewopt._layerIdx == -1 || viewopt.windowOptions == null || !viewopt.windowOptions._hasresize) {\n        return;\n      }\n\n      let _size = that._getWinSize(viewopt.windowOptions);\n\n      let _style = {};\n      if (Array.isArray(_size.area)) {\n        if (_size.area[0]) {\n          _style.width = _size.area[0];\n        }\n        if (_size.area[1]) {\n          _style.height = _size.area[1];\n        }\n      }\n\n      if (Array.isArray(_size.offset)) {\n        if (_size.offset[1]) {\n          _style.top = _size.offset[0];\n        }\n        if (_size.offset[1]) {\n          _style.left = _size.offset[1];\n        }\n      }\n      jQuery(viewopt._dom).attr(\"myTopLeft\", true);\n      layer.style(viewopt._layerIdx, _style);\n\n      if (viewopt.type == \"divwindow\") {\n        layer.iframeAuto(viewopt._layerIdx);\n      }\n    });\n  }\n\n  //==============直接添加dom节点=================\n  _appendView(viewopt, html) {\n    viewopt._dom = jQuery(html).appendTo(viewopt.parent || \"body\");\n\n    //设置css\n    if (this.options.css) {\n      jQuery(viewopt._dom).css(this.options.css);\n    }\n\n    this.winCreateOK(viewopt, html);\n\n    this._viewcreate_okcount++;\n    if (this._viewcreate_okcount >= this._viewcreate_allcount) {\n      this._startActivate(html);\n    }\n  }\n\n  /**\n   * 每个view窗口或页面创建完成后调用的钩子方法\n   *\n   * @param {Object} opt 对应的view配置\n   * @param {Object|String} result 得到iframe页的窗口对象 或 view的html内容\n   * @return {void}  无\n   * @abstract\n   */\n  winCreateOK(opt, result) {}\n\n  /**\n   * 窗口最大化后触发后 的钩子方法\n   * @return {void}  无\n   * @abstract\n   */\n  winFull() {}\n\n  /**\n   * 窗口最小化后触发 的钩子方法\n   * @return {void}  无\n   * @abstract\n   */\n  winMin() {}\n\n  /**\n   * 最小化窗口\n   * @return {void}  无\n   */\n  minView() {\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx) {\n        layer.min(viewopt._layerIdx, viewopt);\n      }\n    });\n  }\n\n  /**\n   * 还原窗口\n   * @return {void}  无\n   */\n  restoreView() {\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx) {\n        layer.restore(viewopt._layerIdx);\n      }\n    });\n  }\n\n  /**\n   * 最大化窗口\n   * @return {void}  无\n   */\n  fullView() {\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx) {\n        layer.full(viewopt._layerIdx, viewopt);\n      }\n    });\n  }\n\n  /**\n   * 窗口还原后触发 的钩子方法\n   * @return {void}  无\n   * @abstract\n   */\n  winRestore() {}\n\n  _startActivate(layero) {\n    this.activate(layero);\n    eventTarget.fire(WidgetEventType.activated, {\n      sourceTarget: this,\n    });\n\n    if (this.options.success) {\n      this.options.success(this);\n      delete this.options.success; //一次性的\n    }\n    if (!this.isActivate) {\n      //窗口打开中没加载完成时,被释放\n      this.disableBase();\n    }\n  }\n\n  /**\n   * 激活模块之前 的钩子方法\n   * @return {void}  无\n   * @abstract\n   */\n  beforeActivate() {}\n\n  /**\n   * 激活模块【类内部实现方法】\n   * @return {void}  无\n   * @abstract\n   */\n  activate() {}\n\n  //==============释放插件=================\n\n  /**\n   * 释放插件,同 mars3d.widget.disable方法\n   * @return {void}  无\n   */\n  disableBase() {\n    if (!this.isActivate) {\n      return;\n    }\n    this.isActivate = false;\n\n    this.beforeDisable();\n    eventTarget.fire(WidgetEventType.beforeDisable, {\n      sourceTarget: this,\n    });\n\n    //关闭所有窗口\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx && viewopt._layerIdx > 0) {\n        layer.close(viewopt._layerIdx);\n\n        if (viewopt._layerOpening) {\n          //窗口还在加载中,success方法中去关闭\n        } else {\n          viewopt._layerIdx = -1;\n        }\n        return true;\n      } else {\n        if (viewopt.type == \"append\" && viewopt._dom) {\n          viewopt._dom.remove();\n          viewopt._dom = null;\n        }\n        if (viewopt.type == \"custom\" && viewopt.close) {\n          viewopt.close();\n        }\n        return false;\n      }\n    });\n\n    this.disable();\n\n    //还原配置为初始状态\n    if (this.options.autoReset) {\n      this.resetConfig();\n    }\n    eventTarget.fire(WidgetEventType.disabled, {\n      sourceTarget: this,\n    });\n  }\n\n  /**\n   * 释放模块前\n   * @return {void}  无\n   * @abstract\n   */\n  beforeDisable() {}\n\n  /**\n   * 释放模块【类内部实现方法】\n   * @return {void}  无\n   * @abstract\n   */\n  disable() {}\n\n  //==============其他方法=================\n  bfb2Number(str, allnum, windowOptions) {\n    if (typeof str === \"string\" && str.indexOf(\"%\") != -1) {\n      windowOptions._hasresize = true;\n\n      return (allnum * Number(str.replace(\"%\", \"\"))) / 100;\n    }\n    return str;\n  }\n  addCacheVersion(_resource) {\n    if (_resource == null) {\n      return _resource;\n    }\n\n    let cacheVersion = getCacheVersion();\n    if (cacheVersion) {\n      if (_resource.indexOf(\"?\") == -1) {\n        _resource += \"?cache=\" + cacheVersion;\n      } else if (_resource.indexOf(\"cache=\" + cacheVersion) == -1) {\n        _resource += \"&cache=\" + cacheVersion;\n      }\n    }\n    return _resource;\n  }\n\n  /**\n   * 还原配置为初始状态\n   * @return {void}  无\n   */\n  resetConfig() {\n    if (this.options._firstConfigBak) {\n      let _backData = this.options._firstConfigBak;\n      for (let aa in _backData) {\n        if (aa == \"uri\") {\n          continue;\n        }\n        this.options[aa] = _backData[aa];\n      }\n    }\n  }\n\n  /**\n   * 设置view弹窗的显示和隐藏,基于修改css实现\n   *\n   * @param {Boolean} show 是否显示\n   * @param {Number} [index] 当有多个view时,可以指定单个操作的view的index\n   * @return {void}  无\n   */\n  setViewShow(show, index) {\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx && viewopt._layerIdx > 0) {\n        if (show) {\n          jQuery(\"#layui-layer\" + viewopt._layerIdx).show();\n        } else {\n          jQuery(\"#layui-layer\" + viewopt._layerIdx).hide();\n        }\n      } else if (viewopt.type == \"append\" && viewopt._dom) {\n        if (show) {\n          jQuery(viewopt._dom).show();\n        } else {\n          jQuery(viewopt._dom).hide();\n        }\n      }\n    }, index);\n  }\n\n  /**\n   * 设置view弹窗的css\n   *\n   * @param {Object} style css值\n   * @param {Number} [index] 当有多个view时,可以指定单个操作的view的index\n   * @return {void}  无\n   */\n  setViewCss(style, index) {\n    this.eachView(function (viewopt) {\n      if (viewopt._layerIdx != null && viewopt._layerIdx > 0) {\n        layer.style(viewopt._layerIdx, style);\n      } else if (viewopt.type == \"append\" && viewopt._dom) {\n        jQuery(viewopt._dom).css(style);\n      }\n    }, index);\n  }\n\n  /**\n   * 设置view弹窗的标题\n   *\n   * @param {String} title css值\n   * @param {Number} [index] 当有多个view时,可以指定单个操作的view的index\n   * @return {void}  无\n   */\n  setTitle(title, index) {\n    this.eachView(function (viewopt) {\n      if (viewopt._dom) {\n        viewopt._dom.find(\".layui-layer-title\").html(title);\n      }\n    }, index);\n  }\n\n  /**\n   * 读取html页面的内容\n   *\n   * @param {string} url html页面的url\n   * @param {Function} callback 读取完成后的回调方法\n   * @return {void}  无\n   */\n  getHtml(url, callback) {\n    jQuery.ajax({\n      url: url,\n      type: \"GET\",\n      dataType: \"html\",\n      timeout: 0, //永不超时\n      success: function (data) {\n        callback(data);\n      },\n    });\n  }\n}\n","import * as mars3d from \"mars3d\";\n\nimport \"./theme/widget.scss\";\n\nimport * as widget from \"./widget/widgetManager\";\n// eslint-disable-next-line no-import-assign\nmars3d.widget = widget;\n\nimport { BaseWidget } from \"./widget/BaseWidget\";\nmars3d.widget.BaseWidget = BaseWidget;\n\nimport { WidgetEventType } from \"./widget/WidgetEventType\";\nmars3d.widget.WidgetEventType = WidgetEventType;\nmars3d.widget.EventType = WidgetEventType;\n\nexport { widget };\n"],"sourceRoot":""}