{"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> <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> ' + 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":""}
|