@spuermomonga/vue3-bmapgl 0.0.25 → 0.0.27

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 CHANGED
@@ -881,6 +881,10 @@
881
881
  return new BMapGL.Bounds(bounds.sw, bounds.ne);
882
882
  }
883
883
  };
884
+ const clear = () => {
885
+ overlay && mapInstance().removeOverlay(overlay);
886
+ overlay = null;
887
+ };
884
888
  const init = () => {
885
889
  const {
886
890
  visible,
@@ -889,9 +893,12 @@
889
893
  bounds,
890
894
  zIndex
891
895
  } = props;
896
+ if (!visible) {
897
+ clear();
898
+ return;
899
+ }
892
900
  if (overlay) {
893
- mapInstance().removeOverlay(overlay);
894
- overlay = null;
901
+ clear();
895
902
  }
896
903
  if (!bounds) {
897
904
  return;
@@ -1305,9 +1312,6 @@
1305
1312
  setup(props) {
1306
1313
  const mapInstance = useMapInstance();
1307
1314
  let overlay = null;
1308
- const setPoints = (points) => {
1309
- points && overlay?.setPath(points);
1310
- };
1311
1315
  const setStrokeColor = (color) => {
1312
1316
  overlay?.setStrokeColor(color);
1313
1317
  };
@@ -1326,16 +1330,6 @@
1326
1330
  const setEditing = (enableEditing) => {
1327
1331
  enableEditing ? overlay?.enableEditing() : overlay?.disableEditing();
1328
1332
  };
1329
- const startWatchProps = () => {
1330
- vue.watch(() => props.points, setPoints);
1331
- vue.watch(() => props.strokeColor, setStrokeColor);
1332
- vue.watch(() => props.strokeOpacity, setStrokeOpacity);
1333
- vue.watch(() => props.strokeWeight, setStrokeWeight);
1334
- vue.watch(() => props.strokeStyle, setStrokeStyle);
1335
- vue.watch(() => props.enableMassClear, setMassClear);
1336
- vue.watch(() => props.enableEditing, setEditing);
1337
- vue.watch(() => props.visible, (n) => n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay));
1338
- };
1339
1333
  const init = () => {
1340
1334
  const {
1341
1335
  points,
@@ -1367,9 +1361,30 @@
1367
1361
  clip
1368
1362
  });
1369
1363
  visible && mapInstance().addOverlay(overlay);
1370
- startWatchProps();
1364
+ };
1365
+ const setPoints = (points) => {
1366
+ if (overlay) {
1367
+ points && overlay?.setPath(points);
1368
+ } else {
1369
+ init();
1370
+ }
1371
+ };
1372
+ const startWatchProps = () => {
1373
+ vue.watch(() => props.points, setPoints);
1374
+ vue.watch(() => props.strokeColor, setStrokeColor);
1375
+ vue.watch(() => props.strokeOpacity, setStrokeOpacity);
1376
+ vue.watch(() => props.strokeWeight, setStrokeWeight);
1377
+ vue.watch(() => props.strokeStyle, setStrokeStyle);
1378
+ vue.watch(() => props.enableMassClear, setMassClear);
1379
+ vue.watch(() => props.enableEditing, setEditing);
1380
+ vue.watch(() => props.visible, (n) => {
1381
+ if (overlay) {
1382
+ n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay);
1383
+ }
1384
+ });
1371
1385
  };
1372
1386
  init();
1387
+ startWatchProps();
1373
1388
  return () => vue.createVNode(vue.Fragment, null, null);
1374
1389
  }
1375
1390
  });
@@ -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||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,onMoveend:Function,onZoomend:Function,onResize: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)},w=e=>{p?.setHeading(e??0)},T=e=>{e?p.enableDragging():p.disableDragging()},B=e=>{void 0!==window[e]&&p.setMapType(window[e])},C=()=>{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:C}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:o,tilt:a,enableDragging:l}=n.value;w(t),g(e),b(o),v(a),T(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,w),t.watch(()=>n.value.enableDragging,T),t.watch(()=>n.value.mapType,B),C?.({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(C)})}),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 w=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:w,isTop:T,opacity:B,isLowText:C,showRegion:S,useThumbData:k,tileUrlTemplate:M}=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:w,isTop:T,opacity:B,isLowText:C,showRegion:S,useThumbData:k,tileUrlTemplate:M}),(()=>{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 T={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:T,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 C={visible:{type:Boolean,default:!0},opacity:{type:Number,default:1},type:String,bounds:Object,zIndex:Number,url:Object};var S=t.defineComponent({name:"Ground",props:C,setup(e){const o=g();let n=null;const a=()=>{const{visible:t,opacity:a,type:l,bounds:r,zIndex:i}=e;if(n&&(o().removeOverlay(n),n=null),!r)return;const s=(()=>{let t=e.url;if("function"==typeof t&&(t=t(),!t))throw new Error(`props url expect a function return string or canvas html element, but got ${t}`);return t})();if(!s)return;const d=(e=>"getSouthWest"in e&&"function"==typeof e.getSouthWest?e:new BMapGL.Bounds(e.sw,e.ne))(r);n=new BMapGL.GroundOverlay(d,{opacity:a,type:l,url:s.value||s,zIndex:i}),t&&o().addOverlay(n)};return a(),t.watch(()=>e,a,{deep:!0}),()=>t.createVNode(t.Fragment,null,null)}});const k={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 M=t.defineComponent({name:"InfoWindow",props:k,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 x={visible:{type:Boolean,default:!0}};var R=t.defineComponent({name:"Marker",props:x,setup:()=>()=>t.createVNode(t.Fragment,null,null)});const L={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 O=t.defineComponent({name:"Polygon",props:L,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:w,enableMassClear:T,enableEditing:B,enableClicking:C}=e;m&&m.length&&(a=new BMapGL.Polygon(n(m),{strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:w,enableMassClear:T,enableEditing:B,enableClicking:C}),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)}});const z={visible:{type:Boolean,default:!0},points:Array,strokeColor:{type:String,default:"#000"},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},enableClicking:{type:Boolean,default:!0},geodesic:{type:Boolean,default:!1},clip:{type:Boolean,default:!0},linkRight:{type:Boolean,default:!0}};var N=t.defineComponent({name:"Polyline",props:z,setup(e){const o=g();let n=null;const a=e=>{e&&n?.setPath(e)},l=e=>{n?.setStrokeColor(e)},r=e=>{n?.setStrokeOpacity(e)},i=e=>{n?.setStrokeWeight(e)},s=e=>{n?.setStrokeStyle(e)},d=e=>{e?n?.enableMassClear():n?.disableMassClear()},p=e=>{e?n?.enableEditing():n?.disableEditing()};return(()=>{const{points:u,strokeColor:c,strokeWeight:m,strokeOpacity:y,strokeStyle:f,enableMassClear:g,enableEditing:b,enableClicking:h,geodesic:v,clip:w,linkRight:T,visible:B}=e;u&&(n=new BMapGL.Polyline(u,{strokeColor:c,strokeWeight:m,strokeOpacity:y,strokeStyle:f,enableMassClear:g,enableEditing:b,enableClicking:h,geodesic:v,linkRight:T,clip:w}),B&&o().addOverlay(n),t.watch(()=>e.points,a),t.watch(()=>e.strokeColor,l),t.watch(()=>e.strokeOpacity,r),t.watch(()=>e.strokeWeight,i),t.watch(()=>e.strokeStyle,s),t.watch(()=>e.enableMassClear,d),t.watch(()=>e.enableEditing,p),t.watch(()=>e.visible,e=>e?o().addOverlay(n):o().removeOverlay(n)))})(),()=>t.createVNode(t.Fragment,null,null)}}),P=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=s,e.BCustomControl=h,e.BGround=S,e.BInfoWindow=M,e.BMap=f,e.BMarker=R,e.BPolygon=O,e.BPolyline=N,e.BSector=P,e.BTileLayer=w,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.groundProps=C,e.infoWindowProps=k,e.mapInjectionKey=d,e.mapProps=p,e.markerProps=x,e.polygonProps=L,e.polylineProps=z,e.tileLayerProps=v,e.xyzLayerProps=T});
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,onMoveend:Function,onZoomend:Function,onResize: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)},w=e=>{p?.setHeading(e??0)},T=e=>{e?p.enableDragging():p.disableDragging()},B=e=>{void 0!==window[e]&&p.setMapType(window[e])},C=()=>{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:C}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:o,tilt:a,enableDragging:l}=n.value;w(t),g(e),b(o),v(a),T(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,w),t.watch(()=>n.value.enableDragging,T),t.watch(()=>n.value.mapType,B),C?.({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(C)})}),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 w=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:w,isTop:T,opacity:B,isLowText:C,showRegion:S,useThumbData:k,tileUrlTemplate:M}=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:w,isTop:T,opacity:B,isLowText:C,showRegion:S,useThumbData:k,tileUrlTemplate:M}),(()=>{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 T={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:T,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 C={visible:{type:Boolean,default:!0},opacity:{type:Number,default:1},type:String,bounds:Object,zIndex:Number,url:Object};var S=t.defineComponent({name:"Ground",props:C,setup(e){const o=g();let n=null;const a=()=>{n&&o().removeOverlay(n),n=null},l=()=>{const{visible:t,opacity:l,type:r,bounds:i,zIndex:s}=e;if(!t)return void a();if(n&&a(),!i)return;const d=(()=>{let t=e.url;if("function"==typeof t&&(t=t(),!t))throw new Error(`props url expect a function return string or canvas html element, but got ${t}`);return t})();if(!d)return;const p=(e=>"getSouthWest"in e&&"function"==typeof e.getSouthWest?e:new BMapGL.Bounds(e.sw,e.ne))(i);n=new BMapGL.GroundOverlay(p,{opacity:l,type:r,url:d.value||d,zIndex:s}),t&&o().addOverlay(n)};return l(),t.watch(()=>e,l,{deep:!0}),()=>t.createVNode(t.Fragment,null,null)}});const k={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 M=t.defineComponent({name:"InfoWindow",props:k,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 x={visible:{type:Boolean,default:!0}};var R=t.defineComponent({name:"Marker",props:x,setup:()=>()=>t.createVNode(t.Fragment,null,null)});const L={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 O=t.defineComponent({name:"Polygon",props:L,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:w,enableMassClear:T,enableEditing:B,enableClicking:C}=e;m&&m.length&&(a=new BMapGL.Polygon(n(m),{strokeColor:f,fillColor:g,strokeWeight:b,strokeOpacity:h,fillOpacity:v,strokeStyle:w,enableMassClear:T,enableEditing:B,enableClicking:C}),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)}});const z={visible:{type:Boolean,default:!0},points:Array,strokeColor:{type:String,default:"#000"},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},enableClicking:{type:Boolean,default:!0},geodesic:{type:Boolean,default:!1},clip:{type:Boolean,default:!0},linkRight:{type:Boolean,default:!0}};var N=t.defineComponent({name:"Polyline",props:z,setup(e){const o=g();let n=null;const a=e=>{n?.setStrokeColor(e)},l=e=>{n?.setStrokeOpacity(e)},r=e=>{n?.setStrokeWeight(e)},i=e=>{n?.setStrokeStyle(e)},s=e=>{e?n?.enableMassClear():n?.disableMassClear()},d=e=>{e?n?.enableEditing():n?.disableEditing()},p=()=>{const{points:t,strokeColor:a,strokeWeight:l,strokeOpacity:r,strokeStyle:i,enableMassClear:s,enableEditing:d,enableClicking:p,geodesic:u,clip:c,linkRight:m,visible:y}=e;t&&(n=new BMapGL.Polyline(t,{strokeColor:a,strokeWeight:l,strokeOpacity:r,strokeStyle:i,enableMassClear:s,enableEditing:d,enableClicking:p,geodesic:u,linkRight:m,clip:c}),y&&o().addOverlay(n))},u=e=>{n?e&&n?.setPath(e):p()};return p(),t.watch(()=>e.points,u),t.watch(()=>e.strokeColor,a),t.watch(()=>e.strokeOpacity,l),t.watch(()=>e.strokeWeight,r),t.watch(()=>e.strokeStyle,i),t.watch(()=>e.enableMassClear,s),t.watch(()=>e.enableEditing,d),t.watch(()=>e.visible,e=>{n&&(e?o().addOverlay(n):o().removeOverlay(n))}),()=>t.createVNode(t.Fragment,null,null)}}),P=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=s,e.BCustomControl=h,e.BGround=S,e.BInfoWindow=M,e.BMap=f,e.BMarker=R,e.BPolygon=O,e.BPolyline=N,e.BSector=P,e.BTileLayer=w,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.groundProps=C,e.infoWindowProps=k,e.mapInjectionKey=d,e.mapProps=p,e.markerProps=x,e.polygonProps=L,e.polylineProps=z,e.tileLayerProps=v,e.xyzLayerProps=T});
@@ -25,6 +25,10 @@ var ground = /* @__PURE__ */ defineComponent({
25
25
  return new BMapGL.Bounds(bounds.sw, bounds.ne);
26
26
  }
27
27
  };
28
+ const clear = () => {
29
+ overlay && mapInstance().removeOverlay(overlay);
30
+ overlay = null;
31
+ };
28
32
  const init = () => {
29
33
  const {
30
34
  visible,
@@ -33,9 +37,12 @@ var ground = /* @__PURE__ */ defineComponent({
33
37
  bounds,
34
38
  zIndex
35
39
  } = props;
40
+ if (!visible) {
41
+ clear();
42
+ return;
43
+ }
36
44
  if (overlay) {
37
- mapInstance().removeOverlay(overlay);
38
- overlay = null;
45
+ clear();
39
46
  }
40
47
  if (!bounds) {
41
48
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ground.mjs","sources":["../../../../src/overlay/ground/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/ground/src/ground.tsx"],"sourcesContent":["import type { Ref } from 'vue'\r\nimport { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { groundProps } from './ground-props'\r\n\r\nexport default defineComponent({\r\n name: 'Ground',\r\n props: groundProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.GroundOverlay | null = null\r\n\r\n const getUrl = () => {\r\n let url = props.url\r\n if (typeof url === 'function') {\r\n url = url()\r\n if (!url) {\r\n throw new Error(`props url expect a function return string or canvas html element, but got ${url}`)\r\n }\r\n }\r\n return url\r\n }\r\n\r\n const getBounds = (bounds: BMapGL.Bounds | { sw: BMapGL.Point, ne: BMapGL.Point }): BMapGL.Bounds => {\r\n if ('getSouthWest' in bounds && typeof bounds.getSouthWest === 'function') {\r\n return bounds\r\n } else {\r\n return new BMapGL.Bounds((bounds as any).sw, (bounds as any).ne)\r\n }\r\n }\r\n\r\n const init = () => {\r\n const { visible, opacity, type, bounds, zIndex } = props\r\n if (overlay) {\r\n mapInstance().removeOverlay(overlay)\r\n overlay = null\r\n }\r\n if (!bounds) {\r\n return\r\n }\r\n const url = getUrl()\r\n if (!url)\r\n return\r\n const boundsObj = getBounds(bounds)\r\n overlay = new BMapGL.GroundOverlay(boundsObj, {\r\n opacity,\r\n type,\r\n url: (url as Ref<HTMLCanvasElement>).value || url,\r\n zIndex,\r\n })\r\n\r\n visible && mapInstance().addOverlay(overlay)\r\n // visible && syncMapCenter()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props, init, { deep: true })\r\n // watch(() => props.visible, (n) => {\r\n // if (overlay) {\r\n // n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!)\r\n // }\r\n // })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","groundProps","setup","mapInstance","useMapInstance","overlay","getUrl","url","Error","getBounds","bounds","getSouthWest","BMapGL","Bounds","sw","ne","init","visible","opacity","type","zIndex","removeOverlay","boundsObj","GroundOverlay","value","addOverlay","startWatchProps","watch","deep","_createVNode","_Fragment"],"mappings":";;;;AAKA,6CAA+B;AAAA,EAC7BA,IAAAA,EAAM,QAAA;AAAA,EACNC,KAAAA,EAAOC,WAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,OAAAA,GAAuC,IAAA;AAE3C,IAAA,MAAMC,SAASA,MAAK;AAClB,MAAA,IAAIC,MAAMP,KAAAA,CAAMO,GAAAA;AAChB,MAAA,IAAI,OAAOA,QAAQ,UAAA,EAAY;AAC7BA,QAAAA,GAAAA,GAAMA,GAAAA,EAAG;AACT,QAAA,IAAI,CAACA,GAAAA,EAAK;AACR,UAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,0EAAA,EAA6ED,GAAG,CAAA,CAAE,CAAA;AAAA,QACpG;AAAA,MACF;AACA,MAAA,OAAOA,GAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAME,YAAaC,CAAAA,MAAAA,KAAiF;AAClG,MAAA,IAAI,cAAA,IAAkBA,MAAAA,IAAU,OAAOA,MAAAA,CAAOC,iBAAiB,UAAA,EAAY;AACzE,QAAA,OAAOD,MAAAA;AAAAA,MACT,CAAA,MAAO;AACL,QAAA,OAAO,IAAIE,MAAAA,CAAOC,MAAAA,CAAQH,MAAAA,CAAeI,EAAAA,EAAKJ,OAAeK,EAAE,CAAA;AAAA,MACjE;AAAA,IACF,CAAA;AAEA,IAAA,MAAMC,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QAAEC,OAAAA;AAAAA,QAASC,OAAAA;AAAAA,QAASC,IAAAA;AAAAA,QAAMT,MAAAA;AAAAA,QAAQU;AAAAA,OAAM,GAAKpB,KAAAA;AACnD,MAAA,IAAIK,OAAAA,EAAS;AACXF,QAAAA,WAAAA,GAAckB,cAAchB,OAAO,CAAA;AACnCA,QAAAA,OAAAA,GAAU,IAAA;AAAA,MACZ;AACA,MAAA,IAAI,CAACK,MAAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACA,MAAA,MAAMH,MAAMD,MAAAA,EAAM;AAClB,MAAA,IAAI,CAACC,GAAAA,EACH;AACF,MAAA,MAAMe,SAAAA,GAAYb,UAAUC,MAAM,CAAA;AAClCL,MAAAA,OAAAA,GAAU,IAAIO,MAAAA,CAAOW,aAAAA,CAAcD,SAAAA,EAAW;AAAA,QAC5CJ,OAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAZ,GAAAA,EAAMA,IAA+BiB,KAAAA,IAASjB,GAAAA;AAAAA,QAC9Ca;AAAAA,OACD,CAAA;AAEDH,MAAAA,OAAAA,IAAWd,WAAAA,EAAW,CAAGsB,UAAAA,CAAWpB,OAAO,CAAA;AAAA,IAE7C,CAAA;AAEA,IAAA,MAAMqB,kBAAkBA,MAAK;AAC3BC,MAAAA,KAAAA,CAAM,MAAM3B,OAAOgB,IAAAA,EAAM;AAAA,QAAEY,IAAAA,EAAM;AAAA,OAAM,CAAA;AAAA,IAMzC,CAAA;AAEAZ,IAAAA,IAAAA;AACAU,IAAAA,eAAAA;AAEA,IAAA,OAAO,MAAAG,WAAAA,CAAAC,QAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"ground.mjs","sources":["../../../../src/overlay/ground/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/ground/src/ground.tsx"],"sourcesContent":["import type { Ref } from 'vue'\r\nimport { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { groundProps } from './ground-props'\r\n\r\nexport default defineComponent({\r\n name: 'Ground',\r\n props: groundProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.GroundOverlay | null = null\r\n\r\n const getUrl = () => {\r\n let url = props.url\r\n if (typeof url === 'function') {\r\n url = url()\r\n if (!url) {\r\n throw new Error(`props url expect a function return string or canvas html element, but got ${url}`)\r\n }\r\n }\r\n return url\r\n }\r\n\r\n const getBounds = (bounds: BMapGL.Bounds | { sw: BMapGL.Point, ne: BMapGL.Point }): BMapGL.Bounds => {\r\n if ('getSouthWest' in bounds && typeof bounds.getSouthWest === 'function') {\r\n return bounds\r\n } else {\r\n return new BMapGL.Bounds((bounds as any).sw, (bounds as any).ne)\r\n }\r\n }\r\n\r\n const clear = () => {\r\n overlay && mapInstance().removeOverlay(overlay)\r\n overlay = null\r\n }\r\n\r\n const init = () => {\r\n const { visible, opacity, type, bounds, zIndex } = props\r\n if (!visible) {\r\n clear()\r\n return\r\n }\r\n if (overlay) {\r\n clear()\r\n }\r\n if (!bounds) {\r\n return\r\n }\r\n const url = getUrl()\r\n if (!url)\r\n return\r\n const boundsObj = getBounds(bounds)\r\n overlay = new BMapGL.GroundOverlay(boundsObj, {\r\n opacity,\r\n type,\r\n url: (url as Ref<HTMLCanvasElement>).value || url,\r\n zIndex,\r\n })\r\n\r\n visible && mapInstance().addOverlay(overlay)\r\n // visible && syncMapCenter()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props, init, { deep: true })\r\n // watch(() => props.visible, (n) => {\r\n // if (overlay) {\r\n // n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!)\r\n // }\r\n // })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","groundProps","setup","mapInstance","useMapInstance","overlay","getUrl","url","Error","getBounds","bounds","getSouthWest","BMapGL","Bounds","sw","ne","clear","removeOverlay","init","visible","opacity","type","zIndex","boundsObj","GroundOverlay","value","addOverlay","startWatchProps","watch","deep","_createVNode","_Fragment"],"mappings":";;;;AAKA,6CAA+B;AAAA,EAC7BA,IAAAA,EAAM,QAAA;AAAA,EACNC,KAAAA,EAAOC,WAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,OAAAA,GAAuC,IAAA;AAE3C,IAAA,MAAMC,SAASA,MAAK;AAClB,MAAA,IAAIC,MAAMP,KAAAA,CAAMO,GAAAA;AAChB,MAAA,IAAI,OAAOA,QAAQ,UAAA,EAAY;AAC7BA,QAAAA,GAAAA,GAAMA,GAAAA,EAAG;AACT,QAAA,IAAI,CAACA,GAAAA,EAAK;AACR,UAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,0EAAA,EAA6ED,GAAG,CAAA,CAAE,CAAA;AAAA,QACpG;AAAA,MACF;AACA,MAAA,OAAOA,GAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAME,YAAaC,CAAAA,MAAAA,KAAiF;AAClG,MAAA,IAAI,cAAA,IAAkBA,MAAAA,IAAU,OAAOA,MAAAA,CAAOC,iBAAiB,UAAA,EAAY;AACzE,QAAA,OAAOD,MAAAA;AAAAA,MACT,CAAA,MAAO;AACL,QAAA,OAAO,IAAIE,MAAAA,CAAOC,MAAAA,CAAQH,MAAAA,CAAeI,EAAAA,EAAKJ,OAAeK,EAAE,CAAA;AAAA,MACjE;AAAA,IACF,CAAA;AAEA,IAAA,MAAMC,QAAQA,MAAK;AACjBX,MAAAA,OAAAA,IAAWF,WAAAA,EAAW,CAAGc,aAAAA,CAAcZ,OAAO,CAAA;AAC9CA,MAAAA,OAAAA,GAAU,IAAA;AAAA,IACZ,CAAA;AAEA,IAAA,MAAMa,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QAAEC,OAAAA;AAAAA,QAASC,OAAAA;AAAAA,QAASC,IAAAA;AAAAA,QAAMX,MAAAA;AAAAA,QAAQY;AAAAA,OAAM,GAAKtB,KAAAA;AACnD,MAAA,IAAI,CAACmB,OAAAA,EAAS;AACZH,QAAAA,KAAAA;AACA,QAAA;AAAA,MACF;AACA,MAAA,IAAIX,OAAAA,EAAS;AACXW,QAAAA,KAAAA;MACF;AACA,MAAA,IAAI,CAACN,MAAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACA,MAAA,MAAMH,MAAMD,MAAAA,EAAM;AAClB,MAAA,IAAI,CAACC,GAAAA,EACH;AACF,MAAA,MAAMgB,SAAAA,GAAYd,UAAUC,MAAM,CAAA;AAClCL,MAAAA,OAAAA,GAAU,IAAIO,MAAAA,CAAOY,aAAAA,CAAcD,SAAAA,EAAW;AAAA,QAC5CH,OAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAd,GAAAA,EAAMA,IAA+BkB,KAAAA,IAASlB,GAAAA;AAAAA,QAC9Ce;AAAAA,OACD,CAAA;AAEDH,MAAAA,OAAAA,IAAWhB,WAAAA,EAAW,CAAGuB,UAAAA,CAAWrB,OAAO,CAAA;AAAA,IAE7C,CAAA;AAEA,IAAA,MAAMsB,kBAAkBA,MAAK;AAC3BC,MAAAA,KAAAA,CAAM,MAAM5B,OAAOkB,IAAAA,EAAM;AAAA,QAAEW,IAAAA,EAAM;AAAA,OAAM,CAAA;AAAA,IAMzC,CAAA;AAEAX,IAAAA,IAAAA;AACAS,IAAAA,eAAAA;AAEA,IAAA,OAAO,MAAAG,WAAAA,CAAAC,QAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
@@ -8,9 +8,6 @@ var polyline = /* @__PURE__ */ defineComponent({
8
8
  setup(props) {
9
9
  const mapInstance = useMapInstance();
10
10
  let overlay = null;
11
- const setPoints = (points) => {
12
- points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(points));
13
- };
14
11
  const setStrokeColor = (color) => {
15
12
  overlay === null || overlay === void 0 ? void 0 : overlay.setStrokeColor(color);
16
13
  };
@@ -29,16 +26,6 @@ var polyline = /* @__PURE__ */ defineComponent({
29
26
  const setEditing = (enableEditing) => {
30
27
  enableEditing ? overlay === null || overlay === void 0 ? void 0 : overlay.enableEditing() : overlay === null || overlay === void 0 ? void 0 : overlay.disableEditing();
31
28
  };
32
- const startWatchProps = () => {
33
- watch(() => props.points, setPoints);
34
- watch(() => props.strokeColor, setStrokeColor);
35
- watch(() => props.strokeOpacity, setStrokeOpacity);
36
- watch(() => props.strokeWeight, setStrokeWeight);
37
- watch(() => props.strokeStyle, setStrokeStyle);
38
- watch(() => props.enableMassClear, setMassClear);
39
- watch(() => props.enableEditing, setEditing);
40
- watch(() => props.visible, (n) => n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay));
41
- };
42
29
  const init = () => {
43
30
  const {
44
31
  points,
@@ -70,9 +57,30 @@ var polyline = /* @__PURE__ */ defineComponent({
70
57
  clip
71
58
  });
72
59
  visible && mapInstance().addOverlay(overlay);
73
- startWatchProps();
60
+ };
61
+ const setPoints = (points) => {
62
+ if (overlay) {
63
+ points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(points));
64
+ } else {
65
+ init();
66
+ }
67
+ };
68
+ const startWatchProps = () => {
69
+ watch(() => props.points, setPoints);
70
+ watch(() => props.strokeColor, setStrokeColor);
71
+ watch(() => props.strokeOpacity, setStrokeOpacity);
72
+ watch(() => props.strokeWeight, setStrokeWeight);
73
+ watch(() => props.strokeStyle, setStrokeStyle);
74
+ watch(() => props.enableMassClear, setMassClear);
75
+ watch(() => props.enableEditing, setEditing);
76
+ watch(() => props.visible, (n) => {
77
+ if (overlay) {
78
+ n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay);
79
+ }
80
+ });
74
81
  };
75
82
  init();
83
+ startWatchProps();
76
84
  return () => createVNode(Fragment, null, null);
77
85
  }
78
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"polyline.mjs","sources":["../../../../src/overlay/polyline/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polyline/src/polyline.tsx"],"sourcesContent":["import { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { polylineProps } from './polyline-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polyline',\r\n props: polylineProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polyline | null = null\r\n\r\n const setPoints = (points?: BMapGL.Point[]) => {\r\n points && overlay?.setPath(points)\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay?.setStrokeColor(color)\r\n }\r\n\r\n const setStrokeOpacity = (opacity: number) => {\r\n overlay?.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay?.setStrokeWeight(weight)\r\n }\r\n\r\n const setStrokeStyle = (style: string) => {\r\n overlay?.setStrokeStyle(style)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n enableMassClear ? overlay?.enableMassClear() : overlay?.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing: boolean) => {\r\n enableEditing ? overlay?.enableEditing() : overlay?.disableEditing()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.points, setPoints)\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\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 => n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!))\r\n }\r\n\r\n const init = () => {\r\n const {\r\n points,\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n clip,\r\n linkRight,\r\n visible,\r\n } = props\r\n if (!points) {\r\n return\r\n }\r\n overlay = new BMapGL.Polyline(points, {\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n linkRight,\r\n clip,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polylineProps","setup","mapInstance","useMapInstance","overlay","setPoints","points","setPath","setStrokeColor","color","setStrokeOpacity","opacity","setStrokeWeight","weight","setStrokeStyle","style","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","startWatchProps","watch","strokeColor","strokeOpacity","strokeWeight","strokeStyle","visible","n","addOverlay","removeOverlay","init","enableClicking","geodesic","clip","linkRight","BMapGL","Polyline","_createVNode","_Fragment"],"mappings":";;;;AAIA,+CAA+B;AAAA,EAC7BA,IAAAA,EAAM,UAAA;AAAA,EACNC,KAAAA,EAAOC,aAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,OAAAA,GAAkC,IAAA;AAEtC,IAAA,MAAMC,YAAaC,CAAAA,MAAAA,KAA2B;AAC5CA,MAAAA,MAAAA,KAAUF,YAAO,IAAA,IAAPA,OAAAA,KAAO,SAAA,MAAA,GAAPA,OAAAA,CAASG,QAAQD,MAAM,CAAA,CAAA;AAAA,IACnC,CAAA;AAEA,IAAA,MAAME,iBAAkBC,CAAAA,KAAAA,KAAiB;AACvCL,MAAAA,OAAAA,KAAO,QAAPA,OAAAA,KAAO,MAAA,GAAA,MAAA,GAAPA,OAAAA,CAASI,eAAeC,KAAK,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,MAAMC,mBAAoBC,CAAAA,OAAAA,KAAmB;AAC3CP,MAAAA,OAAAA,KAAO,QAAPA,OAAAA,KAAO,MAAA,GAAA,MAAA,GAAPA,OAAAA,CAASM,iBAAiBC,OAAO,CAAA;AAAA,IACnC,CAAA;AAEA,IAAA,MAAMC,kBAAmBC,CAAAA,MAAAA,KAAkB;AACzCT,MAAAA,OAAAA,KAAO,QAAPA,OAAAA,KAAO,MAAA,GAAA,MAAA,GAAPA,OAAAA,CAASQ,gBAAgBC,MAAM,CAAA;AAAA,IACjC,CAAA;AAEA,IAAA,MAAMC,iBAAkBC,CAAAA,KAAAA,KAAiB;AACvCX,MAAAA,OAAAA,KAAO,QAAPA,OAAAA,KAAO,MAAA,GAAA,MAAA,GAAPA,OAAAA,CAASU,eAAeC,KAAK,CAAA;AAAA,IAC/B,CAAA;AAEA,IAAA,MAAMC,eAAgBC,CAAAA,eAAAA,KAA4B;AAChDA,MAAAA,eAAAA,GAAkBb,OAAAA,aAAAA,OAAAA,KAAO,MAAA,GAAA,SAAPA,OAAAA,CAASa,eAAAA,EAAe,GAAKb,OAAAA,KAAO,IAAA,IAAPA,OAAAA,uBAAAA,QAASc,gBAAAA,EAAgB;AAAA,IAC1E,CAAA;AAEA,IAAA,MAAMC,aAAcC,CAAAA,aAAAA,KAA0B;AAC5CA,MAAAA,aAAAA,GAAgBhB,OAAAA,aAAAA,OAAAA,KAAO,MAAA,GAAA,SAAPA,OAAAA,CAASgB,aAAAA,EAAa,GAAKhB,OAAAA,KAAO,IAAA,IAAPA,OAAAA,uBAAAA,QAASiB,cAAAA,EAAc;AAAA,IACpE,CAAA;AAEA,IAAA,MAAMC,kBAAkBA,MAAK;AAC3BC,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAMO,MAAAA,EAAQD,SAAS,CAAA;AACnCkB,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAMyB,WAAAA,EAAahB,cAAc,CAAA;AAC7Ce,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAM0B,aAAAA,EAAef,gBAAgB,CAAA;AACjDa,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAM2B,YAAAA,EAAcd,eAAe,CAAA;AAC/CW,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAM4B,WAAAA,EAAab,cAAc,CAAA;AAC7CS,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAMkB,eAAAA,EAAiBD,YAAY,CAAA;AAC/CO,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAMqB,aAAAA,EAAeD,UAAU,CAAA;AAC3CI,MAAAA,KAAAA,CAAM,MAAMxB,KAAAA,CAAM6B,OAAAA,EAASC,CAAAA,CAAAA,KAAKA,IAAI3B,WAAAA,EAAW,CAAG4B,UAAAA,CAAW1B,OAAQ,CAAA,GAAIF,WAAAA,EAAW,CAAG6B,aAAAA,CAAc3B,OAAQ,CAAC,CAAA;AAAA,IAChH,CAAA;AAEA,IAAA,MAAM4B,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QACJ1B,MAAAA;AAAAA,QACAkB,WAAAA;AAAAA,QACAE,YAAAA;AAAAA,QACAD,aAAAA;AAAAA,QACAE,WAAAA;AAAAA,QACAV,eAAAA;AAAAA,QACAG,aAAAA;AAAAA,QACAa,cAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAR;AAAAA,OAAO,GACL7B,KAAAA;AACJ,MAAA,IAAI,CAACO,MAAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACAF,MAAAA,OAAAA,GAAU,IAAIiC,MAAAA,CAAOC,QAAAA,CAAShC,MAAAA,EAAQ;AAAA,QACpCkB,WAAAA;AAAAA,QACAE,YAAAA;AAAAA,QACAD,aAAAA;AAAAA,QACAE,WAAAA;AAAAA,QACAV,eAAAA;AAAAA,QACAG,aAAAA;AAAAA,QACAa,cAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAE,SAAAA;AAAAA,QACAD;AAAAA,OACD,CAAA;AACDP,MAAAA,OAAAA,IAAW1B,WAAAA,EAAW,CAAG4B,UAAAA,CAAW1B,OAAO,CAAA;AAC3CkB,MAAAA,eAAAA;IACF,CAAA;AAEAU,IAAAA,IAAAA;AACA,IAAA,OAAO,MAAAO,WAAAA,CAAAC,QAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"polyline.mjs","sources":["../../../../src/overlay/polyline/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polyline/src/polyline.tsx"],"sourcesContent":["import { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { polylineProps } from './polyline-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polyline',\r\n props: polylineProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polyline | null = null\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay?.setStrokeColor(color)\r\n }\r\n\r\n const setStrokeOpacity = (opacity: number) => {\r\n overlay?.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay?.setStrokeWeight(weight)\r\n }\r\n\r\n const setStrokeStyle = (style: string) => {\r\n overlay?.setStrokeStyle(style)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n enableMassClear ? overlay?.enableMassClear() : overlay?.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing: boolean) => {\r\n enableEditing ? overlay?.enableEditing() : overlay?.disableEditing()\r\n }\r\n\r\n const init = () => {\r\n const {\r\n points,\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n clip,\r\n linkRight,\r\n visible,\r\n } = props\r\n if (!points) {\r\n return\r\n }\r\n overlay = new BMapGL.Polyline(points, {\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n linkRight,\r\n clip,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n }\r\n\r\n const setPoints = (points?: BMapGL.Point[]) => {\r\n if (overlay) {\r\n points && overlay?.setPath(points)\r\n } else {\r\n init()\r\n }\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.points, setPoints)\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\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 if (overlay) {\r\n n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay)\r\n }\r\n })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polylineProps","setup","mapInstance","useMapInstance","overlay","setStrokeColor","color","setStrokeOpacity","opacity","setStrokeWeight","weight","setStrokeStyle","style","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","init","points","strokeColor","strokeWeight","strokeOpacity","strokeStyle","enableClicking","geodesic","clip","linkRight","visible","BMapGL","Polyline","addOverlay","setPoints","setPath","startWatchProps","watch","n","removeOverlay","_createVNode","_Fragment"],"mappings":"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"}
@@ -27,6 +27,10 @@ var ground = /* @__PURE__ */ vue.defineComponent({
27
27
  return new BMapGL.Bounds(bounds.sw, bounds.ne);
28
28
  }
29
29
  };
30
+ const clear = () => {
31
+ overlay && mapInstance().removeOverlay(overlay);
32
+ overlay = null;
33
+ };
30
34
  const init = () => {
31
35
  const {
32
36
  visible,
@@ -35,9 +39,12 @@ var ground = /* @__PURE__ */ vue.defineComponent({
35
39
  bounds,
36
40
  zIndex
37
41
  } = props;
42
+ if (!visible) {
43
+ clear();
44
+ return;
45
+ }
38
46
  if (overlay) {
39
- mapInstance().removeOverlay(overlay);
40
- overlay = null;
47
+ clear();
41
48
  }
42
49
  if (!bounds) {
43
50
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ground.js","sources":["../../../../src/overlay/ground/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/ground/src/ground.tsx"],"sourcesContent":["import type { Ref } from 'vue'\r\nimport { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { groundProps } from './ground-props'\r\n\r\nexport default defineComponent({\r\n name: 'Ground',\r\n props: groundProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.GroundOverlay | null = null\r\n\r\n const getUrl = () => {\r\n let url = props.url\r\n if (typeof url === 'function') {\r\n url = url()\r\n if (!url) {\r\n throw new Error(`props url expect a function return string or canvas html element, but got ${url}`)\r\n }\r\n }\r\n return url\r\n }\r\n\r\n const getBounds = (bounds: BMapGL.Bounds | { sw: BMapGL.Point, ne: BMapGL.Point }): BMapGL.Bounds => {\r\n if ('getSouthWest' in bounds && typeof bounds.getSouthWest === 'function') {\r\n return bounds\r\n } else {\r\n return new BMapGL.Bounds((bounds as any).sw, (bounds as any).ne)\r\n }\r\n }\r\n\r\n const init = () => {\r\n const { visible, opacity, type, bounds, zIndex } = props\r\n if (overlay) {\r\n mapInstance().removeOverlay(overlay)\r\n overlay = null\r\n }\r\n if (!bounds) {\r\n return\r\n }\r\n const url = getUrl()\r\n if (!url)\r\n return\r\n const boundsObj = getBounds(bounds)\r\n overlay = new BMapGL.GroundOverlay(boundsObj, {\r\n opacity,\r\n type,\r\n url: (url as Ref<HTMLCanvasElement>).value || url,\r\n zIndex,\r\n })\r\n\r\n visible && mapInstance().addOverlay(overlay)\r\n // visible && syncMapCenter()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props, init, { deep: true })\r\n // watch(() => props.visible, (n) => {\r\n // if (overlay) {\r\n // n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!)\r\n // }\r\n // })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","groundProps","setup","mapInstance","useMapInstance","overlay","getUrl","url","Error","getBounds","bounds","getSouthWest","BMapGL","Bounds","sw","ne","init","visible","opacity","type","zIndex","removeOverlay","boundsObj","GroundOverlay","value","addOverlay","startWatchProps","watch","deep","_createVNode","_Fragment"],"mappings":";;;;;;AAKA,iDAA+B;AAAA,EAC7BA,IAAAA,EAAM,QAAA;AAAA,EACNC,KAAAA,EAAOC,uBAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,OAAAA,GAAuC,IAAA;AAE3C,IAAA,MAAMC,SAASA,MAAK;AAClB,MAAA,IAAIC,MAAMP,KAAAA,CAAMO,GAAAA;AAChB,MAAA,IAAI,OAAOA,QAAQ,UAAA,EAAY;AAC7BA,QAAAA,GAAAA,GAAMA,GAAAA,EAAG;AACT,QAAA,IAAI,CAACA,GAAAA,EAAK;AACR,UAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,0EAAA,EAA6ED,GAAG,CAAA,CAAE,CAAA;AAAA,QACpG;AAAA,MACF;AACA,MAAA,OAAOA,GAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAME,YAAaC,CAAAA,MAAAA,KAAiF;AAClG,MAAA,IAAI,cAAA,IAAkBA,MAAAA,IAAU,OAAOA,MAAAA,CAAOC,iBAAiB,UAAA,EAAY;AACzE,QAAA,OAAOD,MAAAA;AAAAA,MACT,CAAA,MAAO;AACL,QAAA,OAAO,IAAIE,MAAAA,CAAOC,MAAAA,CAAQH,MAAAA,CAAeI,EAAAA,EAAKJ,OAAeK,EAAE,CAAA;AAAA,MACjE;AAAA,IACF,CAAA;AAEA,IAAA,MAAMC,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QAAEC,OAAAA;AAAAA,QAASC,OAAAA;AAAAA,QAASC,IAAAA;AAAAA,QAAMT,MAAAA;AAAAA,QAAQU;AAAAA,OAAM,GAAKpB,KAAAA;AACnD,MAAA,IAAIK,OAAAA,EAAS;AACXF,QAAAA,WAAAA,GAAckB,cAAchB,OAAO,CAAA;AACnCA,QAAAA,OAAAA,GAAU,IAAA;AAAA,MACZ;AACA,MAAA,IAAI,CAACK,MAAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACA,MAAA,MAAMH,MAAMD,MAAAA,EAAM;AAClB,MAAA,IAAI,CAACC,GAAAA,EACH;AACF,MAAA,MAAMe,SAAAA,GAAYb,UAAUC,MAAM,CAAA;AAClCL,MAAAA,OAAAA,GAAU,IAAIO,MAAAA,CAAOW,aAAAA,CAAcD,SAAAA,EAAW;AAAA,QAC5CJ,OAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAZ,GAAAA,EAAMA,IAA+BiB,KAAAA,IAASjB,GAAAA;AAAAA,QAC9Ca;AAAAA,OACD,CAAA;AAEDH,MAAAA,OAAAA,IAAWd,WAAAA,EAAW,CAAGsB,UAAAA,CAAWpB,OAAO,CAAA;AAAA,IAE7C,CAAA;AAEA,IAAA,MAAMqB,kBAAkBA,MAAK;AAC3BC,MAAAA,SAAAA,CAAM,MAAM3B,OAAOgB,IAAAA,EAAM;AAAA,QAAEY,IAAAA,EAAM;AAAA,OAAM,CAAA;AAAA,IAMzC,CAAA;AAEAZ,IAAAA,IAAAA;AACAU,IAAAA,eAAAA;AAEA,IAAA,OAAO,MAAAG,eAAAA,CAAAC,YAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"ground.js","sources":["../../../../src/overlay/ground/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/ground/src/ground.tsx"],"sourcesContent":["import type { Ref } from 'vue'\r\nimport { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { groundProps } from './ground-props'\r\n\r\nexport default defineComponent({\r\n name: 'Ground',\r\n props: groundProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.GroundOverlay | null = null\r\n\r\n const getUrl = () => {\r\n let url = props.url\r\n if (typeof url === 'function') {\r\n url = url()\r\n if (!url) {\r\n throw new Error(`props url expect a function return string or canvas html element, but got ${url}`)\r\n }\r\n }\r\n return url\r\n }\r\n\r\n const getBounds = (bounds: BMapGL.Bounds | { sw: BMapGL.Point, ne: BMapGL.Point }): BMapGL.Bounds => {\r\n if ('getSouthWest' in bounds && typeof bounds.getSouthWest === 'function') {\r\n return bounds\r\n } else {\r\n return new BMapGL.Bounds((bounds as any).sw, (bounds as any).ne)\r\n }\r\n }\r\n\r\n const clear = () => {\r\n overlay && mapInstance().removeOverlay(overlay)\r\n overlay = null\r\n }\r\n\r\n const init = () => {\r\n const { visible, opacity, type, bounds, zIndex } = props\r\n if (!visible) {\r\n clear()\r\n return\r\n }\r\n if (overlay) {\r\n clear()\r\n }\r\n if (!bounds) {\r\n return\r\n }\r\n const url = getUrl()\r\n if (!url)\r\n return\r\n const boundsObj = getBounds(bounds)\r\n overlay = new BMapGL.GroundOverlay(boundsObj, {\r\n opacity,\r\n type,\r\n url: (url as Ref<HTMLCanvasElement>).value || url,\r\n zIndex,\r\n })\r\n\r\n visible && mapInstance().addOverlay(overlay)\r\n // visible && syncMapCenter()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props, init, { deep: true })\r\n // watch(() => props.visible, (n) => {\r\n // if (overlay) {\r\n // n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!)\r\n // }\r\n // })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","groundProps","setup","mapInstance","useMapInstance","overlay","getUrl","url","Error","getBounds","bounds","getSouthWest","BMapGL","Bounds","sw","ne","clear","removeOverlay","init","visible","opacity","type","zIndex","boundsObj","GroundOverlay","value","addOverlay","startWatchProps","watch","deep","_createVNode","_Fragment"],"mappings":";;;;;;AAKA,iDAA+B;AAAA,EAC7BA,IAAAA,EAAM,QAAA;AAAA,EACNC,KAAAA,EAAOC,uBAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,OAAAA,GAAuC,IAAA;AAE3C,IAAA,MAAMC,SAASA,MAAK;AAClB,MAAA,IAAIC,MAAMP,KAAAA,CAAMO,GAAAA;AAChB,MAAA,IAAI,OAAOA,QAAQ,UAAA,EAAY;AAC7BA,QAAAA,GAAAA,GAAMA,GAAAA,EAAG;AACT,QAAA,IAAI,CAACA,GAAAA,EAAK;AACR,UAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,0EAAA,EAA6ED,GAAG,CAAA,CAAE,CAAA;AAAA,QACpG;AAAA,MACF;AACA,MAAA,OAAOA,GAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAME,YAAaC,CAAAA,MAAAA,KAAiF;AAClG,MAAA,IAAI,cAAA,IAAkBA,MAAAA,IAAU,OAAOA,MAAAA,CAAOC,iBAAiB,UAAA,EAAY;AACzE,QAAA,OAAOD,MAAAA;AAAAA,MACT,CAAA,MAAO;AACL,QAAA,OAAO,IAAIE,MAAAA,CAAOC,MAAAA,CAAQH,MAAAA,CAAeI,EAAAA,EAAKJ,OAAeK,EAAE,CAAA;AAAA,MACjE;AAAA,IACF,CAAA;AAEA,IAAA,MAAMC,QAAQA,MAAK;AACjBX,MAAAA,OAAAA,IAAWF,WAAAA,EAAW,CAAGc,aAAAA,CAAcZ,OAAO,CAAA;AAC9CA,MAAAA,OAAAA,GAAU,IAAA;AAAA,IACZ,CAAA;AAEA,IAAA,MAAMa,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QAAEC,OAAAA;AAAAA,QAASC,OAAAA;AAAAA,QAASC,IAAAA;AAAAA,QAAMX,MAAAA;AAAAA,QAAQY;AAAAA,OAAM,GAAKtB,KAAAA;AACnD,MAAA,IAAI,CAACmB,OAAAA,EAAS;AACZH,QAAAA,KAAAA;AACA,QAAA;AAAA,MACF;AACA,MAAA,IAAIX,OAAAA,EAAS;AACXW,QAAAA,KAAAA;MACF;AACA,MAAA,IAAI,CAACN,MAAAA,EAAQ;AACX,QAAA;AAAA,MACF;AACA,MAAA,MAAMH,MAAMD,MAAAA,EAAM;AAClB,MAAA,IAAI,CAACC,GAAAA,EACH;AACF,MAAA,MAAMgB,SAAAA,GAAYd,UAAUC,MAAM,CAAA;AAClCL,MAAAA,OAAAA,GAAU,IAAIO,MAAAA,CAAOY,aAAAA,CAAcD,SAAAA,EAAW;AAAA,QAC5CH,OAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAd,GAAAA,EAAMA,IAA+BkB,KAAAA,IAASlB,GAAAA;AAAAA,QAC9Ce;AAAAA,OACD,CAAA;AAEDH,MAAAA,OAAAA,IAAWhB,WAAAA,EAAW,CAAGuB,UAAAA,CAAWrB,OAAO,CAAA;AAAA,IAE7C,CAAA;AAEA,IAAA,MAAMsB,kBAAkBA,MAAK;AAC3BC,MAAAA,SAAAA,CAAM,MAAM5B,OAAOkB,IAAAA,EAAM;AAAA,QAAEW,IAAAA,EAAM;AAAA,OAAM,CAAA;AAAA,IAMzC,CAAA;AAEAX,IAAAA,IAAAA;AACAS,IAAAA,eAAAA;AAEA,IAAA,OAAO,MAAAG,eAAAA,CAAAC,YAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
@@ -10,9 +10,6 @@ var polyline = /* @__PURE__ */ vue.defineComponent({
10
10
  setup(props) {
11
11
  const mapInstance = useMapInstance();
12
12
  let overlay = null;
13
- const setPoints = (points) => {
14
- points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(points));
15
- };
16
13
  const setStrokeColor = (color) => {
17
14
  overlay === null || overlay === void 0 ? void 0 : overlay.setStrokeColor(color);
18
15
  };
@@ -31,16 +28,6 @@ var polyline = /* @__PURE__ */ vue.defineComponent({
31
28
  const setEditing = (enableEditing) => {
32
29
  enableEditing ? overlay === null || overlay === void 0 ? void 0 : overlay.enableEditing() : overlay === null || overlay === void 0 ? void 0 : overlay.disableEditing();
33
30
  };
34
- const startWatchProps = () => {
35
- vue.watch(() => props.points, setPoints);
36
- vue.watch(() => props.strokeColor, setStrokeColor);
37
- vue.watch(() => props.strokeOpacity, setStrokeOpacity);
38
- vue.watch(() => props.strokeWeight, setStrokeWeight);
39
- vue.watch(() => props.strokeStyle, setStrokeStyle);
40
- vue.watch(() => props.enableMassClear, setMassClear);
41
- vue.watch(() => props.enableEditing, setEditing);
42
- vue.watch(() => props.visible, (n) => n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay));
43
- };
44
31
  const init = () => {
45
32
  const {
46
33
  points,
@@ -72,9 +59,30 @@ var polyline = /* @__PURE__ */ vue.defineComponent({
72
59
  clip
73
60
  });
74
61
  visible && mapInstance().addOverlay(overlay);
75
- startWatchProps();
62
+ };
63
+ const setPoints = (points) => {
64
+ if (overlay) {
65
+ points && (overlay === null || overlay === void 0 ? void 0 : overlay.setPath(points));
66
+ } else {
67
+ init();
68
+ }
69
+ };
70
+ const startWatchProps = () => {
71
+ vue.watch(() => props.points, setPoints);
72
+ vue.watch(() => props.strokeColor, setStrokeColor);
73
+ vue.watch(() => props.strokeOpacity, setStrokeOpacity);
74
+ vue.watch(() => props.strokeWeight, setStrokeWeight);
75
+ vue.watch(() => props.strokeStyle, setStrokeStyle);
76
+ vue.watch(() => props.enableMassClear, setMassClear);
77
+ vue.watch(() => props.enableEditing, setEditing);
78
+ vue.watch(() => props.visible, (n) => {
79
+ if (overlay) {
80
+ n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay);
81
+ }
82
+ });
76
83
  };
77
84
  init();
85
+ startWatchProps();
78
86
  return () => vue.createVNode(vue.Fragment, null, null);
79
87
  }
80
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"polyline.js","sources":["../../../../src/overlay/polyline/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polyline/src/polyline.tsx"],"sourcesContent":["import { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { polylineProps } from './polyline-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polyline',\r\n props: polylineProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polyline | null = null\r\n\r\n const setPoints = (points?: BMapGL.Point[]) => {\r\n points && overlay?.setPath(points)\r\n }\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay?.setStrokeColor(color)\r\n }\r\n\r\n const setStrokeOpacity = (opacity: number) => {\r\n overlay?.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay?.setStrokeWeight(weight)\r\n }\r\n\r\n const setStrokeStyle = (style: string) => {\r\n overlay?.setStrokeStyle(style)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n enableMassClear ? overlay?.enableMassClear() : overlay?.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing: boolean) => {\r\n enableEditing ? overlay?.enableEditing() : overlay?.disableEditing()\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.points, setPoints)\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\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 => n ? mapInstance().addOverlay(overlay!) : mapInstance().removeOverlay(overlay!))\r\n }\r\n\r\n const init = () => {\r\n const {\r\n points,\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n clip,\r\n linkRight,\r\n visible,\r\n } = props\r\n if (!points) {\r\n return\r\n }\r\n overlay = new BMapGL.Polyline(points, {\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n linkRight,\r\n clip,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polylineProps","setup","mapInstance","useMapInstance","overlay","setPoints","points","setPath","setStrokeColor","color","setStrokeOpacity","opacity","setStrokeWeight","weight","setStrokeStyle","style","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","startWatchProps","watch","strokeColor","strokeOpacity","strokeWeight","strokeStyle","visible","n","addOverlay","removeOverlay","init","enableClicking","geodesic","clip","linkRight","BMapGL","Polyline","_createVNode","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"polyline.js","sources":["../../../../src/overlay/polyline/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/overlay/polyline/src/polyline.tsx"],"sourcesContent":["import { defineComponent, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { polylineProps } from './polyline-props'\r\n\r\nexport default defineComponent({\r\n name: 'Polyline',\r\n props: polylineProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let overlay: BMapGL.Polyline | null = null\r\n\r\n const setStrokeColor = (color: string) => {\r\n overlay?.setStrokeColor(color)\r\n }\r\n\r\n const setStrokeOpacity = (opacity: number) => {\r\n overlay?.setStrokeOpacity(opacity)\r\n }\r\n\r\n const setStrokeWeight = (weight: number) => {\r\n overlay?.setStrokeWeight(weight)\r\n }\r\n\r\n const setStrokeStyle = (style: string) => {\r\n overlay?.setStrokeStyle(style)\r\n }\r\n\r\n const setMassClear = (enableMassClear: boolean) => {\r\n enableMassClear ? overlay?.enableMassClear() : overlay?.disableMassClear()\r\n }\r\n\r\n const setEditing = (enableEditing: boolean) => {\r\n enableEditing ? overlay?.enableEditing() : overlay?.disableEditing()\r\n }\r\n\r\n const init = () => {\r\n const {\r\n points,\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n clip,\r\n linkRight,\r\n visible,\r\n } = props\r\n if (!points) {\r\n return\r\n }\r\n overlay = new BMapGL.Polyline(points, {\r\n strokeColor,\r\n strokeWeight,\r\n strokeOpacity,\r\n strokeStyle,\r\n enableMassClear,\r\n enableEditing,\r\n enableClicking,\r\n geodesic,\r\n linkRight,\r\n clip,\r\n })\r\n visible && mapInstance().addOverlay(overlay)\r\n }\r\n\r\n const setPoints = (points?: BMapGL.Point[]) => {\r\n if (overlay) {\r\n points && overlay?.setPath(points)\r\n } else {\r\n init()\r\n }\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.points, setPoints)\r\n watch(() => props.strokeColor, setStrokeColor)\r\n watch(() => props.strokeOpacity, setStrokeOpacity)\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 if (overlay) {\r\n n ? mapInstance().addOverlay(overlay) : mapInstance().removeOverlay(overlay)\r\n }\r\n })\r\n }\r\n\r\n init()\r\n startWatchProps()\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","polylineProps","setup","mapInstance","useMapInstance","overlay","setStrokeColor","color","setStrokeOpacity","opacity","setStrokeWeight","weight","setStrokeStyle","style","setMassClear","enableMassClear","disableMassClear","setEditing","enableEditing","disableEditing","init","points","strokeColor","strokeWeight","strokeOpacity","strokeStyle","enableClicking","geodesic","clip","linkRight","visible","BMapGL","Polyline","addOverlay","setPoints","setPath","startWatchProps","watch","n","removeOverlay","_createVNode","_Fragment"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spuermomonga/vue3-bmapgl",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "description": "Baidu Map GL encapsulation for Vue 3",
5
5
  "author": "SpuerMomonga <spuermomonga@qq.com>",
6
6
  "license": "MIT",