/******/ (function() { // webpackBootstrap
/******/ 	"use strict";
/******/ 	// The require scope
/******/ 	var __webpack_require__ = {};
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	!function() {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = function(module) {
/******/ 			var getter = module && module.__esModule ?
/******/ 				function() { return module['default']; } :
/******/ 				function() { return module; };
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	!function() {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = function(exports, definition) {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": function() { return /* binding */ map_getter; }
});

;// CONCATENATED MODULE: external "@zpc_npm/vue-iclient-common/_utils/mitt"
var mitt_namespaceObject = require("@zpc_npm/vue-iclient-common/_utils/mitt");
var mitt_default = /*#__PURE__*/__webpack_require__.n(mitt_namespaceObject);
;// CONCATENATED MODULE: ./src/leaflet/_types/map-event.js
/**
 * ZL 20220606 mapview对象控制类，mapview对象控制类、删除、获取和mapview操作的监听事件处理mitt
 */

/* harmony default export */ var map_event = ({
  webMapCache: {},
  // 事件监听对象
  mitt: new (mitt_default())(),
  getWebMap: function (webmapTarget) {
    return this.webMapCache[webmapTarget];
  },
  getAllWebMap: function () {
    return this.webMapCache;
  },
  setWebMap: function (webmapTarget, webmap) {
    this.destroy();
    this.webMapCache[webmapTarget] = webmap;
  },
  deleteWebMap: function (webmapTarget) {
    delete this.webMapCache[webmapTarget];
  },

  // zl 为防止以特殊方式移除map的dom元素，但是map、mapview对象未销毁，
  // 特添加此方法，删除map对象绑定的div已经找不到的情况
  // 当前是为解决storybook频繁切换属性参数，组件不执行销毁的问题
  destroy() {
    Object.keys(this.webMapCache).forEach(key => {
      let target = this.webMapCache[key].target; // 绑定的div已经被移除

      if (!document.getElementById(target)) {
        this.webMapCache[key].destroy(); //this.deleteMap(target);

        this.deleteWebMap(target);
      }
    });
  }

});
;// CONCATENATED MODULE: external {"root":"Vue","commonjs":"vue","commonjs2":"vue","amd":"vue"}
var external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_namespaceObject = require("vue");
;// CONCATENATED MODULE: ./src/leaflet/_mixin/map-getter.js
/**
 *  zl 20220817
 *  map对象获取绑定的操作对象
 */


/* harmony default export */ var map_getter = ({
  getTargetName(cb) {
    const {
      proxy
    } = (0,external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_namespaceObject.getCurrentInstance)();
    /**
     * 便于区分存在多个map时，子组件对应的map的渲染；
     * map 和 webmap  的 props 属性是 target 其他组件都叫 mapTarget
     * 如果子组件包裹在 map 组件里面，若没有传 mapTarget, 则 targetName 直接取父元素的target 的值
     * 如果子组件和 map 同层级，且没有设置 mapTarget 时，则默认渲染到第一个 map 上
     */

    const selfParent = proxy.$parent;
    const parentTarget = selfParent && selfParent.$options.name && selfParent.$options.name.toLowerCase() === "kqmapview" && selfParent.$props.target;

    if (!parentTarget) {
      const _webmaps = Object.keys(map_event.getAllWebMap());

      if (_webmaps.length === 0) {
        map_event.mitt.on("load-map", e => {
          cb(e.eventTarget);
        });
      } else {
        cb(_webmaps[0]);
      }
    } else {
      cb(parentTarget);
    }
  },

  getWebMap(cb, targetName) {
    let webmap = map_event.getWebMap(targetName);

    if (webmap && webmap.map) {
      cb(webmap);
    } else {
      // 添加map对象加载监听事件
      // 清除事件的时间：在load-map执行后就立即清空了
      map_event.mitt.on("load-map", () => {
        webmap = map_event.getWebMap(targetName);

        if (webmap) {
          cb(webmap);
        }
      });
    }
  }

});
module.exports = __webpack_exports__;
/******/ })()
;