UNPKG

weweb-cli

Version:

微信小程序转成h5的小工具

1 lines 10.7 kB
webpackJsonp([15],{285:function(e,t,i){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}var a=i(13),o=n(a),s=i(10),r=n(s);window.exparser.registerElement({is:"wx-map",behaviors:["wx-base","wx-native"],template:'<div id="map" style="width: 100%; height: 100%;"></div>',properties:{latitude:{type:Number,public:!0,observer:"latitudeChanged",value:39.92},longitude:{type:Number,public:!0,observer:"longitudeChanged",value:116.46},scale:{type:Number,public:!0,observer:"scaleChanged",scale:16},markers:{type:Array,value:[],public:!0,observer:"markersChanged"},covers:{type:Array,value:[],public:!0,observer:"coversChanged"},includePoints:{type:Array,value:[],public:!0,observer:"pointsChanged"},polyline:{type:Array,value:[],public:!0,observer:"linesChanged"},circles:{type:Array,value:[],public:!0,observer:"circlesChanged"},controls:{type:Array,value:[],public:!0,observer:"controlsChanged"},showLocation:{type:Boolean,value:!1,public:!0,observer:"showLocationChanged"},bindmarkertap:{type:String,value:"",public:!0},bindcontroltap:{type:String,value:"",public:!0},bindregionchange:{type:String,value:"",public:!0},bindtap:{type:String,value:"",public:!0},_mapId:{type:Number}},_delay:function(e,t,i){this._deferred.push({callback:e,args:[t,i]})},_update:function(e,t){e.mapId=this._mapId,e.hide=this.hidden,WeixinJSBridge.invoke("updateMap",e,function(e){})},_updatePosition:function(){},_transformPath:function(e,t){return e.map(function(e){var i={};return e.iconPath?((0,r.default)(e).forEach(function(t){i[t]=e[t]}),i.iconPath=wx.getRealRoute(t,i.iconPath),i):e})},_hiddenChanged:function(e,t){this.$$.style.display=e?"none":""},_transformMarkers:function(e){var t=this;return(e||[]).map(function(e){var i={};return e?((0,r.default)(e).forEach(function(t){i[t]=e[t]}),e.name&&(i.title=i.title||i.name),void 0!==e.id&&t.bindmarkertap&&(i.data=(0,o.default)({markerId:e.id,bindmarkertap:t.bindmarkertap})),i):i})},_transformControls:function(e){var t=this;return e.map(function(e){var i={};return(0,r.default)(e).forEach(function(t){i[t]=e[t]}),void 0!==e.id&&t.bindcontroltap&&e.clickable&&(i.data=(0,o.default)({controlId:e.id,bindcontroltap:t.bindcontroltap})),i})},_transformColor:function(e){0===e.indexOf("#")&&(e=e.substr(1));var t=Number("0x"+e.substr(0,2)),i=Number("0x"+e.substr(2,2)),n=Number("0x"+e.substr(4,2)),a=e.substr(6,2)?Number("0x"+e.substr(6,2))/255:1;return new qq.maps.Color(t,i,n,a)},_initFeatures:function(){this._mapId&&((this.markers&&this.markers.length>0||this.covers&&this.covers.length>0)&&WeixinJSBridge.invoke("addMapMarkers",{mapId:this._mapId,markers:this._transformMarkers(this.markers).concat(this.covers)},function(e){}),this.includePoints&&this.includePoints.length>0&&WeixinJSBridge.invoke("includeMapPoints",{mapId:this._mapId,points:this.includePoints},function(e){}),this.polyline&&this.polyline.length>0&&WeixinJSBridge.invoke("addMapLines",{mapId:this._mapId,lines:this.polyline},function(e){}),this.circles&&this.circles.length>0&&WeixinJSBridge.invoke("addMapCircles",{mapId:this._mapId,circles:this.circles},function(e){}),this.controls&&this.controls.length>0&&WeixinJSBridge.invoke("addMapControls",{mapId:this._mapId,controls:this._transformControls(this.controls)},function(e){}))},_insertIframeMap:function(){var e=this,t=this._map=new qq.maps.Map(this.$.map,{zoom:this.scale,center:new qq.maps.LatLng(this.latitude,this.longitude),mapTypeId:qq.maps.MapTypeId.ROADMAP,zoomControl:!1,mapTypeControl:!1}),i=!1,n=!1;qq.maps.event.addListener(t,"click",function(){e.bindtap&&wx.publishPageEvent(e.bindtap,{})}),qq.maps.event.addListener(t,"drag",function(){e.bindregionchange&&!i&&(wx.publishPageEvent(e.bindregionchange,{type:"begin"}),i=!0,n=!1)}),qq.maps.event.addListener(t,"dragend",function(){i&&(i=!1,n=!0)}),qq.maps.event.addListener(t,"bounds_changed",function(){e.bindregionchange&&n&&(wx.publishPageEvent(e.bindregionchange,{type:"end"}),n=!1)});var a=qq.maps.event.addListener(t,"tilesloaded",function(){e._mapId=__map_jssdk_id++,e._ready(),WeixinJSBridge.subscribe("doMapAction"+e._mapId,function(t){if(e._map&&e._mapId===t.data.mapId)if("getMapCenterLocation"===t.data.method){var i=e._map.getCenter();WeixinJSBridge.publish("doMapActionCallback",{mapId:e._mapId,callbackId:t.data.callbackId,method:t.data.method,latitude:i.getLat(),longitude:i.getLng()})}else"moveToMapLocation"===t.data.method&&e.showLocation&&WeixinJSBridge.invoke("private_geolocation",{},function(t){try{t=JSON.parse(t)}catch(e){t={}}if(t.result&&t.result.location){var i=t.result.location;e._posOverlay&&e._posOverlay.setMap(null),e._posOverlay=new e.CustomOverlay(new qq.maps.LatLng(i.lat,i.lng)),e._posOverlay.setMap(e._map),e._map.panTo(new qq.maps.LatLng(i.lat,i.lng))}})}),WeixinJSBridge.publish("mapInsert",{domId:e.id,mapId:e._mapId,showLocation:e.showLocation,bindregionchange:e.bindregionchange,bindtap:e.bindtap}),qq.maps.event.removeListener(a),a=null}),o=this.CustomOverlay=function(e,t){this.index=t,this.position=e};o.prototype=new qq.maps.Overlay,o.prototype.construct=function(){var e=this.div=document.createElement("div");e.setAttribute("style","width: 32px;height: 32px;background: rgba(31, 154, 228,.3);border-radius: 20px;position: absolute;");var t=document.createElement("div");t.setAttribute("style","position: absolute;width: 16px;height: 16px;background: white;border-radius: 8px;top: 8px;left: 8px;"),e.appendChild(t);var i=document.createElement("div");i.setAttribute("style","position: absolute;width: 12px;height: 12px;background: rgb(31, 154, 228);border-radius: 6px;top: 2px;left: 2px;"),t.appendChild(i),this.getPanes().overlayMouseTarget.appendChild(e)},o.prototype.draw=function(){var e=this.getProjection(),t=e.fromLatLngToDivPixel(this.position),i=this.div.style;i.left=t.x-16+"px",i.top=t.y-16+"px"},o.prototype.destroy=function(){this.div.onclick=null,this.div.parentNode.removeChild(this.div),this.div=null}},latitudeChanged:function(e,t){e&&(this._isReady?this._map.setCenter(new qq.maps.LatLng(e,this.longitude)):this._delay("latitudeChanged",e,t))},longitudeChanged:function(e,t){e&&(this._isReady?this._map.setCenter(new qq.maps.LatLng(this.latitude,e)):this._delay("longitudeChanged",e,t))},scaleChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments[1];e&&(this._isReady?this._map.zoomTo(e):this._delay("scaleChanged",e,t))},coversChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady?((this._covers||[]).forEach(function(e){e.setMap(null)}),this._covers=e.map(function(e){var t=new qq.maps.Marker({position:new qq.maps.LatLng(e.latitude,e.longitude),map:i._map});return e.iconPath&&t.setIcon(new qq.maps.MarkerImage(e.iconPath)),t})):this._delay("coversChanged",e,t)},markersChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady?((this._markers||[]).forEach(function(e){e.setMap(null)}),this._markers=e.map(function(e){var t=new qq.maps.Marker({position:new qq.maps.LatLng(e.latitude,e.longitude),map:i._map});return e.iconPath&&(Number(e.width)&&Number(e.height)?t.setIcon(new qq.maps.MarkerImage(e.iconPath,new qq.maps.Size(e.width,e.height),new qq.maps.Point(0,0),new qq.maps.Point(e.width/2,e.height),new qq.maps.Size(e.width,e.height))):t.setIcon(new qq.maps.MarkerImage(e.iconPath))),(e.title||e.name)&&t.setTitle(e.title||e.name),i.bindmarkertap&&void 0!==e.id&&qq.maps.event.addListener(t,"click",function(t){var n=t.event;n instanceof TouchEvent?"touchend"===n.type&&wx.publishPageEvent(i.bindmarkertap,{markerId:e.id}):wx.publishPageEvent(i.bindmarkertap,{markerId:e.id})}),t})):this._delay("markersChanged",e,t)},linesChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady?((this._lines||[]).forEach(function(e){e.setMap(null)}),this._lines=e.map(function(e){var t=e.points.map(function(e){return new qq.maps.LatLng(e.latitude,e.longitude)});return new qq.maps.Polyline({map:i._map,path:t,strokeColor:i._transformColor(e.color)||"",strokeWidth:e.width,strokeDashStyle:e.dottedLine?"dash":"solid"})})):this._delay("linesChanged",e,t)},circlesChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady?((this._circles||[]).forEach(function(e){e.setMap(null)}),this._circles=e.map(function(e){return new qq.maps.Circle({map:i._map,center:new qq.maps.LatLng(e.latitude,e.longitude),radius:e.radius,fillColor:i._transformColor(e.fillColor)||"",strokeColor:i._transformColor(e.color)||"",strokeWidth:e.strokeWidth})})):this._delay("circlesChanged",e,t)},pointsChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady||this._delay("pointsChanged",e,t),function(){if(!(e.length<=0)){var t=new qq.maps.LatLngBounds;e.forEach(function(e){t.extend(new qq.maps.LatLng(e.latitude,e.longitude))}),i._map.fitBounds(t)}}()},controlsChanged:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i=this;this._isReady?function(){for(var t=i._controls=i._controls||[];t.length;){var n=t.pop();n.onclick=null,n.parentNode.removeChild(n)}e.forEach(function(e){var n=document.createElement("img");n.style.position="absolute",n.style.left=(e.position&&e.position.left||0)+"px",n.style.top=(e.position&&e.position.top||0)+"px",n.style.width=(e.position&&e.position.width||"")+"px",n.style.height=(e.position&&e.position.height||"")+"px",n.style.zIndex=9999,n.src=e.iconPath,e.clickable&&void 0!==e.id&&(n.onclick=function(){wx.publishPageEvent(i.bindcontroltap,{controlId:e.id})}),t.push(n),i.$.map.appendChild(n)})}():this._delay("controlsChanged",e,t)},showLocationChanged:function(e,t){var i=this;this._isReady?(this._posOverlay&&(this._posOverlay.setMap(null),this._posOverlay=null),e&&WeixinJSBridge.invoke("private_geolocation",{},function(e){try{e=JSON.parse(e)}catch(t){e={}}if(e.result&&e.result.location){var t=e.result.location;i._posOverlay=new i.CustomOverlay(new qq.maps.LatLng(t.lat,t.lng)),i._posOverlay.setMap(i._map)}})):this._delay("showLocationChanged",e,t)},attached:function(){return this.latitude>90||this.latitude<-90?(console.group(new Date+" latitude 字段取值有误"),console.warn("纬度范围 -90 ~ 90"),void console.groupEnd()):this.longitude>180||this.longitude<-180?(console.group(new Date+" longitude 字段取值有误"),console.warn("经度范围 -180 ~ 180"),void console.groupEnd()):(this._canInvokeNewFeature=!0,this._box=this._getBox(),void(window.__map_jssdk_ready?this._insertIframeMap():window.__map_jssdk_callback.push(this._insertIframeMap.bind(this))))},detached:function(){}})}});