@spuermomonga/vue3-bmapgl 0.0.18 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -2
- package/dist/index.prod.js +1 -1
- package/es/_utils/map.mjs +1 -1
- package/es/_utils/map.mjs.map +1 -1
- package/es/overlay/polygon/src/polygon.mjs +0 -1
- package/es/overlay/polygon/src/polygon.mjs.map +1 -1
- package/lib/_utils/map.js +1 -1
- package/lib/_utils/map.js.map +1 -1
- package/lib/overlay/polygon/src/polygon.js +0 -1
- package/lib/overlay/polygon/src/polygon.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
addCalToWindow = true,
|
|
13
13
|
timeout = 1e4
|
|
14
14
|
} = options;
|
|
15
|
-
if (isScriptLoaded && window.BMapGL) {
|
|
15
|
+
if (isScriptLoaded && window.BMapGL || window.BMapGL) {
|
|
16
16
|
return Promise.resolve();
|
|
17
17
|
}
|
|
18
18
|
return new Promise((resolve, reject) => {
|
|
@@ -1098,7 +1098,6 @@
|
|
|
1098
1098
|
}
|
|
1099
1099
|
const setPoints = (points) => {
|
|
1100
1100
|
points && overlay?.setPath(listToMapPoints(points));
|
|
1101
|
-
console.log("setPath", listToMapPoints(points));
|
|
1102
1101
|
syncMapCenter();
|
|
1103
1102
|
};
|
|
1104
1103
|
const setFillColor = (color) => {
|
package/dist/index.prod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,t){"use strict";let o=!1;function n(e){if(!e||0===e.length)return[];const t=e[0];return Array.isArray(t)?e.map(([e,t])=>new BMapGL.Point(e,t)):e}function a(e){return e.some(e=>!t.isVNode(e)||e.type!==Comment&&!(e.type===t.Fragment&&!a(e.children)))?e:null}function l(e,t){return t(e&&a(e())||null)}const r={ak:String,apiUrl:String,plugins:Array,mapConfig:Object},i=Symbol("b-config-provider");var s=t.defineComponent({name:"ConfigProvider",props:r,setup(e,{slots:n}){const a=t.ref("notload"),l=e.apiUrl?"_initBMap_":`_initBMap_${e.ak}`,r=e.apiUrl?`${e.apiUrl.replace(/&$/,"")}&callback=${l}`:`//api.map.baidu.com/api?type=webgl&v=1.0&ak=${e.ak}&callback=${l}`;a.value="pending",function(e){const{key:t,src:n,addCalToWindow:a=!0,timeout:l=1e4}=e;return o&&window.BMapGL?Promise.resolve():new Promise((e,r)=>{const i=document.createElement("script");i.src=n,i.type="text/javascript",i.defer=!0;const s=()=>{i.onload=null,i.onerror=null,document.body.contains(i)&&document.body.removeChild(i)},d=setTimeout(()=>{s(),r(new Error(`Script load timeout: ${n}`))},l),p=()=>{clearTimeout(d),o=!0,s(),e()};a?window[t]=p:i.onload=p,i.onerror=()=>{clearTimeout(d),s(),r(new Error(`Failed to load script: ${n}`))},document.body.appendChild(i)})}({key:l,src:r}).then(()=>{a.value="loaded"}).catch(()=>{a.value="failed"});const s=t.computed(()=>{const{mapConfig:t}=e;return t??{}});return t.provide(i,{mergedStatusRef:a,mergedMapSetRef:s}),()=>t.renderSlot(n,"default")}});const d=Symbol("b-map"),p={maxZoom:Number,minZoom:Number,heading:Number,center:Object,zoom:Number,class:String,contentClass:String,enableScrollWheelZoom:{type:Boolean,default:void 0},enableDragging:{type:Boolean,default:void 0},tilt:Number,enableTilt:{type:Boolean,default:void 0},mapType:String,enableAutoResize:{type:Boolean,default:void 0},enableTiltGestures:{type:Boolean,default:void 0},enableRotate:{type:Boolean,default:void 0},enableRotateGestures:{type:Boolean,default:void 0},displayOptions:Object,onInitd:Function,onClick:Function,onDblclick:Function,onMousemove:Function};var u="map-module_b-map__29r3m",c="map-module_b-map-content__sMaJG",m="map-module_b-map-loading__qc4a8",y="map-module_b-map-failed__-w-tX";!function(e,t){void 0===t&&(t={});var o=t.insertAt;if("undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===o&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".map-module_b-map-content__sMaJG,.map-module_b-map__29r3m{height:100%;overflow:hidden;position:relative;width:100%}.map-module_b-map-failed__-w-tX,.map-module_b-map-loading__qc4a8{color:#999;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}");var f=t.defineComponent({name:"Map",props:p,slots:Object,setup(e,{slots:o}){const{mergedMapSetRef:n,mergedStatusRef:a}=function(e={}){const o=t.inject(i,null);return{mergedStatusRef:o?.mergedStatusRef,mergedMapSetRef:t.computed(()=>{const{zoom:t,center:n,heading:a,minZoom:l,maxZoom:r,enableScrollWheelZoom:i,enableDragging:s,tilt:d,enableTilt:p,mapType:u,enableAutoResize:c,enableTiltGestures:m,enableRotate:y,enableRotateGestures:f,displayOptions:g}=e;return{zoom:t??o?.mergedMapSetRef.value?.zoom??14,center:n??o?.mergedMapSetRef.value?.center??[116.403901,39.915185],heading:a??o?.mergedMapSetRef.value?.heading??0,minZoom:l??o?.mergedMapSetRef.value?.minZoom??0,maxZoom:r??o?.mergedMapSetRef.value?.maxZoom??21,enableScrollWheelZoom:i??o?.mergedMapSetRef.value?.enableScrollWheelZoom??!1,enableDragging:s??o?.mergedMapSetRef.value?.enableDragging??!0,tilt:d??o?.mergedMapSetRef.value?.tilt??0,enableTilt:p??o?.mergedMapSetRef.value?.enableTilt??!1,mapType:u??o?.mergedMapSetRef.value?.mapType??"BMAP_NORMAL_MAP",enableAutoResize:c??o?.mergedMapSetRef.value?.enableAutoResize??!0,enableTiltGestures:m??o?.mergedMapSetRef.value?.enableTiltGestures??!1,enableRotate:y??o?.mergedMapSetRef.value?.enableRotate??!1,enableRotateGestures:f??o?.mergedMapSetRef.value?.enableRotateGestures??!1,displayOptions:g??o?.mergedMapSetRef.value?.displayOptions}})}}(e),r=t.ref();let s,p=null;const f=t.ref(!1);t.provide(d,{mapInstance:()=>p});const g=e=>{"string"==typeof e?p?.centerAndZoom(e,n.value.zoom):Array.isArray(e)?p?.centerAndZoom(new BMapGL.Point(e[0],e[1]),n.value.zoom):p?.centerAndZoom(e,n.value.zoom)},b=e=>{e?p.enableScrollWheelZoom():p.disableScrollWheelZoom()},h=e=>{p?.setDisplayOptions(e||{})},v=e=>{p?.setTilt(e??0)},T=e=>{p?.setHeading(e??0)},w=e=>{e?p.enableDragging():p.disableDragging()},B=e=>{void 0!==window[e]&&p.setMapType(window[e])},S=()=>{const{maxZoom:o,minZoom:a,enableTilt:l,mapType:i,enableAutoResize:d,enableTiltGestures:u,enableRotate:c,enableRotateGestures:m,displayOptions:y}=n.value;p=new BMapGL.Map(r.value,{maxZoom:o,minZoom:a,enableTilt:l,mapType:window[i],enableAutoResize:d,enableTiltGestures:u,enableRotate:c,enableRotateGestures:m,displayOptions:y});const{onInitd:S}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:o,tilt:a,enableDragging:l}=n.value;T(t),g(e),b(o),v(a),w(l)})(),t.watch(()=>n.value.center,g,{deep:!0}),t.watch(()=>n.value.enableScrollWheelZoom,b),t.watch(()=>n.value.displayOptions,h),t.watch(()=>n.value.tilt,v),t.watch(()=>n.value.heading,T),t.watch(()=>n.value.enableDragging,w),t.watch(()=>n.value.mapType,B),S?.({map:p}),s=function(e,t){const o=Object.keys(t).filter(e=>e.startsWith("on")&&!e.startsWith("onUpdate")&&"function"==typeof t[e]).map(o=>{const n=o.slice(2).toLocaleLowerCase(),a=t[o],l=e=>{e.preventDefault?.()||e.domEvent?.preventDefault?.(),e.stopPropagation?.()||e.domEvent?.stopPropagation?.(),a(e)};return e.addEventListener(n,l),()=>e.removeEventListener(n,l)});return()=>o.forEach(e=>e())}(p,e),f.value=!0};return t.onMounted(()=>{t.watchEffect(()=>{"loaded"!==a?.value||f.value||t.nextTick(S)})}),t.onUnmounted(()=>{if(p)try{s?.(),p?.destroy()}catch(e){console.error(`[Vue3 BMapGL]: ${e.message}`)}}),()=>t.createVNode("div",{class:[[u],e.class]},[t.createVNode("div",{ref:r,class:[c,e.contentClass]},["pending"===a?.value&&l(o.loading,()=>t.createVNode("div",{class:[m]},[t.createTextVNode("map loading...")])),"failed"===a?.value&&l(o.failed,()=>t.createVNode("div",{class:[y]},[t.createTextVNode("map failed")]))]),f.value&&o.default?.()])}});function g(){return t.inject(d,null).mapInstance}const b={anchor:{type:String,default:"BMAP_ANCHOR_TOP_RIGHT"},offset:{type:Object,default:{x:0,y:0}},visible:{type:Boolean,default:!0}};var h=t.defineComponent({name:"CustomControl",props:b,setup(e,{attrs:o,slots:n}){const a=g(),l=t.ref();let r=null;return t.onMounted(()=>{const{offset:o,anchor:n,visible:i}=e;r=new BMapGL.Control,r.defaultAnchor=window[n],r.defaultOffset=new BMapGL.Size(o.x,o.y),r.initialize=e=>e.getContainer().appendChild(l.value),i&&a().addControl(r),t.watch(()=>e.visible,e=>{r&&a()[e?"addControl":"removeControl"](r)})}),t.onUnmounted(()=>{r&&a().removeControl(r)}),()=>t.createVNode("div",{style:"display: none"},[t.createVNode("div",t.mergeProps({ref:l},o),[n.default?.()])])}});const v={visible:{type:Boolean,default:!0},transform:Object,png8:Boolean,height:Number,retry:{type:Boolean,default:void 0},retryTime:Number,transparentPng:{type:Boolean,default:!0},dataType:Number,spanLevel:{type:Number,default:0},tileTypeName:String,cacheSize:{type:Number,default:256},customLayer:{type:Boolean,default:void 0},clipTile:{type:Boolean,default:void 0},isTop:Boolean,opacity:{type:Number,default:1},isLowText:Boolean,boundary:Array,showRegion:String,useThumbData:Boolean,zIndex:Number,zIndexTop:Boolean,tileUrlTemplate:String,getTileUrl:Function,getTilesUrl:Function};var T=t.defineComponent({name:"TileLayer",props:v,setup(e){const o=g();let n,a=[],l=null;const r=e=>{l?.setZIndex(e)},i=e=>{e?l?.addBoundary(e):l?.clearBoundary()},s=e=>{l?.setTop(e)},d=(e,t)=>{const o=t=>{t.tileInfo=e.tileInfo,e.cb(t,e.key)},n=()=>e.cb(null,e.key);if("string"==typeof t||t instanceof HTMLCanvasElement){const e=new Image;e.crossOrigin="anonymous",e.onload=()=>o(e),e.onerror=n,e.src="string"==typeof t?t:t.toDataURL()}else t instanceof HTMLImageElement?o(t):n()},p=t=>{const o=a.find(e=>e.key===t.key);o?(o.cb(null,t.key),o.cb=t.cb):a.push(t),n&&clearTimeout(n),n=setTimeout(()=>(()=>{if(0===a.length)return;const{getTilesUrl:t}=e,o=[...a];a=[];const n=o.map(({key:e,tile:t,boundRange:o})=>({key:e,tile:t,boundRange:o}));t(n,e=>{for(const t of e){const e=o.findIndex(e=>e.key===t.key);if(-1!==e){const n=o[e];d(n,t.img),o.splice(e,1)}}o.forEach(e=>{e.cb(null,e.key)})})})(),50)},u=()=>{const{getTileUrl:t,getTilesUrl:n}=e;l&&(t?(o().addTileLayer(l),l.loadRasterTileData=function(e,o){const n=this.getTileKey(e),a=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});t({x:e.col,y:e.row,z:e.zoom},a,t=>{d({cb:o,boundRange:a,key:n,tileInfo:e},t)})}):n?(o().addTileLayer(l),l.loadRasterTileData=function(e,t){const o=this.getTileKey(e),n={x:e.col,y:e.row,z:e.zoom},a=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});p({key:o,tile:n,boundRange:a,cb:t,tileInfo:e})}):o().addTileLayer(l))};return(()=>{const{visible:n,transform:a,png8:d,height:p,retry:c,retryTime:m,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:h,customLayer:v,clipTile:T,isTop:w,opacity:B,isLowText:S,showRegion:C,useThumbData:M,tileUrlTemplate:x}=e;l=new BMapGL.TileLayer({transform:a,png8:d,height:p,retry:c,retryTime:m,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:h,customLayer:v,clipTile:T,isTop:w,opacity:B,isLowText:S,showRegion:C,useThumbData:M,tileUrlTemplate:x}),(()=>{const{zIndex:t,boundary:o}=e;i(o),r(t)})(),n&&u(),t.watch(()=>e.zIndex,r),t.watch(()=>e.boundary,i),t.watch(()=>e.zIndexTop,s),t.watch(()=>e.visible,e=>e?u():o().removeTileLayer(l))})(),t.onUnmounted(()=>{l&&o().removeTileLayer(l)}),()=>t.createVNode(t.Fragment,null,null)}});const w={visible:{type:Boolean,default:!0},getTile:{type:Function},useThumbData:{type:Boolean,default:!1},xTemplate:{type:Function},yTemplate:{type:Function},zTemplate:{type:Function},bTemplate:{type:Function},minZoom:{type:Number,default:3},maxZoom:{type:Number,default:23},extent:{type:Array},extentCRSIsWGS84:{type:Boolean,default:!1},boundary:{type:Array},zIndex:{type:Number,default:1},zIndexTop:{type:Boolean,default:!1},tms:{type:Boolean,default:!1}};var B=t.defineComponent({name:"XyzLayer",props:w,setup(e){const o=g();let n=null;const a=e=>{n?.setZIndex(e)},l=e=>{e&&!e.length?n?.addBoundary(e):n?.clearBoundary()},r=()=>{const{zIndex:t,zIndexTop:o}=e;a(t),(e=>{e&&n?.setZIndexTop()})(o)};return(()=>{const{visible:i,getTile:s,xTemplate:d,yTemplate:p,zTemplate:u,bTemplate:c,minZoom:m,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:h,tms:v}=e;n=new BMapGL.XYZLayer({xTemplate:d,yTemplate:p,zTemplate:u,bTemplate:c,minZoom:m,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:h,tms:v}),r(),i&&(s?(o().addTileLayer(n),n.loadRasterTileData=function(e,t){const o=this.getTileKey(e),n=n=>{n.tileInfo=e,t&&t(n,o)},a=()=>t&&t(null,o),l=BMapGL.XYZProjection.getTileRangeExtent([e.zoom,e.col,e.row]);s({x:e.col,y:e.row,z:e.zoom},l,e=>{if("string"==typeof e||e instanceof HTMLCanvasElement){const t=new Image;t.crossOrigin="anonymous",t.onload=()=>n(t),t.onerror=a,t.src="string"==typeof e?e:e.toDataURL()}else e instanceof HTMLImageElement?n(e):a()})}):o().addTileLayer(n)),t.watch(()=>e.zIndex,a),t.watch(()=>e.boundary,l)})(),t.onUnmounted(()=>{n&&o().removeTileLayer(n)}),()=>t.createVNode(t.Fragment,null,null)}});const S={show:Boolean,offset:{type:Object,default:{x:0,y:0}},width:{type:Number,default:0},height:{type:Number,default:0},maxWidth:Number,position:Object,enableAutoPan:{type:Boolean,default:!0},enableCloseOnClick:{type:Boolean,default:!0},"onUpdate:show":Function,title:String};var C=t.defineComponent({name:"InfoWindow",props:S,setup(e,{slots:o,attrs:n}){const a=g(),l=t.ref();let r=null;const i=t.computed({get:()=>e.show,set:t=>e["onUpdate:show"]?.(t)}),s=()=>{r&&(r.hide?.(),a().removeOverlay(r),r=null)},d=()=>{r?.redraw(),Array.prototype.forEach.call(l.value?.querySelectorAll("img")??[],e=>{e.onload=()=>{r?.redraw()}})},p=()=>{const{width:t,height:o,title:n,maxWidth:s,offset:p,enableAutoPan:u,position:c,enableCloseOnClick:m}=e;r=new BMapGL.InfoWindow(l.value,{width:t,height:o,title:n,maxWidth:s,offset:new BMapGL.Size(p.x,p.y),enableAutoPan:u,enableCloseOnClick:m}),r.addEventListener("close",()=>{e.show&&(i.value=!1)}),r.addEventListener("open",()=>{e.show||(i.value=!0)}),a().addOverlay(r);const y=Array.isArray(c)?new BMapGL.Point(c[0],c[1]):c;a()?.openInfoWindow(r,y),d()},u=e=>{const t=Array.isArray(e)?new BMapGL.Point(e[0],e[1]):e;r?.setPosition(t)},c=e=>{r?.setWidth(e)},m=e=>{r?.setHeight(e)},y=e=>{r?.setTitle(e)},f=()=>{e.show&&p(),(()=>{const e=window.MutationObserver;e&&new e(()=>{r?.redraw()}).observe(l.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0})})(),t.watch(()=>e.position,u,{deep:!0}),t.watch(()=>e.width,c),t.watch(()=>e.height,m),t.watch(()=>e.title,y),t.watch(()=>e.show,()=>e.show?p():s())};return t.onMounted(()=>{l.value?f():t.nextTick(()=>f())}),t.onUpdated(()=>{var e;r&&r.isOpen()&&(e=l.value??"",r?.setContent(e),d())}),t.onUnmounted(()=>{r&&s()}),()=>t.createVNode("div",{style:"display: none"},[t.createVNode("div",t.mergeProps({ref:l},n),[o.default?.()])])}});const M={visible:{type:Boolean,default:!0}};var x=t.defineComponent({name:"Marker",props:M,setup:()=>()=>t.createVNode(t.Fragment,null,null)});const R={visible:{type:Boolean,default:!0},points:{type:Array},strokeColor:{type:String,default:"#000"},fillColor:{type:String,default:"#fff"},isBoundary:{type:Boolean,default:!1},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},fillOpacity:{type:Number,default:.3},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},enableClicking:{type:Boolean,default:!0},autoCenter:{type:Boolean,default:!0}};var L=t.defineComponent({name:"Polygon",props:R,setup:e=>{const o=g();let a=null;const l=()=>{t.nextTick(()=>{if(e.autoCenter)try{const e=a?.getBounds();if(e){const t=e.getCenter();o().panTo(t)}}catch(e){console.warn("BPolygon","auto set center error",e)}})},r=e=>{a&&a.setStrokeColor(e)};function i(e){a&&a.setStrokeOpacity(e)}const s=e=>{a&&a.setFillColor(e)},d=e=>{a&&a.setFillOpacity(e)},p=e=>{a&&a.setStrokeWeight(e)},u=e=>{a&&(e?a.enableMassClear():a.disableMassClear())},c=e=>{a&&(e?a.enableEditing():a.disableEditing())},m=()=>{const{points:m,visible:y,strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:T,enableMassClear:w,enableEditing:B,enableClicking:S}=e;m&&m.length&&(a=new BMapGL.Polygon(n(m),{strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:T,enableMassClear:w,enableEditing:B,enableClicking:S}),y&&o().addOverlay(a),y&&l(),t.watch(()=>e.strokeColor,r),t.watch(()=>e.strokeOpacity,i),t.watch(()=>e.fillColor,s),t.watch(()=>e.fillOpacity,d),t.watch(()=>e.strokeWeight,p),t.watch(()=>e.enableMassClear,u),t.watch(()=>e.enableEditing,c),t.watch(()=>e.visible,e=>{o()[e?"addOverlay":"removeOverlay"](a),e&&l()}))};return m(),t.watch(()=>e.points,e=>a?(e=>{e&&a?.setPath(n(e)),console.log("setPath",n(e)),l()})(e):m(),{deep:!0}),t.onUnmounted(()=>{a&&o().removeOverlay(a)}),()=>t.createVNode(t.Fragment,null,null)}}),k=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=s,e.BCustomControl=h,e.BInfoWindow=C,e.BMap=f,e.BMarker=x,e.BPolygon=L,e.BSector=k,e.BTileLayer=T,e.BXyzLayer=B,e.configProviderInjectionKey=i,e.configProviderProps=r,e.create=function({componentPrefix:e="B",components:t=[]}={}){const o=[];function n(t,o,n){t.component(e+o)||t.component(e+o,n)}return{componentPrefix:e,install:function(e){o.includes(e)||(o.push(e),t.forEach(t=>{const{name:o,alias:a}=t;n(e,o,t),a&&a.forEach(o=>{n(e,o,t)})}))}}},e.customControlProps=b,e.infoWindowProps=S,e.mapInjectionKey=d,e.mapProps=p,e.markerProps=M,e.polygonProps=R,e.tileLayerProps=v,e.xyzLayerProps=w});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,t){"use strict";let o=!1;function n(e){if(!e||0===e.length)return[];const t=e[0];return Array.isArray(t)?e.map(([e,t])=>new BMapGL.Point(e,t)):e}function a(e){return e.some(e=>!t.isVNode(e)||e.type!==Comment&&!(e.type===t.Fragment&&!a(e.children)))?e:null}function l(e,t){return t(e&&a(e())||null)}const r={ak:String,apiUrl:String,plugins:Array,mapConfig:Object},i=Symbol("b-config-provider");var s=t.defineComponent({name:"ConfigProvider",props:r,setup(e,{slots:n}){const a=t.ref("notload"),l=e.apiUrl?"_initBMap_":`_initBMap_${e.ak}`,r=e.apiUrl?`${e.apiUrl.replace(/&$/,"")}&callback=${l}`:`//api.map.baidu.com/api?type=webgl&v=1.0&ak=${e.ak}&callback=${l}`;a.value="pending",function(e){const{key:t,src:n,addCalToWindow:a=!0,timeout:l=1e4}=e;return o&&window.BMapGL||window.BMapGL?Promise.resolve():new Promise((e,r)=>{const i=document.createElement("script");i.src=n,i.type="text/javascript",i.defer=!0;const s=()=>{i.onload=null,i.onerror=null,document.body.contains(i)&&document.body.removeChild(i)},d=setTimeout(()=>{s(),r(new Error(`Script load timeout: ${n}`))},l),p=()=>{clearTimeout(d),o=!0,s(),e()};a?window[t]=p:i.onload=p,i.onerror=()=>{clearTimeout(d),s(),r(new Error(`Failed to load script: ${n}`))},document.body.appendChild(i)})}({key:l,src:r}).then(()=>{a.value="loaded"}).catch(()=>{a.value="failed"});const s=t.computed(()=>{const{mapConfig:t}=e;return t??{}});return t.provide(i,{mergedStatusRef:a,mergedMapSetRef:s}),()=>t.renderSlot(n,"default")}});const d=Symbol("b-map"),p={maxZoom:Number,minZoom:Number,heading:Number,center:Object,zoom:Number,class:String,contentClass:String,enableScrollWheelZoom:{type:Boolean,default:void 0},enableDragging:{type:Boolean,default:void 0},tilt:Number,enableTilt:{type:Boolean,default:void 0},mapType:String,enableAutoResize:{type:Boolean,default:void 0},enableTiltGestures:{type:Boolean,default:void 0},enableRotate:{type:Boolean,default:void 0},enableRotateGestures:{type:Boolean,default:void 0},displayOptions:Object,onInitd:Function,onClick:Function,onDblclick:Function,onMousemove:Function};var u="map-module_b-map__29r3m",c="map-module_b-map-content__sMaJG",m="map-module_b-map-loading__qc4a8",y="map-module_b-map-failed__-w-tX";!function(e,t){void 0===t&&(t={});var o=t.insertAt;if("undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===o&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".map-module_b-map-content__sMaJG,.map-module_b-map__29r3m{height:100%;overflow:hidden;position:relative;width:100%}.map-module_b-map-failed__-w-tX,.map-module_b-map-loading__qc4a8{color:#999;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}");var f=t.defineComponent({name:"Map",props:p,slots:Object,setup(e,{slots:o}){const{mergedMapSetRef:n,mergedStatusRef:a}=function(e={}){const o=t.inject(i,null);return{mergedStatusRef:o?.mergedStatusRef,mergedMapSetRef:t.computed(()=>{const{zoom:t,center:n,heading:a,minZoom:l,maxZoom:r,enableScrollWheelZoom:i,enableDragging:s,tilt:d,enableTilt:p,mapType:u,enableAutoResize:c,enableTiltGestures:m,enableRotate:y,enableRotateGestures:f,displayOptions:g}=e;return{zoom:t??o?.mergedMapSetRef.value?.zoom??14,center:n??o?.mergedMapSetRef.value?.center??[116.403901,39.915185],heading:a??o?.mergedMapSetRef.value?.heading??0,minZoom:l??o?.mergedMapSetRef.value?.minZoom??0,maxZoom:r??o?.mergedMapSetRef.value?.maxZoom??21,enableScrollWheelZoom:i??o?.mergedMapSetRef.value?.enableScrollWheelZoom??!1,enableDragging:s??o?.mergedMapSetRef.value?.enableDragging??!0,tilt:d??o?.mergedMapSetRef.value?.tilt??0,enableTilt:p??o?.mergedMapSetRef.value?.enableTilt??!1,mapType:u??o?.mergedMapSetRef.value?.mapType??"BMAP_NORMAL_MAP",enableAutoResize:c??o?.mergedMapSetRef.value?.enableAutoResize??!0,enableTiltGestures:m??o?.mergedMapSetRef.value?.enableTiltGestures??!1,enableRotate:y??o?.mergedMapSetRef.value?.enableRotate??!1,enableRotateGestures:f??o?.mergedMapSetRef.value?.enableRotateGestures??!1,displayOptions:g??o?.mergedMapSetRef.value?.displayOptions}})}}(e),r=t.ref();let s,p=null;const f=t.ref(!1);t.provide(d,{mapInstance:()=>p});const g=e=>{"string"==typeof e?p?.centerAndZoom(e,n.value.zoom):Array.isArray(e)?p?.centerAndZoom(new BMapGL.Point(e[0],e[1]),n.value.zoom):p?.centerAndZoom(e,n.value.zoom)},b=e=>{e?p.enableScrollWheelZoom():p.disableScrollWheelZoom()},h=e=>{p?.setDisplayOptions(e||{})},v=e=>{p?.setTilt(e??0)},T=e=>{p?.setHeading(e??0)},w=e=>{e?p.enableDragging():p.disableDragging()},B=e=>{void 0!==window[e]&&p.setMapType(window[e])},S=()=>{const{maxZoom:o,minZoom:a,enableTilt:l,mapType:i,enableAutoResize:d,enableTiltGestures:u,enableRotate:c,enableRotateGestures:m,displayOptions:y}=n.value;p=new BMapGL.Map(r.value,{maxZoom:o,minZoom:a,enableTilt:l,mapType:window[i],enableAutoResize:d,enableTiltGestures:u,enableRotate:c,enableRotateGestures:m,displayOptions:y});const{onInitd:S}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:o,tilt:a,enableDragging:l}=n.value;T(t),g(e),b(o),v(a),w(l)})(),t.watch(()=>n.value.center,g,{deep:!0}),t.watch(()=>n.value.enableScrollWheelZoom,b),t.watch(()=>n.value.displayOptions,h),t.watch(()=>n.value.tilt,v),t.watch(()=>n.value.heading,T),t.watch(()=>n.value.enableDragging,w),t.watch(()=>n.value.mapType,B),S?.({map:p}),s=function(e,t){const o=Object.keys(t).filter(e=>e.startsWith("on")&&!e.startsWith("onUpdate")&&"function"==typeof t[e]).map(o=>{const n=o.slice(2).toLocaleLowerCase(),a=t[o],l=e=>{e.preventDefault?.()||e.domEvent?.preventDefault?.(),e.stopPropagation?.()||e.domEvent?.stopPropagation?.(),a(e)};return e.addEventListener(n,l),()=>e.removeEventListener(n,l)});return()=>o.forEach(e=>e())}(p,e),f.value=!0};return t.onMounted(()=>{t.watchEffect(()=>{"loaded"!==a?.value||f.value||t.nextTick(S)})}),t.onUnmounted(()=>{if(p)try{s?.(),p?.destroy()}catch(e){console.error(`[Vue3 BMapGL]: ${e.message}`)}}),()=>t.createVNode("div",{class:[[u],e.class]},[t.createVNode("div",{ref:r,class:[c,e.contentClass]},["pending"===a?.value&&l(o.loading,()=>t.createVNode("div",{class:[m]},[t.createTextVNode("map loading...")])),"failed"===a?.value&&l(o.failed,()=>t.createVNode("div",{class:[y]},[t.createTextVNode("map failed")]))]),f.value&&o.default?.()])}});function g(){return t.inject(d,null).mapInstance}const b={anchor:{type:String,default:"BMAP_ANCHOR_TOP_RIGHT"},offset:{type:Object,default:{x:0,y:0}},visible:{type:Boolean,default:!0}};var h=t.defineComponent({name:"CustomControl",props:b,setup(e,{attrs:o,slots:n}){const a=g(),l=t.ref();let r=null;return t.onMounted(()=>{const{offset:o,anchor:n,visible:i}=e;r=new BMapGL.Control,r.defaultAnchor=window[n],r.defaultOffset=new BMapGL.Size(o.x,o.y),r.initialize=e=>e.getContainer().appendChild(l.value),i&&a().addControl(r),t.watch(()=>e.visible,e=>{r&&a()[e?"addControl":"removeControl"](r)})}),t.onUnmounted(()=>{r&&a().removeControl(r)}),()=>t.createVNode("div",{style:"display: none"},[t.createVNode("div",t.mergeProps({ref:l},o),[n.default?.()])])}});const v={visible:{type:Boolean,default:!0},transform:Object,png8:Boolean,height:Number,retry:{type:Boolean,default:void 0},retryTime:Number,transparentPng:{type:Boolean,default:!0},dataType:Number,spanLevel:{type:Number,default:0},tileTypeName:String,cacheSize:{type:Number,default:256},customLayer:{type:Boolean,default:void 0},clipTile:{type:Boolean,default:void 0},isTop:Boolean,opacity:{type:Number,default:1},isLowText:Boolean,boundary:Array,showRegion:String,useThumbData:Boolean,zIndex:Number,zIndexTop:Boolean,tileUrlTemplate:String,getTileUrl:Function,getTilesUrl:Function};var T=t.defineComponent({name:"TileLayer",props:v,setup(e){const o=g();let n,a=[],l=null;const r=e=>{l?.setZIndex(e)},i=e=>{e?l?.addBoundary(e):l?.clearBoundary()},s=e=>{l?.setTop(e)},d=(e,t)=>{const o=t=>{t.tileInfo=e.tileInfo,e.cb(t,e.key)},n=()=>e.cb(null,e.key);if("string"==typeof t||t instanceof HTMLCanvasElement){const e=new Image;e.crossOrigin="anonymous",e.onload=()=>o(e),e.onerror=n,e.src="string"==typeof t?t:t.toDataURL()}else t instanceof HTMLImageElement?o(t):n()},p=t=>{const o=a.find(e=>e.key===t.key);o?(o.cb(null,t.key),o.cb=t.cb):a.push(t),n&&clearTimeout(n),n=setTimeout(()=>(()=>{if(0===a.length)return;const{getTilesUrl:t}=e,o=[...a];a=[];const n=o.map(({key:e,tile:t,boundRange:o})=>({key:e,tile:t,boundRange:o}));t(n,e=>{for(const t of e){const e=o.findIndex(e=>e.key===t.key);if(-1!==e){const n=o[e];d(n,t.img),o.splice(e,1)}}o.forEach(e=>{e.cb(null,e.key)})})})(),50)},u=()=>{const{getTileUrl:t,getTilesUrl:n}=e;l&&(t?(o().addTileLayer(l),l.loadRasterTileData=function(e,o){const n=this.getTileKey(e),a=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});t({x:e.col,y:e.row,z:e.zoom},a,t=>{d({cb:o,boundRange:a,key:n,tileInfo:e},t)})}):n?(o().addTileLayer(l),l.loadRasterTileData=function(e,t){const o=this.getTileKey(e),n={x:e.col,y:e.row,z:e.zoom},a=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});p({key:o,tile:n,boundRange:a,cb:t,tileInfo:e})}):o().addTileLayer(l))};return(()=>{const{visible:n,transform:a,png8:d,height:p,retry:c,retryTime:m,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:h,customLayer:v,clipTile:T,isTop:w,opacity:B,isLowText:S,showRegion:C,useThumbData:M,tileUrlTemplate:x}=e;l=new BMapGL.TileLayer({transform:a,png8:d,height:p,retry:c,retryTime:m,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:h,customLayer:v,clipTile:T,isTop:w,opacity:B,isLowText:S,showRegion:C,useThumbData:M,tileUrlTemplate:x}),(()=>{const{zIndex:t,boundary:o}=e;i(o),r(t)})(),n&&u(),t.watch(()=>e.zIndex,r),t.watch(()=>e.boundary,i),t.watch(()=>e.zIndexTop,s),t.watch(()=>e.visible,e=>e?u():o().removeTileLayer(l))})(),t.onUnmounted(()=>{l&&o().removeTileLayer(l)}),()=>t.createVNode(t.Fragment,null,null)}});const w={visible:{type:Boolean,default:!0},getTile:{type:Function},useThumbData:{type:Boolean,default:!1},xTemplate:{type:Function},yTemplate:{type:Function},zTemplate:{type:Function},bTemplate:{type:Function},minZoom:{type:Number,default:3},maxZoom:{type:Number,default:23},extent:{type:Array},extentCRSIsWGS84:{type:Boolean,default:!1},boundary:{type:Array},zIndex:{type:Number,default:1},zIndexTop:{type:Boolean,default:!1},tms:{type:Boolean,default:!1}};var B=t.defineComponent({name:"XyzLayer",props:w,setup(e){const o=g();let n=null;const a=e=>{n?.setZIndex(e)},l=e=>{e&&!e.length?n?.addBoundary(e):n?.clearBoundary()},r=()=>{const{zIndex:t,zIndexTop:o}=e;a(t),(e=>{e&&n?.setZIndexTop()})(o)};return(()=>{const{visible:i,getTile:s,xTemplate:d,yTemplate:p,zTemplate:u,bTemplate:c,minZoom:m,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:h,tms:v}=e;n=new BMapGL.XYZLayer({xTemplate:d,yTemplate:p,zTemplate:u,bTemplate:c,minZoom:m,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:h,tms:v}),r(),i&&(s?(o().addTileLayer(n),n.loadRasterTileData=function(e,t){const o=this.getTileKey(e),n=n=>{n.tileInfo=e,t&&t(n,o)},a=()=>t&&t(null,o),l=BMapGL.XYZProjection.getTileRangeExtent([e.zoom,e.col,e.row]);s({x:e.col,y:e.row,z:e.zoom},l,e=>{if("string"==typeof e||e instanceof HTMLCanvasElement){const t=new Image;t.crossOrigin="anonymous",t.onload=()=>n(t),t.onerror=a,t.src="string"==typeof e?e:e.toDataURL()}else e instanceof HTMLImageElement?n(e):a()})}):o().addTileLayer(n)),t.watch(()=>e.zIndex,a),t.watch(()=>e.boundary,l)})(),t.onUnmounted(()=>{n&&o().removeTileLayer(n)}),()=>t.createVNode(t.Fragment,null,null)}});const S={show:Boolean,offset:{type:Object,default:{x:0,y:0}},width:{type:Number,default:0},height:{type:Number,default:0},maxWidth:Number,position:Object,enableAutoPan:{type:Boolean,default:!0},enableCloseOnClick:{type:Boolean,default:!0},"onUpdate:show":Function,title:String};var C=t.defineComponent({name:"InfoWindow",props:S,setup(e,{slots:o,attrs:n}){const a=g(),l=t.ref();let r=null;const i=t.computed({get:()=>e.show,set:t=>e["onUpdate:show"]?.(t)}),s=()=>{r&&(r.hide?.(),a().removeOverlay(r),r=null)},d=()=>{r?.redraw(),Array.prototype.forEach.call(l.value?.querySelectorAll("img")??[],e=>{e.onload=()=>{r?.redraw()}})},p=()=>{const{width:t,height:o,title:n,maxWidth:s,offset:p,enableAutoPan:u,position:c,enableCloseOnClick:m}=e;r=new BMapGL.InfoWindow(l.value,{width:t,height:o,title:n,maxWidth:s,offset:new BMapGL.Size(p.x,p.y),enableAutoPan:u,enableCloseOnClick:m}),r.addEventListener("close",()=>{e.show&&(i.value=!1)}),r.addEventListener("open",()=>{e.show||(i.value=!0)}),a().addOverlay(r);const y=Array.isArray(c)?new BMapGL.Point(c[0],c[1]):c;a()?.openInfoWindow(r,y),d()},u=e=>{const t=Array.isArray(e)?new BMapGL.Point(e[0],e[1]):e;r?.setPosition(t)},c=e=>{r?.setWidth(e)},m=e=>{r?.setHeight(e)},y=e=>{r?.setTitle(e)},f=()=>{e.show&&p(),(()=>{const e=window.MutationObserver;e&&new e(()=>{r?.redraw()}).observe(l.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0})})(),t.watch(()=>e.position,u,{deep:!0}),t.watch(()=>e.width,c),t.watch(()=>e.height,m),t.watch(()=>e.title,y),t.watch(()=>e.show,()=>e.show?p():s())};return t.onMounted(()=>{l.value?f():t.nextTick(()=>f())}),t.onUpdated(()=>{var e;r&&r.isOpen()&&(e=l.value??"",r?.setContent(e),d())}),t.onUnmounted(()=>{r&&s()}),()=>t.createVNode("div",{style:"display: none"},[t.createVNode("div",t.mergeProps({ref:l},n),[o.default?.()])])}});const M={visible:{type:Boolean,default:!0}};var x=t.defineComponent({name:"Marker",props:M,setup:()=>()=>t.createVNode(t.Fragment,null,null)});const R={visible:{type:Boolean,default:!0},points:{type:Array},strokeColor:{type:String,default:"#000"},fillColor:{type:String,default:"#fff"},isBoundary:{type:Boolean,default:!1},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},fillOpacity:{type:Number,default:.3},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},enableClicking:{type:Boolean,default:!0},autoCenter:{type:Boolean,default:!0}};var L=t.defineComponent({name:"Polygon",props:R,setup:e=>{const o=g();let a=null;const l=()=>{t.nextTick(()=>{if(e.autoCenter)try{const e=a?.getBounds();if(e){const t=e.getCenter();o().panTo(t)}}catch(e){console.warn("BPolygon","auto set center error",e)}})},r=e=>{a&&a.setStrokeColor(e)};function i(e){a&&a.setStrokeOpacity(e)}const s=e=>{a&&a.setFillColor(e)},d=e=>{a&&a.setFillOpacity(e)},p=e=>{a&&a.setStrokeWeight(e)},u=e=>{a&&(e?a.enableMassClear():a.disableMassClear())},c=e=>{a&&(e?a.enableEditing():a.disableEditing())},m=()=>{const{points:m,visible:y,strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:T,enableMassClear:w,enableEditing:B,enableClicking:S}=e;m&&m.length&&(a=new BMapGL.Polygon(n(m),{strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:T,enableMassClear:w,enableEditing:B,enableClicking:S}),y&&o().addOverlay(a),y&&l(),t.watch(()=>e.strokeColor,r),t.watch(()=>e.strokeOpacity,i),t.watch(()=>e.fillColor,s),t.watch(()=>e.fillOpacity,d),t.watch(()=>e.strokeWeight,p),t.watch(()=>e.enableMassClear,u),t.watch(()=>e.enableEditing,c),t.watch(()=>e.visible,e=>{o()[e?"addOverlay":"removeOverlay"](a),e&&l()}))};return m(),t.watch(()=>e.points,e=>a?(e=>{e&&a?.setPath(n(e)),l()})(e):m(),{deep:!0}),t.onUnmounted(()=>{a&&o().removeOverlay(a)}),()=>t.createVNode(t.Fragment,null,null)}}),k=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=s,e.BCustomControl=h,e.BInfoWindow=C,e.BMap=f,e.BMarker=x,e.BPolygon=L,e.BSector=k,e.BTileLayer=T,e.BXyzLayer=B,e.configProviderInjectionKey=i,e.configProviderProps=r,e.create=function({componentPrefix:e="B",components:t=[]}={}){const o=[];function n(t,o,n){t.component(e+o)||t.component(e+o,n)}return{componentPrefix:e,install:function(e){o.includes(e)||(o.push(e),t.forEach(t=>{const{name:o,alias:a}=t;n(e,o,t),a&&a.forEach(o=>{n(e,o,t)})}))}}},e.customControlProps=b,e.infoWindowProps=S,e.mapInjectionKey=d,e.mapProps=p,e.markerProps=M,e.polygonProps=R,e.tileLayerProps=v,e.xyzLayerProps=w});
|
package/es/_utils/map.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
let isScriptLoaded = false;
|
|
2
2
|
function loader(options) {
|
|
3
3
|
const { key, src, addCalToWindow = true, timeout = 1e4 } = options;
|
|
4
|
-
if (isScriptLoaded && window.BMapGL) {
|
|
4
|
+
if (isScriptLoaded && window.BMapGL || window.BMapGL) {
|
|
5
5
|
return Promise.resolve();
|
|
6
6
|
}
|
|
7
7
|
return new Promise((resolve, reject) => {
|
package/es/_utils/map.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.mjs","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded && window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n\r\nexport function listToMapPoints(points?: BMapGL.Point[] | number[][] | string[]): BMapGL.Point[] {\r\n if (!points || points.length === 0) {\r\n return []\r\n }\r\n\r\n const first = points[0]\r\n\r\n if (Array.isArray(first)) {\r\n return (points as number[][]).map(([lng, lat]) => new BMapGL.Point(lng, lat))\r\n }\r\n\r\n if (typeof first === 'string') {\r\n return points as BMapGL.Point[]\r\n }\r\n\r\n return points as BMapGL.Point[]\r\n}\r\n\r\nexport function setupMapEvents(map: any, props: Record<string, any>) {\r\n const cleanup = Object.keys(props)\r\n .filter(key => key.startsWith('on') && !key.startsWith('onUpdate') && typeof props[key] === 'function')\r\n .map((propName) => {\r\n const eventName = propName.slice(2).toLocaleLowerCase()\r\n const handler = props[propName]\r\n\r\n const wrapper = (e: any) => {\r\n e.preventDefault?.() || e.domEvent?.preventDefault?.()\r\n e.stopPropagation?.() || e.domEvent?.stopPropagation?.()\r\n handler(e)\r\n }\r\n\r\n map.addEventListener(eventName, wrapper)\r\n return () => map.removeEventListener(eventName, wrapper)\r\n })\r\n\r\n return () => cleanup.forEach(fn => fn())\r\n}\r\n"],"names":[],"mappings":"AAOA,IAAI,cAAA,GAAiB,KAAA;AAEf,SAAU,OAAO,OAAA,EAAsB;AAC3C,EAAA,MAAM,EACJ,GAAA,EACA,GAAA,EACA,iBAAiB,IAAA,EACjB,OAAA,GAAU,KAAK,GACb,OAAA;AAEJ,EAAA,
|
|
1
|
+
{"version":3,"file":"map.mjs","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if ((isScriptLoaded && window.BMapGL) || window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n\r\nexport function listToMapPoints(points?: BMapGL.Point[] | number[][] | string[]): BMapGL.Point[] {\r\n if (!points || points.length === 0) {\r\n return []\r\n }\r\n\r\n const first = points[0]\r\n\r\n if (Array.isArray(first)) {\r\n return (points as number[][]).map(([lng, lat]) => new BMapGL.Point(lng, lat))\r\n }\r\n\r\n if (typeof first === 'string') {\r\n return points as BMapGL.Point[]\r\n }\r\n\r\n return points as BMapGL.Point[]\r\n}\r\n\r\nexport function setupMapEvents(map: any, props: Record<string, any>) {\r\n const cleanup = Object.keys(props)\r\n .filter(key => key.startsWith('on') && !key.startsWith('onUpdate') && typeof props[key] === 'function')\r\n .map((propName) => {\r\n const eventName = propName.slice(2).toLocaleLowerCase()\r\n const handler = props[propName]\r\n\r\n const wrapper = (e: any) => {\r\n e.preventDefault?.() || e.domEvent?.preventDefault?.()\r\n e.stopPropagation?.() || e.domEvent?.stopPropagation?.()\r\n handler(e)\r\n }\r\n\r\n map.addEventListener(eventName, wrapper)\r\n return () => map.removeEventListener(eventName, wrapper)\r\n })\r\n\r\n return () => cleanup.forEach(fn => fn())\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,6 @@ var polygon = /* @__PURE__ */ defineComponent({
|
|
|
32
32
|
}
|
|
33
33
|
const setPoints = (points) => {
|
|
34
34
|
points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(listToMapPoints(points)));
|
|
35
|
-
console.log("setPath", listToMapPoints(points));
|
|
36
35
|
syncMapCenter();
|
|
37
36
|
};
|
|
38
37
|
const setFillColor = (color) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.mjs","sources":["../../../../src/overlay/polygon/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polygon/src/polygon.tsx"],"sourcesContent":["import { defineComponent, nextTick, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { listToMapPoints } from '../../../_utils'\r\nimport { polygonProps } from './polygon-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polygon',\r\n props: polygonProps,\r\n setup: (props) => {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polygon | null = null\r\n\r\n const syncMapCenter = () => {\r\n nextTick(() => {\r\n if (props.autoCenter) {\r\n try {\r\n const bounds = overlay?.getBounds()\r\n if (bounds) {\r\n const center = bounds.getCenter()\r\n mapInstance().panTo(center)\r\n }\r\n } catch (e) {\r\n console.warn('BPolygon', 'auto set center error', e)\r\n }\r\n }\r\n })\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay && overlay.setStrokeColor(color)\r\n }\r\n\r\n function setStrokeOpacity(opacity: number): void {\r\n overlay && overlay.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setPoints = (points: any) => {\r\n points && overlay?.setPath(listToMapPoints(points))\r\n
|
|
1
|
+
{"version":3,"file":"polygon.mjs","sources":["../../../../src/overlay/polygon/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polygon/src/polygon.tsx"],"sourcesContent":["import { defineComponent, nextTick, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { listToMapPoints } from '../../../_utils'\r\nimport { polygonProps } from './polygon-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polygon',\r\n props: polygonProps,\r\n setup: (props) => {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polygon | null = null\r\n\r\n const syncMapCenter = () => {\r\n nextTick(() => {\r\n if (props.autoCenter) {\r\n try {\r\n const bounds = overlay?.getBounds()\r\n if (bounds) {\r\n const center = bounds.getCenter()\r\n mapInstance().panTo(center)\r\n }\r\n } catch (e) {\r\n console.warn('BPolygon', 'auto set center error', e)\r\n }\r\n }\r\n })\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay && overlay.setStrokeColor(color)\r\n }\r\n\r\n function setStrokeOpacity(opacity: number): void {\r\n overlay && overlay.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setPoints = (points: any) => {\r\n points && overlay?.setPath(listToMapPoints(points))\r\n syncMapCenter()\r\n }\r\n\r\n const setFillColor = (color: string) => {\r\n overlay && overlay.setFillColor(color)\r\n }\r\n\r\n const setFillOpacity = (opacity: number) => {\r\n overlay && overlay.setFillOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay && overlay.setStrokeWeight(weight)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n if (overlay)\r\n enableMassClear ? overlay.enableMassClear() : overlay.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing?: boolean) => {\r\n if (overlay)\r\n enableEditing ? overlay.enableEditing() : overlay.disableEditing()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\r\n watch(() => props.fillColor, setFillColor)\r\n watch(() => props.fillOpacity, setFillOpacity)\r\n watch(() => props.strokeWeight, setStrokeWeight)\r\n // watch(() => props.strokeStyle, setStrokeStyle)\r\n watch(() => props.enableMassClear, setMassClear)\r\n watch(() => props.enableEditing, setEditing)\r\n watch(() => props.visible, (n) => {\r\n mapInstance()[n ? 'addOverlay' : 'removeOverlay'](overlay!)\r\n n && syncMapCenter()\r\n })\r\n }\r\n\r\n const init = () => {\r\n const { points, visible, strokeColor, fillColor, strokeWeight, strokeOpacity, fillOpacity, strokeStyle, enableMassClear, enableEditing, enableClicking } = props\r\n if (!points || !points.length) {\r\n return\r\n }\r\n overlay = new BMapGL.Polygon(listToMapPoints(points), {\r\n strokeColor,\r\n fillColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n fillOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n visible && syncMapCenter()\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n\r\n watch(() => props.points, points => overlay ? setPoints(points) : init(), { deep: true })\r\n\r\n onUnmounted(() => {\r\n if (overlay) {\r\n mapInstance().removeOverlay(overlay)\r\n }\r\n })\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polygonProps","setup","mapInstance","useMapInstance","overlay","syncMapCenter","nextTick","autoCenter","bounds","getBounds","center","getCenter","panTo","e","console","warn","setStrokeColor","color","setStrokeOpacity","opacity","setPoints","points","setPath","listToMapPoints","setFillColor","setFillOpacity","setStrokeWeight","weight","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","startWatchProps","watch","strokeColor","strokeOpacity","fillColor","fillOpacity","strokeWeight","visible","n","init","strokeStyle","enableClicking","length","BMapGL","Polygon","addOverlay","deep","onUnmounted","removeOverlay","_createVNode","_Fragment"],"mappings":"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"}
|
package/lib/_utils/map.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
let isScriptLoaded = false;
|
|
4
4
|
function loader(options) {
|
|
5
5
|
const { key, src, addCalToWindow = true, timeout = 1e4 } = options;
|
|
6
|
-
if (isScriptLoaded && window.BMapGL) {
|
|
6
|
+
if (isScriptLoaded && window.BMapGL || window.BMapGL) {
|
|
7
7
|
return Promise.resolve();
|
|
8
8
|
}
|
|
9
9
|
return new Promise((resolve, reject) => {
|
package/lib/_utils/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if (isScriptLoaded && window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n\r\nexport function listToMapPoints(points?: BMapGL.Point[] | number[][] | string[]): BMapGL.Point[] {\r\n if (!points || points.length === 0) {\r\n return []\r\n }\r\n\r\n const first = points[0]\r\n\r\n if (Array.isArray(first)) {\r\n return (points as number[][]).map(([lng, lat]) => new BMapGL.Point(lng, lat))\r\n }\r\n\r\n if (typeof first === 'string') {\r\n return points as BMapGL.Point[]\r\n }\r\n\r\n return points as BMapGL.Point[]\r\n}\r\n\r\nexport function setupMapEvents(map: any, props: Record<string, any>) {\r\n const cleanup = Object.keys(props)\r\n .filter(key => key.startsWith('on') && !key.startsWith('onUpdate') && typeof props[key] === 'function')\r\n .map((propName) => {\r\n const eventName = propName.slice(2).toLocaleLowerCase()\r\n const handler = props[propName]\r\n\r\n const wrapper = (e: any) => {\r\n e.preventDefault?.() || e.domEvent?.preventDefault?.()\r\n e.stopPropagation?.() || e.domEvent?.stopPropagation?.()\r\n handler(e)\r\n }\r\n\r\n map.addEventListener(eventName, wrapper)\r\n return () => map.removeEventListener(eventName, wrapper)\r\n })\r\n\r\n return () => cleanup.forEach(fn => fn())\r\n}\r\n"],"names":[],"mappings":";;AAOA,IAAI,cAAA,GAAiB,KAAA;AAEf,SAAU,OAAO,OAAA,EAAsB;AAC3C,EAAA,MAAM,EACJ,GAAA,EACA,GAAA,EACA,iBAAiB,IAAA,EACjB,OAAA,GAAU,KAAK,GACb,OAAA;AAEJ,EAAA,
|
|
1
|
+
{"version":3,"file":"map.js","sources":["../../src/_utils/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/_utils/map.ts"],"sourcesContent":["export interface LoaderOptions {\r\n key: string\r\n src: string\r\n addCalToWindow?: boolean\r\n timeout?: number\r\n}\r\n\r\nlet isScriptLoaded = false\r\n\r\nexport function loader(options: LoaderOptions): Promise<void> {\r\n const {\r\n key,\r\n src,\r\n addCalToWindow = true,\r\n timeout = 10000,\r\n } = options\r\n\r\n if ((isScriptLoaded && window.BMapGL) || window.BMapGL) {\r\n return Promise.resolve()\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script')\r\n script.src = src\r\n script.type = 'text/javascript'\r\n script.defer = true\r\n\r\n const cleanup = () => {\r\n script.onload = null\r\n script.onerror = null\r\n if (document.body.contains(script)) {\r\n document.body.removeChild(script)\r\n }\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n cleanup()\r\n reject(new Error(`Script load timeout: ${src}`))\r\n }, timeout)\r\n\r\n const handleLoad = () => {\r\n clearTimeout(timer)\r\n isScriptLoaded = true\r\n cleanup()\r\n resolve()\r\n }\r\n\r\n if (addCalToWindow) {\r\n (window as any)[key] = handleLoad\r\n } else {\r\n script.onload = handleLoad\r\n }\r\n\r\n script.onerror = () => {\r\n clearTimeout(timer)\r\n cleanup()\r\n reject(new Error(`Failed to load script: ${src}`))\r\n }\r\n\r\n document.body.appendChild(script)\r\n })\r\n}\r\n\r\nexport function listToMapPoints(points?: BMapGL.Point[] | number[][] | string[]): BMapGL.Point[] {\r\n if (!points || points.length === 0) {\r\n return []\r\n }\r\n\r\n const first = points[0]\r\n\r\n if (Array.isArray(first)) {\r\n return (points as number[][]).map(([lng, lat]) => new BMapGL.Point(lng, lat))\r\n }\r\n\r\n if (typeof first === 'string') {\r\n return points as BMapGL.Point[]\r\n }\r\n\r\n return points as BMapGL.Point[]\r\n}\r\n\r\nexport function setupMapEvents(map: any, props: Record<string, any>) {\r\n const cleanup = Object.keys(props)\r\n .filter(key => key.startsWith('on') && !key.startsWith('onUpdate') && typeof props[key] === 'function')\r\n .map((propName) => {\r\n const eventName = propName.slice(2).toLocaleLowerCase()\r\n const handler = props[propName]\r\n\r\n const wrapper = (e: any) => {\r\n e.preventDefault?.() || e.domEvent?.preventDefault?.()\r\n e.stopPropagation?.() || e.domEvent?.stopPropagation?.()\r\n handler(e)\r\n }\r\n\r\n map.addEventListener(eventName, wrapper)\r\n return () => map.removeEventListener(eventName, wrapper)\r\n })\r\n\r\n return () => cleanup.forEach(fn => fn())\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,6 @@ var polygon = /* @__PURE__ */ vue.defineComponent({
|
|
|
34
34
|
}
|
|
35
35
|
const setPoints = (points) => {
|
|
36
36
|
points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(map.listToMapPoints(points)));
|
|
37
|
-
console.log("setPath", map.listToMapPoints(points));
|
|
38
37
|
syncMapCenter();
|
|
39
38
|
};
|
|
40
39
|
const setFillColor = (color) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polygon.js","sources":["../../../../src/overlay/polygon/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polygon/src/polygon.tsx"],"sourcesContent":["import { defineComponent, nextTick, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { listToMapPoints } from '../../../_utils'\r\nimport { polygonProps } from './polygon-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polygon',\r\n props: polygonProps,\r\n setup: (props) => {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polygon | null = null\r\n\r\n const syncMapCenter = () => {\r\n nextTick(() => {\r\n if (props.autoCenter) {\r\n try {\r\n const bounds = overlay?.getBounds()\r\n if (bounds) {\r\n const center = bounds.getCenter()\r\n mapInstance().panTo(center)\r\n }\r\n } catch (e) {\r\n console.warn('BPolygon', 'auto set center error', e)\r\n }\r\n }\r\n })\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay && overlay.setStrokeColor(color)\r\n }\r\n\r\n function setStrokeOpacity(opacity: number): void {\r\n overlay && overlay.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setPoints = (points: any) => {\r\n points && overlay?.setPath(listToMapPoints(points))\r\n
|
|
1
|
+
{"version":3,"file":"polygon.js","sources":["../../../../src/overlay/polygon/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polygon/src/polygon.tsx"],"sourcesContent":["import { defineComponent, nextTick, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { listToMapPoints } from '../../../_utils'\r\nimport { polygonProps } from './polygon-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polygon',\r\n props: polygonProps,\r\n setup: (props) => {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polygon | null = null\r\n\r\n const syncMapCenter = () => {\r\n nextTick(() => {\r\n if (props.autoCenter) {\r\n try {\r\n const bounds = overlay?.getBounds()\r\n if (bounds) {\r\n const center = bounds.getCenter()\r\n mapInstance().panTo(center)\r\n }\r\n } catch (e) {\r\n console.warn('BPolygon', 'auto set center error', e)\r\n }\r\n }\r\n })\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay && overlay.setStrokeColor(color)\r\n }\r\n\r\n function setStrokeOpacity(opacity: number): void {\r\n overlay && overlay.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setPoints = (points: any) => {\r\n points && overlay?.setPath(listToMapPoints(points))\r\n syncMapCenter()\r\n }\r\n\r\n const setFillColor = (color: string) => {\r\n overlay && overlay.setFillColor(color)\r\n }\r\n\r\n const setFillOpacity = (opacity: number) => {\r\n overlay && overlay.setFillOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay && overlay.setStrokeWeight(weight)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n if (overlay)\r\n enableMassClear ? overlay.enableMassClear() : overlay.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing?: boolean) => {\r\n if (overlay)\r\n enableEditing ? overlay.enableEditing() : overlay.disableEditing()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\r\n watch(() => props.fillColor, setFillColor)\r\n watch(() => props.fillOpacity, setFillOpacity)\r\n watch(() => props.strokeWeight, setStrokeWeight)\r\n // watch(() => props.strokeStyle, setStrokeStyle)\r\n watch(() => props.enableMassClear, setMassClear)\r\n watch(() => props.enableEditing, setEditing)\r\n watch(() => props.visible, (n) => {\r\n mapInstance()[n ? 'addOverlay' : 'removeOverlay'](overlay!)\r\n n && syncMapCenter()\r\n })\r\n }\r\n\r\n const init = () => {\r\n const { points, visible, strokeColor, fillColor, strokeWeight, strokeOpacity, fillOpacity, strokeStyle, enableMassClear, enableEditing, enableClicking } = props\r\n if (!points || !points.length) {\r\n return\r\n }\r\n overlay = new BMapGL.Polygon(listToMapPoints(points), {\r\n strokeColor,\r\n fillColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n fillOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n visible && syncMapCenter()\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n\r\n watch(() => props.points, points => overlay ? setPoints(points) : init(), { deep: true })\r\n\r\n onUnmounted(() => {\r\n if (overlay) {\r\n mapInstance().removeOverlay(overlay)\r\n }\r\n })\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polygonProps","setup","mapInstance","useMapInstance","overlay","syncMapCenter","nextTick","autoCenter","bounds","getBounds","center","getCenter","panTo","e","console","warn","setStrokeColor","color","setStrokeOpacity","opacity","setPoints","points","setPath","listToMapPoints","setFillColor","setFillOpacity","setStrokeWeight","weight","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","startWatchProps","watch","strokeColor","strokeOpacity","fillColor","fillOpacity","strokeWeight","visible","n","init","strokeStyle","enableClicking","length","BMapGL","Polygon","addOverlay","deep","onUnmounted","removeOverlay","_createVNode","_Fragment"],"mappings":"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"}
|