1 line
16 KiB
JavaScript
1 line
16 KiB
JavaScript
|
|
!function(){var e={3197:function(e){e.exports=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},e.exports.default=e.exports,e.exports.__esModule=!0},796:function(e,t,o){"use strict";o.r(t);var n=window.wp.domReady,r=o.n(n),a=o(3197),i=o.n(a),s=window.wp.element,l=window.wp.i18n,c=window.lodash,p=window.wp.components;function d(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}class m extends s.Component{constructor(...e){super(...e),i()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),i()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:o,markerColor:n,mapRef:r}=this.props,{handleClick:a}=this,i=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:s}=d(r.current),l=this.marker?this.marker.getElement():s.createElement("div");this.marker?this.marker.setLngLat(i):(l.className="wp-block-jetpack-map-marker",this.marker=new o.Marker(l).setLngLat(i).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",a)),l.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+n+'" mask="url(#c)"/></g></svg>'}render(){return null}}m.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}};var u=m;class h extends s.Component{constructor(...e){super(...e),i()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,s.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}h.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null};var g=h;var f=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]');const __=l.__;class k extends s.Component{constructor(){super(...arguments),i()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),i()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),i()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),i()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:o}=this.state,{index:n}=o.props,r=t.slice(0);(0,c.assign)(r[n],e),this.props.onSetPoints(r)})),i()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:o}=t.props,n=e.slice(0);n.splice(o,1),this.props.onSetPoints(n),this.setState({activeMarker:null})})),i()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,o=this.mapRef.current;if(e)o.style.height=e+"px";else{const e=o.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,n=Math.min(e*(3/4),t);o.style.height=n+"px"}t.resize(),this.setBoundsByMarkers()})),i()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),i()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:o,points:n,zoom:r}=this.props,{map:a,activeMarker:i,mapboxgl:s,zoomControl:l,boundsSetProgrammatic
|