From 5ddfd9396cfa0e455bd1e9196b4f7a1d817a19b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rabbi=20Islam=20Rony=20=E2=9A=A1=EF=B8=8F?= <35329385+RabbiIslamRony@users.noreply.github.com> Date: Sun, 20 Sep 2026 17:40:29 +0600 Subject: [PATCH 1/2] fix: sync selected location with listing map --- assets/build/js/global/google-map.js | 2 +- .../map-scripts/add-listing/google-map.js | 63 +++++++++++++++---- includes/asset-loader/init.php | 1 + 3 files changed, 52 insertions(+), 14 deletions(-) diff --git a/assets/build/js/global/google-map.js b/assets/build/js/global/google-map.js index 6fa9dc84d0..96a5ea985f 100644 --- a/assets/build/js/global/google-map.js +++ b/assets/build/js/global/google-map.js @@ -1 +1 @@ -!function(){"use strict";function e(e,t){e=".directorist-dom-data-"+e,t||(t=document);var a=t.querySelector(e);if(!a||!a.dataset.value)return{};var o=directorist&&directorist.script_debugging&&"1"==directorist.script_debugging;try{var n=atob(a.dataset.value);return JSON.parse(n)}catch(e){return o&&console.log(a,e),{}}}function t(){return function(){if(window.DirectoristMapBridge&&window.DirectoristMapBridge.version>=1)return window.DirectoristMapBridge;var e={},t={version:1,get:function(t){return e[t]||null},replaceMarkers:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.get(e);return!(!o||"function"!=typeof o.replaceMarkers)&&o.replaceMarkers(t,a)},openPopup:function(e,t,a){var o=this.get(e);return!(!o||"function"!=typeof o.openPopup)&&o.openPopup(t,a)},register:function(t){return t&&t.instanceId?(e[t.instanceId]=t,this.dispatchReady(t.instanceId),t):null},unregister:function(t){e[t]&&delete e[t]},dispatchReady:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-ready",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchViewportChanged:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-viewport-changed",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchMarkerClick:function(e,t){var a=this.get(e);this.dispatch("directorist-map-marker-click",{instanceId:e,provider:a?a.provider:"",listingId:t?parseInt(t,10):0})},dispatch:function(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}};return window.DirectoristMapBridge=t,t}()}var a=jQuery;function o(){if("undefined"!=typeof google&&google.maps&&google.maps.Geocoder&&a("#gmap").length){var t,o,n,i,r,s,l,d=e("map_data"),c=parseFloat(d.default_latitude),p=parseFloat(d.default_longitude),g=parseFloat(d.manual_lat),m=parseFloat(d.manual_lng),u=parseInt(d.map_zoom_level),f='"),h=document.createElement("div");h.className="atbd_map_shape",h.innerHTML=f,g=isNaN(g)?c:g,m=isNaN(m)?p:m,r=a("#manual_lat"),s=a("#manual_lng"),l={lat:g,lng:m},i=[],null!==(n=document.getElementById("address"))&&n.addEventListener("focus",w);var v=new google.maps.Geocoder;function y(e){e.addListener("dragend",function(e){var t=e.latLng.lat(),a=e.latLng.lng();r.val(t),s.val(a),k(v,t,a)})}function _(e){if(!e||!e.address_components)return"";var t=e.address_components;return t.length>0&&t[0].long_name&&t[0].long_name.includes("+")&&(t=t.slice(1)),t.map(function(e){return e.long_name}).join(", ")}function k(e,t,a){var o={location:new google.maps.LatLng(t,a)};e.geocode(o,function(e,t){if("OK"===t&&e[0]){var a=_(e[0]);n.value=a}})}function w(){navigator.geolocation&&navigator.geolocation.getCurrentPosition(function(e){var t={lat:e.coords.latitude,lng:e.coords.longitude},a=new google.maps.Circle({center:t,radius:e.coords.accuracy});o.setBounds(a.getBounds())})}function b(){var e={types:["geocode"],componentRestrictions:{country:directorist.restricted_countries}},t=directorist.countryRestriction?e:{types:[]};(o=new google.maps.places.Autocomplete(n,t)).addListener("place_changed",L)}function L(){var e=o.getPlace();r.val(e.geometry.location.lat()),s.val(e.geometry.location.lng()),t.setCenter(e.geometry.location);var a=new google.maps.marker.AdvancedMarkerElement({map:t,position:e.geometry.location,gmpDraggable:!0,content:h,title:d.marker_title});x(),i.push(a),y(a)}function M(){t=new google.maps.Map(document.getElementById("gmap"),{zoom:u,center:l,mapId:"add_listing_map"});var e=new google.maps.marker.AdvancedMarkerElement({map:t,position:l,gmpDraggable:!0,content:h,title:d.marker_title});i.push(e),document.getElementById("generate_admin_map").addEventListener("click",function(e){e.preventDefault(),I(v,t)}),e.addListener("click",function(e){x();var a=e.latLng.lat(),o=e.latLng.lng();r.val(a),s.val(o),k(v,a,o),N(e.latLng,t)}),y(e)}function I(e,t){var a=parseFloat(document.getElementById("manual_lat").value),o=parseFloat(document.getElementById("manual_lng").value),l=new google.maps.LatLng(a,o),c={location:l};e.geocode(c,function(e,c){if("OK"===c){r.val(a),s.val(o),t.setCenter(l);var p=new google.maps.marker.AdvancedMarkerElement({map:t,position:l,gmpDraggable:!0,content:h,title:d.marker_title});x(),i.push(p);var g=_(e[0]);n.value=g,y(p)}else alert(d.geocode_error_msg+c)})}function N(e,t){var a=new google.maps.marker.AdvancedMarkerElement({map:t,position:e,gmpDraggable:!0,content:h,title:d.marker_title});i.push(a),y(a)}function x(){for(var e=0;e"),r=document.createElement("div");function s(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new l({map:this.getMap(),marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}function l(e){this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label";var t=this;google.maps.event.addDomListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})}r.className="atbd_map_shape",r.innerHTML=i,s.prototype=Object.create(google.maps.Marker.prototype),s.prototype.constructor=s,s.prototype.setMap=function(e){google.maps.Marker.prototype.setMap.call(this,e),this.MarkerLabel&&this.MarkerLabel.setMap(e)},l.prototype=Object.create(google.maps.OverlayView.prototype),l.prototype.constructor=l,l.prototype.onAdd=function(){var e=this.getPanes();e&&e.overlayImage.appendChild(this.div);var t=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){t.draw()}),google.maps.event.addListener(this,"text_changed",function(){t.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){t.draw()})]},l.prototype.onRemove=function(){this.div.parentNode&&this.div.parentNode.removeChild(this.div);for(var e=0;e"+n(this).text()+"";n(this).html(e)})})}n(document).ready(function(){i()}),n(window).on("elementor/frontend/init",function(){setTimeout(function(){n("body").hasClass("elementor-editor-active")&&i()},3e3)}),n("body").on("click",function(e){n("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&i()});var r=jQuery;function s(){if("undefined"!=typeof google&&google.maps&&google.maps.Marker&&google.maps.OverlayView&&r("#gmap-widget").length){var e='"),t=document.createElement("div");function f(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new i({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}t.className="atbd_map_shape",t.innerHTML=e,!function(e,t){function a(){}a.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new a,e.prototype.constructor=e}(f,google.maps.Marker),f.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var a,o,n,i=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};i.prototype=new google.maps.OverlayView,i.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},i.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e"+r(this).text()+"";r(this).html(e)})})}}r(document).ready(function(){s()}),r(window).on("elementor/frontend/init",function(){setTimeout(function(){r("body").hasClass("elementor-editor-active")&&s()},3e3)}),r("body").on("click",function(e){r("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&s()}),function(){function a(){var a=e("atbdp_map");function o(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new n({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}!function(e,t){function a(){}a.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new a,e.prototype.constructor=e}(o,google.maps.Marker),o.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var n=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};n.prototype=new google.maps.OverlayView,n.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},n.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e'.concat(u,"")});f.directoristListingId=d,f.directoristInfoHtml=n.html(),i.markers.push(f),n.html()&&google.maps.event.addListener(f,"click",function(){if(t().dispatchMarkerClick(s,d),"no"===a.disable_info_window){var o=e(n).children();if(o.length){var l=o[0];e(l).toggleClass("map-info-wrapper--show")}r.setContent(n.html()),r.open(i,f)}})}(e(this),c,m,s)});var u={lat:Number(a.default_latitude)?Number(a.default_latitude):i,lng:Number(a.default_longitude)?Number(a.default_longitude):i};l.length&&(u.lat=Number(i?a.default_latitude:l[0].getAttribute("data-latitude")),u.lng=Number(i?a.default_longitude:l[0].getAttribute("data-longitude"))),function(e,t){e.setCenter(t),e.setZoom(parseInt(a.zoom))}(c,u);var f=new MarkerClusterer(c,[],{imagePath:a.plugin_url+"assets/images/m"});f.setStyles(f.getStyles().map(function(e){return e.textColor="#fff",e})),"markerclusterer"===c.type&&f.addMarkers(c.markers),r.register({instanceId:s,provider:"google",element:n[0],map:c,markers:c.markers,getBounds:function(){return function(e){if(!e||"function"!=typeof e.getBounds)return null;var t=e.getBounds();if(!t)return null;var a=t.getNorthEast(),o=t.getSouthWest();return{north:a.lat(),east:a.lng(),south:o.lat(),west:o.lng()}}(c)},openPopup:function(e,t){var a=c.markers.find(function(t){return parseInt(t.directoristListingId,10)===parseInt(e,10)});return!!a&&(m.setContent(t||a.directoristInfoHtml||""),m.open(c,a),!0)}}),google.maps.event.addListener(c,"idle",function(){p&&r.dispatchViewportChanged(s)})}(e(this))}),document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))}),document.querySelectorAll("div").forEach(function(e,t){'m1.png")'===e.style.backgroundImage.split("/").pop()&&e.addEventListener("click",function(){setInterval(function(){document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))})},100)})}),e(document).ready(function(){e("body").find(".map-info-wrapper").addClass("map-info-wrapper--show")})}(jQuery)}window.addEventListener("load",a),window.addEventListener("directorist-reload-listings-map-archive",a);var o=jQuery;o(window).on("elementor/frontend/init",function(){setTimeout(function(){o("body").hasClass("elementor-editor-active")&&a()},3e3)}),o("body").on("click",function(e){o("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&a()})}(),window.directoristLoadGoogleMap=function(){"undefined"!=typeof google&&google.maps&&google.maps.Map&&(i(),o(),s())}}(); \ No newline at end of file +!function(){"use strict";function e(e,t){e=".directorist-dom-data-"+e,t||(t=document);var o=t.querySelector(e);if(!o||!o.dataset.value)return{};var a=directorist&&directorist.script_debugging&&"1"==directorist.script_debugging;try{var n=atob(o.dataset.value);return JSON.parse(n)}catch(e){return a&&console.log(o,e),{}}}function t(){return function(){if(window.DirectoristMapBridge&&window.DirectoristMapBridge.version>=1)return window.DirectoristMapBridge;var e={},t={version:1,get:function(t){return e[t]||null},replaceMarkers:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=this.get(e);return!(!a||"function"!=typeof a.replaceMarkers)&&a.replaceMarkers(t,o)},openPopup:function(e,t,o){var a=this.get(e);return!(!a||"function"!=typeof a.openPopup)&&a.openPopup(t,o)},register:function(t){return t&&t.instanceId?(e[t.instanceId]=t,this.dispatchReady(t.instanceId),t):null},unregister:function(t){e[t]&&delete e[t]},dispatchReady:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-ready",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchViewportChanged:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-viewport-changed",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchMarkerClick:function(e,t){var o=this.get(e);this.dispatch("directorist-map-marker-click",{instanceId:e,provider:o?o.provider:"",listingId:t?parseInt(t,10):0})},dispatch:function(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}};return window.DirectoristMapBridge=t,t}()}var o=jQuery;function a(){if("undefined"!=typeof google&&google.maps&&google.maps.Geocoder&&google.maps.places&&google.maps.places.Autocomplete){var t=document.getElementById("gmap"),a=document.getElementById("address");if(!(a&&a.dataset.directoristGoogleAutocompleteInitialized||t&&t.dataset.directoristGoogleMapInitialized)&&(t||a)){a&&(a.dataset.directoristGoogleAutocompleteInitialized="true"),t&&(t.dataset.directoristGoogleMapInitialized="true");var n,i,r,s,l,d,c,p=e("map_data"),g=parseFloat(p.default_latitude),m=parseFloat(p.default_longitude),u=parseFloat(p.manual_lat),f=parseFloat(p.manual_lng),h=parseInt(p.map_zoom_level),v='"),y=document.createElement("div");y.className="atbd_map_shape",y.innerHTML=v,u=isNaN(u)?g:u,f=isNaN(f)?m:f,l=o("#manual_lat"),d=o("#manual_lng"),c={lat:u,lng:f},s=[],null!==(r=a)&&r.addEventListener("focus",M);var _=new google.maps.Geocoder;function k(e){e.addListener("dragend",function(e){var t=e.latLng.lat(),o=e.latLng.lng();l.val(t),d.val(o),b(_,t,o)})}function w(e){if(!e||!e.address_components)return"";var t=e.address_components;return t.length>0&&t[0].long_name&&t[0].long_name.includes("+")&&(t=t.slice(1)),t.map(function(e){return e.long_name}).join(", ")}function b(e,t,o){var a={location:new google.maps.LatLng(t,o)};e.geocode(a,function(e,t){if("OK"===t&&e[0]&&r){var o=w(e[0]);r.value=o}})}function M(){navigator.geolocation&&i&&navigator.geolocation.getCurrentPosition(function(e){var t={lat:e.coords.latitude,lng:e.coords.longitude},o=new google.maps.Circle({center:t,radius:e.coords.accuracy});i.setBounds(o.getBounds())})}function L(){var e={types:["geocode"],componentRestrictions:{country:directorist.restricted_countries}},t=directorist.countryRestriction?e:{types:[]};(i=new google.maps.places.Autocomplete(r,t)).addListener("place_changed",I)}function I(){var e=i.getPlace();if(e.geometry&&e.geometry.location&&(l.val(e.geometry.location.lat()),d.val(e.geometry.location.lng()),n)){n.setCenter(e.geometry.location),E();var t=new google.maps.marker.AdvancedMarkerElement({map:n,position:e.geometry.location,gmpDraggable:!0,content:y,title:p.marker_title});s.push(t),k(t)}}function N(){n=new google.maps.Map(t,{zoom:h,center:c,mapId:"add_listing_map"});var e=new google.maps.marker.AdvancedMarkerElement({map:n,position:c,gmpDraggable:!0,content:y,title:p.marker_title});s.push(e),document.getElementById("generate_admin_map").addEventListener("click",function(e){e.preventDefault(),x(_,n)}),e.addListener("click",function(e){E();var t=e.latLng.lat(),o=e.latLng.lng();l.val(t),d.val(o),b(_,t,o),C(e.latLng,n)}),k(e)}function x(e,t){var o=parseFloat(document.getElementById("manual_lat").value),a=parseFloat(document.getElementById("manual_lng").value),n=new google.maps.LatLng(o,a),i={location:n};e.geocode(i,function(e,i){if("OK"===i){l.val(o),d.val(a),t.setCenter(n),E();var c=new google.maps.marker.AdvancedMarkerElement({map:t,position:n,gmpDraggable:!0,content:y,title:p.marker_title});s.push(c);var g=w(e[0]);r.value=g,k(c)}else alert(p.geocode_error_msg+i)})}function C(e,t){var o=new google.maps.marker.AdvancedMarkerElement({map:t,position:e,gmpDraggable:!0,content:y,title:p.marker_title});s.push(o),k(o)}function E(){for(var e=0;e"),r=document.createElement("div");function s(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new l({map:this.getMap(),marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}function l(e){this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label";var t=this;google.maps.event.addDomListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})}r.className="atbd_map_shape",r.innerHTML=i,s.prototype=Object.create(google.maps.Marker.prototype),s.prototype.constructor=s,s.prototype.setMap=function(e){google.maps.Marker.prototype.setMap.call(this,e),this.MarkerLabel&&this.MarkerLabel.setMap(e)},l.prototype=Object.create(google.maps.OverlayView.prototype),l.prototype.constructor=l,l.prototype.onAdd=function(){var e=this.getPanes();e&&e.overlayImage.appendChild(this.div);var t=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){t.draw()}),google.maps.event.addListener(this,"text_changed",function(){t.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){t.draw()})]},l.prototype.onRemove=function(){this.div.parentNode&&this.div.parentNode.removeChild(this.div);for(var e=0;e"+n(this).text()+"";n(this).html(e)})})}n(document).ready(function(){i()}),n(window).on("elementor/frontend/init",function(){setTimeout(function(){n("body").hasClass("elementor-editor-active")&&i()},3e3)}),n("body").on("click",function(e){n("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&i()});var r=jQuery;function s(){if("undefined"!=typeof google&&google.maps&&google.maps.Marker&&google.maps.OverlayView&&r("#gmap-widget").length){var e='"),t=document.createElement("div");function f(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new i({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}t.className="atbd_map_shape",t.innerHTML=e,!function(e,t){function o(){}o.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new o,e.prototype.constructor=e}(f,google.maps.Marker),f.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var o,a,n,i=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};i.prototype=new google.maps.OverlayView,i.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},i.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e"+r(this).text()+"";r(this).html(e)})})}}r(document).ready(function(){s()}),r(window).on("elementor/frontend/init",function(){setTimeout(function(){r("body").hasClass("elementor-editor-active")&&s()},3e3)}),r("body").on("click",function(e){r("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&s()}),function(){function o(){var o=e("atbdp_map");function a(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new n({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}!function(e,t){function o(){}o.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new o,e.prototype.constructor=e}(a,google.maps.Marker),a.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var n=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};n.prototype=new google.maps.OverlayView,n.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},n.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e'.concat(u,"")});f.directoristListingId=d,f.directoristInfoHtml=n.html(),i.markers.push(f),n.html()&&google.maps.event.addListener(f,"click",function(){if(t().dispatchMarkerClick(s,d),"no"===o.disable_info_window){var a=e(n).children();if(a.length){var l=a[0];e(l).toggleClass("map-info-wrapper--show")}r.setContent(n.html()),r.open(i,f)}})}(e(this),c,m,s)});var u={lat:Number(o.default_latitude)?Number(o.default_latitude):i,lng:Number(o.default_longitude)?Number(o.default_longitude):i};l.length&&(u.lat=Number(i?o.default_latitude:l[0].getAttribute("data-latitude")),u.lng=Number(i?o.default_longitude:l[0].getAttribute("data-longitude"))),function(e,t){e.setCenter(t),e.setZoom(parseInt(o.zoom))}(c,u);var f=new MarkerClusterer(c,[],{imagePath:o.plugin_url+"assets/images/m"});f.setStyles(f.getStyles().map(function(e){return e.textColor="#fff",e})),"markerclusterer"===c.type&&f.addMarkers(c.markers),r.register({instanceId:s,provider:"google",element:n[0],map:c,markers:c.markers,getBounds:function(){return function(e){if(!e||"function"!=typeof e.getBounds)return null;var t=e.getBounds();if(!t)return null;var o=t.getNorthEast(),a=t.getSouthWest();return{north:o.lat(),east:o.lng(),south:a.lat(),west:a.lng()}}(c)},openPopup:function(e,t){var o=c.markers.find(function(t){return parseInt(t.directoristListingId,10)===parseInt(e,10)});return!!o&&(m.setContent(t||o.directoristInfoHtml||""),m.open(c,o),!0)}}),google.maps.event.addListener(c,"idle",function(){p&&r.dispatchViewportChanged(s)})}(e(this))}),document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))}),document.querySelectorAll("div").forEach(function(e,t){'m1.png")'===e.style.backgroundImage.split("/").pop()&&e.addEventListener("click",function(){setInterval(function(){document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))})},100)})}),e(document).ready(function(){e("body").find(".map-info-wrapper").addClass("map-info-wrapper--show")})}(jQuery)}window.addEventListener("load",o),window.addEventListener("directorist-reload-listings-map-archive",o);var a=jQuery;a(window).on("elementor/frontend/init",function(){setTimeout(function(){a("body").hasClass("elementor-editor-active")&&o()},3e3)}),a("body").on("click",function(e){a("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&o()})}(),window.directoristLoadGoogleMap=function(){"undefined"!=typeof google&&google.maps&&google.maps.Map&&(i(),a(),s())}}(); \ No newline at end of file diff --git a/assets/src/js/global/map-scripts/add-listing/google-map.js b/assets/src/js/global/map-scripts/add-listing/google-map.js index 87e5929721..9eed0e4454 100644 --- a/assets/src/js/global/map-scripts/add-listing/google-map.js +++ b/assets/src/js/global/map-scripts/add-listing/google-map.js @@ -9,12 +9,34 @@ export function initAddListingMap() { if ( typeof google === 'undefined' || !google.maps || - !google.maps.Geocoder + !google.maps.Geocoder || + !google.maps.places || + !google.maps.places.Autocomplete ) { return; } - if ($('#gmap').length) { + const mapElement = document.getElementById('gmap'); + const addressElement = document.getElementById('address'); + + if ( + (addressElement && + addressElement.dataset.directoristGoogleAutocompleteInitialized) || + (mapElement && mapElement.dataset.directoristGoogleMapInitialized) + ) { + return; + } + + if (mapElement || addressElement) { + if (addressElement) { + addressElement.dataset.directoristGoogleAutocompleteInitialized = + 'true'; + } + + if (mapElement) { + mapElement.dataset.directoristGoogleMapInitialized = 'true'; + } + var localized_data = get_dom_data('map_data'); // initialize all vars here to avoid hoisting related misunderstanding. @@ -59,7 +81,7 @@ export function initAddListingMap() { // default is London city ((markers = []), // initialize the array to keep track all the marker - (address_input = document.getElementById('address'))); + (address_input = addressElement)); if (address_input !== null) { address_input.addEventListener('focus', geolocate); } @@ -111,7 +133,7 @@ export function initAddListingMap() { }; geocoder.geocode(opt, function (results, status) { - if (status === 'OK' && results[0]) { + if (status === 'OK' && results[0] && address_input) { // Clean the address by removing plus code prefix if present const cleanedAddress = formatAddress(results[0]); address_input.value = cleanedAddress; @@ -121,7 +143,7 @@ export function initAddListingMap() { // this function will work on sites that uses SSL, it applies to Chrome especially, other browsers may allow location sharing without securing. function geolocate() { - if (navigator.geolocation) { + if (navigator.geolocation && autocomplete) { navigator.geolocation.getCurrentPosition(function (position) { const geolocation = { lat: position.coords.latitude, @@ -164,10 +186,23 @@ export function initAddListingMap() { // Get the place details from the autocomplete object. const place = autocomplete.getPlace(); + if (!place.geometry || !place.geometry.location) { + return; + } + // set the value of input field to save them to the database $manual_lat.val(place.geometry.location.lat()); $manual_lng.val(place.geometry.location.lng()); + + if (!map) { + return; + } + map.setCenter(place.geometry.location); + + // Delete Previous Marker + deleteMarker(); + const marker = new google.maps.marker.AdvancedMarkerElement({ map, position: place.geometry.location, @@ -176,20 +211,19 @@ export function initAddListingMap() { title: localized_data.marker_title, }); - // Delete Previous Marker - deleteMarker(); - // add the marker to the markers array to keep track of it, so that we can show/hide/delete them all later. markers.push(marker); markerDragInit(marker); } - initAutocomplete(); // start google map place auto complete API call + if (address_input) { + initAutocomplete(); // start google map place auto complete API call + } // Map Initialize function initMap() { /* Create new map instance */ - map = new google.maps.Map(document.getElementById('gmap'), { + map = new google.maps.Map(mapElement, { zoom: loc_map_zoom_level, center: saved_lat_lng, mapId: 'add_listing_map', @@ -255,6 +289,8 @@ export function initAddListingMap() { // Center map on the exact coordinates resultsMap.setCenter(latLng); + deleteMarker(); + const marker = new google.maps.marker.AdvancedMarkerElement( { map: resultsMap, @@ -265,7 +301,6 @@ export function initAddListingMap() { } ); - deleteMarker(); // add the marker to the markers array to keep track of it, so that we can show/hide/delete them all later. markers.push(marker); @@ -280,7 +315,9 @@ export function initAddListingMap() { }); } - initMap(); + if (mapElement) { + initMap(); + } // adding features of creating marker manually on the map on add listing page. /* var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; @@ -312,7 +349,7 @@ export function initAddListingMap() { function deleteMarker() { for (let i = 0; i < markers.length; i++) { - markers[i].setMap(null); + markers[i].map = null; } markers = []; } diff --git a/includes/asset-loader/init.php b/includes/asset-loader/init.php index ba158b8257..ce03bf75ce 100644 --- a/includes/asset-loader/init.php +++ b/includes/asset-loader/init.php @@ -212,6 +212,7 @@ public static function load_template_scripts( $template ) { case 'listing-form/fields/address': wp_enqueue_script( 'directorist-geolocation' ); + self::enqueue_map_scripts(); break; case 'listing-form/fields/image_upload': From 96c1b6a869a36c6b7f44eb3b3ee9cc9ea4dfcb6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rabbi=20Islam=20Rony=20=E2=9A=A1=EF=B8=8F?= <35329385+RabbiIslamRony@users.noreply.github.com> Date: Sun, 20 Sep 2026 17:44:39 +0600 Subject: [PATCH 2/2] build: exclude generated Google map bundle --- assets/build/js/global/google-map.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/build/js/global/google-map.js b/assets/build/js/global/google-map.js index 96a5ea985f..6fa9dc84d0 100644 --- a/assets/build/js/global/google-map.js +++ b/assets/build/js/global/google-map.js @@ -1 +1 @@ -!function(){"use strict";function e(e,t){e=".directorist-dom-data-"+e,t||(t=document);var o=t.querySelector(e);if(!o||!o.dataset.value)return{};var a=directorist&&directorist.script_debugging&&"1"==directorist.script_debugging;try{var n=atob(o.dataset.value);return JSON.parse(n)}catch(e){return a&&console.log(o,e),{}}}function t(){return function(){if(window.DirectoristMapBridge&&window.DirectoristMapBridge.version>=1)return window.DirectoristMapBridge;var e={},t={version:1,get:function(t){return e[t]||null},replaceMarkers:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=this.get(e);return!(!a||"function"!=typeof a.replaceMarkers)&&a.replaceMarkers(t,o)},openPopup:function(e,t,o){var a=this.get(e);return!(!a||"function"!=typeof a.openPopup)&&a.openPopup(t,o)},register:function(t){return t&&t.instanceId?(e[t.instanceId]=t,this.dispatchReady(t.instanceId),t):null},unregister:function(t){e[t]&&delete e[t]},dispatchReady:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-ready",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchViewportChanged:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-viewport-changed",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchMarkerClick:function(e,t){var o=this.get(e);this.dispatch("directorist-map-marker-click",{instanceId:e,provider:o?o.provider:"",listingId:t?parseInt(t,10):0})},dispatch:function(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}};return window.DirectoristMapBridge=t,t}()}var o=jQuery;function a(){if("undefined"!=typeof google&&google.maps&&google.maps.Geocoder&&google.maps.places&&google.maps.places.Autocomplete){var t=document.getElementById("gmap"),a=document.getElementById("address");if(!(a&&a.dataset.directoristGoogleAutocompleteInitialized||t&&t.dataset.directoristGoogleMapInitialized)&&(t||a)){a&&(a.dataset.directoristGoogleAutocompleteInitialized="true"),t&&(t.dataset.directoristGoogleMapInitialized="true");var n,i,r,s,l,d,c,p=e("map_data"),g=parseFloat(p.default_latitude),m=parseFloat(p.default_longitude),u=parseFloat(p.manual_lat),f=parseFloat(p.manual_lng),h=parseInt(p.map_zoom_level),v='"),y=document.createElement("div");y.className="atbd_map_shape",y.innerHTML=v,u=isNaN(u)?g:u,f=isNaN(f)?m:f,l=o("#manual_lat"),d=o("#manual_lng"),c={lat:u,lng:f},s=[],null!==(r=a)&&r.addEventListener("focus",M);var _=new google.maps.Geocoder;function k(e){e.addListener("dragend",function(e){var t=e.latLng.lat(),o=e.latLng.lng();l.val(t),d.val(o),b(_,t,o)})}function w(e){if(!e||!e.address_components)return"";var t=e.address_components;return t.length>0&&t[0].long_name&&t[0].long_name.includes("+")&&(t=t.slice(1)),t.map(function(e){return e.long_name}).join(", ")}function b(e,t,o){var a={location:new google.maps.LatLng(t,o)};e.geocode(a,function(e,t){if("OK"===t&&e[0]&&r){var o=w(e[0]);r.value=o}})}function M(){navigator.geolocation&&i&&navigator.geolocation.getCurrentPosition(function(e){var t={lat:e.coords.latitude,lng:e.coords.longitude},o=new google.maps.Circle({center:t,radius:e.coords.accuracy});i.setBounds(o.getBounds())})}function L(){var e={types:["geocode"],componentRestrictions:{country:directorist.restricted_countries}},t=directorist.countryRestriction?e:{types:[]};(i=new google.maps.places.Autocomplete(r,t)).addListener("place_changed",I)}function I(){var e=i.getPlace();if(e.geometry&&e.geometry.location&&(l.val(e.geometry.location.lat()),d.val(e.geometry.location.lng()),n)){n.setCenter(e.geometry.location),E();var t=new google.maps.marker.AdvancedMarkerElement({map:n,position:e.geometry.location,gmpDraggable:!0,content:y,title:p.marker_title});s.push(t),k(t)}}function N(){n=new google.maps.Map(t,{zoom:h,center:c,mapId:"add_listing_map"});var e=new google.maps.marker.AdvancedMarkerElement({map:n,position:c,gmpDraggable:!0,content:y,title:p.marker_title});s.push(e),document.getElementById("generate_admin_map").addEventListener("click",function(e){e.preventDefault(),x(_,n)}),e.addListener("click",function(e){E();var t=e.latLng.lat(),o=e.latLng.lng();l.val(t),d.val(o),b(_,t,o),C(e.latLng,n)}),k(e)}function x(e,t){var o=parseFloat(document.getElementById("manual_lat").value),a=parseFloat(document.getElementById("manual_lng").value),n=new google.maps.LatLng(o,a),i={location:n};e.geocode(i,function(e,i){if("OK"===i){l.val(o),d.val(a),t.setCenter(n),E();var c=new google.maps.marker.AdvancedMarkerElement({map:t,position:n,gmpDraggable:!0,content:y,title:p.marker_title});s.push(c);var g=w(e[0]);r.value=g,k(c)}else alert(p.geocode_error_msg+i)})}function C(e,t){var o=new google.maps.marker.AdvancedMarkerElement({map:t,position:e,gmpDraggable:!0,content:y,title:p.marker_title});s.push(o),k(o)}function E(){for(var e=0;e"),r=document.createElement("div");function s(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new l({map:this.getMap(),marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}function l(e){this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label";var t=this;google.maps.event.addDomListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})}r.className="atbd_map_shape",r.innerHTML=i,s.prototype=Object.create(google.maps.Marker.prototype),s.prototype.constructor=s,s.prototype.setMap=function(e){google.maps.Marker.prototype.setMap.call(this,e),this.MarkerLabel&&this.MarkerLabel.setMap(e)},l.prototype=Object.create(google.maps.OverlayView.prototype),l.prototype.constructor=l,l.prototype.onAdd=function(){var e=this.getPanes();e&&e.overlayImage.appendChild(this.div);var t=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){t.draw()}),google.maps.event.addListener(this,"text_changed",function(){t.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){t.draw()})]},l.prototype.onRemove=function(){this.div.parentNode&&this.div.parentNode.removeChild(this.div);for(var e=0;e"+n(this).text()+"";n(this).html(e)})})}n(document).ready(function(){i()}),n(window).on("elementor/frontend/init",function(){setTimeout(function(){n("body").hasClass("elementor-editor-active")&&i()},3e3)}),n("body").on("click",function(e){n("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&i()});var r=jQuery;function s(){if("undefined"!=typeof google&&google.maps&&google.maps.Marker&&google.maps.OverlayView&&r("#gmap-widget").length){var e='"),t=document.createElement("div");function f(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new i({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}t.className="atbd_map_shape",t.innerHTML=e,!function(e,t){function o(){}o.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new o,e.prototype.constructor=e}(f,google.maps.Marker),f.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var o,a,n,i=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};i.prototype=new google.maps.OverlayView,i.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},i.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e"+r(this).text()+"";r(this).html(e)})})}}r(document).ready(function(){s()}),r(window).on("elementor/frontend/init",function(){setTimeout(function(){r("body").hasClass("elementor-editor-active")&&s()},3e3)}),r("body").on("click",function(e){r("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&s()}),function(){function o(){var o=e("atbdp_map");function a(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new n({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}!function(e,t){function o(){}o.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new o,e.prototype.constructor=e}(a,google.maps.Marker),a.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var n=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};n.prototype=new google.maps.OverlayView,n.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},n.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e'.concat(u,"")});f.directoristListingId=d,f.directoristInfoHtml=n.html(),i.markers.push(f),n.html()&&google.maps.event.addListener(f,"click",function(){if(t().dispatchMarkerClick(s,d),"no"===o.disable_info_window){var a=e(n).children();if(a.length){var l=a[0];e(l).toggleClass("map-info-wrapper--show")}r.setContent(n.html()),r.open(i,f)}})}(e(this),c,m,s)});var u={lat:Number(o.default_latitude)?Number(o.default_latitude):i,lng:Number(o.default_longitude)?Number(o.default_longitude):i};l.length&&(u.lat=Number(i?o.default_latitude:l[0].getAttribute("data-latitude")),u.lng=Number(i?o.default_longitude:l[0].getAttribute("data-longitude"))),function(e,t){e.setCenter(t),e.setZoom(parseInt(o.zoom))}(c,u);var f=new MarkerClusterer(c,[],{imagePath:o.plugin_url+"assets/images/m"});f.setStyles(f.getStyles().map(function(e){return e.textColor="#fff",e})),"markerclusterer"===c.type&&f.addMarkers(c.markers),r.register({instanceId:s,provider:"google",element:n[0],map:c,markers:c.markers,getBounds:function(){return function(e){if(!e||"function"!=typeof e.getBounds)return null;var t=e.getBounds();if(!t)return null;var o=t.getNorthEast(),a=t.getSouthWest();return{north:o.lat(),east:o.lng(),south:a.lat(),west:a.lng()}}(c)},openPopup:function(e,t){var o=c.markers.find(function(t){return parseInt(t.directoristListingId,10)===parseInt(e,10)});return!!o&&(m.setContent(t||o.directoristInfoHtml||""),m.open(c,o),!0)}}),google.maps.event.addListener(c,"idle",function(){p&&r.dispatchViewportChanged(s)})}(e(this))}),document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))}),document.querySelectorAll("div").forEach(function(e,t){'m1.png")'===e.style.backgroundImage.split("/").pop()&&e.addEventListener("click",function(){setInterval(function(){document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))})},100)})}),e(document).ready(function(){e("body").find(".map-info-wrapper").addClass("map-info-wrapper--show")})}(jQuery)}window.addEventListener("load",o),window.addEventListener("directorist-reload-listings-map-archive",o);var a=jQuery;a(window).on("elementor/frontend/init",function(){setTimeout(function(){a("body").hasClass("elementor-editor-active")&&o()},3e3)}),a("body").on("click",function(e){a("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&o()})}(),window.directoristLoadGoogleMap=function(){"undefined"!=typeof google&&google.maps&&google.maps.Map&&(i(),a(),s())}}(); \ No newline at end of file +!function(){"use strict";function e(e,t){e=".directorist-dom-data-"+e,t||(t=document);var a=t.querySelector(e);if(!a||!a.dataset.value)return{};var o=directorist&&directorist.script_debugging&&"1"==directorist.script_debugging;try{var n=atob(a.dataset.value);return JSON.parse(n)}catch(e){return o&&console.log(a,e),{}}}function t(){return function(){if(window.DirectoristMapBridge&&window.DirectoristMapBridge.version>=1)return window.DirectoristMapBridge;var e={},t={version:1,get:function(t){return e[t]||null},replaceMarkers:function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this.get(e);return!(!o||"function"!=typeof o.replaceMarkers)&&o.replaceMarkers(t,a)},openPopup:function(e,t,a){var o=this.get(e);return!(!o||"function"!=typeof o.openPopup)&&o.openPopup(t,a)},register:function(t){return t&&t.instanceId?(e[t.instanceId]=t,this.dispatchReady(t.instanceId),t):null},unregister:function(t){e[t]&&delete e[t]},dispatchReady:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-ready",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchViewportChanged:function(e){var t=this.get(e);t&&this.dispatch("directorist-map-viewport-changed",{instanceId:e,provider:t.provider,bounds:"function"==typeof t.getBounds?t.getBounds():null})},dispatchMarkerClick:function(e,t){var a=this.get(e);this.dispatch("directorist-map-marker-click",{instanceId:e,provider:a?a.provider:"",listingId:t?parseInt(t,10):0})},dispatch:function(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}};return window.DirectoristMapBridge=t,t}()}var a=jQuery;function o(){if("undefined"!=typeof google&&google.maps&&google.maps.Geocoder&&a("#gmap").length){var t,o,n,i,r,s,l,d=e("map_data"),c=parseFloat(d.default_latitude),p=parseFloat(d.default_longitude),g=parseFloat(d.manual_lat),m=parseFloat(d.manual_lng),u=parseInt(d.map_zoom_level),f='"),h=document.createElement("div");h.className="atbd_map_shape",h.innerHTML=f,g=isNaN(g)?c:g,m=isNaN(m)?p:m,r=a("#manual_lat"),s=a("#manual_lng"),l={lat:g,lng:m},i=[],null!==(n=document.getElementById("address"))&&n.addEventListener("focus",w);var v=new google.maps.Geocoder;function y(e){e.addListener("dragend",function(e){var t=e.latLng.lat(),a=e.latLng.lng();r.val(t),s.val(a),k(v,t,a)})}function _(e){if(!e||!e.address_components)return"";var t=e.address_components;return t.length>0&&t[0].long_name&&t[0].long_name.includes("+")&&(t=t.slice(1)),t.map(function(e){return e.long_name}).join(", ")}function k(e,t,a){var o={location:new google.maps.LatLng(t,a)};e.geocode(o,function(e,t){if("OK"===t&&e[0]){var a=_(e[0]);n.value=a}})}function w(){navigator.geolocation&&navigator.geolocation.getCurrentPosition(function(e){var t={lat:e.coords.latitude,lng:e.coords.longitude},a=new google.maps.Circle({center:t,radius:e.coords.accuracy});o.setBounds(a.getBounds())})}function b(){var e={types:["geocode"],componentRestrictions:{country:directorist.restricted_countries}},t=directorist.countryRestriction?e:{types:[]};(o=new google.maps.places.Autocomplete(n,t)).addListener("place_changed",L)}function L(){var e=o.getPlace();r.val(e.geometry.location.lat()),s.val(e.geometry.location.lng()),t.setCenter(e.geometry.location);var a=new google.maps.marker.AdvancedMarkerElement({map:t,position:e.geometry.location,gmpDraggable:!0,content:h,title:d.marker_title});x(),i.push(a),y(a)}function M(){t=new google.maps.Map(document.getElementById("gmap"),{zoom:u,center:l,mapId:"add_listing_map"});var e=new google.maps.marker.AdvancedMarkerElement({map:t,position:l,gmpDraggable:!0,content:h,title:d.marker_title});i.push(e),document.getElementById("generate_admin_map").addEventListener("click",function(e){e.preventDefault(),I(v,t)}),e.addListener("click",function(e){x();var a=e.latLng.lat(),o=e.latLng.lng();r.val(a),s.val(o),k(v,a,o),N(e.latLng,t)}),y(e)}function I(e,t){var a=parseFloat(document.getElementById("manual_lat").value),o=parseFloat(document.getElementById("manual_lng").value),l=new google.maps.LatLng(a,o),c={location:l};e.geocode(c,function(e,c){if("OK"===c){r.val(a),s.val(o),t.setCenter(l);var p=new google.maps.marker.AdvancedMarkerElement({map:t,position:l,gmpDraggable:!0,content:h,title:d.marker_title});x(),i.push(p);var g=_(e[0]);n.value=g,y(p)}else alert(d.geocode_error_msg+c)})}function N(e,t){var a=new google.maps.marker.AdvancedMarkerElement({map:t,position:e,gmpDraggable:!0,content:h,title:d.marker_title});i.push(a),y(a)}function x(){for(var e=0;e"),r=document.createElement("div");function s(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new l({map:this.getMap(),marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}function l(e){this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label";var t=this;google.maps.event.addDomListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})}r.className="atbd_map_shape",r.innerHTML=i,s.prototype=Object.create(google.maps.Marker.prototype),s.prototype.constructor=s,s.prototype.setMap=function(e){google.maps.Marker.prototype.setMap.call(this,e),this.MarkerLabel&&this.MarkerLabel.setMap(e)},l.prototype=Object.create(google.maps.OverlayView.prototype),l.prototype.constructor=l,l.prototype.onAdd=function(){var e=this.getPanes();e&&e.overlayImage.appendChild(this.div);var t=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){t.draw()}),google.maps.event.addListener(this,"text_changed",function(){t.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){t.draw()})]},l.prototype.onRemove=function(){this.div.parentNode&&this.div.parentNode.removeChild(this.div);for(var e=0;e"+n(this).text()+"";n(this).html(e)})})}n(document).ready(function(){i()}),n(window).on("elementor/frontend/init",function(){setTimeout(function(){n("body").hasClass("elementor-editor-active")&&i()},3e3)}),n("body").on("click",function(e){n("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&i()});var r=jQuery;function s(){if("undefined"!=typeof google&&google.maps&&google.maps.Marker&&google.maps.OverlayView&&r("#gmap-widget").length){var e='"),t=document.createElement("div");function f(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new i({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}t.className="atbd_map_shape",t.innerHTML=e,!function(e,t){function a(){}a.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new a,e.prototype.constructor=e}(f,google.maps.Marker),f.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var a,o,n,i=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};i.prototype=new google.maps.OverlayView,i.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},i.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e"+r(this).text()+"";r(this).html(e)})})}}r(document).ready(function(){s()}),r(window).on("elementor/frontend/init",function(){setTimeout(function(){r("body").hasClass("elementor-editor-active")&&s()},3e3)}),r("body").on("click",function(e){r("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&s()}),function(){function a(){var a=e("atbdp_map");function o(e){google.maps.Marker.apply(this,arguments),e.map_icon_label&&(this.MarkerLabel=new n({map:this.map,marker:this,text:e.map_icon_label}),this.MarkerLabel.bindTo("position",this,"position"))}!function(e,t){function a(){}a.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new a,e.prototype.constructor=e}(o,google.maps.Marker),o.prototype.setMap=function(){google.maps.Marker.prototype.setMap.apply(this,arguments),this.MarkerLabel&&this.MarkerLabel.setMap.apply(this.MarkerLabel,arguments)};var n=function(e){var t=this;this.setValues(e),this.div=document.createElement("div"),this.div.className="map-icon-label",google.maps.event.addListener(this.div,"click",function(e){e.stopPropagation&&e.stopPropagation(),google.maps.event.trigger(t.marker,"click")})};n.prototype=new google.maps.OverlayView,n.prototype.onAdd=function(){this.getPanes().overlayImage.appendChild(this.div);var e=this;this.listeners=[google.maps.event.addListener(this,"position_changed",function(){e.draw()}),google.maps.event.addListener(this,"text_changed",function(){e.draw()}),google.maps.event.addListener(this,"zindex_changed",function(){e.draw()})]},n.prototype.onRemove=function(){this.div.parentNode.removeChild(this.div);for(var e=0,t=this.listeners.length;e'.concat(u,"")});f.directoristListingId=d,f.directoristInfoHtml=n.html(),i.markers.push(f),n.html()&&google.maps.event.addListener(f,"click",function(){if(t().dispatchMarkerClick(s,d),"no"===a.disable_info_window){var o=e(n).children();if(o.length){var l=o[0];e(l).toggleClass("map-info-wrapper--show")}r.setContent(n.html()),r.open(i,f)}})}(e(this),c,m,s)});var u={lat:Number(a.default_latitude)?Number(a.default_latitude):i,lng:Number(a.default_longitude)?Number(a.default_longitude):i};l.length&&(u.lat=Number(i?a.default_latitude:l[0].getAttribute("data-latitude")),u.lng=Number(i?a.default_longitude:l[0].getAttribute("data-longitude"))),function(e,t){e.setCenter(t),e.setZoom(parseInt(a.zoom))}(c,u);var f=new MarkerClusterer(c,[],{imagePath:a.plugin_url+"assets/images/m"});f.setStyles(f.getStyles().map(function(e){return e.textColor="#fff",e})),"markerclusterer"===c.type&&f.addMarkers(c.markers),r.register({instanceId:s,provider:"google",element:n[0],map:c,markers:c.markers,getBounds:function(){return function(e){if(!e||"function"!=typeof e.getBounds)return null;var t=e.getBounds();if(!t)return null;var a=t.getNorthEast(),o=t.getSouthWest();return{north:a.lat(),east:a.lng(),south:o.lat(),west:o.lng()}}(c)},openPopup:function(e,t){var a=c.markers.find(function(t){return parseInt(t.directoristListingId,10)===parseInt(e,10)});return!!a&&(m.setContent(t||a.directoristInfoHtml||""),m.open(c,a),!0)}}),google.maps.event.addListener(c,"idle",function(){p&&r.dispatchViewportChanged(s)})}(e(this))}),document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))}),document.querySelectorAll("div").forEach(function(e,t){'m1.png")'===e.style.backgroundImage.split("/").pop()&&e.addEventListener("click",function(){setInterval(function(){document.querySelectorAll("div").forEach(function(e,t){"atgm_marker"===e.innerText&&(e.innerText=" ",e.innerHTML=''.concat(n,""))})},100)})}),e(document).ready(function(){e("body").find(".map-info-wrapper").addClass("map-info-wrapper--show")})}(jQuery)}window.addEventListener("load",a),window.addEventListener("directorist-reload-listings-map-archive",a);var o=jQuery;o(window).on("elementor/frontend/init",function(){setTimeout(function(){o("body").hasClass("elementor-editor-active")&&a()},3e3)}),o("body").on("click",function(e){o("body").hasClass("elementor-editor-active")&&"A"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&a()})}(),window.directoristLoadGoogleMap=function(){"undefined"!=typeof google&&google.maps&&google.maps.Map&&(i(),o(),s())}}(); \ No newline at end of file