{"version":3,"file":"index.mjs","sources":["../utils/util.js","../../../node_modules/.pnpm/camelcase@1.2.1/node_modules/camelcase/index.js","../../../node_modules/.pnpm/uppercamelcase@1.1.0/node_modules/uppercamelcase/index.js","../utils/event-helper.js","../mixins/register-component.ts","../utils/guid.js","../utils/convert-helper.js","../utils/with-install.ts","../utils/make-installer.ts"],"sourcesContent":["/**\r\n * 判断对象是不是map实例对象\r\n * @param instance\r\n * @returns {string|boolean}\r\n */\r\nexport function isMapInstance(instance) {\r\n  if (!instance) {\r\n    return false;\r\n  }\r\n  return instance instanceof AMap.Map;\r\n}\r\n\r\n/**\r\n * 判断对象是不是OverlayGroup实例对象\r\n * @param instance\r\n * @returns {string|boolean}\r\n */\r\nexport function isOverlayGroupInstance(instance) {\r\n  if (!instance) {\r\n    return false;\r\n  }\r\n  return instance instanceof AMap.OverlayGroup;\r\n}\r\n\r\n/**\r\n * 判断对象是不是IndoorMap实例对象\r\n * @param instance\r\n * @returns {string|boolean}\r\n */\r\nexport function isIndoorMapInstance(instance) {\r\n  if (!instance) {\r\n    return false;\r\n  }\r\n  return instance instanceof AMap.IndoorMap;\r\n}\r\n\r\n/**\r\n * 判断对象是不是LabelsLayer实例对象\r\n * @param instance\r\n * @returns {string|boolean}\r\n */\r\nexport function isLabelsLayerInstance(instance) {\r\n  if (!instance) {\r\n    return false;\r\n  }\r\n  return instance instanceof AMap.LabelsLayer;\r\n}\r\n\r\n/**\r\n * 判断对象是不是VectorLayer实例对象\r\n * @param instance\r\n * @returns {string|boolean}\r\n */\r\nexport function isVectorLayerInstance(instance) {\r\n  if (!instance) {\r\n    return false;\r\n  }\r\n  return instance instanceof AMap.VectorLayer;\r\n}\r\n\r\n/**\r\n * 将$props中的事件名称转换为地图组件需要的事件名\r\n * @param functionName\r\n * @returns {string|*}\r\n */\r\nexport function convertEventToLowerCase(functionName){\r\n  if(!functionName || functionName.length < 4){\r\n    return functionName;\r\n  }\r\n  const func = functionName.substring(3, functionName.length);\r\n  const firstLetter = functionName[2].toLowerCase();\r\n  return firstLetter + func;\r\n}\r\n\r\nexport const eventReg = /^on[A-Z]+/;\r\n\r\n/**\r\n * 加载JS文件\r\n * @param url\r\n * @param callback\r\n */\r\nexport function loadScript(url, callback){\r\n  if(!url){\r\n    throw new Error('请传入url');\r\n  }\r\n  const script = document.createElement('script');\r\n  script.type = 'text/javascript';\r\n  script.async = true;\r\n  script.defer = true;\r\n  script.src = url;\r\n  document.body.appendChild(script);\r\n  if(callback){\r\n    script.addEventListener('load',() => {\r\n      callback();\r\n    });\r\n  }\r\n}\r\n\r\nexport function convertLnglat(lnglat){\r\n  if(Array.isArray(lnglat)){\r\n    return lnglat.map(convertLnglat);\r\n  }\r\n  return lnglat.toArray();\r\n}\r\n","'use strict';\nmodule.exports = function () {\n\tvar str = [].map.call(arguments, function (str) {\n\t\treturn str.trim();\n\t}).filter(function (str) {\n\t\treturn str.length;\n\t}).join('-');\n\n\tif (!str.length) {\n\t\treturn '';\n\t}\n\n\tif (str.length === 1 || !(/[_.\\- ]+/).test(str) ) {\n\t\tif (str[0] === str[0].toLowerCase() && str.slice(1) !== str.slice(1).toLowerCase()) {\n\t\t\treturn str;\n\t\t}\n\n\t\treturn str.toLowerCase();\n\t}\n\n\treturn str\n\t.replace(/^[_.\\- ]+/, '')\n\t.toLowerCase()\n\t.replace(/[_.\\- ]+(\\w|$)/g, function (m, p1) {\n\t\treturn p1.toUpperCase();\n\t});\n};\n","'use strict';\nvar camelCase = require('camelcase');\n\nmodule.exports = function () {\n\tvar cased = camelCase.apply(camelCase, arguments);\n\treturn cased.charAt(0).toUpperCase() + cased.slice(1);\n};\n","let eventHelper;\r\n\r\nclass EventHelper {\r\n  constructor() {\r\n    /**\r\n     * listener has表\r\n     * {\r\n     *  instance: {\r\n     *              eventName: [...handlers]\r\n     *            }\r\n     * }\r\n     */\r\n    this._listener = new Map();\r\n  }\r\n\r\n  addListener(instance, eventName, handler, context) {\r\n    if (!AMap) throw new Error('please wait for Map API load');\r\n    if (!instance.on) {\r\n      return;\r\n    }\r\n    // let listener = AMap.event.addListener(instance, eventName, handler, context);\r\n    instance.on(eventName, handler, context);\r\n    if (!this._listener.get(instance)) this._listener.set(instance, {});\r\n    const listenerMap = this._listener.get(instance);\r\n    if (!listenerMap[eventName]) listenerMap[eventName] = [];\r\n    listenerMap[eventName].push(handler);\r\n\r\n  }\r\n\r\n  removeListener(instance, eventName, handler) {\r\n    if (!AMap) throw new Error('please wait for Map API load');\r\n    if (!instance.off) {\r\n      return;\r\n    }\r\n    if (!this._listener.get(instance) || !this._listener.get(instance)[eventName]) return;\r\n    const listenerArr = this._listener.get(instance)[eventName];\r\n    if (handler) {\r\n      const lIndex = listenerArr.indexOf(handler);\r\n      instance.off(eventName, listenerArr[lIndex]);\r\n      listenerArr.splice(lIndex, 1);\r\n    } else {\r\n      listenerArr.forEach(listener => {\r\n        instance.off(eventName, listener);\r\n      });\r\n      this._listener.get(instance)[eventName] = [];\r\n    }\r\n  }\r\n\r\n  addListenerOnce(instance, eventName, handler, context) {\r\n    return instance.on(eventName, handler, context, true);\r\n  }\r\n\r\n  trigger(instance, eventName, args) {\r\n    return instance.emit(eventName, args);\r\n  }\r\n\r\n  clearListeners(instance) {\r\n    const listeners = this._listener.get(instance);\r\n    if (!listeners) return;\r\n    Object.keys(listeners).map(eventName => {\r\n      instance.clearEvents(eventName);\r\n    });\r\n  }\r\n}\r\n\r\neventHelper = eventHelper || new EventHelper();\r\n\r\nexport default eventHelper;\r\n","import {defineComponent, isProxy, toRaw, unref} from \"vue\";\r\nimport upperCamelCase from 'uppercamelcase';\r\nimport eventHelper from '../utils/event-helper';\r\nimport {convertEventToLowerCase, eventReg} from \"../utils/util\";\r\nimport type {WatchStopHandle, ComponentPublicInstance} from \"vue\";\r\n\r\nexport default defineComponent({\r\n  inject: {\r\n    parentInstance: {\r\n      default: null\r\n    }\r\n  },\r\n  inheritAttrs: false,\r\n  props: {\r\n    visible: {\r\n      type: Boolean,\r\n      default: true\r\n    }, // 是否显示，默认 true\r\n    zIndex: {\r\n      type: Number\r\n    },\r\n    reEventWhenUpdate: {\r\n      type: Boolean,\r\n      default: false\r\n    }, // 是否在组件更新时重新注册事件，主要用于数组更新时，绑定了事件但事件的对象不会更新问题\r\n    extraOptions: {\r\n      type: Object\r\n    } // 额外扩展属性\r\n  },\r\n  emits: ['init'],\r\n  data() {\r\n    return {\r\n      needInitComponents: [] as (ComponentPublicInstance)[],\r\n      unwatchFns: [] as WatchStopHandle[],\r\n      propsRedirect: {},\r\n      converters: {},\r\n      isDestroy: false,\r\n      cacheEvents: {},\r\n      isMounted: false\r\n    };\r\n  },\r\n  created() {\r\n    this.$amapComponent = null as any;\r\n    this.$parentComponent = null as any;\r\n  },\r\n  mounted() {\r\n    if (this.parentInstance) {\r\n      if (this.parentInstance.$amapComponent) {\r\n        this.register();\r\n      } else {\r\n        this.parentInstance.addChildComponent(this);\r\n      }\r\n    }\r\n  },\r\n\r\n  beforeUnmount() {\r\n    if (!this.$amapComponent) return;\r\n    this.unregisterEvents();\r\n    this.unwatchFns.forEach(item => item());\r\n    this.unwatchFns = [];\r\n    this.destroyComponent();\r\n    this.isDestroy = true;\r\n  },\r\n  beforeUpdate() {\r\n    if(this.reEventWhenUpdate && this.isMounted && this.$amapComponent){\r\n      this.unregisterEvents();\r\n    }\r\n  },\r\n  updated() {\r\n    if(this.reEventWhenUpdate && this.isMounted && this.$amapComponent){\r\n      this.registerEvents();\r\n    }\r\n  },\r\n  methods: {\r\n    getHandlerFun(prop) {\r\n      if (this[`__${prop}`]) {\r\n        return this[`__${prop}`];\r\n      }\r\n      if(!this.$amapComponent){\r\n        return null;\r\n      }\r\n      return this.$amapComponent[`set${upperCamelCase(prop)}`];\r\n    },\r\n\r\n    convertProps() {\r\n      const props = {};\r\n      const {$props, propsRedirect} = this;\r\n      if(this.extraOptions){\r\n        Object.assign(props, this.extraOptions)\r\n      }\r\n      const result = Object.keys($props).reduce((res, _key) => {\r\n        let key = _key;\r\n        const propsValue = this.convertSignalProp(key, $props[key]);\r\n        if (propsValue === undefined) return res;\r\n        if (propsRedirect && propsRedirect[_key]) key = propsRedirect[key];\r\n        props[key] = propsValue;\r\n        return res;\r\n      }, props);\r\n      Object.keys(result).forEach(key => {\r\n        result[key] = this.convertProxyToRaw(result[key]);\r\n      })\r\n      return result;\r\n    },\r\n\r\n    convertProxyToRaw(value: any){\r\n      if(isProxy(value)){\r\n        return toRaw(value);\r\n      }\r\n      return unref(value);\r\n    },\r\n\r\n    convertSignalProp(key, sourceData) {\r\n      if (this.converters && this.converters[key]) {\r\n        return this.converters[key].call(this, sourceData);\r\n      }\r\n      return sourceData;\r\n    },\r\n\r\n    registerEvents() {\r\n      const $props = this.$attrs;\r\n      Object.keys($props).forEach(key => {\r\n        if(eventReg.test(key)){\r\n          const eventKey = convertEventToLowerCase(key);\r\n          eventHelper.addListener(this.$amapComponent, eventKey, $props[key]);\r\n          this.cacheEvents[eventKey] = $props[key];\r\n        }\r\n      });\r\n    },\r\n\r\n    unregisterEvents() {\r\n      Object.keys(this.cacheEvents).forEach(eventKey => {\r\n        eventHelper.removeListener(this.$amapComponent, eventKey, this.cacheEvents[eventKey]);\r\n        delete this.cacheEvents[eventKey];\r\n      });\r\n    },\r\n\r\n    setPropWatchers() {\r\n      const {propsRedirect, $props} = this;\r\n\r\n      Object.keys($props).forEach(prop => {\r\n        let handleProp = prop;\r\n        if (propsRedirect && propsRedirect[prop]) handleProp = propsRedirect[prop];\r\n        const handleFun = this.getHandlerFun(handleProp);\r\n        if (!handleFun) return;\r\n        const watchOptions = {\r\n          deep: false\r\n        };\r\n        const propValueType = Object.prototype.toString.call($props[prop]);\r\n        if ( propValueType === '[object Object]' || propValueType === '[object Array]') {\r\n          watchOptions.deep = true;\r\n        }\r\n        // watch props\r\n        const unwatch = this.$watch(prop, nv => {\r\n          handleFun.call(this.$amapComponent, this.convertProxyToRaw(this.convertSignalProp(prop, nv)));\r\n        }, watchOptions);\r\n\r\n        // collect watchers for destroyed\r\n        this.unwatchFns.push(unwatch);\r\n      });\r\n    },\r\n\r\n    // some prop can not init by initial created methods\r\n    initProps() {\r\n      const props = ['editable', 'visible', 'zooms'];\r\n\r\n      props.forEach(propStr => {\r\n        if (this[propStr] !== undefined) {\r\n          const handleFun = this.getHandlerFun(propStr);\r\n          handleFun && handleFun.call(this.$amapComponent, this.convertProxyToRaw(this.convertSignalProp(propStr, this[propStr])));\r\n        }\r\n      });\r\n\r\n      // this.printReactiveProp();\r\n    },\r\n\r\n    lazyRegister(){\r\n      const $parent = this.parentInstance as (ComponentPublicInstance);\r\n      if($parent && $parent.addChildComponent){\r\n        $parent.addChildComponent(this);\r\n      }\r\n    },\r\n    addChildComponent(component : ComponentPublicInstance){\r\n      this.needInitComponents.push(component);\r\n    },\r\n    createChildren(){\r\n      while (this.needInitComponents.length > 0){\r\n        this.needInitComponents[0].register();\r\n        this.needInitComponents.splice(0, 1);\r\n      }\r\n    },\r\n    register() {\r\n      if(this.parentInstance && !this.$parentComponent){\r\n        this.$parentComponent = this.parentInstance.$amapComponent;\r\n      }\r\n      const res = this['__initComponent'] && this['__initComponent'](this.convertProps());\r\n      if (res && res.then) res.then((instance) => this.registerRest(instance)); // promise\r\n      else this.registerRest(res);\r\n    },\r\n\r\n    registerRest(instance) {\r\n      if (!this.$amapComponent && instance) this.$amapComponent = instance;\r\n      this.registerEvents();\r\n      this.initProps();\r\n      this.setPropWatchers();\r\n      this.$emit('init', this.$amapComponent, this);\r\n      this.$nextTick(() => {\r\n        this.createChildren();\r\n      });\r\n      this.isMounted = true;\r\n    },\r\n\r\n    // helper method\r\n    $$getInstance() {\r\n      return this.$amapComponent;\r\n    },\r\n    destroyComponent() {\r\n      this.$amapComponent.setMap && this.$amapComponent.setMap(null);\r\n      this.$amapComponent.close && this.$amapComponent.close();\r\n      this.$amapComponent.editor && this.$amapComponent.editor.close();\r\n    },\r\n    __visible(flag){\r\n      if(!!this.$amapComponent && !!this.$amapComponent.show && !!this.$amapComponent.hide){\r\n        flag === false ? this.$amapComponent.hide() : this.$amapComponent.show();\r\n      }\r\n    },\r\n    __zIndex(value){\r\n      if (this.$amapComponent && this.$amapComponent.setzIndex) {\r\n        this.$amapComponent.setzIndex(value);\r\n      }\r\n    }\r\n  }\r\n});\r\n","export default function guid() {\r\n  const s = [];\r\n  const hexDigits = '0123456789abcdef';\r\n  for (let i = 0; i < 36; i++) {\r\n    s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n  }\r\n  s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010\r\n  s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01\r\n  s[8] = s[13] = s[18] = s[23] = '-';\r\n\r\n  return s.join('');\r\n}\r\n","export function toPixel(arr) {\r\n  return new AMap.Pixel(arr[0], arr[1]);\r\n}\r\n\r\nexport function toSize(arr) {\r\n  return new AMap.Size(arr[0], arr[1]);\r\n}\r\n\r\nexport function pixelTo(pixel) {\r\n  if (Array.isArray(pixel)) return pixel;\r\n  return [pixel.getX(), pixel.getY()];\r\n}\r\n\r\nexport function toLngLat(arr) {\r\n  return new AMap.LngLat(arr[0], arr[1]);\r\n}\r\n\r\nexport function lngLatTo(lngLat) {\r\n  if (!lngLat) return;\r\n  if (Array.isArray(lngLat)) return lngLat.slice();\r\n  return [lngLat.getLng(), lngLat.getLat()];\r\n}\r\n\r\n/**\r\n * @param arrs 二重数组 southWest, northEast\r\n */\r\nexport function toBounds(arrs) {\r\n  return new AMap.Bounds(toLngLat(arrs[0]), toLngLat(arrs[1]));\r\n}\r\n","import type { SFCWithInstall } from './types'\r\n\r\nexport const withInstall = <T, E extends Record<string, any>>(\r\n  main: T,\r\n  extra?: E\r\n) => {\r\n  (main as SFCWithInstall<T>).install = (app): void => {\r\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\r\n      app.component(comp.name, comp)\r\n    }\r\n  }\r\n\r\n  if (extra) {\r\n    for (const [key, comp] of Object.entries(extra)) {\r\n      (main as any)[key] = comp\r\n    }\r\n  }\r\n  return main as SFCWithInstall<T> & E\r\n}\r\n\r\nexport const withInstallFunction = <T>(fn: T, name: string) => {\r\n  (fn as SFCWithInstall<T>).install = (app) => {\r\n    app.config.globalProperties[name] = fn\r\n  }\r\n\r\n  return fn as SFCWithInstall<T>\r\n}\r\n","import type { App, Plugin } from 'vue'\r\n\r\nexport const makeInstaller = (components: Plugin[] = []) => {\r\n  const apps: App[] = []\r\n\r\n  const install = (app: App) => {\r\n\r\n    if (apps.includes(app)) return\r\n    apps.push(app)\r\n\r\n    components.forEach((c) => app.use(c))\r\n  }\r\n\r\n  return {\r\n    install,\r\n  }\r\n}\r\n"],"names":["require$$0","eventHelper"],"mappings":"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","x_google_ignoreList":[1,2]}