Version Description
- 2020-12-11 - High priority =
- Tested up to WordPress 5.6
- Added support for jQuery 3
Download this release
Release Info
Developer | DylanAuty |
Plugin | WP Google Maps |
Version | 8.0.29 |
Comparing to | |
See all releases |
Code changes from version 8.0.28 to 8.0.29
- includes/compat/js/backwards_compat_user_v6.js +1 -1
- includes/compat/js/backwards_compat_v6.js +1 -1
- js/admin-basic.js +1 -1
- js/legacy/legacy-edit-marker-location-page.js +1 -1
- js/v8/compatibility/astra-theme-compatibility.js +1 -1
- js/v8/google-maps/google-map.js +1 -1
- js/v8/map-edit-page.js +1 -2
- js/v8/marker-panel.js +1 -1
- js/v8/scripts.json +77 -77
- js/v8/wp-google-maps.combined.js +3696 -3697
- js/v8/wp-google-maps.min.js +1 -1
- js/v8/wp-google-maps.min.js.map +1 -0
- js/wpgmaps-admin-core.js +12 -6
- js/wpgmaps.js +1 -0
- legacy-core.php +12 -12
- readme.txt +11 -0
- wpGoogleMaps.php +5 -1
includes/compat/js/backwards_compat_user_v6.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
jQuery(function($){
|
2 |
-
jQuery(
|
3 |
if(typeof wpgmaps_localize !== "undefined"){
|
4 |
for(var i in wpgmaps_localize){
|
5 |
var mapid = wpgmaps_localize[i]['id'];
|
1 |
jQuery(function($){
|
2 |
+
jQuery(document).on("load", function(){
|
3 |
if(typeof wpgmaps_localize !== "undefined"){
|
4 |
for(var i in wpgmaps_localize){
|
5 |
var mapid = wpgmaps_localize[i]['id'];
|
includes/compat/js/backwards_compat_v6.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
// TODO: Move this file into /js and out of /includes which is for PHP
|
2 |
jQuery(function($){
|
3 |
-
jQuery(
|
4 |
if(typeof wpgmza_backwards_compat_v6_marker_tab_headings !== "undefined"){
|
5 |
$("#wpgmaps_tabs_markers > ul").append(wpgmza_backwards_compat_v6_marker_tab_headings);
|
6 |
$("#wpgmaps_tabs_markers").append(wpgmza_backwards_compat_v6_marker_tab_content);
|
1 |
// TODO: Move this file into /js and out of /includes which is for PHP
|
2 |
jQuery(function($){
|
3 |
+
jQuery(document).on("load", function(){
|
4 |
if(typeof wpgmza_backwards_compat_v6_marker_tab_headings !== "undefined"){
|
5 |
$("#wpgmaps_tabs_markers > ul").append(wpgmza_backwards_compat_v6_marker_tab_headings);
|
6 |
$("#wpgmaps_tabs_markers").append(wpgmza_backwards_compat_v6_marker_tab_content);
|
js/admin-basic.js
CHANGED
@@ -114,7 +114,7 @@ jQuery(function($) {
|
|
114 |
|
115 |
});
|
116 |
|
117 |
-
$(
|
118 |
|
119 |
if(WPGMZA.settings.engine != "open-layers")
|
120 |
return;
|
114 |
|
115 |
});
|
116 |
|
117 |
+
$(document).on("load", function(event) {
|
118 |
|
119 |
if(WPGMZA.settings.engine != "open-layers")
|
120 |
return;
|
js/legacy/legacy-edit-marker-location-page.js
CHANGED
@@ -7,7 +7,7 @@ jQuery(function ($) {
|
|
7 |
height: 400,
|
8 |
width: 400
|
9 |
});
|
10 |
-
$(
|
11 |
wpgmza_InitMap();
|
12 |
});
|
13 |
});
|
7 |
height: 400,
|
8 |
width: 400
|
9 |
});
|
10 |
+
$(document).ready(function (event) {
|
11 |
wpgmza_InitMap();
|
12 |
});
|
13 |
});
|
js/v8/compatibility/astra-theme-compatibility.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
jQuery(function($) {
|
8 |
|
9 |
-
$(
|
10 |
|
11 |
var parent = document.body.onclick;
|
12 |
|
6 |
*/
|
7 |
jQuery(function($) {
|
8 |
|
9 |
+
$(document).on("load", function(event) {
|
10 |
|
11 |
var parent = document.body.onclick;
|
12 |
|
js/v8/google-maps/google-map.js
CHANGED
@@ -187,7 +187,7 @@ jQuery(function($) {
|
|
187 |
lng: parseFloat(clone.center.lng)
|
188 |
};
|
189 |
|
190 |
-
if(this.settings.
|
191 |
{
|
192 |
var noPoi = {
|
193 |
featureType: "poi",
|
187 |
lng: parseFloat(clone.center.lng)
|
188 |
};
|
189 |
|
190 |
+
if(this.settings.wpgmza_hide_point_of_interest == "1")
|
191 |
{
|
192 |
var noPoi = {
|
193 |
featureType: "poi",
|
js/v8/map-edit-page.js
CHANGED
@@ -60,8 +60,7 @@ jQuery(function($) {
|
|
60 |
});
|
61 |
}
|
62 |
|
63 |
-
$(
|
64 |
-
|
65 |
WPGMZA.mapEditPage = WPGMZA.MapEditPage.createInstance();
|
66 |
|
67 |
});
|
60 |
});
|
61 |
}
|
62 |
|
63 |
+
$(document.body).on("wpgmza_map_editor_init", function(event) {
|
|
|
64 |
WPGMZA.mapEditPage = WPGMZA.MapEditPage.createInstance();
|
65 |
|
66 |
});
|
js/v8/marker-panel.js
CHANGED
@@ -10,7 +10,7 @@ jQuery(function($) {
|
|
10 |
this.element = element;
|
11 |
}
|
12 |
|
13 |
-
$(
|
14 |
|
15 |
if(WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
16 |
WPGMZA.mapEditPage.markerPanel = new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]);
|
10 |
this.element = element;
|
11 |
}
|
12 |
|
13 |
+
$(document.body).on("wpgmza_map_editor_init", function(event) {
|
14 |
|
15 |
if(WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
16 |
WPGMZA.mapEditPage.markerPanel = new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]);
|
js/v8/scripts.json
CHANGED
@@ -270,211 +270,211 @@
|
|
270 |
"wpgmza"
|
271 |
]
|
272 |
},
|
273 |
-
"wpgmza-
|
274 |
-
"src": "js\/v8\/
|
275 |
-
"pro": false,
|
276 |
-
"dependencies": [
|
277 |
-
"wpgmza"
|
278 |
-
]
|
279 |
-
},
|
280 |
-
"wpgmza-google-ui-compatibility": {
|
281 |
-
"src": "js\/v8\/compatibility\/google-ui-compatibility.js",
|
282 |
"pro": false,
|
283 |
"dependencies": [
|
284 |
"wpgmza"
|
285 |
]
|
286 |
},
|
287 |
-
"wpgmza-
|
288 |
-
"src": "js\/v8\/
|
289 |
"pro": false,
|
290 |
"dependencies": [
|
291 |
-
"wpgmza-
|
|
|
|
|
|
|
|
|
292 |
]
|
293 |
},
|
294 |
-
"wpgmza-
|
295 |
-
"src": "js\/v8\/
|
296 |
"pro": false,
|
297 |
"dependencies": [
|
298 |
"wpgmza"
|
299 |
]
|
300 |
},
|
301 |
-
"wpgmza-
|
302 |
-
"src": "js\/v8\/
|
303 |
"pro": false,
|
304 |
"dependencies": [
|
305 |
"wpgmza"
|
306 |
]
|
307 |
},
|
308 |
-
"wpgmza-
|
309 |
-
"src": "js\/v8\/
|
310 |
"pro": false,
|
311 |
"dependencies": [
|
312 |
-
"wpgmza-
|
313 |
-
"wp-i18n",
|
314 |
-
"wp-blocks",
|
315 |
-
"wp-editor",
|
316 |
-
"wp-components"
|
317 |
]
|
318 |
},
|
319 |
-
"wpgmza-
|
320 |
-
"src": "js\/v8\/
|
321 |
"pro": false,
|
322 |
"dependencies": [
|
323 |
-
"wpgmza-
|
324 |
]
|
325 |
},
|
326 |
-
"wpgmza-
|
327 |
-
"src": "js\/v8\/
|
328 |
"pro": false,
|
329 |
"dependencies": [
|
330 |
-
"wpgmza
|
331 |
]
|
332 |
},
|
333 |
-
"wpgmza-
|
334 |
-
"src": "js\/v8\/
|
335 |
"pro": false,
|
336 |
"dependencies": [
|
337 |
"wpgmza-info-window"
|
338 |
]
|
339 |
},
|
340 |
-
"wpgmza-
|
341 |
-
"src": "js\/v8\/
|
342 |
"pro": false,
|
343 |
"dependencies": [
|
344 |
"wpgmza-map"
|
345 |
]
|
346 |
},
|
347 |
-
"wpgmza-
|
348 |
-
"src": "js\/v8\/
|
349 |
"pro": false,
|
350 |
"dependencies": [
|
351 |
"wpgmza-marker"
|
352 |
]
|
353 |
},
|
354 |
-
"wpgmza-
|
355 |
-
"src": "js\/v8\/
|
356 |
"pro": false,
|
357 |
"dependencies": [
|
358 |
"wpgmza-modern-store-locator-circle"
|
359 |
]
|
360 |
},
|
361 |
-
"wpgmza-
|
362 |
-
"src": "js\/v8\/
|
363 |
"pro": false,
|
364 |
"dependencies": [
|
365 |
"wpgmza-modern-store-locator"
|
366 |
]
|
367 |
},
|
368 |
-
"wpgmza-
|
369 |
-
"src": "js\/v8\/
|
370 |
"pro": false,
|
371 |
"dependencies": [
|
372 |
"wpgmza-polygon"
|
373 |
]
|
374 |
},
|
375 |
-
"wpgmza-
|
376 |
-
"src": "js\/v8\/
|
377 |
"pro": false,
|
378 |
"dependencies": [
|
379 |
"wpgmza-polyline"
|
380 |
]
|
381 |
},
|
382 |
-
"wpgmza-
|
383 |
-
"src": "js\/v8\/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
"pro": false,
|
385 |
"dependencies": [
|
386 |
"wpgmza-text"
|
387 |
]
|
388 |
},
|
389 |
-
"wpgmza-google-
|
390 |
-
"src": "js\/v8\/google-maps\/google-
|
391 |
"pro": false,
|
392 |
"dependencies": [
|
393 |
-
"
|
394 |
]
|
395 |
},
|
396 |
-
"wpgmza-
|
397 |
-
"src": "js\/v8\/
|
398 |
"pro": false,
|
399 |
"dependencies": [
|
400 |
-
"wpgmza-
|
401 |
]
|
402 |
},
|
403 |
-
"wpgmza-
|
404 |
-
"src": "js\/v8\/
|
405 |
"pro": false,
|
406 |
"dependencies": [
|
407 |
-
"wpgmza"
|
408 |
]
|
409 |
},
|
410 |
-
"wpgmza-
|
411 |
-
"src": "js\/v8\/
|
412 |
"pro": false,
|
413 |
"dependencies": [
|
414 |
"wpgmza-info-window"
|
415 |
]
|
416 |
},
|
417 |
-
"wpgmza-
|
418 |
-
"src": "js\/v8\/
|
419 |
"pro": false,
|
420 |
"dependencies": [
|
421 |
"wpgmza-map"
|
422 |
]
|
423 |
},
|
424 |
-
"wpgmza-
|
425 |
-
"src": "js\/v8\/
|
426 |
"pro": false,
|
427 |
"dependencies": [
|
428 |
"wpgmza-marker"
|
429 |
]
|
430 |
},
|
431 |
-
"wpgmza-
|
432 |
-
"src": "js\/v8\/
|
433 |
"pro": false,
|
434 |
"dependencies": [
|
435 |
"wpgmza-modern-store-locator-circle"
|
436 |
]
|
437 |
},
|
438 |
-
"wpgmza-
|
439 |
-
"src": "js\/v8\/
|
440 |
"pro": false,
|
441 |
"dependencies": [
|
442 |
"wpgmza-modern-store-locator"
|
443 |
]
|
444 |
},
|
445 |
-
"wpgmza-
|
446 |
-
"src": "js\/v8\/
|
447 |
"pro": false,
|
448 |
"dependencies": [
|
449 |
"wpgmza-polygon"
|
450 |
]
|
451 |
},
|
452 |
-
"wpgmza-
|
453 |
-
"src": "js\/v8\/
|
454 |
"pro": false,
|
455 |
"dependencies": [
|
456 |
"wpgmza-polyline"
|
457 |
]
|
458 |
},
|
459 |
-
"wpgmza-
|
460 |
-
"src": "js\/v8\/
|
461 |
"pro": false,
|
462 |
"dependencies": [
|
463 |
-
"wpgmza-
|
464 |
]
|
465 |
},
|
466 |
-
"wpgmza-
|
467 |
-
"src": "js\/v8\/
|
468 |
"pro": false,
|
469 |
"dependencies": [
|
470 |
-
"wpgmza-
|
471 |
]
|
472 |
},
|
473 |
-
"wpgmza-
|
474 |
-
"src": "js\/v8\/
|
475 |
"pro": false,
|
476 |
"dependencies": [
|
477 |
-
"
|
478 |
]
|
479 |
}
|
480 |
}
|
270 |
"wpgmza"
|
271 |
]
|
272 |
},
|
273 |
+
"wpgmza-integration": {
|
274 |
+
"src": "js\/v8\/3rd-party-integration\/integration.js",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
"pro": false,
|
276 |
"dependencies": [
|
277 |
"wpgmza"
|
278 |
]
|
279 |
},
|
280 |
+
"wpgmza-gutenberg": {
|
281 |
+
"src": "js\/v8\/3rd-party-integration\/gutenberg\/dist\/gutenberg.js",
|
282 |
"pro": false,
|
283 |
"dependencies": [
|
284 |
+
"wpgmza-integration",
|
285 |
+
"wp-i18n",
|
286 |
+
"wp-blocks",
|
287 |
+
"wp-editor",
|
288 |
+
"wp-components"
|
289 |
]
|
290 |
},
|
291 |
+
"wpgmza-astra-theme-compatiblity": {
|
292 |
+
"src": "js\/v8\/compatibility\/astra-theme-compatibility.js",
|
293 |
"pro": false,
|
294 |
"dependencies": [
|
295 |
"wpgmza"
|
296 |
]
|
297 |
},
|
298 |
+
"wpgmza-google-ui-compatibility": {
|
299 |
+
"src": "js\/v8\/compatibility\/google-ui-compatibility.js",
|
300 |
"pro": false,
|
301 |
"dependencies": [
|
302 |
"wpgmza"
|
303 |
]
|
304 |
},
|
305 |
+
"wpgmza-google-circle": {
|
306 |
+
"src": "js\/v8\/google-maps\/google-circle.js",
|
307 |
"pro": false,
|
308 |
"dependencies": [
|
309 |
+
"wpgmza-circle"
|
|
|
|
|
|
|
|
|
310 |
]
|
311 |
},
|
312 |
+
"wpgmza-google-geocoder": {
|
313 |
+
"src": "js\/v8\/google-maps\/google-geocoder.js",
|
314 |
"pro": false,
|
315 |
"dependencies": [
|
316 |
+
"wpgmza-geocoder"
|
317 |
]
|
318 |
},
|
319 |
+
"wpgmza-google-html-overlay": {
|
320 |
+
"src": "js\/v8\/google-maps\/google-html-overlay.js",
|
321 |
"pro": false,
|
322 |
"dependencies": [
|
323 |
+
"wpgmza"
|
324 |
]
|
325 |
},
|
326 |
+
"wpgmza-google-info-window": {
|
327 |
+
"src": "js\/v8\/google-maps\/google-info-window.js",
|
328 |
"pro": false,
|
329 |
"dependencies": [
|
330 |
"wpgmza-info-window"
|
331 |
]
|
332 |
},
|
333 |
+
"wpgmza-google-map": {
|
334 |
+
"src": "js\/v8\/google-maps\/google-map.js",
|
335 |
"pro": false,
|
336 |
"dependencies": [
|
337 |
"wpgmza-map"
|
338 |
]
|
339 |
},
|
340 |
+
"wpgmza-google-marker": {
|
341 |
+
"src": "js\/v8\/google-maps\/google-marker.js",
|
342 |
"pro": false,
|
343 |
"dependencies": [
|
344 |
"wpgmza-marker"
|
345 |
]
|
346 |
},
|
347 |
+
"wpgmza-google-modern-store-locator-circle": {
|
348 |
+
"src": "js\/v8\/google-maps\/google-modern-store-locator-circle.js",
|
349 |
"pro": false,
|
350 |
"dependencies": [
|
351 |
"wpgmza-modern-store-locator-circle"
|
352 |
]
|
353 |
},
|
354 |
+
"wpgmza-google-modern-store-locator": {
|
355 |
+
"src": "js\/v8\/google-maps\/google-modern-store-locator.js",
|
356 |
"pro": false,
|
357 |
"dependencies": [
|
358 |
"wpgmza-modern-store-locator"
|
359 |
]
|
360 |
},
|
361 |
+
"wpgmza-google-polygon": {
|
362 |
+
"src": "js\/v8\/google-maps\/google-polygon.js",
|
363 |
"pro": false,
|
364 |
"dependencies": [
|
365 |
"wpgmza-polygon"
|
366 |
]
|
367 |
},
|
368 |
+
"wpgmza-google-polyline": {
|
369 |
+
"src": "js\/v8\/google-maps\/google-polyline.js",
|
370 |
"pro": false,
|
371 |
"dependencies": [
|
372 |
"wpgmza-polyline"
|
373 |
]
|
374 |
},
|
375 |
+
"wpgmza-google-text-overlay": {
|
376 |
+
"src": "js\/v8\/google-maps\/google-text-overlay.js",
|
377 |
+
"pro": false,
|
378 |
+
"dependencies": [
|
379 |
+
"wpgmza-google-text"
|
380 |
+
]
|
381 |
+
},
|
382 |
+
"wpgmza-google-text": {
|
383 |
+
"src": "js\/v8\/google-maps\/google-text.js",
|
384 |
"pro": false,
|
385 |
"dependencies": [
|
386 |
"wpgmza-text"
|
387 |
]
|
388 |
},
|
389 |
+
"wpgmza-google-vertex-context-menu": {
|
390 |
+
"src": "js\/v8\/google-maps\/google-vertex-context-menu.js",
|
391 |
"pro": false,
|
392 |
"dependencies": [
|
393 |
+
"wpgmza_api_call"
|
394 |
]
|
395 |
},
|
396 |
+
"wpgmza-ol-circle": {
|
397 |
+
"src": "js\/v8\/open-layers\/ol-circle.js",
|
398 |
"pro": false,
|
399 |
"dependencies": [
|
400 |
+
"wpgmza-circle"
|
401 |
]
|
402 |
},
|
403 |
+
"wpgmza-ol-geocoder": {
|
404 |
+
"src": "js\/v8\/open-layers\/ol-geocoder.js",
|
405 |
"pro": false,
|
406 |
"dependencies": [
|
407 |
+
"wpgmza-geocoder"
|
408 |
]
|
409 |
},
|
410 |
+
"wpgmza-ol-info-window": {
|
411 |
+
"src": "js\/v8\/open-layers\/ol-info-window.js",
|
412 |
"pro": false,
|
413 |
"dependencies": [
|
414 |
"wpgmza-info-window"
|
415 |
]
|
416 |
},
|
417 |
+
"wpgmza-ol-map": {
|
418 |
+
"src": "js\/v8\/open-layers\/ol-map.js",
|
419 |
"pro": false,
|
420 |
"dependencies": [
|
421 |
"wpgmza-map"
|
422 |
]
|
423 |
},
|
424 |
+
"wpgmza-ol-marker": {
|
425 |
+
"src": "js\/v8\/open-layers\/ol-marker.js",
|
426 |
"pro": false,
|
427 |
"dependencies": [
|
428 |
"wpgmza-marker"
|
429 |
]
|
430 |
},
|
431 |
+
"wpgmza-ol-modern-store-locator-circle": {
|
432 |
+
"src": "js\/v8\/open-layers\/ol-modern-store-locator-circle.js",
|
433 |
"pro": false,
|
434 |
"dependencies": [
|
435 |
"wpgmza-modern-store-locator-circle"
|
436 |
]
|
437 |
},
|
438 |
+
"wpgmza-ol-modern-store-locator": {
|
439 |
+
"src": "js\/v8\/open-layers\/ol-modern-store-locator.js",
|
440 |
"pro": false,
|
441 |
"dependencies": [
|
442 |
"wpgmza-modern-store-locator"
|
443 |
]
|
444 |
},
|
445 |
+
"wpgmza-ol-polygon": {
|
446 |
+
"src": "js\/v8\/open-layers\/ol-polygon.js",
|
447 |
"pro": false,
|
448 |
"dependencies": [
|
449 |
"wpgmza-polygon"
|
450 |
]
|
451 |
},
|
452 |
+
"wpgmza-ol-polyline": {
|
453 |
+
"src": "js\/v8\/open-layers\/ol-polyline.js",
|
454 |
"pro": false,
|
455 |
"dependencies": [
|
456 |
"wpgmza-polyline"
|
457 |
]
|
458 |
},
|
459 |
+
"wpgmza-ol-text": {
|
460 |
+
"src": "js\/v8\/open-layers\/ol-text.js",
|
461 |
"pro": false,
|
462 |
"dependencies": [
|
463 |
+
"wpgmza-text"
|
464 |
]
|
465 |
},
|
466 |
+
"wpgmza-admin-marker-data-table": {
|
467 |
+
"src": "js\/v8\/tables\/admin-marker-datatable.js",
|
468 |
"pro": false,
|
469 |
"dependencies": [
|
470 |
+
"wpgmza-data-table"
|
471 |
]
|
472 |
},
|
473 |
+
"wpgmza-data-table": {
|
474 |
+
"src": "js\/v8\/tables\/datatable.js",
|
475 |
"pro": false,
|
476 |
"dependencies": [
|
477 |
+
"wpgmza"
|
478 |
]
|
479 |
}
|
480 |
}
|
js/v8/wp-google-maps.combined.js
CHANGED
@@ -2891,8 +2891,7 @@ jQuery(function($) {
|
|
2891 |
});
|
2892 |
}
|
2893 |
|
2894 |
-
$(
|
2895 |
-
|
2896 |
WPGMZA.mapEditPage = WPGMZA.MapEditPage.createInstance();
|
2897 |
|
2898 |
});
|
@@ -4439,7 +4438,7 @@ jQuery(function($) {
|
|
4439 |
this.element = element;
|
4440 |
}
|
4441 |
|
4442 |
-
$(
|
4443 |
|
4444 |
if(WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
4445 |
WPGMZA.mapEditPage.markerPanel = new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]);
|
@@ -7139,6 +7138,200 @@ jQuery(function($) {
|
|
7139 |
|
7140 |
});
|
7141 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7142 |
// js/v8/compatibility/astra-theme-compatibility.js
|
7143 |
/**
|
7144 |
* @namespace WPGMZA
|
@@ -7148,7 +7341,7 @@ jQuery(function($) {
|
|
7148 |
*/
|
7149 |
jQuery(function($) {
|
7150 |
|
7151 |
-
$(
|
7152 |
|
7153 |
var parent = document.body.onclick;
|
7154 |
|
@@ -7194,1201 +7387,338 @@ jQuery(function($) {
|
|
7194 |
|
7195 |
});
|
7196 |
|
7197 |
-
// js/v8/
|
7198 |
/**
|
7199 |
* @namespace WPGMZA
|
7200 |
-
* @module
|
7201 |
-
* @requires WPGMZA
|
7202 |
*/
|
7203 |
jQuery(function($) {
|
7204 |
|
7205 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7206 |
{
|
7207 |
var self = this;
|
7208 |
-
|
|
|
|
|
|
|
7209 |
{
|
7210 |
-
|
7211 |
-
|
7212 |
-
if(WPGMZA.settings.wpgmza_do_not_enqueue_datatables && WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
7213 |
-
alert("You have selected 'Do not enqueue DataTables' in WP Google Maps' settings. No 3rd party software is loading the DataTables library. Because of this, the marker table cannot load. Please uncheck this option to use the marker table.");
|
7214 |
-
|
7215 |
-
return;
|
7216 |
}
|
7217 |
-
|
7218 |
-
if($.fn.dataTable.ext)
|
7219 |
-
$.fn.dataTable.ext.errMode = "throw";
|
7220 |
else
|
7221 |
{
|
7222 |
-
|
7223 |
-
|
7224 |
-
console.warn("You appear to be running an outdated or modified version of the dataTables library. This may cause issues with table functionality. This is usually caused by 3rd party software loading an older version of DataTables. The loaded version is " + version + ", we recommend version 1.10.12 or above.");
|
7225 |
}
|
7226 |
|
7227 |
-
this.
|
7228 |
-
|
7229 |
-
|
7230 |
-
|
7231 |
-
var settings = this.getDataTableSettings();
|
7232 |
|
7233 |
-
|
7234 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7235 |
|
7236 |
-
this.
|
7237 |
-
this.method = (this.useCompressedPathVariable ? "GET" : "POST");
|
7238 |
-
|
7239 |
-
if(this.getLanguageURL() == undefined || this.getLanguageURL() == "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json")
|
7240 |
-
{
|
7241 |
-
this.dataTable = $(this.dataTableElement).DataTable(settings);
|
7242 |
-
this.dataTable.ajax.reload();
|
7243 |
-
}
|
7244 |
-
else{
|
7245 |
-
|
7246 |
-
$.ajax(this.getLanguageURL(), {
|
7247 |
-
|
7248 |
-
success: function(response, status, xhr)
|
7249 |
-
{
|
7250 |
-
self.languageJSON = response; // TODO: This doesn't appear to go anywhere
|
7251 |
-
|
7252 |
-
self.dataTable = $(self.dataTableElement).DataTable(settings);
|
7253 |
-
self.dataTable.ajax.reload();
|
7254 |
-
},
|
7255 |
-
|
7256 |
-
error: function()
|
7257 |
-
{
|
7258 |
-
// TODO: Use complete instead
|
7259 |
-
self.dataTable = $(self.dataTableElement).DataTable(settings);
|
7260 |
-
self.dataTable.ajax.reload();
|
7261 |
-
}
|
7262 |
-
|
7263 |
-
});
|
7264 |
-
}
|
7265 |
}
|
7266 |
|
7267 |
-
WPGMZA.
|
7268 |
{
|
7269 |
-
|
|
|
|
|
7270 |
}
|
7271 |
|
7272 |
-
|
7273 |
-
* This function wraps the request so it doesn't collide with WP query vars,
|
7274 |
-
* it also adds the PHP class so that the controller knows which class to
|
7275 |
-
* instantiate
|
7276 |
-
* @return object
|
7277 |
-
*/
|
7278 |
-
WPGMZA.DataTable.prototype.onAJAXRequest = function(data, settings)
|
7279 |
{
|
7280 |
-
|
7281 |
-
var params = {
|
7282 |
-
"phpClass": this.phpClass
|
7283 |
-
};
|
7284 |
-
|
7285 |
-
var attr = $(this.element).attr("data-wpgmza-ajax-parameters");
|
7286 |
-
if(attr)
|
7287 |
-
$.extend(params, JSON.parse(attr));
|
7288 |
-
|
7289 |
-
return $.extend(data, params);
|
7290 |
}
|
7291 |
|
7292 |
-
WPGMZA.
|
7293 |
-
|
7294 |
-
var
|
7295 |
-
var route = $(element).attr("data-wpgmza-rest-api-route");
|
7296 |
-
var params = this.onAJAXRequest(data, settings);
|
7297 |
-
var draw = params.draw;
|
7298 |
|
7299 |
-
|
|
|
|
|
7300 |
|
7301 |
-
if(
|
7302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
7303 |
|
7304 |
-
|
7305 |
-
|
7306 |
-
useCompressedPathVariable: true,
|
7307 |
-
data: params,
|
7308 |
-
dataType: "json",
|
7309 |
-
cache: !this.preventCaching,
|
7310 |
-
beforeSend: function(xhr) {
|
7311 |
-
// Put draw in header, for compressed requests
|
7312 |
-
xhr.setRequestHeader("X-DataTables-Draw", draw);
|
7313 |
-
},
|
7314 |
-
success: function(response, status, xhr) {
|
7315 |
-
|
7316 |
-
response.draw = draw;
|
7317 |
-
self.lastResponse = response;
|
7318 |
-
|
7319 |
-
callback(response);
|
7320 |
-
self.onAJAXResponse(response);
|
7321 |
-
|
7322 |
-
}
|
7323 |
-
};
|
7324 |
|
|
|
|
|
|
|
|
|
7325 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7326 |
|
7327 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7328 |
}
|
7329 |
|
7330 |
-
WPGMZA.
|
|
|
|
|
|
|
7331 |
{
|
7332 |
-
|
7333 |
-
|
7334 |
-
var options = {};
|
7335 |
|
7336 |
-
|
7337 |
-
|
7338 |
|
7339 |
-
|
7340 |
-
|
7341 |
-
options
|
7342 |
-
|
7343 |
-
return WPGMZA.DataTable.prototype.onDataTableAjaxRequest.apply(self, arguments);
|
7344 |
-
}
|
7345 |
-
|
7346 |
-
if(WPGMZA.AdvancedTableDataTable && this instanceof WPGMZA.AdvancedTableDataTable && WPGMZA.settings.wpgmza_default_items)
|
7347 |
-
options.iDisplayLength = parseInt(WPGMZA.settings.wpgmza_default_items);
|
7348 |
|
7349 |
-
|
|
|
7350 |
|
7351 |
-
|
7352 |
-
|
7353 |
-
|
7354 |
-
"url": languageURL
|
7355 |
};
|
7356 |
|
7357 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7358 |
}
|
7359 |
|
7360 |
-
WPGMZA.
|
7361 |
{
|
7362 |
-
if(!
|
7363 |
-
|
7364 |
|
7365 |
-
var
|
|
|
7366 |
|
7367 |
-
|
7368 |
-
|
7369 |
-
|
7370 |
-
|
7371 |
-
|
7372 |
-
|
7373 |
-
|
7374 |
-
|
7375 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7376 |
|
7377 |
-
|
7378 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Amharic.json";
|
7379 |
-
break;
|
7380 |
-
|
7381 |
-
case "ar":
|
7382 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Arabic.json";
|
7383 |
-
break;
|
7384 |
-
|
7385 |
-
case "hy":
|
7386 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Armenian.json";
|
7387 |
-
break;
|
7388 |
-
|
7389 |
-
case "az":
|
7390 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Azerbaijan.json";
|
7391 |
-
break;
|
7392 |
-
|
7393 |
-
case "bn":
|
7394 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bangla.json";
|
7395 |
-
break;
|
7396 |
-
|
7397 |
-
case "eu":
|
7398 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Basque.json";
|
7399 |
-
break;
|
7400 |
-
|
7401 |
-
case "be":
|
7402 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Belarusian.json";
|
7403 |
-
break;
|
7404 |
-
|
7405 |
-
case "bg":
|
7406 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bulgarian.json";
|
7407 |
-
break;
|
7408 |
-
|
7409 |
-
case "ca":
|
7410 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Catalan.json";
|
7411 |
-
break;
|
7412 |
-
|
7413 |
-
case "zh":
|
7414 |
-
if(WPGMZA.locale == "zh_TW")
|
7415 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Chinese-traditional.json";
|
7416 |
-
else
|
7417 |
-
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Chinese.json";
|
7418 |
-
break;
|
7419 |
-
|
7420 |
-
case "hr":
|
7421 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Croatian.json";
|
7422 |
-
break;
|
7423 |
-
|
7424 |
-
case "cs":
|
7425 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Czech.json";
|
7426 |
-
break;
|
7427 |
-
|
7428 |
-
case "da":
|
7429 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Danish.json";
|
7430 |
-
break;
|
7431 |
-
|
7432 |
-
case "nl":
|
7433 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Dutch.json";
|
7434 |
-
break;
|
7435 |
-
|
7436 |
-
/*case "en":
|
7437 |
-
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json";
|
7438 |
-
break;*/
|
7439 |
-
|
7440 |
-
case "et":
|
7441 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Estonian.json";
|
7442 |
-
break;
|
7443 |
-
|
7444 |
-
case "fi":
|
7445 |
-
if(WPGMZA.locale.match(/^fil/))
|
7446 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Filipino.json";
|
7447 |
-
else
|
7448 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Finnish.json";
|
7449 |
-
break;
|
7450 |
-
|
7451 |
-
case "fr":
|
7452 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/French.json";
|
7453 |
-
break;
|
7454 |
-
|
7455 |
-
case "gl":
|
7456 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Galician.json";
|
7457 |
-
break;
|
7458 |
-
|
7459 |
-
case "ka":
|
7460 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Georgian.json";
|
7461 |
-
break;
|
7462 |
-
|
7463 |
-
case "de":
|
7464 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/German.json";
|
7465 |
-
break;
|
7466 |
-
|
7467 |
-
case "el":
|
7468 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Greek.json";
|
7469 |
-
break;
|
7470 |
-
|
7471 |
-
case "gu":
|
7472 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Gujarati.json";
|
7473 |
-
break;
|
7474 |
-
|
7475 |
-
case "he":
|
7476 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hebrew.json";
|
7477 |
-
break;
|
7478 |
-
|
7479 |
-
case "hi":
|
7480 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hindi.json";
|
7481 |
-
break;
|
7482 |
-
|
7483 |
-
case "hu":
|
7484 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hungarian.json";
|
7485 |
-
break;
|
7486 |
-
|
7487 |
-
case "is":
|
7488 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Icelandic.json";
|
7489 |
-
break;
|
7490 |
-
|
7491 |
-
/*case "id":
|
7492 |
-
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Indonesian-Alternative.json";
|
7493 |
-
break;*/
|
7494 |
-
|
7495 |
-
case "id":
|
7496 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Indonesian.json";
|
7497 |
-
break;
|
7498 |
-
|
7499 |
-
case "ga":
|
7500 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Irish.json";
|
7501 |
-
break;
|
7502 |
-
|
7503 |
-
case "it":
|
7504 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Italian.json";
|
7505 |
-
break;
|
7506 |
-
|
7507 |
-
case "ja":
|
7508 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Japanese.json";
|
7509 |
-
break;
|
7510 |
-
|
7511 |
-
case "kk":
|
7512 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kazakh.json";
|
7513 |
-
break;
|
7514 |
-
|
7515 |
-
case "ko":
|
7516 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Korean.json";
|
7517 |
-
break;
|
7518 |
-
|
7519 |
-
case "ky":
|
7520 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kyrgyz.json";
|
7521 |
-
break;
|
7522 |
-
|
7523 |
-
case "lv":
|
7524 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Latvian.json";
|
7525 |
-
break;
|
7526 |
-
|
7527 |
-
case "lt":
|
7528 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Lithuanian.json";
|
7529 |
-
break;
|
7530 |
-
|
7531 |
-
case "mk":
|
7532 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Macedonian.json";
|
7533 |
-
break;
|
7534 |
-
|
7535 |
-
case "ml":
|
7536 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Malay.json";
|
7537 |
-
break;
|
7538 |
-
|
7539 |
-
case "mn":
|
7540 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Mongolian.json";
|
7541 |
-
break;
|
7542 |
-
|
7543 |
-
case "ne":
|
7544 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Nepali.json";
|
7545 |
-
break;
|
7546 |
-
|
7547 |
-
case "nb":
|
7548 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Bokmal.json";
|
7549 |
-
break;
|
7550 |
-
|
7551 |
-
case "nn":
|
7552 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Nynorsk.json";
|
7553 |
-
break;
|
7554 |
-
|
7555 |
-
case "ps":
|
7556 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Pashto.json";
|
7557 |
-
break;
|
7558 |
-
|
7559 |
-
case "fa":
|
7560 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Persian.json";
|
7561 |
-
break;
|
7562 |
-
|
7563 |
-
case "pl":
|
7564 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Polish.json";
|
7565 |
-
break;
|
7566 |
-
|
7567 |
-
case "pt":
|
7568 |
-
if(WPGMZA.locale == "pt_BR")
|
7569 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Portuguese-Brasil.json";
|
7570 |
-
else
|
7571 |
-
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Portuguese.json";
|
7572 |
-
break;
|
7573 |
-
|
7574 |
-
case "ro":
|
7575 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Romanian.json";
|
7576 |
-
break;
|
7577 |
-
|
7578 |
-
case "ru":
|
7579 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Russian.json";
|
7580 |
-
break;
|
7581 |
-
|
7582 |
-
case "sr":
|
7583 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Serbian.json";
|
7584 |
-
break;
|
7585 |
-
|
7586 |
-
case "si":
|
7587 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Sinhala.json";
|
7588 |
-
break;
|
7589 |
-
|
7590 |
-
case "sk":
|
7591 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovak.json";
|
7592 |
-
break;
|
7593 |
-
|
7594 |
-
case "sl":
|
7595 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovenian.json";
|
7596 |
-
break;
|
7597 |
-
|
7598 |
-
case "es":
|
7599 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Spanish.json";
|
7600 |
-
break;
|
7601 |
-
|
7602 |
-
case "sw":
|
7603 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swahili.json";
|
7604 |
-
break;
|
7605 |
-
|
7606 |
-
case "sv":
|
7607 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swedish.json";
|
7608 |
-
break;
|
7609 |
-
|
7610 |
-
case "ta":
|
7611 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Tamil.json";
|
7612 |
-
break;
|
7613 |
-
|
7614 |
-
case "te":
|
7615 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/telugu.json";
|
7616 |
-
break;
|
7617 |
-
|
7618 |
-
case "th":
|
7619 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Thai.json";
|
7620 |
-
break;
|
7621 |
-
|
7622 |
-
case "tr":
|
7623 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Turkish.json";
|
7624 |
-
break;
|
7625 |
-
|
7626 |
-
case "uk":
|
7627 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Ukrainian.json";
|
7628 |
-
break;
|
7629 |
-
|
7630 |
-
case "ur":
|
7631 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Urdu.json";
|
7632 |
-
break;
|
7633 |
-
|
7634 |
-
case "uz":
|
7635 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Uzbek.json";
|
7636 |
-
break;
|
7637 |
-
|
7638 |
-
case "vi":
|
7639 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Vietnamese.json";
|
7640 |
-
break;
|
7641 |
-
|
7642 |
-
case "cy":
|
7643 |
-
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Welsh.json";
|
7644 |
-
break;
|
7645 |
-
}
|
7646 |
-
|
7647 |
-
return languageURL;
|
7648 |
-
}
|
7649 |
-
|
7650 |
-
WPGMZA.DataTable.prototype.onAJAXResponse = function(response)
|
7651 |
-
{
|
7652 |
-
|
7653 |
-
}
|
7654 |
-
|
7655 |
-
WPGMZA.DataTable.prototype.reload = function()
|
7656 |
-
{
|
7657 |
-
this.dataTable.ajax.reload(null, false); // null callback, false for resetPaging
|
7658 |
-
}
|
7659 |
-
|
7660 |
-
});
|
7661 |
-
|
7662 |
-
// js/v8/tables/admin-marker-datatable.js
|
7663 |
-
/**
|
7664 |
-
* @namespace WPGMZA
|
7665 |
-
* @module AdminMarkerDataTable
|
7666 |
-
* @requires WPGMZA.DataTable
|
7667 |
-
*/
|
7668 |
-
jQuery(function($) {
|
7669 |
-
|
7670 |
-
WPGMZA.AdminMarkerDataTable = function(element)
|
7671 |
-
{
|
7672 |
-
var self = this;
|
7673 |
-
|
7674 |
-
this.preventCaching = true;
|
7675 |
-
|
7676 |
-
WPGMZA.DataTable.call(this, element);
|
7677 |
-
|
7678 |
-
// NB: Pro marker panel currently manages edit marker buttons
|
7679 |
-
|
7680 |
-
$(element).on("click", "[data-delete-marker-id]", function(event) {
|
7681 |
-
self.onDeleteMarker(event);
|
7682 |
-
});
|
7683 |
-
|
7684 |
-
$(element).find(".wpgmza.select_all_markers").on("click", function(event) {
|
7685 |
-
self.onSelectAll(event);
|
7686 |
-
});
|
7687 |
-
|
7688 |
-
$(element).find(".wpgmza.bulk_delete").on("click", function(event) {
|
7689 |
-
self.onBulkDelete(event);
|
7690 |
-
});
|
7691 |
-
|
7692 |
-
$(element).on("click", "[data-center-marker-id]", function(event) {
|
7693 |
-
self.onCenterMarker(event);
|
7694 |
-
});
|
7695 |
-
}
|
7696 |
-
|
7697 |
-
WPGMZA.AdminMarkerDataTable.prototype = Object.create(WPGMZA.DataTable.prototype);
|
7698 |
-
WPGMZA.AdminMarkerDataTable.prototype.constructor = WPGMZA.AdminMarkerDataTable;
|
7699 |
-
|
7700 |
-
WPGMZA.AdminMarkerDataTable.createInstance = function(element)
|
7701 |
-
{
|
7702 |
-
return new WPGMZA.AdminMarkerDataTable(element);
|
7703 |
-
}
|
7704 |
-
|
7705 |
-
WPGMZA.AdminMarkerDataTable.prototype.getDataTableSettings = function()
|
7706 |
-
{
|
7707 |
-
var self = this;
|
7708 |
-
var options = WPGMZA.DataTable.prototype.getDataTableSettings.call(this);
|
7709 |
-
|
7710 |
-
options.createdRow = function(row, data, index)
|
7711 |
-
{
|
7712 |
-
var meta = self.lastResponse.meta[index];
|
7713 |
-
row.wpgmzaMarkerData = meta;
|
7714 |
-
}
|
7715 |
-
|
7716 |
-
return options;
|
7717 |
-
}
|
7718 |
-
|
7719 |
-
WPGMZA.AdminMarkerDataTable.prototype.onEditMarker = function(event)
|
7720 |
-
{
|
7721 |
-
WPGMZA.animatedScroll("#wpgmaps_tabs_markers");
|
7722 |
-
}
|
7723 |
-
|
7724 |
-
WPGMZA.AdminMarkerDataTable.prototype.onDeleteMarker = function(event)
|
7725 |
-
{
|
7726 |
-
var self = this;
|
7727 |
-
var id = $(event.currentTarget).attr("data-delete-marker-id");
|
7728 |
-
|
7729 |
-
var data = {
|
7730 |
-
action: 'delete_marker',
|
7731 |
-
security: WPGMZA.legacyajaxnonce,
|
7732 |
-
map_id: WPGMZA.mapEditPage.map.id,
|
7733 |
-
marker_id: id
|
7734 |
-
};
|
7735 |
-
|
7736 |
-
$.post(ajaxurl, data, function(response) {
|
7737 |
-
|
7738 |
-
WPGMZA.mapEditPage.map.removeMarkerByID(id);
|
7739 |
-
self.reload();
|
7740 |
-
|
7741 |
-
});
|
7742 |
-
}
|
7743 |
-
|
7744 |
-
// NB: Move this to UGM
|
7745 |
-
WPGMZA.AdminMarkerDataTable.prototype.onApproveMarker = function(event)
|
7746 |
-
{
|
7747 |
-
var self = this;
|
7748 |
-
var cur_id = $(this).attr("id");
|
7749 |
-
|
7750 |
-
var data = {
|
7751 |
-
action: 'approve_marker',
|
7752 |
-
security: WPGMZA.legacyajaxnonce,
|
7753 |
-
map_id: WPGMZA.mapEditPage.map.id,
|
7754 |
-
marker_id: cur_id
|
7755 |
-
};
|
7756 |
-
$.post(ajaxurl, data, function (response) {
|
7757 |
-
|
7758 |
-
|
7759 |
-
wpgmza_InitMap();
|
7760 |
-
wpgmza_reinitialisetbl();
|
7761 |
-
|
7762 |
-
});
|
7763 |
-
}
|
7764 |
-
|
7765 |
-
WPGMZA.AdminMarkerDataTable.prototype.onSelectAll = function(event)
|
7766 |
-
{
|
7767 |
-
$(this.element).find("input[name='mark']").prop("checked", true);
|
7768 |
-
}
|
7769 |
-
|
7770 |
-
WPGMZA.AdminMarkerDataTable.prototype.onBulkDelete = function(event)
|
7771 |
-
{
|
7772 |
-
var self = this;
|
7773 |
-
var ids = [];
|
7774 |
-
var map = WPGMZA.maps[0];
|
7775 |
-
|
7776 |
-
$(this.element).find("input[name='mark']:checked").each(function(index, el) {
|
7777 |
-
var row = $(el).closest("tr")[0];
|
7778 |
-
ids.push(row.wpgmzaMarkerData.id);
|
7779 |
-
});
|
7780 |
-
|
7781 |
-
ids.forEach(function(marker_id) {
|
7782 |
-
var marker = map.getMarkerByID(marker_id);
|
7783 |
-
|
7784 |
-
if(marker)
|
7785 |
-
map.removeMarker(marker);
|
7786 |
-
});
|
7787 |
-
|
7788 |
-
WPGMZA.restAPI.call("/markers/", {
|
7789 |
-
method: "DELETE",
|
7790 |
-
data: {
|
7791 |
-
ids: ids
|
7792 |
-
},
|
7793 |
-
complete: function() {
|
7794 |
-
self.reload();
|
7795 |
-
}
|
7796 |
-
});
|
7797 |
-
}
|
7798 |
-
|
7799 |
-
WPGMZA.AdminMarkerDataTable.prototype.onCenterMarker = function(event)
|
7800 |
-
{
|
7801 |
-
var id;
|
7802 |
-
|
7803 |
-
//Check if we have selected the center on marker button or called this function elsewhere
|
7804 |
-
if(event.currentTarget == undefined)
|
7805 |
-
{
|
7806 |
-
id = event;
|
7807 |
-
}
|
7808 |
-
else{
|
7809 |
-
id = $(event.currentTarget).attr("data-center-marker-id");
|
7810 |
-
}
|
7811 |
-
|
7812 |
-
var marker = WPGMZA.mapEditPage.map.getMarkerByID(id);
|
7813 |
-
|
7814 |
-
if(marker){
|
7815 |
-
var latLng = new WPGMZA.LatLng({
|
7816 |
-
lat: marker.lat,
|
7817 |
-
lng: marker.lng
|
7818 |
-
});
|
7819 |
-
|
7820 |
-
//Set a static zoom level
|
7821 |
-
var zoom_value = 6;
|
7822 |
-
WPGMZA.mapEditPage.map.setCenter(latLng);
|
7823 |
-
WPGMZA.mapEditPage.map.setZoom(zoom_value);
|
7824 |
-
WPGMZA.animateScroll("#wpgmaps_tabs_markers");
|
7825 |
-
}
|
7826 |
-
|
7827 |
-
|
7828 |
-
}
|
7829 |
-
|
7830 |
-
$(document).ready(function(event) {
|
7831 |
-
|
7832 |
-
$("[data-wpgmza-admin-marker-datatable]").each(function(index, el) {
|
7833 |
-
WPGMZA.adminMarkerDataTable = WPGMZA.AdminMarkerDataTable.createInstance(el);
|
7834 |
-
});
|
7835 |
-
|
7836 |
-
});
|
7837 |
-
|
7838 |
-
});
|
7839 |
-
|
7840 |
-
// js/v8/3rd-party-integration/integration.js
|
7841 |
-
/**
|
7842 |
-
* @namespace WPGMZA
|
7843 |
-
* @module Integration
|
7844 |
-
* @requires WPGMZA
|
7845 |
-
*/
|
7846 |
-
jQuery(function($) {
|
7847 |
-
|
7848 |
-
WPGMZA.Integration = {};
|
7849 |
-
WPGMZA.integrationModules = {};
|
7850 |
-
|
7851 |
-
});
|
7852 |
-
|
7853 |
-
// js/v8/3rd-party-integration/gutenberg/dist/gutenberg.js
|
7854 |
-
"use strict";
|
7855 |
-
|
7856 |
-
/**
|
7857 |
-
* @namespace WPGMZA.Integration
|
7858 |
-
* @module Gutenberg
|
7859 |
-
* @requires WPGMZA.Integration
|
7860 |
-
* @requires wp-i18n
|
7861 |
-
* @requires wp-blocks
|
7862 |
-
* @requires wp-editor
|
7863 |
-
* @requires wp-components
|
7864 |
-
*/
|
7865 |
-
|
7866 |
-
/**
|
7867 |
-
* Internal block libraries
|
7868 |
-
*/
|
7869 |
-
jQuery(function ($) {
|
7870 |
-
|
7871 |
-
if (!window.wp || !wp.i18n || !wp.blocks || !wp.editor || !wp.components) return;
|
7872 |
-
|
7873 |
-
var __ = wp.i18n.__;
|
7874 |
-
var registerBlockType = wp.blocks.registerBlockType;
|
7875 |
-
var _wp$editor = wp.editor,
|
7876 |
-
InspectorControls = _wp$editor.InspectorControls,
|
7877 |
-
BlockControls = _wp$editor.BlockControls;
|
7878 |
-
var _wp$components = wp.components,
|
7879 |
-
Dashicon = _wp$components.Dashicon,
|
7880 |
-
Toolbar = _wp$components.Toolbar,
|
7881 |
-
Button = _wp$components.Button,
|
7882 |
-
Tooltip = _wp$components.Tooltip,
|
7883 |
-
PanelBody = _wp$components.PanelBody,
|
7884 |
-
TextareaControl = _wp$components.TextareaControl,
|
7885 |
-
CheckboxControl = _wp$components.CheckboxControl,
|
7886 |
-
TextControl = _wp$components.TextControl,
|
7887 |
-
SelectControl = _wp$components.SelectControl,
|
7888 |
-
RichText = _wp$components.RichText;
|
7889 |
-
|
7890 |
-
|
7891 |
-
WPGMZA.Integration.Gutenberg = function () {
|
7892 |
-
registerBlockType('gutenberg-wpgmza/block', this.getBlockDefinition());
|
7893 |
-
};
|
7894 |
-
|
7895 |
-
WPGMZA.Integration.Gutenberg.prototype.getBlockTitle = function () {
|
7896 |
-
return __("WP Google Maps");
|
7897 |
-
};
|
7898 |
-
|
7899 |
-
WPGMZA.Integration.Gutenberg.prototype.getBlockInspectorControls = function (props) {
|
7900 |
-
|
7901 |
-
/*
|
7902 |
-
<TextControl
|
7903 |
-
name="overrideWidthAmount"
|
7904 |
-
label={__("Override Width Amount")}
|
7905 |
-
checked={props.overrideWidthAmount}
|
7906 |
-
onChange={onPropertiesChanged}
|
7907 |
-
/>
|
7908 |
-
|
7909 |
-
<SelectControl
|
7910 |
-
name="overrideWidthUnits"
|
7911 |
-
label={__("Override Width Units")}
|
7912 |
-
options={[
|
7913 |
-
{value: "px", label: "px"},
|
7914 |
-
{value: "%", label: "%"},
|
7915 |
-
{value: "vw`", label: "vw"},
|
7916 |
-
{value: "vh", label: "vh"}
|
7917 |
-
]}
|
7918 |
-
onChange={onPropertiesChanged}
|
7919 |
-
/>
|
7920 |
-
|
7921 |
-
<CheckboxControl
|
7922 |
-
name="overrideHeight"
|
7923 |
-
label={__("Override Height")}
|
7924 |
-
checked={props.overrideWidth}
|
7925 |
-
onChange={onPropertiesChanged}
|
7926 |
-
/>
|
7927 |
-
|
7928 |
-
<TextControl
|
7929 |
-
name="overrideHeightAmount"
|
7930 |
-
label={__("Override Height Amount")}
|
7931 |
-
checked={props.overrideWidthAmount}
|
7932 |
-
onChange={onPropertiesChanged}
|
7933 |
-
/>
|
7934 |
-
|
7935 |
-
<SelectControl
|
7936 |
-
name="overrideHeightUnits"
|
7937 |
-
label={__("Override Height Units")}
|
7938 |
-
options={[
|
7939 |
-
{value: "px", label: "px"},
|
7940 |
-
{value: "%", label: "%"},
|
7941 |
-
{value: "vw`", label: "vw"},
|
7942 |
-
{value: "vh", label: "vh"}
|
7943 |
-
]}
|
7944 |
-
onChange={onPropertiesChanged}
|
7945 |
-
/>
|
7946 |
-
*/
|
7947 |
-
|
7948 |
-
var onOverrideWidthCheckboxChanged = function onOverrideWidthCheckboxChanged(value) {};
|
7949 |
-
|
7950 |
-
return React.createElement(
|
7951 |
-
InspectorControls,
|
7952 |
-
{ key: "inspector" },
|
7953 |
-
React.createElement(
|
7954 |
-
PanelBody,
|
7955 |
-
{ title: __('Map Settings') },
|
7956 |
-
React.createElement(
|
7957 |
-
"p",
|
7958 |
-
{ "class": "map-block-gutenberg-button-container" },
|
7959 |
-
React.createElement(
|
7960 |
-
"a",
|
7961 |
-
{ href: WPGMZA.adminurl + "admin.php?page=wp-google-maps-menu&action=edit&map_id=1",
|
7962 |
-
target: "_blank",
|
7963 |
-
"class": "button button-primary" },
|
7964 |
-
React.createElement("i", { "class": "fa fa-pencil-square-o", "aria-hidden": "true" }),
|
7965 |
-
__('Go to Map Editor')
|
7966 |
-
)
|
7967 |
-
),
|
7968 |
-
React.createElement(
|
7969 |
-
"p",
|
7970 |
-
{ "class": "map-block-gutenberg-button-container" },
|
7971 |
-
React.createElement(
|
7972 |
-
"a",
|
7973 |
-
{ href: "https://www.wpgmaps.com/documentation/creating-your-first-map/",
|
7974 |
-
target: "_blank",
|
7975 |
-
"class": "button button-primary" },
|
7976 |
-
React.createElement("i", { "class": "fa fa-book", "aria-hidden": "true" }),
|
7977 |
-
__('View Documentation')
|
7978 |
-
)
|
7979 |
-
)
|
7980 |
-
)
|
7981 |
-
);
|
7982 |
-
};
|
7983 |
-
|
7984 |
-
WPGMZA.Integration.Gutenberg.prototype.getBlockAttributes = function () {
|
7985 |
-
return {};
|
7986 |
-
};
|
7987 |
-
|
7988 |
-
WPGMZA.Integration.Gutenberg.prototype.getBlockDefinition = function (props) {
|
7989 |
-
var _this = this;
|
7990 |
-
|
7991 |
-
return {
|
7992 |
-
|
7993 |
-
title: __("WP Google Maps"),
|
7994 |
-
description: __('The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.'),
|
7995 |
-
category: 'common',
|
7996 |
-
icon: 'location-alt',
|
7997 |
-
keywords: [__('Map'), __('Maps'), __('Google')],
|
7998 |
-
attributes: this.getBlockAttributes(),
|
7999 |
-
|
8000 |
-
edit: function edit(props) {
|
8001 |
-
return [!!props.isSelected && _this.getBlockInspectorControls(props), React.createElement(
|
8002 |
-
"div",
|
8003 |
-
{ className: props.className + " wpgmza-gutenberg-block" },
|
8004 |
-
React.createElement(Dashicon, { icon: "location-alt" }),
|
8005 |
-
React.createElement(
|
8006 |
-
"span",
|
8007 |
-
{ "class": "wpgmza-gutenberg-block-title" },
|
8008 |
-
__("Your map will appear here on your websites front end")
|
8009 |
-
)
|
8010 |
-
)];
|
8011 |
-
},
|
8012 |
-
// Defining the front-end interface
|
8013 |
-
save: function save(props) {
|
8014 |
-
// Rendering in PHP
|
8015 |
-
return null;
|
8016 |
-
}
|
8017 |
-
|
8018 |
-
};
|
8019 |
-
};
|
8020 |
-
|
8021 |
-
WPGMZA.Integration.Gutenberg.getConstructor = function () {
|
8022 |
-
return WPGMZA.Integration.Gutenberg;
|
8023 |
-
};
|
8024 |
-
|
8025 |
-
WPGMZA.Integration.Gutenberg.createInstance = function () {
|
8026 |
-
var constructor = WPGMZA.Integration.Gutenberg.getConstructor();
|
8027 |
-
return new constructor();
|
8028 |
-
};
|
8029 |
-
|
8030 |
-
// Allow the Pro module to extend and create the module, only create here when Pro isn't loaded
|
8031 |
-
if(!WPGMZA.isProVersion() && !(/^6/.test(WPGMZA.pro_version))) WPGMZA.integrationModules.gutenberg = WPGMZA.Integration.Gutenberg.createInstance();
|
8032 |
-
});
|
8033 |
-
|
8034 |
-
// js/v8/open-layers/ol-circle.js
|
8035 |
-
/**
|
8036 |
-
* @namespace WPGMZA
|
8037 |
-
* @module OLCircle
|
8038 |
-
* @requires WPGMZA.Circle
|
8039 |
-
*/
|
8040 |
-
jQuery(function($) {
|
8041 |
-
|
8042 |
-
var Parent = WPGMZA.Circle;
|
8043 |
-
|
8044 |
-
WPGMZA.OLCircle = function(options, olFeature)
|
8045 |
-
{
|
8046 |
-
var self = this;
|
8047 |
-
|
8048 |
-
this.center = {lat: 0, lng: 0};
|
8049 |
-
this.radius = 0;
|
8050 |
-
|
8051 |
-
this.fillcolor = "#ff0000";
|
8052 |
-
this.opacity = 0.6;
|
8053 |
-
|
8054 |
-
Parent.call(this, options, olFeature);
|
8055 |
-
|
8056 |
-
this.olStyle = new ol.style.Style(this.getStyleFromSettings());
|
8057 |
-
|
8058 |
-
this.vectorLayer3857 = this.layer = new ol.layer.Vector({
|
8059 |
-
source: new ol.source.Vector(),
|
8060 |
-
style: this.olStyle
|
8061 |
-
});
|
8062 |
-
|
8063 |
-
if(olFeature)
|
8064 |
-
this.olFeature = olFeature;
|
8065 |
-
else
|
8066 |
-
this.recreate();
|
8067 |
-
}
|
8068 |
-
|
8069 |
-
WPGMZA.OLCircle.prototype = Object.create(Parent.prototype);
|
8070 |
-
WPGMZA.OLCircle.prototype.constructor = WPGMZA.OLCircle;
|
8071 |
-
|
8072 |
-
WPGMZA.OLCircle.prototype.recreate = function()
|
8073 |
-
{
|
8074 |
-
if(this.olFeature)
|
8075 |
-
{
|
8076 |
-
this.layer.getSource().removeFeature(this.olFeature);
|
8077 |
-
delete this.olFeature;
|
8078 |
-
}
|
8079 |
-
|
8080 |
-
if(!this.center || !this.radius)
|
8081 |
-
return;
|
8082 |
-
|
8083 |
-
// IMPORTANT: Please note that due to what appears to be a bug in OpenLayers, the following code MUST be exected specifically in this order, or the circle won't appear
|
8084 |
-
var radius = parseFloat(this.radius) * 1000 / 2;
|
8085 |
-
var x, y;
|
8086 |
-
|
8087 |
-
x = this.center.lng;
|
8088 |
-
y = this.center.lat;
|
8089 |
-
|
8090 |
-
var circle4326 = ol.geom.Polygon.circular([x, y], radius, 64);
|
8091 |
-
var circle3857 = circle4326.clone().transform('EPSG:4326', 'EPSG:3857');
|
8092 |
-
|
8093 |
-
this.olFeature = new ol.Feature(circle3857);
|
8094 |
-
|
8095 |
-
this.layer.getSource().addFeature(this.olFeature);
|
8096 |
-
}
|
8097 |
-
|
8098 |
-
WPGMZA.OLCircle.prototype.getStyleFromSettings = function()
|
8099 |
-
{
|
8100 |
-
var params = {};
|
8101 |
-
|
8102 |
-
/*if(this.settings.strokeOpacity)
|
8103 |
-
params.stroke = new ol.style.Stroke({
|
8104 |
-
color: WPGMZA.hexOpacityToRGBA(this.settings.strokeColor, this.settings.strokeOpacity)
|
8105 |
-
});*/
|
8106 |
-
|
8107 |
-
if(this.opacity)
|
8108 |
-
params.fill = new ol.style.Fill({
|
8109 |
-
color: WPGMZA.hexOpacityToRGBA(this.fillColor, this.opacity)
|
8110 |
-
});
|
8111 |
-
|
8112 |
-
return params;
|
8113 |
-
}
|
8114 |
-
|
8115 |
-
WPGMZA.OLCircle.prototype.updateStyleFromSettings = function()
|
8116 |
-
{
|
8117 |
-
// Re-create the style - working on it directly doesn't cause a re-render
|
8118 |
-
var params = this.getStyleFromSettings();
|
8119 |
-
this.olStyle = new ol.style.Style(params);
|
8120 |
-
this.layer.setStyle(this.olStyle);
|
8121 |
-
}
|
8122 |
-
|
8123 |
-
WPGMZA.OLCircle.prototype.setVisible = function(visible)
|
8124 |
-
{
|
8125 |
-
this.layer.setVisible(visible ? true : false);
|
8126 |
-
}
|
8127 |
-
|
8128 |
-
WPGMZA.OLCircle.prototype.setCenter = function(center)
|
8129 |
-
{
|
8130 |
-
WPGMZA.Circle.prototype.setCenter.apply(this, arguments);
|
8131 |
-
|
8132 |
-
this.recreate();
|
8133 |
-
}
|
8134 |
-
|
8135 |
-
WPGMZA.OLCircle.prototype.setRadius = function(radius)
|
8136 |
-
{
|
8137 |
-
WPGMZA.Circle.prototype.setRadius.apply(this, arguments);
|
8138 |
-
|
8139 |
-
this.recreate();
|
8140 |
-
}
|
8141 |
-
|
8142 |
-
});
|
8143 |
-
|
8144 |
-
// js/v8/open-layers/ol-geocoder.js
|
8145 |
/**
|
8146 |
* @namespace WPGMZA
|
8147 |
-
* @module
|
8148 |
-
* @requires WPGMZA
|
8149 |
*/
|
8150 |
jQuery(function($) {
|
8151 |
|
8152 |
-
|
8153 |
-
* @class OLGeocoder
|
8154 |
-
* @extends Geocoder
|
8155 |
-
* @summary OpenLayers geocoder - uses Nominatim by default
|
8156 |
-
*/
|
8157 |
-
WPGMZA.OLGeocoder = function()
|
8158 |
-
{
|
8159 |
-
|
8160 |
-
}
|
8161 |
|
8162 |
-
WPGMZA.
|
8163 |
-
|
8164 |
|
8165 |
-
|
8166 |
-
|
8167 |
-
* @access protected
|
8168 |
-
* @summary Tries to retrieve cached coordinates from server cache
|
8169 |
-
* @param {string} address The street address to geocode
|
8170 |
-
* @param {function} callback Where to send the results, as an array
|
8171 |
-
* @return {void}
|
8172 |
-
*/
|
8173 |
-
WPGMZA.OLGeocoder.prototype.getResponseFromCache = function(query, callback)
|
8174 |
-
{
|
8175 |
-
WPGMZA.restAPI.call("/geocode-cache", {
|
8176 |
-
data: {
|
8177 |
-
query: JSON.stringify(query)
|
8178 |
-
},
|
8179 |
-
success: function(response, xhr, status) {
|
8180 |
-
// Legacy compatibility support
|
8181 |
-
response.lng = response.lon;
|
8182 |
-
|
8183 |
-
callback(response);
|
8184 |
-
},
|
8185 |
-
useCompressedPathVariable: true
|
8186 |
-
});
|
8187 |
-
|
8188 |
-
/*$.ajax(WPGMZA.ajaxurl, {
|
8189 |
-
data: {
|
8190 |
-
action: "wpgmza_query_nominatim_cache",
|
8191 |
-
query: JSON.stringify(query)
|
8192 |
-
},
|
8193 |
-
success: function(response, xhr, status) {
|
8194 |
-
// Legacy compatibility support
|
8195 |
-
response.lng = response.lon;
|
8196 |
-
|
8197 |
-
callback(response);
|
8198 |
-
}
|
8199 |
-
});*/
|
8200 |
-
}
|
8201 |
|
8202 |
-
|
8203 |
-
* @function getResponseFromNominatim
|
8204 |
-
* @access protected
|
8205 |
-
* @summary Queries Nominatim on the specified address
|
8206 |
-
* @param {object} options An object containing the options for geocoding, address is a mandatory field
|
8207 |
-
* @param {function} callback The function to send the results to, as an array
|
8208 |
-
*/
|
8209 |
-
WPGMZA.OLGeocoder.prototype.getResponseFromNominatim = function(options, callback)
|
8210 |
{
|
8211 |
-
|
8212 |
-
q: options.address,
|
8213 |
-
format: "json"
|
8214 |
-
};
|
8215 |
|
8216 |
-
|
8217 |
-
|
8218 |
|
8219 |
-
|
8220 |
-
|
8221 |
-
success: function(response, xhr, status) {
|
8222 |
-
callback(response);
|
8223 |
-
},
|
8224 |
-
error: function(response, xhr, status) {
|
8225 |
-
callback(null, WPGMZA.Geocoder.FAIL)
|
8226 |
-
}
|
8227 |
-
});
|
8228 |
}
|
8229 |
|
8230 |
-
|
8231 |
-
|
8232 |
-
|
8233 |
-
* @summary Caches a response on the server, usually after it's been returned from Nominatim
|
8234 |
-
* @param {string} address The street address
|
8235 |
-
* @param {object|array} response The response to cache
|
8236 |
-
* @returns {void}
|
8237 |
-
*/
|
8238 |
-
WPGMZA.OLGeocoder.prototype.cacheResponse = function(query, response)
|
8239 |
-
{
|
8240 |
-
$.ajax(WPGMZA.ajaxurl, {
|
8241 |
-
data: {
|
8242 |
-
action: "wpgmza_store_nominatim_cache",
|
8243 |
-
query: JSON.stringify(query),
|
8244 |
-
response: JSON.stringify(response)
|
8245 |
-
},
|
8246 |
-
method: "POST"
|
8247 |
-
});
|
8248 |
-
}
|
8249 |
-
|
8250 |
-
/**
|
8251 |
-
* @function clearCache
|
8252 |
-
* @access protected
|
8253 |
-
* @summary Clears the Nomanatim geocode cache
|
8254 |
-
* @returns {void}
|
8255 |
-
*/
|
8256 |
-
WPGMZA.OLGeocoder.prototype.clearCache = function(callback)
|
8257 |
{
|
8258 |
-
|
8259 |
-
|
8260 |
-
|
8261 |
-
|
8262 |
-
|
8263 |
-
|
8264 |
-
callback(response);
|
8265 |
-
}
|
8266 |
-
});
|
8267 |
}
|
8268 |
|
8269 |
-
WPGMZA.
|
8270 |
{
|
8271 |
-
|
|
|
|
|
|
|
|
|
8272 |
}
|
8273 |
|
8274 |
-
WPGMZA.
|
8275 |
{
|
8276 |
-
|
8277 |
}
|
8278 |
|
8279 |
-
WPGMZA.
|
8280 |
{
|
8281 |
-
|
8282 |
-
|
8283 |
-
if(!options)
|
8284 |
-
throw new Error("Invalid options");
|
8285 |
-
|
8286 |
-
if(WPGMZA.LatLng.REGEXP.test(options.address))
|
8287 |
-
{
|
8288 |
-
var latLng = WPGMZA.LatLng.fromString(options.address);
|
8289 |
-
|
8290 |
-
callback([{
|
8291 |
-
geometry: {
|
8292 |
-
location: latLng
|
8293 |
-
},
|
8294 |
-
latLng: latLng,
|
8295 |
-
lat: latLng.lat,
|
8296 |
-
lng: latLng.lng
|
8297 |
-
}], WPGMZA.Geocoder.SUCCESS);
|
8298 |
-
|
8299 |
-
return;
|
8300 |
-
}
|
8301 |
-
|
8302 |
-
if(options.location)
|
8303 |
-
options.latLng = new WPGMZA.LatLng(options.location);
|
8304 |
-
|
8305 |
-
var finish, location;
|
8306 |
-
|
8307 |
-
if(options.address)
|
8308 |
-
{
|
8309 |
-
location = options.address;
|
8310 |
-
|
8311 |
-
finish = function(response, status)
|
8312 |
-
{
|
8313 |
-
for(var i = 0; i < response.length; i++)
|
8314 |
-
{
|
8315 |
-
response[i].geometry = {
|
8316 |
-
location: new WPGMZA.LatLng({
|
8317 |
-
lat: parseFloat(response[i].lat),
|
8318 |
-
lng: parseFloat(response[i].lon)
|
8319 |
-
})
|
8320 |
-
};
|
8321 |
-
|
8322 |
-
response[i].latLng = {
|
8323 |
-
lat: parseFloat(response[i].lat),
|
8324 |
-
lng: parseFloat(response[i].lon)
|
8325 |
-
};
|
8326 |
-
|
8327 |
-
response[i].bounds = new WPGMZA.LatLngBounds(
|
8328 |
-
new WPGMZA.LatLng({
|
8329 |
-
lat: response[i].boundingbox[1],
|
8330 |
-
lng: response[i].boundingbox[2]
|
8331 |
-
}),
|
8332 |
-
new WPGMZA.LatLng({
|
8333 |
-
lat: response[i].boundingbox[0],
|
8334 |
-
lng: response[i].boundingbox[3]
|
8335 |
-
})
|
8336 |
-
);
|
8337 |
-
|
8338 |
-
// Backward compatibility with old UGM
|
8339 |
-
response[i].lng = response[i].lon;
|
8340 |
-
}
|
8341 |
-
|
8342 |
-
callback(response, status);
|
8343 |
-
}
|
8344 |
-
}
|
8345 |
-
else if(options.latLng)
|
8346 |
-
{
|
8347 |
-
location = options.latLng.toString();
|
8348 |
-
|
8349 |
-
finish = function(response, status)
|
8350 |
-
{
|
8351 |
-
var address = response[0].display_name;
|
8352 |
-
callback([address], status);
|
8353 |
-
}
|
8354 |
-
}
|
8355 |
-
else
|
8356 |
-
throw new Error("You must supply either a latLng or address")
|
8357 |
|
8358 |
-
|
8359 |
-
|
8360 |
-
|
8361 |
-
|
8362 |
-
|
8363 |
-
|
8364 |
-
|
8365 |
-
|
8366 |
-
|
8367 |
-
|
8368 |
-
|
8369 |
-
|
8370 |
-
|
8371 |
-
|
8372 |
-
|
8373 |
-
if(response.length == 0)
|
8374 |
-
{
|
8375 |
-
callback([], WPGMZA.Geocoder.ZERO_RESULTS);
|
8376 |
-
return;
|
8377 |
-
}
|
8378 |
-
|
8379 |
-
finish(response, WPGMZA.Geocoder.SUCCESS);
|
8380 |
-
|
8381 |
-
self.cacheResponse(query, response);
|
8382 |
-
});
|
8383 |
});
|
|
|
|
|
|
|
|
|
|
|
8384 |
}
|
8385 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8386 |
});
|
8387 |
|
8388 |
-
// js/v8/
|
8389 |
/**
|
8390 |
* @namespace WPGMZA
|
8391 |
-
* @module
|
8392 |
* @requires WPGMZA.InfoWindow
|
8393 |
* @pro-requires WPGMZA.ProInfoWindow
|
8394 |
*/
|
@@ -8396,454 +7726,546 @@ jQuery(function($) {
|
|
8396 |
|
8397 |
var Parent;
|
8398 |
|
8399 |
-
WPGMZA.
|
8400 |
{
|
8401 |
-
var self = this;
|
8402 |
-
|
8403 |
Parent.call(this, mapObject);
|
8404 |
|
8405 |
-
this.
|
8406 |
-
|
8407 |
-
$(this.element).on("click", ".ol-info-window-close", function(event) {
|
8408 |
-
self.close();
|
8409 |
-
});
|
8410 |
}
|
8411 |
|
|
|
|
|
8412 |
if(WPGMZA.isProVersion())
|
8413 |
Parent = WPGMZA.ProInfoWindow;
|
8414 |
else
|
8415 |
Parent = WPGMZA.InfoWindow;
|
8416 |
|
8417 |
-
WPGMZA.
|
8418 |
-
WPGMZA.
|
8419 |
|
8420 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8421 |
|
8422 |
-
|
8423 |
-
|
8424 |
-
return true;
|
8425 |
-
}
|
8426 |
|
8427 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8428 |
|
8429 |
/**
|
8430 |
* Opens the info window
|
8431 |
-
* TODO: This should take a mapObject, not an event
|
8432 |
* @return boolean FALSE if the info window should not & will not open, TRUE if it will
|
8433 |
*/
|
8434 |
-
WPGMZA.
|
8435 |
{
|
8436 |
var self = this;
|
8437 |
-
var latLng = mapObject.getPosition();
|
8438 |
|
8439 |
if(!Parent.prototype.open.call(this, map, mapObject))
|
8440 |
return false;
|
8441 |
|
8442 |
-
// Set parent for events to bubble up
|
8443 |
this.parent = map;
|
8444 |
|
8445 |
-
|
8446 |
-
|
8447 |
-
|
8448 |
-
this.
|
8449 |
-
|
8450 |
-
|
8451 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
8452 |
|
8453 |
-
|
8454 |
-
latLng.lng,
|
8455 |
-
latLng.lat
|
8456 |
-
]));
|
8457 |
-
self.mapObject.map.olMap.addOverlay(this.overlay);
|
8458 |
|
8459 |
-
|
|
|
|
|
|
|
8460 |
|
8461 |
-
|
8462 |
-
{
|
8463 |
-
|
|
|
|
|
|
|
|
|
|
|
8464 |
|
8465 |
-
|
|
|
8466 |
|
8467 |
-
|
8468 |
-
|
|
|
|
|
|
|
8469 |
|
8470 |
-
|
8471 |
-
this.trigger("domready");
|
8472 |
}
|
8473 |
|
8474 |
-
WPGMZA.
|
8475 |
{
|
8476 |
-
|
8477 |
-
$(this.element).hide();
|
8478 |
-
|
8479 |
-
if(!this.overlay)
|
8480 |
return;
|
8481 |
|
8482 |
WPGMZA.InfoWindow.prototype.close.call(this);
|
8483 |
|
8484 |
-
this.
|
8485 |
-
|
8486 |
-
this.mapObject.map.olMap.removeOverlay(this.overlay);
|
8487 |
-
this.overlay = null;
|
8488 |
-
}
|
8489 |
-
|
8490 |
-
WPGMZA.OLInfoWindow.prototype.setContent = function(html)
|
8491 |
-
{
|
8492 |
-
$(this.element).html("<i class='fa fa-times ol-info-window-close' aria-hidden='true'></i>" + html);
|
8493 |
-
}
|
8494 |
-
|
8495 |
-
WPGMZA.OLInfoWindow.prototype.setOptions = function(options)
|
8496 |
-
{
|
8497 |
-
if(options.maxWidth)
|
8498 |
-
{
|
8499 |
-
$(this.element).css({"max-width": options.maxWidth + "px"});
|
8500 |
-
}
|
8501 |
}
|
8502 |
|
8503 |
-
WPGMZA.
|
8504 |
-
{
|
8505 |
-
|
8506 |
-
|
8507 |
-
|
8508 |
-
|
8509 |
-
|
8510 |
-
|
8511 |
-
|
8512 |
-
|
8513 |
-
|
8514 |
-
|
8515 |
-
|
8516 |
-
|
8517 |
-
|
8518 |
-
|
8519 |
-
|
8520 |
-
|
8521 |
-
a.top >= b.top && a.top <= b.bottom &&
|
8522 |
-
a.bottom <= b.bottom && a.bottom >= b.top;
|
8523 |
-
}
|
8524 |
-
|
8525 |
-
function panIntoView()
|
8526 |
-
{
|
8527 |
-
var height = $(self.element).height();
|
8528 |
-
var offset = -height * 0.45;
|
8529 |
-
|
8530 |
-
self.mapObject.map.animateNudge(0, offset, self.mapObject.getPosition());
|
8531 |
-
}
|
8532 |
-
|
8533 |
-
imgs.each(function(index, el) {
|
8534 |
-
el.onload = function() {
|
8535 |
-
if(++numImagesLoaded == numImages && !inside(self.element, self.mapObject.map.element))
|
8536 |
-
panIntoView();
|
8537 |
-
}
|
8538 |
-
});
|
8539 |
-
|
8540 |
-
if(numImages == 0 && !inside(self.element, self.mapObject.map.element))
|
8541 |
-
panIntoView();
|
8542 |
-
}
|
8543 |
}
|
8544 |
|
8545 |
});
|
8546 |
|
8547 |
-
// js/v8/
|
8548 |
/**
|
8549 |
* @namespace WPGMZA
|
8550 |
-
* @module
|
8551 |
* @requires WPGMZA.Map
|
8552 |
* @pro-requires WPGMZA.ProMap
|
8553 |
*/
|
8554 |
jQuery(function($) {
|
8555 |
-
|
8556 |
var Parent;
|
8557 |
|
8558 |
-
|
|
|
|
|
|
|
|
|
8559 |
{
|
8560 |
var self = this;
|
8561 |
|
8562 |
-
Parent.call(this, element);
|
8563 |
|
8564 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8565 |
|
8566 |
-
|
8567 |
|
8568 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8569 |
|
8570 |
-
this.
|
8571 |
-
|
8572 |
-
|
8573 |
-
|
8574 |
-
|
8575 |
-
|
|
|
8576 |
});
|
8577 |
|
8578 |
-
|
8579 |
-
|
8580 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8581 |
|
8582 |
-
|
8583 |
-
|
8584 |
-
interaction.setActive( (self.settings.wpgmza_settings_map_draggable == "yes" ? false : true) );
|
8585 |
-
else if(interaction instanceof ol.interaction.DoubleClickZoom)
|
8586 |
-
interaction.setActive( (self.settings.wpgmza_settings_map_clickzoom ? false : true) );
|
8587 |
-
else if(interaction instanceof ol.interaction.MouseWheelZoom)
|
8588 |
-
interaction.setActive( (self.settings.wpgmza_settings_map_scroll == "yes" ? false : true) );
|
8589 |
|
8590 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8591 |
|
8592 |
-
|
8593 |
-
|
8594 |
-
{
|
8595 |
-
this.gestureOverlay = $("<div class='wpgmza-gesture-overlay'></div>")
|
8596 |
-
this.gestureOverlayTimeoutID = null;
|
8597 |
|
8598 |
-
|
8599 |
-
{
|
8600 |
-
// On touch devices, require two fingers to drag and pan
|
8601 |
-
// NB: Temporarily removed due to inconsistent behaviour
|
8602 |
-
/*this.olMap.getInteractions().forEach(function(interaction) {
|
8603 |
-
|
8604 |
-
if(interaction instanceof ol.interaction.DragPan)
|
8605 |
-
self.olMap.removeInteraction(interaction);
|
8606 |
-
|
8607 |
-
});
|
8608 |
|
8609 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8610 |
|
8611 |
-
|
8612 |
-
|
8613 |
-
var allowed = olBrowserEvent.originalEvent.touches.length == 2;
|
8614 |
-
|
8615 |
-
if(!allowed)
|
8616 |
-
self.showGestureOverlay();
|
8617 |
-
|
8618 |
-
return allowed;
|
8619 |
-
}
|
8620 |
|
8621 |
-
})
|
8622 |
-
|
8623 |
-
this.gestureOverlay.text(WPGMZA.localized_strings.use_two_fingers);*/
|
8624 |
-
}
|
8625 |
-
else
|
8626 |
-
{
|
8627 |
-
// On desktops, require Ctrl + zoom to zoom, show an overlay if that condition is not met
|
8628 |
-
this.olMap.on("wheel", function(event) {
|
8629 |
|
8630 |
-
|
8631 |
-
|
8632 |
-
|
8633 |
-
event.originalEvent.preventDefault();
|
8634 |
-
return false;
|
8635 |
-
}
|
8636 |
|
8637 |
-
}
|
8638 |
|
8639 |
-
this.gestureOverlay.text(WPGMZA.localized_strings.use_ctrl_scroll_to_zoom);
|
8640 |
}
|
8641 |
-
}
|
8642 |
-
|
8643 |
-
// Controls
|
8644 |
-
this.olMap.getControls().forEach(function(control) {
|
8645 |
-
|
8646 |
-
// NB: The true and false values are flipped because these settings represent the "disabled" state when true
|
8647 |
-
if(control instanceof ol.control.Zoom && WPGMZA.settings.wpgmza_settings_map_zoom == "yes")
|
8648 |
-
self.olMap.removeControl(control);
|
8649 |
-
|
8650 |
-
}, this);
|
8651 |
-
|
8652 |
-
if(WPGMZA.settings.wpgmza_settings_map_full_screen_control != "yes")
|
8653 |
-
this.olMap.addControl(new ol.control.FullScreen());
|
8654 |
-
|
8655 |
-
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
8656 |
-
{
|
8657 |
-
// Marker layer
|
8658 |
-
this.markerLayer = new ol.layer.Vector({
|
8659 |
-
source: new ol.source.Vector({
|
8660 |
-
features: []
|
8661 |
-
})
|
8662 |
-
});
|
8663 |
-
this.olMap.addLayer(this.markerLayer);
|
8664 |
|
8665 |
-
this.olMap.on("click", function(event) {
|
8666 |
-
var features = self.olMap.getFeaturesAtPixel(event.pixel);
|
8667 |
-
|
8668 |
-
if(!features || !features.length)
|
8669 |
-
return;
|
8670 |
-
|
8671 |
-
var marker = features[0].wpgmzaMarker;
|
8672 |
-
|
8673 |
-
if(!marker)
|
8674 |
-
return;
|
8675 |
-
|
8676 |
-
marker.trigger("click");
|
8677 |
-
marker.trigger("select");
|
8678 |
-
});
|
8679 |
}
|
8680 |
|
8681 |
-
|
8682 |
-
|
8683 |
-
|
8684 |
-
|
8685 |
-
|
8686 |
-
|
8687 |
-
|
8688 |
-
|
8689 |
-
|
8690 |
-
|
8691 |
-
|
8692 |
-
self.onIdle();
|
8693 |
-
});
|
8694 |
-
|
8695 |
-
// Listen for zoom
|
8696 |
-
this.olMap.getView().on("change:resolution", function(event) {
|
8697 |
-
self.dispatchEvent("zoom_changed");
|
8698 |
-
self.dispatchEvent("zoomchanged");
|
8699 |
-
setTimeout(function() {
|
8700 |
-
self.onIdle();
|
8701 |
-
}, 10);
|
8702 |
-
});
|
8703 |
|
8704 |
-
|
8705 |
-
|
8706 |
-
|
8707 |
self.onBoundsChanged();
|
8708 |
});
|
8709 |
-
self.onBoundsChanged();
|
8710 |
|
8711 |
-
|
8712 |
-
|
8713 |
-
if(this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8714 |
{
|
8715 |
-
this.
|
8716 |
-
|
8717 |
}
|
8718 |
|
8719 |
-
|
8720 |
-
$(this.element).on("click contextmenu", function(event) {
|
8721 |
-
|
8722 |
-
var isRight;
|
8723 |
-
event = event || window.event;
|
8724 |
-
|
8725 |
-
var latLng = self.pixelsToLatLng(event.offsetX, event.offsetY);
|
8726 |
-
|
8727 |
-
if("which" in event)
|
8728 |
-
isRight = event.which == 3;
|
8729 |
-
else if("button" in event)
|
8730 |
-
isRight = event.button == 2;
|
8731 |
-
|
8732 |
-
if(event.which == 1 || event.button == 1)
|
8733 |
-
{
|
8734 |
-
if(self.isBeingDragged)
|
8735 |
-
return;
|
8736 |
-
|
8737 |
-
// Left click
|
8738 |
-
if($(event.target).closest(".ol-marker").length)
|
8739 |
-
return; // A marker was clicked, not the map. Do nothing
|
8740 |
-
|
8741 |
-
self.trigger({
|
8742 |
-
type: "click",
|
8743 |
-
latLng: latLng
|
8744 |
-
});
|
8745 |
-
|
8746 |
-
return;
|
8747 |
-
}
|
8748 |
-
|
8749 |
-
if(!isRight)
|
8750 |
-
return;
|
8751 |
-
|
8752 |
-
return self.onRightClick(event);
|
8753 |
-
});
|
8754 |
|
8755 |
-
|
8756 |
-
if(!WPGMZA.
|
|
|
|
|
|
|
|
|
|
|
|
|
8757 |
{
|
8758 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8759 |
|
8760 |
-
|
8761 |
-
|
8762 |
|
8763 |
-
|
8764 |
-
$(this.element).trigger("wpgooglemaps_loaded");
|
8765 |
}
|
|
|
|
|
8766 |
}
|
8767 |
-
|
8768 |
-
if(WPGMZA.isProVersion())
|
8769 |
-
Parent = WPGMZA.ProMap;
|
8770 |
-
else
|
8771 |
-
Parent = WPGMZA.Map;
|
8772 |
|
8773 |
-
|
8774 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8775 |
|
8776 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8777 |
{
|
8778 |
-
|
8779 |
|
8780 |
-
|
8781 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8782 |
|
8783 |
-
|
8784 |
-
source: new ol.source.OSM(options)
|
8785 |
-
});
|
8786 |
}
|
8787 |
|
8788 |
-
|
|
|
|
|
|
|
|
|
8789 |
{
|
8790 |
-
|
8791 |
-
var center = {
|
8792 |
-
lat: transformed[1],
|
8793 |
-
lng: transformed[0]
|
8794 |
-
};
|
8795 |
|
8796 |
-
|
8797 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8798 |
|
8799 |
-
|
|
|
|
|
|
|
|
|
|
|
8800 |
|
8801 |
-
|
8802 |
-
|
|
|
|
|
|
|
|
|
8803 |
|
8804 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8805 |
}
|
8806 |
|
8807 |
-
|
|
|
|
|
|
|
|
|
8808 |
{
|
8809 |
-
|
8810 |
-
this.olMap.getView().getCenter()
|
8811 |
-
);
|
8812 |
-
return {
|
8813 |
-
lat: lonLat[1],
|
8814 |
-
lng: lonLat[0]
|
8815 |
-
};
|
8816 |
}
|
8817 |
|
8818 |
-
|
|
|
|
|
|
|
|
|
8819 |
{
|
8820 |
-
|
8821 |
-
|
8822 |
-
WPGMZA.Map.prototype.setCenter.call(this, latLng);
|
8823 |
-
|
8824 |
-
view.setCenter(ol.proj.fromLonLat([
|
8825 |
-
latLng.lng,
|
8826 |
-
latLng.lat
|
8827 |
-
]));
|
8828 |
|
8829 |
-
this.
|
8830 |
-
|
8831 |
-
this.onBoundsChanged();
|
8832 |
}
|
8833 |
|
8834 |
-
|
|
|
|
|
|
|
|
|
8835 |
{
|
8836 |
-
var bounds = this.
|
8837 |
-
var
|
|
|
8838 |
|
8839 |
-
var
|
8840 |
-
var bottomRight = ol.proj.toLonLat([bounds[2], bounds[3]]);
|
8841 |
|
8842 |
-
nativeBounds.north =
|
8843 |
-
nativeBounds.south =
|
|
|
|
|
8844 |
|
8845 |
-
|
8846 |
-
nativeBounds.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8847 |
|
8848 |
return nativeBounds;
|
8849 |
}
|
@@ -8852,7 +8274,7 @@ jQuery(function($) {
|
|
8852 |
* Fit to given boundaries
|
8853 |
* @return void
|
8854 |
*/
|
8855 |
-
WPGMZA.
|
8856 |
{
|
8857 |
if(southWest instanceof WPGMZA.LatLng)
|
8858 |
southWest = {lat: southWest.lat, lng: southWest.lng};
|
@@ -8873,885 +8295,1100 @@ jQuery(function($) {
|
|
8873 |
};
|
8874 |
}
|
8875 |
|
8876 |
-
var
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8877 |
|
8878 |
-
|
8879 |
-
|
8880 |
-
|
8881 |
-
parseFloat(southWest.lat)
|
8882 |
-
]),
|
8883 |
-
ol.proj.fromLonLat([
|
8884 |
-
parseFloat(northEast.lng),
|
8885 |
-
parseFloat(northEast.lat)
|
8886 |
-
])
|
8887 |
-
]);
|
8888 |
-
view.fit(extent, this.olMap.getSize());
|
8889 |
}
|
8890 |
|
8891 |
-
|
|
|
|
|
|
|
|
|
|
|
8892 |
{
|
8893 |
-
|
8894 |
-
|
8895 |
-
center: ol.proj.fromLonLat([
|
8896 |
-
parseFloat(latLng.lng),
|
8897 |
-
parseFloat(latLng.lat),
|
8898 |
-
]),
|
8899 |
-
duration: 500
|
8900 |
-
};
|
8901 |
|
8902 |
-
|
8903 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8904 |
|
8905 |
-
|
|
|
|
|
8906 |
}
|
8907 |
|
8908 |
-
|
|
|
|
|
|
|
|
|
|
|
8909 |
{
|
8910 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8911 |
}
|
8912 |
|
8913 |
-
|
|
|
|
|
|
|
|
|
8914 |
{
|
8915 |
-
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8916 |
}
|
8917 |
|
8918 |
-
|
|
|
|
|
|
|
|
|
8919 |
{
|
8920 |
-
|
|
|
|
|
8921 |
}
|
8922 |
-
|
8923 |
-
WPGMZA.
|
8924 |
-
{
|
8925 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
8926 |
}
|
8927 |
|
8928 |
-
|
8929 |
-
|
8930 |
-
|
8931 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
8932 |
|
8933 |
-
|
8934 |
-
{
|
8935 |
-
this.olMap.getView().setMaxZoom(value);
|
8936 |
-
}
|
8937 |
|
8938 |
-
WPGMZA.
|
8939 |
{
|
8940 |
-
|
8941 |
|
8942 |
-
|
8943 |
-
return;
|
8944 |
|
8945 |
-
this.
|
8946 |
-
}
|
8947 |
-
|
8948 |
-
/**
|
8949 |
-
* TODO: Consider moving all these functions to their respective classes, same on google map (DO IT!!! It's very misleading having them here)
|
8950 |
-
*/
|
8951 |
-
WPGMZA.OLMap.prototype.addMarker = function(marker)
|
8952 |
-
{
|
8953 |
-
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT)
|
8954 |
-
this.olMap.addOverlay(marker.overlay);
|
8955 |
-
else
|
8956 |
-
{
|
8957 |
-
this.markerLayer.getSource().addFeature(marker.feature);
|
8958 |
-
marker.featureInSource = true;
|
8959 |
-
}
|
8960 |
|
8961 |
-
|
8962 |
-
|
8963 |
-
|
8964 |
-
WPGMZA.OLMap.prototype.removeMarker = function(marker)
|
8965 |
-
{
|
8966 |
-
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT)
|
8967 |
-
this.olMap.removeOverlay(marker.overlay);
|
8968 |
-
else
|
8969 |
{
|
8970 |
-
|
8971 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8972 |
}
|
8973 |
|
8974 |
-
|
8975 |
-
|
8976 |
-
|
8977 |
-
WPGMZA.OLMap.prototype.addPolygon = function(polygon)
|
8978 |
-
{
|
8979 |
-
this.olMap.addLayer(polygon.layer);
|
8980 |
|
8981 |
-
|
8982 |
-
|
8983 |
-
|
8984 |
-
|
8985 |
-
|
8986 |
-
this.
|
8987 |
|
8988 |
-
|
8989 |
-
|
8990 |
-
|
8991 |
-
|
8992 |
-
|
8993 |
-
|
|
|
|
|
|
|
8994 |
|
8995 |
-
|
8996 |
-
|
8997 |
-
|
8998 |
-
WPGMZA.OLMap.prototype.removePolyline = function(polyline)
|
8999 |
-
{
|
9000 |
-
this.olMap.removeLayer(polyline.layer);
|
9001 |
|
9002 |
-
|
9003 |
-
|
9004 |
-
|
9005 |
-
|
9006 |
-
|
9007 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9008 |
|
9009 |
-
|
9010 |
}
|
9011 |
|
9012 |
-
WPGMZA.
|
9013 |
-
|
9014 |
-
|
|
|
|
|
|
|
|
|
|
|
9015 |
|
9016 |
-
|
9017 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9018 |
|
9019 |
-
WPGMZA.
|
9020 |
{
|
9021 |
-
|
|
|
|
|
|
|
|
|
9022 |
|
9023 |
-
|
|
|
|
|
|
|
|
|
|
|
9024 |
}
|
9025 |
|
9026 |
-
|
|
|
|
|
|
|
|
|
9027 |
{
|
9028 |
-
|
9029 |
-
|
9030 |
-
|
|
|
|
|
9031 |
}
|
9032 |
|
9033 |
-
|
|
|
|
|
|
|
|
|
9034 |
{
|
9035 |
-
|
9036 |
-
|
9037 |
-
|
9038 |
-
|
9039 |
-
|
9040 |
-
|
9041 |
-
}
|
9042 |
-
else
|
9043 |
-
console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)");
|
9044 |
-
}
|
9045 |
|
9046 |
-
|
|
|
9047 |
|
9048 |
-
if(
|
9049 |
-
|
9050 |
-
|
9051 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9052 |
};
|
|
|
|
|
|
|
|
|
|
|
9053 |
|
9054 |
-
|
9055 |
-
return {
|
9056 |
-
lat: lonLat[1],
|
9057 |
-
lng: lonLat[0]
|
9058 |
-
};
|
9059 |
}
|
9060 |
|
9061 |
-
WPGMZA.
|
9062 |
{
|
9063 |
-
|
9064 |
-
var pixel = this.olMap.getPixelFromCoordinate(coord);
|
9065 |
-
|
9066 |
-
if(!pixel)
|
9067 |
-
return {
|
9068 |
-
x: null,
|
9069 |
-
y: null
|
9070 |
-
};
|
9071 |
-
|
9072 |
-
return {
|
9073 |
-
x: pixel[0],
|
9074 |
-
y: pixel[1]
|
9075 |
-
};
|
9076 |
}
|
9077 |
|
9078 |
-
|
|
|
|
|
|
|
|
|
9079 |
{
|
9080 |
-
|
9081 |
-
|
9082 |
-
if(!this.bicycleLayer)
|
9083 |
-
this.bicycleLayer = new ol.layer.Tile({
|
9084 |
-
source: new ol.source.OSM({
|
9085 |
-
url: "http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png"
|
9086 |
-
})
|
9087 |
-
});
|
9088 |
-
|
9089 |
-
this.olMap.addLayer(this.bicycleLayer);
|
9090 |
-
}
|
9091 |
-
else
|
9092 |
-
{
|
9093 |
-
if(!this.bicycleLayer)
|
9094 |
-
return;
|
9095 |
-
|
9096 |
-
this.olMap.removeLayer(this.bicycleLayer);
|
9097 |
-
}
|
9098 |
}
|
9099 |
|
9100 |
-
|
|
|
|
|
|
|
|
|
9101 |
{
|
9102 |
-
|
9103 |
-
|
9104 |
-
clearTimeout(this.gestureOverlayTimeoutID);
|
9105 |
-
|
9106 |
-
$(this.gestureOverlay).stop().animate({opacity: "100"});
|
9107 |
-
$(this.element).append(this.gestureOverlay);
|
9108 |
-
|
9109 |
-
$(this.gestureOverlay).css({
|
9110 |
-
"line-height": $(this.element).height() + "px",
|
9111 |
-
"opacity": "1.0"
|
9112 |
-
});
|
9113 |
-
$(this.gestureOverlay).show();
|
9114 |
|
9115 |
-
this.
|
9116 |
-
self.gestureOverlay.fadeOut(2000);
|
9117 |
-
}, 2000);
|
9118 |
}
|
9119 |
|
9120 |
-
WPGMZA.
|
9121 |
{
|
9122 |
-
this.
|
9123 |
}
|
9124 |
|
9125 |
-
WPGMZA.
|
9126 |
{
|
9127 |
-
|
9128 |
-
return true;
|
9129 |
-
|
9130 |
-
var parentOffset = $(this.element).offset();
|
9131 |
-
var relX = event.pageX - parentOffset.left;
|
9132 |
-
var relY = event.pageY - parentOffset.top;
|
9133 |
-
var latLng = this.pixelsToLatLng(relX, relY);
|
9134 |
-
|
9135 |
-
this.trigger({type: "rightclick", latLng: latLng});
|
9136 |
-
|
9137 |
-
// Legacy event compatibility
|
9138 |
-
$(this.element).trigger({type: "rightclick", latLng: latLng});
|
9139 |
-
|
9140 |
-
// Prevent menu
|
9141 |
-
event.preventDefault();
|
9142 |
-
return false;
|
9143 |
}
|
9144 |
-
|
9145 |
-
WPGMZA.
|
9146 |
-
{
|
9147 |
-
|
9148 |
-
this.olMap.getInteractions().forEach(function(interaction) {
|
9149 |
-
|
9150 |
-
if(interaction instanceof ol.interaction.DragPan || interaction instanceof ol.interaction.DoubleClickZoom || interaction instanceof ol.interaction.MouseWheelZoom)
|
9151 |
-
{
|
9152 |
-
interaction.setActive(true);
|
9153 |
-
}
|
9154 |
-
|
9155 |
-
}, this);
|
9156 |
-
|
9157 |
}
|
9158 |
|
9159 |
});
|
9160 |
|
9161 |
-
// js/v8/
|
9162 |
/**
|
9163 |
* @namespace WPGMZA
|
9164 |
-
* @module
|
9165 |
-
* @requires WPGMZA.
|
9166 |
-
* @pro-requires WPGMZA.ProMarker
|
9167 |
*/
|
9168 |
jQuery(function($) {
|
9169 |
|
9170 |
-
|
9171 |
-
|
9172 |
-
WPGMZA.OLMarker = function(row)
|
9173 |
{
|
9174 |
var self = this;
|
9175 |
|
9176 |
-
|
9177 |
-
|
9178 |
-
var origin = ol.proj.fromLonLat([
|
9179 |
-
parseFloat(this.lng),
|
9180 |
-
parseFloat(this.lat)
|
9181 |
-
]);
|
9182 |
|
9183 |
-
|
9184 |
-
{
|
9185 |
-
var img = $("<img alt=''/>")[0];
|
9186 |
-
img.onload = function(event) {
|
9187 |
-
self.updateElementHeight();
|
9188 |
-
if(self.map)
|
9189 |
-
self.map.olMap.updateSize();
|
9190 |
-
}
|
9191 |
-
img.src = WPGMZA.defaultMarkerIcon;
|
9192 |
-
|
9193 |
-
this.element = $("<div class='ol-marker'></div>")[0];
|
9194 |
-
$(this.element).attr('title', this.title);
|
9195 |
-
this.element.appendChild(img);
|
9196 |
|
9197 |
-
|
|
|
|
|
|
|
9198 |
|
9199 |
-
|
9200 |
-
|
9201 |
-
});
|
9202 |
|
9203 |
-
|
9204 |
-
|
9205 |
-
position: origin,
|
9206 |
-
positioning: "bottom-center",
|
9207 |
-
stopEvent: false
|
9208 |
-
});
|
9209 |
-
this.overlay.setPosition(origin);
|
9210 |
|
9211 |
-
|
9212 |
-
this.setAnimation(this.animation);
|
9213 |
|
9214 |
-
|
|
|
|
|
9215 |
|
9216 |
-
|
9217 |
-
|
9218 |
-
if(row.draggable)
|
9219 |
-
this.setDraggable(true);
|
9220 |
-
}
|
9221 |
|
9222 |
-
|
9223 |
-
|
9224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9225 |
{
|
9226 |
-
this.
|
9227 |
-
|
9228 |
-
});
|
9229 |
-
|
9230 |
-
this.feature.setStyle(this.getVectorLayerStyle());
|
9231 |
-
this.feature.wpgmzaMarker = this;
|
9232 |
}
|
9233 |
-
else
|
9234 |
-
throw new Error("Invalid marker render mode");
|
9235 |
|
9236 |
-
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9237 |
}
|
9238 |
|
9239 |
-
|
9240 |
-
|
9241 |
-
|
9242 |
-
|
9243 |
-
|
9244 |
-
|
9245 |
-
|
9246 |
|
9247 |
-
WPGMZA.
|
9248 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9249 |
|
9250 |
-
WPGMZA.
|
|
|
|
|
|
|
|
|
|
|
9251 |
|
9252 |
-
|
9253 |
{
|
9254 |
-
|
9255 |
-
image: new ol.style.Icon({
|
9256 |
-
anchor: [0.5, 1],
|
9257 |
-
src: WPGMZA.defaultMarkerIcon
|
9258 |
-
})
|
9259 |
-
});
|
9260 |
-
|
9261 |
-
WPGMZA.OLMarker.hiddenVectorLayerStyle = new ol.style.Style({});
|
9262 |
}
|
9263 |
|
9264 |
-
WPGMZA.
|
9265 |
{
|
9266 |
-
|
9267 |
-
return this.vectorLayerStyle;
|
9268 |
-
|
9269 |
-
return WPGMZA.OLMarker.defaultVectorLayerStyle;
|
9270 |
}
|
9271 |
|
9272 |
-
WPGMZA.
|
9273 |
{
|
9274 |
-
|
9275 |
-
|
9276 |
-
if(!height)
|
9277 |
-
height = $(this.element).find("img").height();
|
9278 |
-
|
9279 |
-
if(height == 0 && !calledOnFocus)
|
9280 |
-
{
|
9281 |
-
$(window).one("focus", function(event) {
|
9282 |
-
self.updateElementHeight(false, true);
|
9283 |
-
});
|
9284 |
-
}
|
9285 |
|
9286 |
-
|
9287 |
}
|
9288 |
|
9289 |
-
WPGMZA.
|
9290 |
{
|
9291 |
-
this.
|
|
|
|
|
|
|
9292 |
}
|
9293 |
|
9294 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9295 |
{
|
9296 |
-
|
9297 |
-
{
|
9298 |
-
console.warn("Marker labels are not currently supported in Vector Layer rendering mode");
|
9299 |
-
return;
|
9300 |
-
}
|
9301 |
|
9302 |
-
|
9303 |
-
{
|
9304 |
-
if(this.label)
|
9305 |
-
$(this.element).find(".ol-marker-label").remove();
|
9306 |
-
|
9307 |
-
return;
|
9308 |
-
}
|
9309 |
|
9310 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9311 |
{
|
9312 |
-
|
9313 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9314 |
}
|
9315 |
|
9316 |
-
|
|
|
9317 |
}
|
9318 |
|
9319 |
-
WPGMZA.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9320 |
{
|
9321 |
-
|
|
|
|
|
|
|
|
|
9322 |
{
|
9323 |
-
|
9324 |
}
|
9325 |
else
|
9326 |
-
return this.overlay.getElement().style.display != "none";
|
9327 |
-
}
|
9328 |
-
|
9329 |
-
WPGMZA.OLMarker.prototype.setVisible = function(visible)
|
9330 |
-
{
|
9331 |
-
Parent.prototype.setVisible.call(this, visible);
|
9332 |
-
|
9333 |
-
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
9334 |
{
|
9335 |
-
|
|
|
|
|
9336 |
{
|
9337 |
-
var
|
9338 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9339 |
}
|
9340 |
-
else
|
9341 |
-
this.feature.setStyle(null);
|
9342 |
-
|
9343 |
-
/*var source = this.map.markerLayer.getSource();
|
9344 |
-
|
9345 |
-
/*if(this.featureInSource == visible)
|
9346 |
-
return;
|
9347 |
-
|
9348 |
-
if(visible)
|
9349 |
-
source.addFeature(this.feature);
|
9350 |
-
else
|
9351 |
-
source.removeFeature(this.feature);
|
9352 |
-
|
9353 |
-
this.featureInSource = visible;*/
|
9354 |
}
|
9355 |
-
|
9356 |
-
|
|
|
|
|
|
|
|
|
9357 |
}
|
9358 |
|
9359 |
-
WPGMZA.
|
9360 |
-
|
9361 |
-
|
|
|
9362 |
|
9363 |
-
|
9364 |
-
|
9365 |
-
parseFloat(this.lat)
|
9366 |
-
]);
|
9367 |
|
9368 |
-
|
9369 |
-
|
9370 |
-
|
9371 |
-
|
|
|
|
|
|
|
9372 |
}
|
9373 |
|
9374 |
-
|
|
|
|
|
|
|
|
|
9375 |
{
|
9376 |
-
|
9377 |
-
{
|
9378 |
-
console.warn("Marker offset is not currently supported in Vector Layer rendering mode");
|
9379 |
-
return;
|
9380 |
-
}
|
9381 |
-
|
9382 |
-
var x = this._offset.x;
|
9383 |
-
var y = this._offset.y;
|
9384 |
-
|
9385 |
-
this.element.style.position = "relative";
|
9386 |
-
this.element.style.left = x + "px";
|
9387 |
-
this.element.style.top = y + "px";
|
9388 |
}
|
9389 |
|
9390 |
-
|
|
|
|
|
|
|
|
|
9391 |
{
|
9392 |
-
|
9393 |
-
{
|
9394 |
-
console.warn("Marker animation is not currently supported in Vector Layer rendering mode");
|
9395 |
-
return;
|
9396 |
-
}
|
9397 |
|
9398 |
-
|
9399 |
|
9400 |
-
|
|
|
|
|
9401 |
{
|
9402 |
-
|
9403 |
-
|
9404 |
-
|
9405 |
-
|
9406 |
-
|
9407 |
-
$(this.element).attr("data-anim", "bounce");
|
9408 |
-
break;
|
9409 |
-
|
9410 |
-
case WPGMZA.Marker.ANIMATION_DROP:
|
9411 |
-
$(this.element).attr("data-anim", "drop");
|
9412 |
-
break;
|
9413 |
}
|
|
|
|
|
9414 |
}
|
9415 |
|
9416 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9417 |
{
|
9418 |
var self = this;
|
9419 |
|
9420 |
-
|
|
|
|
|
9421 |
{
|
9422 |
-
|
9423 |
-
return;
|
9424 |
}
|
9425 |
-
|
9426 |
-
if(draggable)
|
9427 |
{
|
9428 |
-
|
9429 |
-
disabled: false
|
9430 |
-
};
|
9431 |
|
9432 |
-
if(
|
9433 |
{
|
9434 |
-
|
9435 |
-
self.onDragStart(event);
|
9436 |
-
}
|
9437 |
|
9438 |
-
options.
|
9439 |
-
|
9440 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9441 |
}
|
9442 |
|
9443 |
-
|
9444 |
-
|
9445 |
-
|
9446 |
-
|
|
|
9447 |
}
|
9448 |
-
|
9449 |
-
|
|
|
|
|
|
|
|
|
9450 |
}
|
9451 |
|
9452 |
-
WPGMZA.
|
|
|
|
|
|
|
9453 |
{
|
9454 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9455 |
{
|
9456 |
-
|
9457 |
-
|
|
|
|
|
|
|
9458 |
}
|
9459 |
|
9460 |
-
|
9461 |
}
|
9462 |
|
9463 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9464 |
{
|
9465 |
-
this
|
9466 |
|
9467 |
-
this.
|
9468 |
-
|
9469 |
-
if(interaction instanceof ol.interaction.DragPan)
|
9470 |
-
interaction.setActive(false);
|
9471 |
-
|
9472 |
-
});
|
9473 |
}
|
9474 |
|
9475 |
-
WPGMZA.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9476 |
{
|
9477 |
-
|
9478 |
-
var offset = {
|
9479 |
-
top: parseFloat( $(this.element).css("top").match(/-?\d+/)[0] ),
|
9480 |
-
left: parseFloat( $(this.element).css("left").match(/-?\d+/)[0] )
|
9481 |
-
};
|
9482 |
-
|
9483 |
-
$(this.element).css({
|
9484 |
-
top: "0px",
|
9485 |
-
left: "0px"
|
9486 |
-
});
|
9487 |
|
9488 |
-
|
9489 |
-
|
9490 |
-
var pixelsAfterDrag = {
|
9491 |
-
x: pixelsBeforeDrag.x + offset.left,
|
9492 |
-
y: pixelsBeforeDrag.y + offset.top
|
9493 |
-
};
|
9494 |
-
var latLngAfterDrag = this.map.pixelsToLatLng(pixelsAfterDrag);
|
9495 |
|
9496 |
-
|
|
|
9497 |
|
9498 |
-
|
9499 |
-
|
9500 |
|
9501 |
-
|
9502 |
-
|
9503 |
-
this.map.olMap.getInteractions().forEach(function(interaction) {
|
9504 |
-
|
9505 |
-
if(interaction instanceof ol.interaction.DragPan)
|
9506 |
-
interaction.setActive(true);
|
9507 |
-
|
9508 |
-
});
|
9509 |
}
|
9510 |
|
9511 |
-
|
|
|
|
|
|
|
9512 |
{
|
9513 |
-
var
|
|
|
9514 |
|
9515 |
-
|
9516 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9517 |
|
9518 |
-
|
9519 |
-
|
|
|
|
|
|
|
9520 |
}
|
9521 |
|
9522 |
-
|
9523 |
-
* Binds / rebinds the click listener. This must be bound after draggable is initialized,
|
9524 |
-
* this solves the click listener firing before dragend
|
9525 |
-
*/
|
9526 |
-
WPGMZA.OLMarker.prototype.rebindClickListener = function()
|
9527 |
{
|
9528 |
-
|
9529 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9530 |
}
|
9531 |
|
9532 |
});
|
9533 |
|
9534 |
-
// js/v8/
|
9535 |
/**
|
9536 |
* @namespace WPGMZA
|
9537 |
-
* @module
|
9538 |
-
* @requires
|
9539 |
*/
|
9540 |
jQuery(function($) {
|
9541 |
|
9542 |
-
WPGMZA.
|
9543 |
-
|
9544 |
-
WPGMZA.ModernStoreLocatorCircle.call(this, map, settings);
|
9545 |
-
}
|
9546 |
|
9547 |
-
WPGMZA.
|
9548 |
-
|
9549 |
|
9550 |
-
WPGMZA.
|
9551 |
{
|
9552 |
var self = this;
|
9553 |
-
var mapElement = $(this.map.element);
|
9554 |
-
var olViewportElement = mapElement.children(".ol-viewport");
|
9555 |
|
9556 |
-
this.
|
9557 |
-
this.canvas.className = "wpgmza-ol-canvas-overlay";
|
9558 |
-
mapElement.append(this.canvas);
|
9559 |
|
9560 |
-
this.
|
9561 |
-
|
9562 |
-
|
9563 |
-
{
|
9564 |
-
self.canvas.width = olViewportElement.width();
|
9565 |
-
self.canvas.height = olViewportElement.height();
|
9566 |
-
|
9567 |
-
$(this.canvas).css({
|
9568 |
-
width: olViewportElement.width() + "px",
|
9569 |
-
height: olViewportElement.height() + "px"
|
9570 |
-
});
|
9571 |
-
}
|
9572 |
-
|
9573 |
-
self.draw();
|
9574 |
-
};
|
9575 |
|
9576 |
-
|
9577 |
-
|
9578 |
-
|
9579 |
-
|
9580 |
-
|
9581 |
-
|
9582 |
}
|
9583 |
|
9584 |
-
WPGMZA.
|
9585 |
-
{
|
9586 |
-
return {
|
9587 |
-
width: this.canvas.width,
|
9588 |
-
height: this.canvas.height
|
9589 |
-
};
|
9590 |
-
}
|
9591 |
|
9592 |
-
WPGMZA.
|
9593 |
{
|
9594 |
-
var
|
9595 |
-
|
9596 |
-
return center;
|
9597 |
-
}
|
9598 |
|
9599 |
-
|
9600 |
-
|
9601 |
-
|
9602 |
-
|
9603 |
-
|
9604 |
-
};
|
9605 |
}
|
9606 |
|
9607 |
-
WPGMZA.
|
9608 |
{
|
9609 |
-
|
9610 |
-
|
9611 |
-
|
9612 |
-
outer.moveByDistance(km, 90);
|
9613 |
-
|
9614 |
-
var centerPixels = this.map.latLngToPixels(center);
|
9615 |
-
var outerPixels = this.map.latLngToPixels(outer);
|
9616 |
-
|
9617 |
-
return Math.abs(outerPixels.x - centerPixels.x);
|
9618 |
-
|
9619 |
-
/*if(!window.testMarker){
|
9620 |
-
window.testMarker = WPGMZA.Marker.createInstance({
|
9621 |
-
position: outer
|
9622 |
-
});
|
9623 |
-
WPGMZA.maps[0].addMarker(window.testMarker);
|
9624 |
-
}
|
9625 |
|
9626 |
-
|
|
|
|
|
9627 |
}
|
9628 |
|
9629 |
-
WPGMZA.
|
9630 |
{
|
9631 |
-
|
|
|
|
|
|
|
|
|
9632 |
}
|
9633 |
|
9634 |
-
WPGMZA.
|
9635 |
{
|
9636 |
-
|
9637 |
-
|
9638 |
-
this.map.olMap.un("postrender", this.renderFunction);
|
9639 |
-
this.map = null;
|
9640 |
-
this.canvas = null;
|
9641 |
}
|
9642 |
|
9643 |
-
|
|
|
|
|
|
|
9644 |
|
9645 |
-
|
9646 |
-
|
9647 |
-
|
9648 |
-
|
9649 |
-
|
9650 |
-
|
9651 |
-
|
9652 |
|
9653 |
-
WPGMZA.
|
9654 |
{
|
9655 |
-
var
|
9656 |
-
|
9657 |
-
|
9658 |
-
|
9659 |
-
|
9660 |
-
|
9661 |
-
|
9662 |
-
|
9663 |
-
|
9664 |
-
|
9665 |
}
|
9666 |
|
9667 |
-
WPGMZA.OLModernStoreLocator.prototype = Object.create(WPGMZA.ModernStoreLocator);
|
9668 |
-
WPGMZA.OLModernStoreLocator.prototype.constructor = WPGMZA.OLModernStoreLocator;
|
9669 |
-
|
9670 |
});
|
9671 |
|
9672 |
-
// js/v8/open-layers/ol-
|
9673 |
/**
|
9674 |
* @namespace WPGMZA
|
9675 |
-
* @module
|
9676 |
-
* @requires WPGMZA.
|
9677 |
-
* @pro-requires WPGMZA.ProPolygon
|
9678 |
*/
|
9679 |
jQuery(function($) {
|
9680 |
|
9681 |
-
var Parent;
|
9682 |
|
9683 |
-
WPGMZA.
|
9684 |
{
|
9685 |
var self = this;
|
9686 |
|
|
|
|
|
|
|
|
|
|
|
|
|
9687 |
Parent.call(this, options, olFeature);
|
9688 |
|
9689 |
-
this.olStyle = new ol.style.Style();
|
|
|
|
|
|
|
|
|
|
|
9690 |
|
9691 |
if(olFeature)
|
9692 |
-
{
|
9693 |
this.olFeature = olFeature;
|
9694 |
-
}
|
9695 |
else
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9696 |
{
|
9697 |
-
|
9698 |
-
|
9699 |
-
if(options && options.polydata)
|
9700 |
-
{
|
9701 |
-
var paths = this.parseGeometry(options.polydata);
|
9702 |
-
|
9703 |
-
for(var i = 0; i < paths.length; i++)
|
9704 |
-
coordinates[0].push(ol.proj.fromLonLat([
|
9705 |
-
parseFloat(paths[i].lng),
|
9706 |
-
parseFloat(paths[i].lat)
|
9707 |
-
]));
|
9708 |
-
|
9709 |
-
this.olStyle = new ol.style.Style(this.getStyleFromSettings());
|
9710 |
-
}
|
9711 |
-
|
9712 |
-
this.olFeature = new ol.Feature({
|
9713 |
-
geometry: new ol.geom.Polygon(coordinates)
|
9714 |
-
});
|
9715 |
}
|
9716 |
|
9717 |
-
this.
|
9718 |
-
|
9719 |
-
features: [this.olFeature]
|
9720 |
-
}),
|
9721 |
-
style: this.olStyle
|
9722 |
-
});
|
9723 |
|
9724 |
-
this
|
9725 |
-
|
9726 |
-
|
9727 |
-
|
9728 |
-
|
9729 |
-
|
9730 |
-
|
9731 |
-
|
9732 |
-
|
9733 |
-
|
9734 |
-
|
9735 |
-
|
9736 |
-
|
9737 |
-
|
|
|
|
|
9738 |
{
|
9739 |
var params = {};
|
9740 |
|
9741 |
-
if(this.
|
9742 |
params.stroke = new ol.style.Stroke({
|
9743 |
-
color: WPGMZA.hexOpacityToRGBA(
|
9744 |
-
})
|
9745 |
|
9746 |
if(this.opacity)
|
9747 |
params.fill = new ol.style.Fill({
|
9748 |
-
color: WPGMZA.hexOpacityToRGBA(this.
|
9749 |
});
|
9750 |
|
9751 |
return params;
|
9752 |
}
|
9753 |
|
9754 |
-
WPGMZA.
|
9755 |
{
|
9756 |
// Re-create the style - working on it directly doesn't cause a re-render
|
9757 |
var params = this.getStyleFromSettings();
|
@@ -9759,2107 +9396,2469 @@ jQuery(function($) {
|
|
9759 |
this.layer.setStyle(this.olStyle);
|
9760 |
}
|
9761 |
|
9762 |
-
WPGMZA.
|
9763 |
{
|
9764 |
-
|
9765 |
}
|
9766 |
|
9767 |
-
WPGMZA.
|
9768 |
{
|
9769 |
-
|
9770 |
-
var coordinates = this.olFeature.getGeometry().getCoordinates()[0];
|
9771 |
-
|
9772 |
-
result.points = [];
|
9773 |
|
9774 |
-
|
9775 |
-
|
9776 |
-
|
9777 |
-
|
9778 |
-
|
9779 |
-
|
9780 |
-
};
|
9781 |
-
result.points.push(latLng);
|
9782 |
-
}
|
9783 |
|
9784 |
-
|
9785 |
}
|
9786 |
|
9787 |
});
|
9788 |
|
9789 |
-
// js/v8/open-layers/ol-
|
9790 |
/**
|
9791 |
* @namespace WPGMZA
|
9792 |
-
* @module
|
9793 |
-
* @requires WPGMZA.
|
9794 |
*/
|
9795 |
jQuery(function($) {
|
9796 |
|
9797 |
-
|
9798 |
-
|
9799 |
-
|
|
|
|
|
|
|
9800 |
{
|
9801 |
-
var self = this;
|
9802 |
-
|
9803 |
-
WPGMZA.Polyline.call(this, options);
|
9804 |
-
|
9805 |
-
this.olStyle = new ol.style.Style();
|
9806 |
|
9807 |
-
|
9808 |
-
|
9809 |
-
|
9810 |
-
|
9811 |
-
|
9812 |
-
|
9813 |
-
|
9814 |
-
|
9815 |
-
|
9816 |
-
|
9817 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9818 |
|
9819 |
-
|
9820 |
-
|
9821 |
-
|
9822 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9823 |
|
9824 |
-
|
9825 |
-
{
|
9826 |
-
if(!($.isNumeric(path[i].lat)))
|
9827 |
-
throw new Error("Invalid latitude");
|
9828 |
-
|
9829 |
-
if(!($.isNumeric(path[i].lng)))
|
9830 |
-
throw new Error("Invalid longitude");
|
9831 |
-
|
9832 |
-
coordinates.push(ol.proj.fromLonLat([
|
9833 |
-
parseFloat(path[i].lng),
|
9834 |
-
parseFloat(path[i].lat)
|
9835 |
-
]));
|
9836 |
-
}
|
9837 |
}
|
9838 |
-
|
9839 |
-
|
9840 |
-
|
9841 |
-
|
9842 |
-
|
9843 |
-
|
9844 |
-
|
9845 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9846 |
|
9847 |
-
|
9848 |
-
|
9849 |
-
features: [this.olFeature]
|
9850 |
-
}),
|
9851 |
-
style: this.olStyle
|
9852 |
-
});
|
9853 |
|
9854 |
-
|
9855 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
9856 |
});
|
9857 |
}
|
9858 |
|
9859 |
-
|
9860 |
-
|
9861 |
-
|
9862 |
-
|
9863 |
-
|
9864 |
-
|
|
|
|
|
|
|
9865 |
{
|
9866 |
-
|
9867 |
-
|
9868 |
-
|
9869 |
-
|
9870 |
-
|
9871 |
-
|
9872 |
-
|
9873 |
-
|
9874 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9875 |
}
|
9876 |
|
9877 |
-
WPGMZA.
|
9878 |
{
|
9879 |
-
|
9880 |
-
var params = this.getStyleFromSettings();
|
9881 |
-
this.olStyle = new ol.style.Style(params);
|
9882 |
-
this.layer.setStyle(this.olStyle);
|
9883 |
}
|
9884 |
|
9885 |
-
WPGMZA.
|
9886 |
{
|
9887 |
-
|
9888 |
}
|
9889 |
|
9890 |
-
WPGMZA.
|
9891 |
{
|
9892 |
-
|
9893 |
-
this.layer.getSource().removeFeature(this.olFeature);
|
9894 |
-
|
9895 |
-
var coordinates = [];
|
9896 |
|
9897 |
-
|
9898 |
-
|
9899 |
-
parseFloat(points[i].lng),
|
9900 |
-
parseFloat(points[i].lat)
|
9901 |
-
]));
|
9902 |
|
9903 |
-
|
9904 |
-
|
9905 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9906 |
|
9907 |
-
|
9908 |
-
|
9909 |
-
|
9910 |
-
WPGMZA.OLPolyline.prototype.toJSON = function()
|
9911 |
-
{
|
9912 |
-
var result = Parent.prototype.toJSON.call(this);
|
9913 |
-
var coordinates = this.olFeature.getGeometry().getCoordinates();
|
9914 |
|
9915 |
-
|
9916 |
|
9917 |
-
|
9918 |
{
|
9919 |
-
|
9920 |
-
|
9921 |
-
|
9922 |
-
|
9923 |
-
|
9924 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9925 |
}
|
|
|
|
|
9926 |
|
9927 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9928 |
}
|
9929 |
|
9930 |
});
|
9931 |
|
9932 |
-
// js/v8/open-layers/ol-
|
9933 |
/**
|
9934 |
* @namespace WPGMZA
|
9935 |
-
* @module
|
9936 |
-
* @requires WPGMZA.
|
|
|
9937 |
*/
|
9938 |
jQuery(function($) {
|
9939 |
|
9940 |
-
|
|
|
|
|
9941 |
{
|
|
|
|
|
|
|
9942 |
|
|
|
|
|
|
|
|
|
|
|
9943 |
}
|
9944 |
|
9945 |
-
|
9946 |
-
|
9947 |
-
|
9948 |
-
|
9949 |
-
|
9950 |
-
|
9951 |
-
|
9952 |
-
|
9953 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9954 |
|
9955 |
/**
|
9956 |
-
*
|
9957 |
-
*
|
9958 |
-
* @
|
9959 |
-
* @memberof WPGMZA
|
9960 |
-
* @augments WPGMZA.Circle
|
9961 |
-
* @see WPGMZA.Circle.createInstance
|
9962 |
*/
|
9963 |
-
WPGMZA.
|
9964 |
{
|
9965 |
var self = this;
|
|
|
9966 |
|
9967 |
-
|
|
|
9968 |
|
9969 |
-
|
9970 |
-
|
9971 |
-
this.googleCircle = googleCircle;
|
9972 |
-
}
|
9973 |
-
else
|
9974 |
-
{
|
9975 |
-
this.googleCircle = new google.maps.Circle();
|
9976 |
-
this.googleCircle.wpgmzaCircle = this;
|
9977 |
-
}
|
9978 |
|
9979 |
-
|
9980 |
-
|
|
|
|
|
|
|
|
|
9981 |
});
|
9982 |
|
9983 |
-
|
9984 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9985 |
}
|
9986 |
|
9987 |
-
WPGMZA.
|
9988 |
-
WPGMZA.GoogleCircle.prototype.constructor = WPGMZA.GoogleCircle;
|
9989 |
-
|
9990 |
-
WPGMZA.GoogleCircle.prototype.setCenter = function(center)
|
9991 |
{
|
9992 |
-
|
|
|
9993 |
|
9994 |
-
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9995 |
}
|
9996 |
|
9997 |
-
WPGMZA.
|
9998 |
{
|
9999 |
-
|
10000 |
-
|
10001 |
-
this.googleCircle.setRadius(parseFloat(radius) * 1000);
|
10002 |
}
|
10003 |
|
10004 |
-
WPGMZA.
|
10005 |
{
|
10006 |
-
|
|
|
|
|
|
|
10007 |
}
|
10008 |
|
10009 |
-
WPGMZA.
|
10010 |
{
|
10011 |
-
var
|
|
|
|
|
|
|
10012 |
|
10013 |
-
|
10014 |
-
delete googleOptions.map;
|
10015 |
-
delete googleOptions.center;
|
10016 |
|
10017 |
-
if(
|
10018 |
-
|
10019 |
-
|
10020 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10021 |
});
|
10022 |
|
10023 |
-
|
10024 |
-
|
10025 |
-
|
10026 |
-
if(options.color)
|
10027 |
-
googleOptions.fillColor = options.color;
|
10028 |
-
|
10029 |
-
if(options.opacity)
|
10030 |
-
{
|
10031 |
-
googleOptions.fillOpacity = parseFloat(options.opacity);
|
10032 |
-
googleOptions.strokeOpacity = parseFloat(options.opacity);
|
10033 |
-
|
10034 |
}
|
10035 |
-
|
10036 |
-
this.googleCircle.setOptions(googleOptions);
|
10037 |
-
|
10038 |
-
if(options.map)
|
10039 |
-
options.map.addCircle(this);
|
10040 |
}
|
10041 |
|
10042 |
});
|
10043 |
|
10044 |
-
// js/v8/
|
10045 |
/**
|
10046 |
* @namespace WPGMZA
|
10047 |
-
* @module
|
10048 |
-
* @requires WPGMZA.
|
|
|
10049 |
*/
|
10050 |
jQuery(function($) {
|
10051 |
|
10052 |
-
|
10053 |
-
* Subclass, used when Google is the maps engine. <strong>Please <em>do not</em> call this constructor directly. Always use createInstance rather than instantiating this class directly.</strong> Using createInstance allows this class to be externally extensible.
|
10054 |
-
* @class WPGMZA.GoogleGeocoder
|
10055 |
-
* @constructor WPGMZA.GoogleGeocoder
|
10056 |
-
* @memberof WPGMZA
|
10057 |
-
* @augments WPGMZA.Geocoder
|
10058 |
-
* @see WPGMZA.Geocoder.createInstance
|
10059 |
-
*/
|
10060 |
-
WPGMZA.GoogleGeocoder = function()
|
10061 |
-
{
|
10062 |
-
WPGMZA.Geocoder.call(this);
|
10063 |
-
}
|
10064 |
-
|
10065 |
-
WPGMZA.GoogleGeocoder.prototype = Object.create(WPGMZA.Geocoder.prototype);
|
10066 |
-
WPGMZA.GoogleGeocoder.prototype.constructor = WPGMZA.GoogleGeocoder;
|
10067 |
|
10068 |
-
WPGMZA.
|
10069 |
{
|
10070 |
-
|
10071 |
-
return new WPGMZA.CloudGeocoder();
|
10072 |
|
10073 |
-
|
10074 |
-
}
|
10075 |
-
|
10076 |
-
WPGMZA.GoogleGeocoder.prototype.getLatLngFromAddress = function(options, callback)
|
10077 |
-
{
|
10078 |
-
if(!options || !options.address)
|
10079 |
-
throw new Error("No address specified");
|
10080 |
|
10081 |
-
|
10082 |
-
return WPGMZA.Geocoder.prototype.getLatLngFromAddress.call(this, options, callback);
|
10083 |
|
10084 |
-
|
10085 |
-
options.componentRestrictions = {
|
10086 |
-
country: options.country
|
10087 |
-
};
|
10088 |
|
10089 |
-
|
10090 |
|
10091 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10092 |
|
10093 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10094 |
{
|
10095 |
-
|
10096 |
-
|
10097 |
-
|
10098 |
-
|
10099 |
-
|
10100 |
-
|
10101 |
-
|
|
|
10102 |
|
10103 |
-
|
10104 |
-
|
10105 |
-
|
10106 |
-
|
10107 |
-
|
10108 |
-
|
10109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
10110 |
|
10111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10112 |
{
|
10113 |
-
|
10114 |
-
|
10115 |
-
|
10116 |
-
latLng: latLng,
|
10117 |
-
lat: latLng.lat,
|
10118 |
-
lng: latLng.lng,
|
10119 |
-
bounds: bounds
|
10120 |
}
|
10121 |
-
|
|
|
10122 |
|
10123 |
-
|
10124 |
}
|
10125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10126 |
{
|
10127 |
-
|
|
|
10128 |
|
10129 |
-
|
10130 |
-
|
|
|
10131 |
|
10132 |
-
|
10133 |
-
|
10134 |
-
|
10135 |
-
|
10136 |
-
|
10137 |
-
|
10138 |
-
{
|
10139 |
-
if(!options || !options.latLng)
|
10140 |
-
throw new Error("No latLng specified");
|
10141 |
-
|
10142 |
-
var latLng = new WPGMZA.LatLng(options.latLng);
|
10143 |
-
var geocoder = this.getGoogleGeocoder();
|
10144 |
-
|
10145 |
-
var options = $.extend(options, {
|
10146 |
-
location: {
|
10147 |
-
lat: latLng.lat,
|
10148 |
-
lng: latLng.lng
|
10149 |
}
|
10150 |
-
});
|
10151 |
-
delete options.latLng;
|
10152 |
-
|
10153 |
-
geocoder.geocode(options, function(results, status) {
|
10154 |
|
10155 |
-
if(
|
10156 |
-
|
10157 |
|
10158 |
-
|
10159 |
-
|
|
|
|
|
|
|
|
|
|
|
10160 |
|
10161 |
-
|
|
|
10162 |
|
10163 |
-
|
|
|
|
|
10164 |
}
|
10165 |
-
|
10166 |
-
});
|
10167 |
|
10168 |
-
|
10169 |
-
|
10170 |
-
|
10171 |
-
|
10172 |
-
* @requires WPGMZA
|
10173 |
-
*/
|
10174 |
-
jQuery(function($) {
|
10175 |
-
|
10176 |
-
// https://developers.google.com/maps/documentation/javascript/customoverlays
|
10177 |
-
|
10178 |
-
if(WPGMZA.settings.engine && WPGMZA.settings.engine != "google-maps")
|
10179 |
-
return;
|
10180 |
|
10181 |
-
|
10182 |
-
|
10183 |
|
10184 |
-
WPGMZA.
|
10185 |
{
|
10186 |
-
|
10187 |
|
10188 |
-
|
10189 |
-
|
10190 |
|
10191 |
-
|
10192 |
-
|
|
|
10193 |
}
|
10194 |
|
10195 |
-
WPGMZA.
|
10196 |
-
|
10197 |
-
WPGMZA.GoogleHTMLOverlay.prototype.onAdd = function()
|
10198 |
{
|
10199 |
-
var
|
10200 |
-
|
|
|
|
|
|
|
10201 |
|
10202 |
-
|
10203 |
-
|
10204 |
-
|
10205 |
-
|
10206 |
-
|
10207 |
-
|
10208 |
-
|
10209 |
-
|
10210 |
-
|
10211 |
-
$(this.element).remove();
|
10212 |
-
this.element = null;
|
10213 |
-
}
|
10214 |
}
|
10215 |
|
10216 |
-
WPGMZA.
|
10217 |
{
|
10218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
10219 |
}
|
10220 |
|
10221 |
-
|
10222 |
{
|
10223 |
-
|
10224 |
-
throw new Error("Map must be an instance of WPGMZA.Map");
|
10225 |
|
10226 |
-
|
10227 |
|
10228 |
-
|
10229 |
-
|
10230 |
-
|
10231 |
-
|
10232 |
-
|
10233 |
-
|
|
|
|
|
10234 |
}
|
10235 |
|
10236 |
-
WPGMZA.
|
10237 |
-
{
|
10238 |
-
$(this.element).css({
|
10239 |
-
"display": (visible ? "block" : "none")
|
10240 |
-
});
|
10241 |
-
}*/
|
10242 |
-
|
10243 |
-
/*WPGMZA.GoogleHTMLOverlay.prototype.getPosition = function()
|
10244 |
{
|
10245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10246 |
}
|
10247 |
|
10248 |
-
|
|
|
|
|
|
|
|
|
10249 |
{
|
10250 |
-
if(
|
10251 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10252 |
|
10253 |
-
|
10254 |
-
|
10255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10256 |
|
10257 |
-
WPGMZA.
|
10258 |
{
|
10259 |
-
|
10260 |
-
|
10261 |
-
|
10262 |
-
|
10263 |
-
|
10264 |
-
|
|
|
|
|
10265 |
|
10266 |
-
|
|
|
10267 |
|
10268 |
-
|
10269 |
-
"left": pixels.x,
|
10270 |
-
"top": pixels.y
|
10271 |
-
});
|
10272 |
}
|
10273 |
-
});
|
10274 |
-
|
10275 |
-
// js/v8/google-maps/google-info-window.js
|
10276 |
-
/**
|
10277 |
-
* @namespace WPGMZA
|
10278 |
-
* @module GoogleInfoWindow
|
10279 |
-
* @requires WPGMZA.InfoWindow
|
10280 |
-
* @pro-requires WPGMZA.ProInfoWindow
|
10281 |
-
*/
|
10282 |
-
jQuery(function($) {
|
10283 |
|
10284 |
-
|
|
|
|
|
|
|
10285 |
|
10286 |
-
WPGMZA.
|
10287 |
{
|
10288 |
-
|
10289 |
-
|
10290 |
-
this.setMapObject(mapObject);
|
10291 |
}
|
10292 |
|
10293 |
-
WPGMZA.
|
|
|
|
|
|
|
10294 |
|
10295 |
-
|
10296 |
-
|
10297 |
-
|
10298 |
-
|
10299 |
|
10300 |
-
WPGMZA.
|
10301 |
-
|
|
|
|
|
10302 |
|
10303 |
-
WPGMZA.
|
10304 |
{
|
10305 |
-
|
10306 |
-
this.googleObject = mapObject.googleMarker;
|
10307 |
-
else if(mapObject instanceof WPGMZA.Polygon)
|
10308 |
-
this.googleObject = mapObject.googlePolygon;
|
10309 |
-
else if(mapObject instanceof WPGMZA.Polyline)
|
10310 |
-
this.googleObject = mapObject.googlePolyline;
|
10311 |
}
|
10312 |
|
10313 |
-
WPGMZA.
|
10314 |
{
|
10315 |
-
|
10316 |
|
10317 |
-
if(this.
|
10318 |
return;
|
10319 |
|
10320 |
-
this.
|
10321 |
-
|
10322 |
-
this.googleInfoWindow.setZIndex(WPGMZA.GoogleInfoWindow.Z_INDEX);
|
10323 |
-
|
10324 |
-
google.maps.event.addListener(this.googleInfoWindow, "domready", function(event) {
|
10325 |
-
self.trigger("domready");
|
10326 |
-
});
|
10327 |
-
|
10328 |
-
google.maps.event.addListener(this.googleInfoWindow, "closeclick", function(event) {
|
10329 |
-
|
10330 |
-
if(self.state == WPGMZA.InfoWindow.STATE_CLOSED)
|
10331 |
-
return;
|
10332 |
-
|
10333 |
-
self.state = WPGMZA.InfoWindow.STATE_CLOSED;
|
10334 |
-
self.trigger("infowindowclose");
|
10335 |
-
|
10336 |
-
});
|
10337 |
}
|
10338 |
|
10339 |
/**
|
10340 |
-
*
|
10341 |
-
* @return boolean FALSE if the info window should not & will not open, TRUE if it will
|
10342 |
*/
|
10343 |
-
WPGMZA.
|
10344 |
{
|
10345 |
-
|
10346 |
-
|
10347 |
-
|
10348 |
-
return false;
|
10349 |
-
|
10350 |
-
// Set parent for events to bubble up to
|
10351 |
-
this.parent = map;
|
10352 |
-
|
10353 |
-
this.createGoogleInfoWindow();
|
10354 |
-
this.setMapObject(mapObject);
|
10355 |
-
|
10356 |
-
if(this.googleObject instanceof google.maps.Polygon)
|
10357 |
{
|
10358 |
-
|
10359 |
-
|
10360 |
-
else{
|
10361 |
-
this.googleInfoWindow.open(
|
10362 |
-
this.mapObject.map.googleMap,
|
10363 |
-
this.googleObject
|
10364 |
-
);
|
10365 |
}
|
10366 |
|
10367 |
-
|
10368 |
-
|
10369 |
-
var guid = WPGMZA.guid();
|
10370 |
-
var html = "<div id='" + guid + "'>" + this.content + "</div>";
|
10371 |
-
|
10372 |
-
this.googleInfoWindow.setContent(html);
|
10373 |
-
|
10374 |
-
var intervalID;
|
10375 |
-
intervalID = setInterval(function(event) {
|
10376 |
-
|
10377 |
-
div = $("#" + guid);
|
10378 |
-
|
10379 |
-
if(div.length)
|
10380 |
-
{
|
10381 |
-
clearInterval(intervalID);
|
10382 |
-
|
10383 |
-
div[0].wpgmzaMapObject = self.mapObject;
|
10384 |
-
div.addClass("wpgmza-infowindow");
|
10385 |
-
|
10386 |
-
self.element = div[0];
|
10387 |
-
self.trigger("infowindowopen");
|
10388 |
-
}
|
10389 |
-
|
10390 |
-
}, 50);
|
10391 |
-
|
10392 |
-
return true;
|
10393 |
}
|
10394 |
|
10395 |
-
WPGMZA.
|
10396 |
{
|
10397 |
-
if(
|
10398 |
-
|
10399 |
-
|
10400 |
-
|
|
|
|
|
|
|
10401 |
|
10402 |
-
|
10403 |
}
|
10404 |
|
10405 |
-
WPGMZA.
|
10406 |
{
|
10407 |
-
|
10408 |
-
|
10409 |
-
this.content = html;
|
10410 |
-
|
10411 |
-
this.createGoogleInfoWindow();
|
10412 |
|
10413 |
-
|
10414 |
}
|
10415 |
|
10416 |
-
WPGMZA.
|
10417 |
{
|
10418 |
-
|
10419 |
-
|
10420 |
-
this.createGoogleInfoWindow();
|
10421 |
|
10422 |
-
|
10423 |
}
|
10424 |
|
10425 |
-
|
10426 |
-
|
10427 |
-
// js/v8/google-maps/google-map.js
|
10428 |
-
/**
|
10429 |
-
* @namespace WPGMZA
|
10430 |
-
* @module GoogleMap
|
10431 |
-
* @requires WPGMZA.Map
|
10432 |
-
* @pro-requires WPGMZA.ProMap
|
10433 |
-
*/
|
10434 |
-
jQuery(function($) {
|
10435 |
-
var Parent;
|
10436 |
-
|
10437 |
-
/**
|
10438 |
-
* Constructor
|
10439 |
-
* @param element to contain the map
|
10440 |
-
*/
|
10441 |
-
WPGMZA.GoogleMap = function(element, options)
|
10442 |
{
|
10443 |
-
|
10444 |
-
|
10445 |
-
Parent.call(this, element, options);
|
10446 |
-
|
10447 |
-
if(!window.google)
|
10448 |
-
{
|
10449 |
-
var status = WPGMZA.googleAPIStatus;
|
10450 |
-
var message = "Google API not loaded";
|
10451 |
-
|
10452 |
-
if(status && status.message)
|
10453 |
-
message += " - " + status.message;
|
10454 |
-
|
10455 |
-
if(status.code == "USER_CONSENT_NOT_GIVEN")
|
10456 |
-
{
|
10457 |
-
return;
|
10458 |
-
}
|
10459 |
-
|
10460 |
-
$(element).html("<div class='notice notice-error'><p>" + WPGMZA.localized_strings.google_api_not_loaded + "<pre>" + message + "</pre></p></div>");
|
10461 |
-
|
10462 |
-
throw new Error(message);
|
10463 |
-
}
|
10464 |
-
|
10465 |
-
this.loadGoogleMap();
|
10466 |
-
|
10467 |
-
if(options)
|
10468 |
-
this.setOptions(options, true);
|
10469 |
-
|
10470 |
-
google.maps.event.addListener(this.googleMap, "click", function(event) {
|
10471 |
-
var wpgmzaEvent = new WPGMZA.Event("click");
|
10472 |
-
wpgmzaEvent.latLng = {
|
10473 |
-
lat: event.latLng.lat(),
|
10474 |
-
lng: event.latLng.lng()
|
10475 |
-
};
|
10476 |
-
self.dispatchEvent(wpgmzaEvent);
|
10477 |
-
});
|
10478 |
-
|
10479 |
-
google.maps.event.addListener(this.googleMap, "rightclick", function(event) {
|
10480 |
-
var wpgmzaEvent = new WPGMZA.Event("rightclick");
|
10481 |
-
wpgmzaEvent.latLng = {
|
10482 |
-
lat: event.latLng.lat(),
|
10483 |
-
lng: event.latLng.lng()
|
10484 |
-
};
|
10485 |
-
self.dispatchEvent(wpgmzaEvent);
|
10486 |
-
});
|
10487 |
|
10488 |
-
|
10489 |
-
|
10490 |
-
|
|
|
|
|
|
|
10491 |
|
10492 |
-
|
10493 |
-
|
10494 |
-
|
10495 |
-
|
|
|
|
|
10496 |
|
10497 |
-
|
10498 |
-
|
10499 |
-
|
10500 |
-
|
|
|
|
|
10501 |
|
10502 |
-
|
10503 |
-
if(!WPGMZA.isProVersion())
|
10504 |
-
{
|
10505 |
-
this.trigger("init");
|
10506 |
-
|
10507 |
-
this.dispatchEvent("created");
|
10508 |
-
WPGMZA.events.dispatchEvent({type: "mapcreated", map: this});
|
10509 |
-
|
10510 |
-
// Legacy event
|
10511 |
-
$(this.element).trigger("wpgooglemaps_loaded");
|
10512 |
-
}
|
10513 |
}
|
10514 |
|
10515 |
-
|
10516 |
-
if(WPGMZA.isProVersion())
|
10517 |
{
|
10518 |
-
|
10519 |
-
|
|
|
10520 |
}
|
10521 |
-
|
|
|
10522 |
{
|
10523 |
-
|
10524 |
-
|
|
|
10525 |
}
|
10526 |
-
WPGMZA.GoogleMap.prototype.constructor = WPGMZA.GoogleMap;
|
10527 |
|
10528 |
-
WPGMZA.
|
10529 |
{
|
10530 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10531 |
|
10532 |
-
|
10533 |
-
|
10534 |
-
|
10535 |
-
|
10536 |
-
|
10537 |
-
|
10538 |
-
|
10539 |
-
|
10540 |
-
|
10541 |
-
|
10542 |
-
|
10543 |
-
|
10544 |
-
|
10545 |
-
|
10546 |
-
|
10547 |
-
|
10548 |
-
|
10549 |
-
|
10550 |
-
|
10551 |
-
|
10552 |
-
|
10553 |
-
|
10554 |
-
|
10555 |
-
|
10556 |
-
|
10557 |
-
|
10558 |
-
|
10559 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10560 |
|
10561 |
-
|
|
|
|
|
|
|
|
|
|
|
10562 |
|
|
|
10563 |
}
|
10564 |
-
|
10565 |
-
return json;
|
10566 |
}
|
10567 |
|
10568 |
-
|
10569 |
-
* Creates the Google Maps map
|
10570 |
-
* @return void
|
10571 |
-
*/
|
10572 |
-
WPGMZA.GoogleMap.prototype.loadGoogleMap = function()
|
10573 |
{
|
10574 |
var self = this;
|
10575 |
-
var options = this.settings.toGoogleMapsOptions();
|
10576 |
|
10577 |
-
|
10578 |
|
10579 |
-
|
10580 |
-
|
10581 |
-
});
|
10582 |
|
10583 |
-
|
10584 |
-
this.
|
10585 |
-
|
10586 |
-
|
10587 |
-
|
10588 |
-
this.enablePublicTransportLayer(true);
|
10589 |
-
this.showPointsOfInterest(this.settings.show_point_of_interest);
|
10590 |
|
10591 |
-
|
10592 |
-
|
|
|
10593 |
}
|
10594 |
|
10595 |
-
WPGMZA.
|
10596 |
{
|
10597 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
10598 |
|
10599 |
-
|
10600 |
-
|
|
|
|
|
10601 |
|
10602 |
-
|
10603 |
-
{
|
10604 |
-
this.googleMap.setOptions(options);
|
10605 |
-
return;
|
10606 |
-
}
|
10607 |
|
10608 |
-
|
|
|
10609 |
|
10610 |
-
|
10611 |
-
|
10612 |
-
|
10613 |
-
|
10614 |
-
|
10615 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10616 |
|
10617 |
-
if(
|
10618 |
{
|
10619 |
-
var
|
10620 |
-
|
10621 |
-
|
10622 |
-
|
10623 |
-
|
10624 |
-
|
10625 |
-
|
10626 |
-
|
10627 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10628 |
|
10629 |
-
|
10630 |
-
|
|
|
|
|
|
|
|
|
|
|
10631 |
|
10632 |
-
|
|
|
10633 |
}
|
|
|
|
|
10634 |
|
10635 |
-
this.
|
10636 |
-
}
|
10637 |
-
|
10638 |
-
/**
|
10639 |
-
* Adds the specified marker to this map
|
10640 |
-
* @return void
|
10641 |
-
*/
|
10642 |
-
WPGMZA.GoogleMap.prototype.addMarker = function(marker)
|
10643 |
-
{
|
10644 |
-
marker.googleMarker.setMap(this.googleMap);
|
10645 |
-
|
10646 |
-
Parent.prototype.addMarker.call(this, marker);
|
10647 |
-
}
|
10648 |
-
|
10649 |
-
/**
|
10650 |
-
* Removes the specified marker from this map
|
10651 |
-
* @return void
|
10652 |
-
*/
|
10653 |
-
WPGMZA.GoogleMap.prototype.removeMarker = function(marker) {
|
10654 |
-
|
10655 |
-
marker.googleMarker.setMap(null);
|
10656 |
-
|
10657 |
-
Parent.prototype.removeMarker.call(this, marker);
|
10658 |
-
}
|
10659 |
-
|
10660 |
-
/**
|
10661 |
-
* Adds the specified polygon to this map
|
10662 |
-
* @return void
|
10663 |
-
*/
|
10664 |
-
WPGMZA.GoogleMap.prototype.addPolygon = function(polygon)
|
10665 |
-
{
|
10666 |
-
polygon.googlePolygon.setMap(this.googleMap);
|
10667 |
-
|
10668 |
-
Parent.prototype.addPolygon.call(this, polygon);
|
10669 |
-
}
|
10670 |
-
|
10671 |
-
/**
|
10672 |
-
* Removes the specified polygon from this map
|
10673 |
-
* @return void
|
10674 |
-
*/
|
10675 |
-
WPGMZA.GoogleMap.prototype.removePolygon = function(polygon)
|
10676 |
-
{
|
10677 |
-
polygon.googlePolygon.setMap(null);
|
10678 |
-
|
10679 |
-
Parent.prototype.removePolygon.call(this, polygon);
|
10680 |
}
|
10681 |
|
10682 |
-
|
10683 |
-
|
10684 |
-
|
10685 |
-
|
10686 |
-
WPGMZA.GoogleMap.prototype.addPolyline = function(polyline)
|
10687 |
-
{
|
10688 |
-
polyline.googlePolyline.setMap(this.googleMap);
|
10689 |
-
|
10690 |
-
Parent.prototype.addPolyline.call(this, polyline);
|
10691 |
-
}
|
10692 |
|
10693 |
-
|
10694 |
-
|
10695 |
-
* @return void
|
10696 |
-
*/
|
10697 |
-
WPGMZA.GoogleMap.prototype.removePolyline = function(polyline)
|
10698 |
-
{
|
10699 |
-
polyline.googlePolyline.setMap(null);
|
10700 |
-
|
10701 |
-
Parent.prototype.removePolyline.call(this, polyline);
|
10702 |
-
}
|
10703 |
|
10704 |
-
WPGMZA.
|
10705 |
-
|
10706 |
-
circle.googleCircle.setMap(this.googleMap);
|
10707 |
-
|
10708 |
-
Parent.prototype.addCircle.call(this, circle);
|
10709 |
-
}
|
10710 |
|
10711 |
-
WPGMZA.
|
10712 |
-
{
|
10713 |
-
circle.googleCircle.setMap(null);
|
10714 |
-
|
10715 |
-
Parent.prototype.removeCircle.call(this, circle);
|
10716 |
-
}
|
10717 |
|
10718 |
-
WPGMZA.
|
10719 |
{
|
10720 |
-
|
|
|
|
|
|
|
|
|
|
|
10721 |
|
10722 |
-
|
10723 |
}
|
10724 |
|
10725 |
-
WPGMZA.
|
10726 |
{
|
10727 |
-
|
|
|
10728 |
|
10729 |
-
|
10730 |
}
|
10731 |
|
10732 |
-
|
10733 |
-
* Delegate for google maps getCenter
|
10734 |
-
* @return void
|
10735 |
-
*/
|
10736 |
-
WPGMZA.GoogleMap.prototype.getCenter = function()
|
10737 |
{
|
10738 |
-
var
|
10739 |
|
10740 |
-
|
10741 |
-
|
10742 |
-
lng: latLng.lng()
|
10743 |
-
};
|
10744 |
-
}
|
10745 |
-
|
10746 |
-
/**
|
10747 |
-
* Delegate for google maps setCenter
|
10748 |
-
* @return void
|
10749 |
-
*/
|
10750 |
-
WPGMZA.GoogleMap.prototype.setCenter = function(latLng)
|
10751 |
-
{
|
10752 |
-
WPGMZA.Map.prototype.setCenter.call(this, latLng);
|
10753 |
|
10754 |
-
if(
|
10755 |
-
|
10756 |
-
|
10757 |
-
|
10758 |
-
});
|
10759 |
-
else
|
10760 |
-
this.googleMap.setCenter(latLng);
|
10761 |
-
}
|
10762 |
-
|
10763 |
-
/**
|
10764 |
-
* Delegate for google maps setPan
|
10765 |
-
* @return void
|
10766 |
-
*/
|
10767 |
-
WPGMZA.GoogleMap.prototype.panTo = function(latLng)
|
10768 |
-
{
|
10769 |
-
if(latLng instanceof WPGMZA.LatLng)
|
10770 |
-
this.googleMap.panTo({
|
10771 |
-
lat: latLng.lat,
|
10772 |
-
lng: latLng.lng
|
10773 |
});
|
10774 |
-
|
10775 |
-
this.googleMap.panTo(latLng);
|
10776 |
-
}
|
10777 |
-
|
10778 |
-
/**
|
10779 |
-
* Delegate for google maps getCenter
|
10780 |
-
* @return void
|
10781 |
-
*/
|
10782 |
-
WPGMZA.GoogleMap.prototype.getZoom = function()
|
10783 |
-
{
|
10784 |
-
return this.googleMap.getZoom();
|
10785 |
-
}
|
10786 |
-
|
10787 |
-
/**
|
10788 |
-
* Delegate for google maps getZoom
|
10789 |
-
* @return void
|
10790 |
-
*/
|
10791 |
-
WPGMZA.GoogleMap.prototype.setZoom = function(value)
|
10792 |
-
{
|
10793 |
-
if(isNaN(value))
|
10794 |
-
throw new Error("Value must not be NaN");
|
10795 |
|
10796 |
-
|
10797 |
}
|
10798 |
|
10799 |
-
|
10800 |
-
* Gets the bounds
|
10801 |
-
* @return object
|
10802 |
-
*/
|
10803 |
-
WPGMZA.GoogleMap.prototype.getBounds = function()
|
10804 |
{
|
10805 |
-
|
10806 |
-
var northEast = bounds.getNorthEast();
|
10807 |
-
var southWest = bounds.getSouthWest();
|
10808 |
-
|
10809 |
-
var nativeBounds = new WPGMZA.LatLngBounds({});
|
10810 |
-
|
10811 |
-
nativeBounds.north = northEast.lat();
|
10812 |
-
nativeBounds.south = southWest.lat();
|
10813 |
-
nativeBounds.west = southWest.lng();
|
10814 |
-
nativeBounds.east = northEast.lng();
|
10815 |
-
|
10816 |
-
// Backward compatibility
|
10817 |
-
nativeBounds.topLeft = {
|
10818 |
-
lat: northEast.lat(),
|
10819 |
-
lng: southWest.lng()
|
10820 |
-
};
|
10821 |
-
|
10822 |
-
nativeBounds.bottomRight = {
|
10823 |
-
lat: southWest.lat(),
|
10824 |
-
lng: northEast.lng()
|
10825 |
-
};
|
10826 |
-
|
10827 |
-
return nativeBounds;
|
10828 |
}
|
10829 |
|
10830 |
-
|
10831 |
-
* Fit to given boundaries
|
10832 |
-
* @return void
|
10833 |
-
*/
|
10834 |
-
WPGMZA.GoogleMap.prototype.fitBounds = function(southWest, northEast)
|
10835 |
{
|
10836 |
-
if(
|
10837 |
-
southWest = {lat: southWest.lat, lng: southWest.lng};
|
10838 |
-
if(northEast instanceof WPGMZA.LatLng)
|
10839 |
-
northEast = {lat: northEast.lat, lng: northEast.lng};
|
10840 |
-
else if(southWest instanceof WPGMZA.LatLngBounds)
|
10841 |
{
|
10842 |
-
|
10843 |
-
|
10844 |
-
|
10845 |
-
|
10846 |
-
|
10847 |
-
|
|
|
|
|
10848 |
|
10849 |
-
|
10850 |
-
|
10851 |
-
|
10852 |
-
|
|
|
|
|
|
|
10853 |
}
|
10854 |
|
10855 |
-
|
10856 |
-
this.googleMap.fitBounds(nativeBounds);
|
10857 |
}
|
10858 |
|
10859 |
-
|
10860 |
-
* Fit the map boundaries to visible markers
|
10861 |
-
* @return void
|
10862 |
-
*/
|
10863 |
-
WPGMZA.GoogleMap.prototype.fitBoundsToVisibleMarkers = function()
|
10864 |
{
|
10865 |
-
|
10866 |
-
for(var i = 0; i < this.markers.length; i++)
|
10867 |
{
|
10868 |
-
|
10869 |
-
bounds.extend(markers[i].getPosition());
|
10870 |
}
|
10871 |
-
|
|
|
10872 |
}
|
10873 |
|
10874 |
-
|
10875 |
-
* Enables / disables the bicycle layer
|
10876 |
-
* @param enable boolean, enable or not
|
10877 |
-
* @return void
|
10878 |
-
*/
|
10879 |
-
WPGMZA.GoogleMap.prototype.enableBicycleLayer = function(enable)
|
10880 |
{
|
10881 |
-
|
10882 |
-
this.bicycleLayer = new google.maps.BicyclingLayer();
|
10883 |
|
10884 |
-
|
10885 |
-
|
10886 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10887 |
}
|
10888 |
|
10889 |
-
|
10890 |
-
* Enables / disables the bicycle layer
|
10891 |
-
* @param enable boolean, enable or not
|
10892 |
-
* @return void
|
10893 |
-
*/
|
10894 |
-
WPGMZA.GoogleMap.prototype.enableTrafficLayer = function(enable)
|
10895 |
{
|
10896 |
-
|
10897 |
-
this.trafficLayer = new google.maps.TrafficLayer();
|
10898 |
|
10899 |
-
|
10900 |
-
|
10901 |
-
|
10902 |
-
|
10903 |
|
10904 |
-
|
10905 |
-
|
10906 |
-
|
10907 |
-
|
10908 |
-
*/
|
10909 |
-
WPGMZA.GoogleMap.prototype.enablePublicTransportLayer = function(enable)
|
10910 |
-
{
|
10911 |
-
if(!this.publicTransportLayer)
|
10912 |
-
this.publicTransportLayer = new google.maps.TransitLayer();
|
10913 |
-
|
10914 |
-
this.publicTransportLayer.setMap(
|
10915 |
-
enable ? this.googleMap : null
|
10916 |
-
);
|
10917 |
}
|
10918 |
|
10919 |
-
|
10920 |
-
* Shows / hides points of interest
|
10921 |
-
* @param show boolean, enable or not
|
10922 |
-
* @return void
|
10923 |
-
*/
|
10924 |
-
WPGMZA.GoogleMap.prototype.showPointsOfInterest = function(show)
|
10925 |
{
|
10926 |
-
|
10927 |
-
|
10928 |
-
|
10929 |
-
if(!text)
|
10930 |
return;
|
|
|
10931 |
|
10932 |
-
var
|
10933 |
-
|
10934 |
-
styles.push({
|
10935 |
-
featureType: "poi",
|
10936 |
-
stylers: [
|
10937 |
-
{
|
10938 |
-
visibility: (show ? "on" : "off")
|
10939 |
-
}
|
10940 |
-
]
|
10941 |
-
});
|
10942 |
|
10943 |
-
this.
|
|
|
|
|
10944 |
}
|
10945 |
|
10946 |
-
|
10947 |
-
* Gets the min zoom of the map
|
10948 |
-
* @return int
|
10949 |
-
*/
|
10950 |
-
WPGMZA.GoogleMap.prototype.getMinZoom = function()
|
10951 |
{
|
10952 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10953 |
}
|
10954 |
|
10955 |
-
|
10956 |
-
* Sets the min zoom of the map
|
10957 |
-
* @return void
|
10958 |
-
*/
|
10959 |
-
WPGMZA.GoogleMap.prototype.setMinZoom = function(value)
|
10960 |
{
|
10961 |
-
this
|
10962 |
-
|
10963 |
-
|
10964 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10965 |
}
|
10966 |
|
10967 |
-
|
10968 |
-
* Gets the min zoom of the map
|
10969 |
-
* @return int
|
10970 |
-
*/
|
10971 |
-
WPGMZA.GoogleMap.prototype.getMaxZoom = function()
|
10972 |
{
|
10973 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
10974 |
}
|
10975 |
|
10976 |
-
|
10977 |
-
* Sets the min zoom of the map
|
10978 |
-
* @return void
|
10979 |
-
*/
|
10980 |
-
WPGMZA.GoogleMap.prototype.setMaxZoom = function(value)
|
10981 |
{
|
10982 |
-
this.
|
10983 |
-
|
10984 |
-
|
|
|
|
|
|
|
|
|
10985 |
});
|
10986 |
}
|
10987 |
|
10988 |
-
WPGMZA.
|
10989 |
{
|
10990 |
-
var
|
10991 |
-
var
|
10992 |
-
|
10993 |
-
|
|
|
|
|
|
|
|
|
|
|
10994 |
});
|
10995 |
-
|
10996 |
-
var
|
10997 |
-
var
|
10998 |
-
var
|
10999 |
-
|
11000 |
-
|
11001 |
-
y: (worldPoint.y - topRight.y) * scale
|
11002 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11003 |
}
|
11004 |
|
11005 |
-
WPGMZA.
|
11006 |
{
|
11007 |
-
|
11008 |
-
{
|
11009 |
-
if("x" in x && "y" in x)
|
11010 |
-
{
|
11011 |
-
y = x.y;
|
11012 |
-
x = x.x;
|
11013 |
-
}
|
11014 |
-
else
|
11015 |
-
console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)");
|
11016 |
-
}
|
11017 |
|
11018 |
-
|
11019 |
-
|
11020 |
-
|
11021 |
-
|
11022 |
-
|
11023 |
-
var latLng = map.getProjection().fromPointToLatLng(worldPoint);
|
11024 |
-
return {
|
11025 |
-
lat: latLng.lat(),
|
11026 |
-
lng: latLng.lng()
|
11027 |
-
};
|
11028 |
}
|
11029 |
|
11030 |
/**
|
11031 |
-
*
|
11032 |
-
*
|
11033 |
*/
|
11034 |
-
WPGMZA.
|
11035 |
{
|
11036 |
-
|
11037 |
-
|
11038 |
-
google.maps.event.trigger(this.googleMap, "resize");
|
11039 |
-
}
|
11040 |
-
|
11041 |
-
WPGMZA.GoogleMap.prototype.enableAllInteractions = function()
|
11042 |
-
{
|
11043 |
-
var options = {};
|
11044 |
-
|
11045 |
-
options.scrollwheel = true;
|
11046 |
-
options.draggable = true;
|
11047 |
-
options.disableDoubleClickZoom = false;
|
11048 |
-
|
11049 |
-
this.googleMap.setOptions(options);
|
11050 |
}
|
11051 |
|
11052 |
});
|
11053 |
|
11054 |
-
// js/v8/
|
11055 |
/**
|
11056 |
* @namespace WPGMZA
|
11057 |
-
* @module
|
11058 |
-
* @requires WPGMZA.
|
11059 |
-
* @pro-requires WPGMZA.ProMarker
|
11060 |
*/
|
11061 |
jQuery(function($) {
|
11062 |
|
11063 |
-
|
|
|
|
|
|
|
11064 |
|
11065 |
-
WPGMZA.
|
|
|
|
|
|
|
11066 |
{
|
11067 |
var self = this;
|
|
|
|
|
11068 |
|
11069 |
-
|
11070 |
-
|
11071 |
-
this.
|
11072 |
|
11073 |
-
|
11074 |
-
|
11075 |
-
|
11076 |
-
for(var name in row)
|
11077 |
{
|
11078 |
-
|
11079 |
-
|
11080 |
-
|
11081 |
-
|
11082 |
-
|
11083 |
-
|
11084 |
-
|
11085 |
-
// NB: Ignore icon here, it conflicts with updateIcon in Pro
|
11086 |
-
}
|
11087 |
-
else
|
11088 |
-
settings[name] = row[name];
|
11089 |
}
|
11090 |
-
}
|
11091 |
-
|
11092 |
-
this.googleMarker = new google.maps.Marker(settings);
|
11093 |
-
this.googleMarker.wpgmzaMarker = this;
|
11094 |
-
|
11095 |
-
this.googleMarker.setPosition(new google.maps.LatLng({
|
11096 |
-
lat: parseFloat(this.lat),
|
11097 |
-
lng: parseFloat(this.lng)
|
11098 |
-
}));
|
11099 |
-
|
11100 |
-
// this.googleMarker.setLabel(this.settings.label);
|
11101 |
-
|
11102 |
-
if(this.anim)
|
11103 |
-
this.googleMarker.setAnimation(this.anim);
|
11104 |
-
if(this.animation)
|
11105 |
-
this.googleMarker.setAnimation(this.animation);
|
11106 |
|
11107 |
-
|
11108 |
-
|
11109 |
-
self.dispatchEvent("select");
|
11110 |
-
});
|
11111 |
|
11112 |
-
|
11113 |
-
|
11114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11115 |
|
11116 |
-
|
11117 |
-
|
11118 |
-
|
11119 |
-
self.setPosition({
|
11120 |
-
lat: googleMarkerPosition.lat(),
|
11121 |
-
lng: googleMarkerPosition.lng()
|
11122 |
-
});
|
11123 |
-
|
11124 |
-
self.dispatchEvent({
|
11125 |
-
type: "dragend",
|
11126 |
-
latLng: self.getPosition()
|
11127 |
-
});
|
11128 |
-
});
|
11129 |
|
11130 |
-
|
|
|
|
|
|
|
|
|
|
|
11131 |
}
|
11132 |
|
11133 |
-
|
11134 |
-
|
11135 |
-
|
11136 |
-
|
11137 |
-
WPGMZA.GoogleMarker.prototype = Object.create(Parent.prototype);
|
11138 |
-
WPGMZA.GoogleMarker.prototype.constructor = WPGMZA.GoogleMarker;
|
11139 |
-
|
11140 |
-
Object.defineProperty(WPGMZA.GoogleMarker.prototype, "opacity", {
|
11141 |
|
11142 |
-
|
11143 |
-
return this._opacity;
|
11144 |
-
},
|
11145 |
|
11146 |
-
|
11147 |
-
|
11148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11149 |
}
|
11150 |
|
11151 |
-
|
|
|
11152 |
|
11153 |
-
WPGMZA.
|
11154 |
{
|
11155 |
-
|
11156 |
-
|
11157 |
-
|
11158 |
-
|
11159 |
-
|
11160 |
-
|
11161 |
-
this.googleMarker.setLabel({
|
11162 |
-
text: label
|
11163 |
-
});
|
11164 |
|
11165 |
-
|
11166 |
-
|
|
|
11167 |
}
|
11168 |
|
11169 |
-
|
11170 |
-
|
11171 |
-
|
11172 |
-
|
11173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
11174 |
{
|
11175 |
-
|
11176 |
-
|
11177 |
-
|
11178 |
-
|
11179 |
-
|
|
|
|
|
|
|
|
|
|
|
11180 |
}
|
11181 |
|
11182 |
-
|
11183 |
-
|
11184 |
-
|
11185 |
-
|
11186 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11187 |
{
|
11188 |
var self = this;
|
11189 |
-
var icon = this.googleMarker.getIcon();
|
11190 |
-
var img = new Image();
|
11191 |
-
var params;
|
11192 |
-
var x = this._offset.x;
|
11193 |
-
var y = this._offset.y;
|
11194 |
|
11195 |
-
|
11196 |
-
icon = WPGMZA.settings.default_marker_icon;
|
11197 |
|
11198 |
-
|
11199 |
-
params = {
|
11200 |
-
url: icon
|
11201 |
-
};
|
11202 |
-
else
|
11203 |
-
params = icon;
|
11204 |
|
11205 |
-
|
11206 |
{
|
11207 |
-
|
11208 |
-
|
11209 |
-
|
11210 |
-
|
|
|
11211 |
|
11212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11213 |
|
11214 |
-
|
|
|
|
|
11215 |
}
|
11216 |
|
11217 |
-
|
11218 |
-
|
11219 |
-
|
11220 |
-
|
11221 |
-
|
11222 |
-
|
|
|
|
|
|
|
|
|
11223 |
}
|
11224 |
|
11225 |
-
|
11226 |
-
|
11227 |
-
|
11228 |
-
|
11229 |
-
WPGMZA.GoogleMarker.prototype.setAnimation = function(animation)
|
11230 |
-
{
|
11231 |
-
Parent.prototype.setAnimation.call(this, animation);
|
11232 |
-
this.googleMarker.setAnimation(animation);
|
11233 |
-
}
|
11234 |
|
11235 |
-
|
11236 |
-
|
11237 |
-
|
11238 |
-
|
11239 |
-
WPGMZA.GoogleMarker.prototype.setVisible = function(visible)
|
11240 |
{
|
11241 |
-
|
|
|
|
|
|
|
|
|
|
|
11242 |
|
11243 |
-
this.
|
|
|
|
|
|
|
|
|
|
|
11244 |
}
|
11245 |
|
11246 |
-
WPGMZA.
|
11247 |
{
|
11248 |
-
|
|
|
|
|
|
|
11249 |
}
|
11250 |
|
11251 |
-
WPGMZA.
|
11252 |
{
|
11253 |
-
|
11254 |
}
|
11255 |
|
11256 |
-
WPGMZA.
|
11257 |
{
|
11258 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11259 |
}
|
11260 |
|
11261 |
});
|
11262 |
|
11263 |
-
// js/v8/
|
11264 |
/**
|
11265 |
* @namespace WPGMZA
|
11266 |
-
* @module
|
11267 |
-
* @requires WPGMZA.
|
11268 |
*/
|
11269 |
jQuery(function($) {
|
11270 |
|
11271 |
-
|
|
|
|
|
11272 |
{
|
11273 |
var self = this;
|
11274 |
|
11275 |
-
WPGMZA.
|
11276 |
|
11277 |
-
this.
|
11278 |
-
|
11279 |
-
|
11280 |
-
|
11281 |
-
|
11282 |
-
|
11283 |
-
|
11284 |
-
|
11285 |
-
|
11286 |
|
11287 |
-
|
11288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11289 |
|
11290 |
-
|
|
|
11291 |
|
11292 |
-
|
|
|
|
|
|
|
11293 |
|
11294 |
-
|
11295 |
-
|
11296 |
-
|
11297 |
-
|
11298 |
-
|
11299 |
});
|
11300 |
-
}
|
11301 |
-
|
11302 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype = Object.create(WPGMZA.ModernStoreLocatorCircle.prototype);
|
11303 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.constructor = WPGMZA.GoogleModernStoreLocatorCircle;
|
11304 |
-
|
11305 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.initCanvasLayer = function()
|
11306 |
-
{
|
11307 |
-
var self = this;
|
11308 |
-
|
11309 |
-
if(this.canvasLayer)
|
11310 |
-
{
|
11311 |
-
this.canvasLayer.setMap(null);
|
11312 |
-
this.canvasLayer.setAnimate(false);
|
11313 |
-
}
|
11314 |
|
11315 |
-
this.
|
11316 |
-
|
11317 |
-
|
11318 |
-
self.onResize(event);
|
11319 |
-
},
|
11320 |
-
updateHandler: function(event) {
|
11321 |
-
self.onUpdate(event);
|
11322 |
-
},
|
11323 |
-
animate: true,
|
11324 |
-
resolutionScale: this.getResolutionScale()
|
11325 |
-
});
|
11326 |
}
|
11327 |
|
11328 |
-
|
|
|
|
|
|
|
|
|
|
|
11329 |
{
|
11330 |
-
|
11331 |
|
11332 |
-
this.
|
|
|
|
|
|
|
|
|
|
|
|
|
11333 |
}
|
11334 |
|
11335 |
-
WPGMZA.
|
11336 |
{
|
11337 |
-
|
11338 |
-
|
11339 |
-
this.
|
|
|
11340 |
}
|
11341 |
|
11342 |
-
WPGMZA.
|
11343 |
{
|
11344 |
-
WPGMZA.ModernStoreLocatorCircle.prototype.setRadius.call(this, radius);
|
11345 |
|
11346 |
-
this.canvasLayer.scheduleUpdate();
|
11347 |
}
|
11348 |
|
11349 |
-
WPGMZA.
|
11350 |
{
|
11351 |
-
|
11352 |
-
|
11353 |
-
|
11354 |
-
var center = this.settings.center;
|
11355 |
-
var equator = new WPGMZA.LatLng({
|
11356 |
-
lat: 0.0,
|
11357 |
-
lng: 0.0
|
11358 |
-
});
|
11359 |
-
var latitude = new WPGMZA.LatLng({
|
11360 |
-
lat: center.lat,
|
11361 |
-
lng: 0.0
|
11362 |
-
});
|
11363 |
|
11364 |
-
var
|
11365 |
-
var offsetAtLatitude = spherical.computeOffset(latitude.toGoogleLatLng(), km * 1000, 90);
|
11366 |
|
11367 |
-
var
|
11368 |
-
|
|
|
|
|
|
|
11369 |
|
11370 |
-
|
11371 |
-
|
|
|
11372 |
|
11373 |
-
|
11374 |
-
}
|
11375 |
-
|
11376 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCanvasDimensions = function()
|
11377 |
-
{
|
11378 |
-
return {
|
11379 |
-
width: this.canvasLayer.canvas.width,
|
11380 |
-
height: this.canvasLayer.canvas.height
|
11381 |
-
};
|
11382 |
}
|
11383 |
|
11384 |
-
WPGMZA.
|
11385 |
{
|
11386 |
-
var
|
11387 |
-
var
|
11388 |
|
11389 |
-
|
11390 |
-
x: -position.x,
|
11391 |
-
y: -position.y
|
11392 |
-
};
|
11393 |
-
}
|
11394 |
-
|
11395 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCenterPixels = function()
|
11396 |
-
{
|
11397 |
-
var center = new WPGMZA.LatLng(this.settings.center);
|
11398 |
-
var projection = this.map.googleMap.getProjection();
|
11399 |
-
return projection.fromLatLngToPoint(center.toGoogleLatLng());
|
11400 |
-
}
|
11401 |
-
|
11402 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getContext = function(type)
|
11403 |
-
{
|
11404 |
-
return this.canvasLayer.canvas.getContext("2d");
|
11405 |
-
}
|
11406 |
-
|
11407 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getScale = function()
|
11408 |
-
{
|
11409 |
-
return Math.pow(2, this.map.getZoom()) * this.getResolutionScale();
|
11410 |
-
}
|
11411 |
-
|
11412 |
-
WPGMZA.GoogleModernStoreLocatorCircle.prototype.setVisible = function(visible)
|
11413 |
-
{
|
11414 |
-
WPGMZA.ModernStoreLocatorCircle.prototype.setVisible.call(this, visible);
|
11415 |
|
11416 |
-
|
11417 |
-
|
11418 |
-
|
11419 |
-
|
11420 |
-
|
11421 |
-
|
11422 |
-
|
|
|
|
|
11423 |
|
11424 |
-
|
11425 |
}
|
11426 |
|
11427 |
});
|
11428 |
|
11429 |
-
// js/v8/
|
11430 |
/**
|
11431 |
* @namespace WPGMZA
|
11432 |
-
* @module
|
11433 |
-
* @requires WPGMZA.
|
11434 |
*/
|
11435 |
jQuery(function($) {
|
11436 |
|
11437 |
-
WPGMZA.
|
11438 |
{
|
11439 |
-
var googleMap, self = this;
|
11440 |
-
|
11441 |
-
this.map = WPGMZA.getMapByID(map_id);
|
11442 |
-
|
11443 |
-
WPGMZA.ModernStoreLocator.call(this, map_id);
|
11444 |
-
|
11445 |
-
var options = {
|
11446 |
-
fields: ["name", "formatted_address"],
|
11447 |
-
types: ["geocode"]
|
11448 |
-
};
|
11449 |
-
var restrict = wpgmaps_localize[map_id]["other_settings"]["wpgmza_store_locator_restrict"];
|
11450 |
-
|
11451 |
-
this.addressInput = $(this.element).find(".addressInput, #addressInput")[0];
|
11452 |
-
|
11453 |
-
if(this.addressInput)
|
11454 |
-
{
|
11455 |
-
if(restrict && restrict.length)
|
11456 |
-
options.componentRestrictions = {
|
11457 |
-
country: restrict
|
11458 |
-
};
|
11459 |
-
|
11460 |
-
this.autoComplete = new google.maps.places.Autocomplete(
|
11461 |
-
this.addressInput,
|
11462 |
-
options
|
11463 |
-
);
|
11464 |
-
}
|
11465 |
|
11466 |
-
// Positioning for Google
|
11467 |
-
this.map.googleMap.controls[google.maps.ControlPosition.TOP_CENTER].push(this.element);
|
11468 |
}
|
11469 |
|
11470 |
-
WPGMZA.GoogleModernStoreLocator.prototype = Object.create(WPGMZA.ModernStoreLocator.prototype);
|
11471 |
-
WPGMZA.GoogleModernStoreLocator.prototype.constructor = WPGMZA.GoogleModernStoreLocator;
|
11472 |
-
|
11473 |
});
|
11474 |
|
11475 |
-
// js/v8/
|
11476 |
/**
|
11477 |
* @namespace WPGMZA
|
11478 |
-
* @module
|
11479 |
-
* @requires WPGMZA
|
11480 |
-
* @pro-requires WPGMZA.ProPolygon
|
11481 |
*/
|
11482 |
jQuery(function($) {
|
11483 |
|
11484 |
-
|
11485 |
-
|
11486 |
-
WPGMZA.GooglePolygon = function(options, googlePolygon)
|
11487 |
{
|
11488 |
var self = this;
|
11489 |
-
|
11490 |
-
Parent.call(this, options, googlePolygon);
|
11491 |
-
|
11492 |
-
if(googlePolygon)
|
11493 |
{
|
11494 |
-
|
|
|
|
|
|
|
|
|
|
|
11495 |
}
|
|
|
|
|
|
|
11496 |
else
|
11497 |
{
|
11498 |
-
|
11499 |
|
11500 |
-
|
11501 |
-
{
|
11502 |
-
var googleOptions = $.extend({}, options);
|
11503 |
-
|
11504 |
-
if(options.polydata)
|
11505 |
-
googleOptions.paths = this.parseGeometry(options.polydata);
|
11506 |
-
|
11507 |
-
if(options.linecolor)
|
11508 |
-
googleOptions.strokeColor = "#" + options.linecolor;
|
11509 |
-
|
11510 |
-
if(options.lineopacity)
|
11511 |
-
googleOptions.strokeOpacity = parseFloat(options.lineopacity);
|
11512 |
-
|
11513 |
-
if(options.fillcolor)
|
11514 |
-
googleOptions.fillColor = "#" + options.fillcolor;
|
11515 |
-
|
11516 |
-
if(options.opacity)
|
11517 |
-
googleOptions.fillOpacity = parseFloat(options.opacity);
|
11518 |
-
|
11519 |
-
this.googlePolygon.setOptions(googleOptions);
|
11520 |
-
}
|
11521 |
}
|
11522 |
|
11523 |
-
this.
|
11524 |
-
|
11525 |
-
|
11526 |
-
|
11527 |
-
|
11528 |
-
}
|
11529 |
-
|
11530 |
-
if(WPGMZA.isProVersion())
|
11531 |
-
Parent = WPGMZA.ProPolygon;
|
11532 |
-
else
|
11533 |
-
Parent = WPGMZA.Polygon;
|
11534 |
|
11535 |
-
|
11536 |
-
|
11537 |
-
|
11538 |
-
|
11539 |
-
|
11540 |
-
|
11541 |
-
|
11542 |
-
|
11543 |
-
|
11544 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11545 |
}
|
11546 |
|
11547 |
-
|
11548 |
-
* Sets the editable state of the polygon
|
11549 |
-
* @return void
|
11550 |
-
*/
|
11551 |
-
WPGMZA.GooglePolygon.prototype.setEditable = function(value)
|
11552 |
{
|
11553 |
-
this.
|
11554 |
}
|
11555 |
|
11556 |
/**
|
11557 |
-
*
|
|
|
|
|
11558 |
* @return object
|
11559 |
*/
|
11560 |
-
WPGMZA.
|
11561 |
{
|
11562 |
-
|
|
|
|
|
|
|
11563 |
|
11564 |
-
|
|
|
|
|
11565 |
|
11566 |
-
|
11567 |
-
|
11568 |
-
|
11569 |
-
|
11570 |
-
|
11571 |
-
|
11572 |
-
|
11573 |
-
|
11574 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11575 |
}
|
11576 |
|
11577 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11578 |
}
|
11579 |
|
11580 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11581 |
|
11582 |
-
|
11583 |
-
|
11584 |
-
|
11585 |
-
|
11586 |
-
|
11587 |
-
|
11588 |
-
|
11589 |
-
|
11590 |
-
|
11591 |
-
|
11592 |
-
|
11593 |
-
|
11594 |
-
|
11595 |
-
|
11596 |
-
|
11597 |
-
|
11598 |
-
|
11599 |
-
|
11600 |
-
|
11601 |
-
|
11602 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11603 |
|
11604 |
-
|
11605 |
-
|
11606 |
-
|
11607 |
-
|
11608 |
-
if(options.polydata)
|
11609 |
-
googleOptions.path = this.parseGeometry(options.polydata);
|
11610 |
-
|
11611 |
-
if(options.linecolor)
|
11612 |
-
googleOptions.strokeColor = "#" + options.linecolor;
|
11613 |
-
|
11614 |
-
if(options.linethickness)
|
11615 |
-
googleOptions.strokeWeight = parseInt(options.linethickness);
|
11616 |
-
|
11617 |
-
if(options.opacity)
|
11618 |
-
googleOptions.strokeOpacity = parseFloat(options.opacity);
|
11619 |
-
}
|
11620 |
|
11621 |
-
|
11622 |
-
|
11623 |
-
|
11624 |
-
this.setPoints(path);
|
11625 |
-
}
|
11626 |
-
}
|
11627 |
-
|
11628 |
-
this.googlePolyline.wpgmzaPolyline = this;
|
11629 |
-
|
11630 |
-
google.maps.event.addListener(this.googlePolyline, "click", function() {
|
11631 |
-
self.dispatchEvent({type: "click"});
|
11632 |
-
});
|
11633 |
-
}
|
11634 |
-
|
11635 |
-
WPGMZA.GooglePolyline.prototype = Object.create(WPGMZA.Polyline.prototype);
|
11636 |
-
WPGMZA.GooglePolyline.prototype.constructor = WPGMZA.GooglePolyline;
|
11637 |
-
|
11638 |
-
WPGMZA.GooglePolyline.prototype.setEditable = function(value)
|
11639 |
-
{
|
11640 |
-
this.googlePolyline.setOptions({editable: value});
|
11641 |
-
}
|
11642 |
-
|
11643 |
-
WPGMZA.GooglePolyline.prototype.setPoints = function(points)
|
11644 |
-
{
|
11645 |
-
this.googlePolyline.setOptions({path: points});
|
11646 |
-
}
|
11647 |
-
|
11648 |
-
WPGMZA.GooglePolyline.prototype.toJSON = function()
|
11649 |
-
{
|
11650 |
-
var result = WPGMZA.Polyline.prototype.toJSON.call(this);
|
11651 |
-
|
11652 |
-
result.points = [];
|
11653 |
-
|
11654 |
-
var path = this.googlePolyline.getPath();
|
11655 |
-
for(var i = 0; i < path.getLength(); i++)
|
11656 |
-
{
|
11657 |
-
var latLng = path.getAt(i);
|
11658 |
-
result.points.push({
|
11659 |
-
lat: latLng.lat(),
|
11660 |
-
lng: latLng.lng()
|
11661 |
-
});
|
11662 |
-
}
|
11663 |
-
|
11664 |
-
return result;
|
11665 |
-
}
|
11666 |
-
|
11667 |
-
});
|
11668 |
|
11669 |
-
|
11670 |
-
|
11671 |
-
|
11672 |
-
* @module GoogleText
|
11673 |
-
* @requires WPGMZA.Text
|
11674 |
-
*/
|
11675 |
-
jQuery(function($) {
|
11676 |
-
|
11677 |
-
WPGMZA.GoogleText = function(options)
|
11678 |
-
{
|
11679 |
-
WPGMZA.Text.apply(this, arguments);
|
11680 |
-
|
11681 |
-
this.overlay = new WPGMZA.GoogleTextOverlay(options);
|
11682 |
-
}
|
11683 |
-
|
11684 |
-
WPGMZA.extend(WPGMZA.GoogleText, WPGMZA.Text);
|
11685 |
-
|
11686 |
-
});
|
11687 |
|
11688 |
-
|
11689 |
-
|
11690 |
-
|
11691 |
-
|
11692 |
-
|
11693 |
-
|
11694 |
-
|
11695 |
-
|
11696 |
-
|
11697 |
-
|
11698 |
-
|
11699 |
-
|
11700 |
-
|
11701 |
-
|
11702 |
-
|
11703 |
-
|
11704 |
-
|
11705 |
-
|
11706 |
-
|
11707 |
-
|
11708 |
-
|
11709 |
-
|
11710 |
-
|
11711 |
-
|
11712 |
-
|
11713 |
-
|
11714 |
-
|
11715 |
-
|
11716 |
-
|
11717 |
-
|
11718 |
-
|
11719 |
-
|
11720 |
-
|
11721 |
-
|
11722 |
-
|
11723 |
-
|
11724 |
-
|
11725 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11726 |
|
11727 |
-
|
11728 |
-
|
11729 |
-
|
11730 |
-
|
11731 |
-
|
11732 |
-
|
11733 |
-
|
11734 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11735 |
|
11736 |
-
|
11737 |
-
position: "absolute",
|
11738 |
-
left: position.x + "px",
|
11739 |
-
top: position.y + "px"
|
11740 |
-
});
|
11741 |
-
}
|
11742 |
-
|
11743 |
-
WPGMZA.GoogleTextOverlay.prototype.onRemove = function()
|
11744 |
-
{
|
11745 |
-
this.element.remove();
|
11746 |
-
}
|
11747 |
-
|
11748 |
-
WPGMZA.GoogleTextOverlay.prototype.hide = function()
|
11749 |
-
{
|
11750 |
-
this.element.hide();
|
11751 |
}
|
11752 |
|
11753 |
-
WPGMZA.
|
11754 |
{
|
11755 |
-
|
11756 |
}
|
11757 |
|
11758 |
-
WPGMZA.
|
11759 |
{
|
11760 |
-
|
11761 |
-
this.element.hide();
|
11762 |
-
else
|
11763 |
-
this.element.show();
|
11764 |
}
|
11765 |
|
11766 |
});
|
11767 |
|
11768 |
-
// js/v8/
|
11769 |
/**
|
11770 |
* @namespace WPGMZA
|
11771 |
-
* @module
|
11772 |
-
* @requires
|
11773 |
*/
|
11774 |
jQuery(function($) {
|
11775 |
|
11776 |
-
|
11777 |
-
return;
|
11778 |
-
|
11779 |
-
if(WPGMZA.googleAPIStatus && WPGMZA.googleAPIStatus.code == "USER_CONSENT_NOT_GIVEN")
|
11780 |
-
return;
|
11781 |
-
|
11782 |
-
WPGMZA.GoogleVertexContextMenu = function(mapEditPage)
|
11783 |
{
|
11784 |
var self = this;
|
11785 |
|
11786 |
-
this.
|
11787 |
|
11788 |
-
|
11789 |
-
this.element.className = "wpgmza-vertex-context-menu";
|
11790 |
-
this.element.innerHTML = "Delete";
|
11791 |
|
11792 |
-
|
11793 |
-
|
11794 |
-
|
11795 |
-
|
11796 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11797 |
});
|
11798 |
}
|
11799 |
|
11800 |
-
WPGMZA.
|
|
|
11801 |
|
11802 |
-
WPGMZA.
|
11803 |
{
|
11804 |
-
|
11805 |
-
var map = this.getMap();
|
11806 |
-
|
11807 |
-
this.getPanes().floatPane.appendChild(this.element);
|
11808 |
-
this.divListener = google.maps.event.addDomListener(map.getDiv(), "mousedown", function(e) {
|
11809 |
-
if(e.target != self.element)
|
11810 |
-
self.close();
|
11811 |
-
}, true);
|
11812 |
}
|
11813 |
|
11814 |
-
WPGMZA.
|
11815 |
{
|
11816 |
-
|
11817 |
-
|
11818 |
|
11819 |
-
|
11820 |
-
|
11821 |
-
|
|
|
|
|
|
|
|
|
11822 |
}
|
11823 |
|
11824 |
-
WPGMZA.
|
11825 |
{
|
11826 |
-
|
11827 |
-
this.set('path', path);
|
11828 |
-
this.set('vertex', vertex);
|
11829 |
-
this.setMap(map);
|
11830 |
-
this.draw();
|
11831 |
}
|
11832 |
|
11833 |
-
WPGMZA.
|
11834 |
{
|
11835 |
-
this
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11836 |
}
|
11837 |
|
11838 |
-
|
|
|
11839 |
{
|
11840 |
-
var
|
11841 |
-
var
|
11842 |
-
|
11843 |
-
|
11844 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11845 |
|
11846 |
-
|
11847 |
-
this.element.style.top = point.y + 'px';
|
11848 |
-
this.element.style.left = point.x + 'px';
|
11849 |
}
|
11850 |
|
11851 |
-
WPGMZA.
|
11852 |
{
|
11853 |
-
|
11854 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11855 |
|
11856 |
-
|
11857 |
-
|
11858 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11859 |
}
|
11860 |
|
11861 |
-
|
11862 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11863 |
}
|
11864 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11865 |
});
|
2891 |
});
|
2892 |
}
|
2893 |
|
2894 |
+
$(document.body).on("wpgmza_map_editor_init", function(event) {
|
|
|
2895 |
WPGMZA.mapEditPage = WPGMZA.MapEditPage.createInstance();
|
2896 |
|
2897 |
});
|
4438 |
this.element = element;
|
4439 |
}
|
4440 |
|
4441 |
+
$(document.body).on("wpgmza_map_editor_init", function(event) {
|
4442 |
|
4443 |
if(WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
4444 |
WPGMZA.mapEditPage.markerPanel = new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]);
|
7138 |
|
7139 |
});
|
7140 |
|
7141 |
+
// js/v8/3rd-party-integration/integration.js
|
7142 |
+
/**
|
7143 |
+
* @namespace WPGMZA
|
7144 |
+
* @module Integration
|
7145 |
+
* @requires WPGMZA
|
7146 |
+
*/
|
7147 |
+
jQuery(function($) {
|
7148 |
+
|
7149 |
+
WPGMZA.Integration = {};
|
7150 |
+
WPGMZA.integrationModules = {};
|
7151 |
+
|
7152 |
+
});
|
7153 |
+
|
7154 |
+
// js/v8/3rd-party-integration/gutenberg/dist/gutenberg.js
|
7155 |
+
"use strict";
|
7156 |
+
|
7157 |
+
/**
|
7158 |
+
* @namespace WPGMZA.Integration
|
7159 |
+
* @module Gutenberg
|
7160 |
+
* @requires WPGMZA.Integration
|
7161 |
+
* @requires wp-i18n
|
7162 |
+
* @requires wp-blocks
|
7163 |
+
* @requires wp-editor
|
7164 |
+
* @requires wp-components
|
7165 |
+
*/
|
7166 |
+
|
7167 |
+
/**
|
7168 |
+
* Internal block libraries
|
7169 |
+
*/
|
7170 |
+
jQuery(function ($) {
|
7171 |
+
|
7172 |
+
if (!window.wp || !wp.i18n || !wp.blocks || !wp.editor || !wp.components) return;
|
7173 |
+
|
7174 |
+
var __ = wp.i18n.__;
|
7175 |
+
var registerBlockType = wp.blocks.registerBlockType;
|
7176 |
+
var _wp$editor = wp.editor,
|
7177 |
+
InspectorControls = _wp$editor.InspectorControls,
|
7178 |
+
BlockControls = _wp$editor.BlockControls;
|
7179 |
+
var _wp$components = wp.components,
|
7180 |
+
Dashicon = _wp$components.Dashicon,
|
7181 |
+
Toolbar = _wp$components.Toolbar,
|
7182 |
+
Button = _wp$components.Button,
|
7183 |
+
Tooltip = _wp$components.Tooltip,
|
7184 |
+
PanelBody = _wp$components.PanelBody,
|
7185 |
+
TextareaControl = _wp$components.TextareaControl,
|
7186 |
+
CheckboxControl = _wp$components.CheckboxControl,
|
7187 |
+
TextControl = _wp$components.TextControl,
|
7188 |
+
SelectControl = _wp$components.SelectControl,
|
7189 |
+
RichText = _wp$components.RichText;
|
7190 |
+
|
7191 |
+
|
7192 |
+
WPGMZA.Integration.Gutenberg = function () {
|
7193 |
+
registerBlockType('gutenberg-wpgmza/block', this.getBlockDefinition());
|
7194 |
+
};
|
7195 |
+
|
7196 |
+
WPGMZA.Integration.Gutenberg.prototype.getBlockTitle = function () {
|
7197 |
+
return __("WP Google Maps");
|
7198 |
+
};
|
7199 |
+
|
7200 |
+
WPGMZA.Integration.Gutenberg.prototype.getBlockInspectorControls = function (props) {
|
7201 |
+
|
7202 |
+
/*
|
7203 |
+
<TextControl
|
7204 |
+
name="overrideWidthAmount"
|
7205 |
+
label={__("Override Width Amount")}
|
7206 |
+
checked={props.overrideWidthAmount}
|
7207 |
+
onChange={onPropertiesChanged}
|
7208 |
+
/>
|
7209 |
+
|
7210 |
+
<SelectControl
|
7211 |
+
name="overrideWidthUnits"
|
7212 |
+
label={__("Override Width Units")}
|
7213 |
+
options={[
|
7214 |
+
{value: "px", label: "px"},
|
7215 |
+
{value: "%", label: "%"},
|
7216 |
+
{value: "vw`", label: "vw"},
|
7217 |
+
{value: "vh", label: "vh"}
|
7218 |
+
]}
|
7219 |
+
onChange={onPropertiesChanged}
|
7220 |
+
/>
|
7221 |
+
|
7222 |
+
<CheckboxControl
|
7223 |
+
name="overrideHeight"
|
7224 |
+
label={__("Override Height")}
|
7225 |
+
checked={props.overrideWidth}
|
7226 |
+
onChange={onPropertiesChanged}
|
7227 |
+
/>
|
7228 |
+
|
7229 |
+
<TextControl
|
7230 |
+
name="overrideHeightAmount"
|
7231 |
+
label={__("Override Height Amount")}
|
7232 |
+
checked={props.overrideWidthAmount}
|
7233 |
+
onChange={onPropertiesChanged}
|
7234 |
+
/>
|
7235 |
+
|
7236 |
+
<SelectControl
|
7237 |
+
name="overrideHeightUnits"
|
7238 |
+
label={__("Override Height Units")}
|
7239 |
+
options={[
|
7240 |
+
{value: "px", label: "px"},
|
7241 |
+
{value: "%", label: "%"},
|
7242 |
+
{value: "vw`", label: "vw"},
|
7243 |
+
{value: "vh", label: "vh"}
|
7244 |
+
]}
|
7245 |
+
onChange={onPropertiesChanged}
|
7246 |
+
/>
|
7247 |
+
*/
|
7248 |
+
|
7249 |
+
var onOverrideWidthCheckboxChanged = function onOverrideWidthCheckboxChanged(value) {};
|
7250 |
+
|
7251 |
+
return React.createElement(
|
7252 |
+
InspectorControls,
|
7253 |
+
{ key: "inspector" },
|
7254 |
+
React.createElement(
|
7255 |
+
PanelBody,
|
7256 |
+
{ title: __('Map Settings') },
|
7257 |
+
React.createElement(
|
7258 |
+
"p",
|
7259 |
+
{ "class": "map-block-gutenberg-button-container" },
|
7260 |
+
React.createElement(
|
7261 |
+
"a",
|
7262 |
+
{ href: WPGMZA.adminurl + "admin.php?page=wp-google-maps-menu&action=edit&map_id=1",
|
7263 |
+
target: "_blank",
|
7264 |
+
"class": "button button-primary" },
|
7265 |
+
React.createElement("i", { "class": "fa fa-pencil-square-o", "aria-hidden": "true" }),
|
7266 |
+
__('Go to Map Editor')
|
7267 |
+
)
|
7268 |
+
),
|
7269 |
+
React.createElement(
|
7270 |
+
"p",
|
7271 |
+
{ "class": "map-block-gutenberg-button-container" },
|
7272 |
+
React.createElement(
|
7273 |
+
"a",
|
7274 |
+
{ href: "https://www.wpgmaps.com/documentation/creating-your-first-map/",
|
7275 |
+
target: "_blank",
|
7276 |
+
"class": "button button-primary" },
|
7277 |
+
React.createElement("i", { "class": "fa fa-book", "aria-hidden": "true" }),
|
7278 |
+
__('View Documentation')
|
7279 |
+
)
|
7280 |
+
)
|
7281 |
+
)
|
7282 |
+
);
|
7283 |
+
};
|
7284 |
+
|
7285 |
+
WPGMZA.Integration.Gutenberg.prototype.getBlockAttributes = function () {
|
7286 |
+
return {};
|
7287 |
+
};
|
7288 |
+
|
7289 |
+
WPGMZA.Integration.Gutenberg.prototype.getBlockDefinition = function (props) {
|
7290 |
+
var _this = this;
|
7291 |
+
|
7292 |
+
return {
|
7293 |
+
|
7294 |
+
title: __("WP Google Maps"),
|
7295 |
+
description: __('The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.'),
|
7296 |
+
category: 'common',
|
7297 |
+
icon: 'location-alt',
|
7298 |
+
keywords: [__('Map'), __('Maps'), __('Google')],
|
7299 |
+
attributes: this.getBlockAttributes(),
|
7300 |
+
|
7301 |
+
edit: function edit(props) {
|
7302 |
+
return [!!props.isSelected && _this.getBlockInspectorControls(props), React.createElement(
|
7303 |
+
"div",
|
7304 |
+
{ className: props.className + " wpgmza-gutenberg-block" },
|
7305 |
+
React.createElement(Dashicon, { icon: "location-alt" }),
|
7306 |
+
React.createElement(
|
7307 |
+
"span",
|
7308 |
+
{ "class": "wpgmza-gutenberg-block-title" },
|
7309 |
+
__("Your map will appear here on your websites front end")
|
7310 |
+
)
|
7311 |
+
)];
|
7312 |
+
},
|
7313 |
+
// Defining the front-end interface
|
7314 |
+
save: function save(props) {
|
7315 |
+
// Rendering in PHP
|
7316 |
+
return null;
|
7317 |
+
}
|
7318 |
+
|
7319 |
+
};
|
7320 |
+
};
|
7321 |
+
|
7322 |
+
WPGMZA.Integration.Gutenberg.getConstructor = function () {
|
7323 |
+
return WPGMZA.Integration.Gutenberg;
|
7324 |
+
};
|
7325 |
+
|
7326 |
+
WPGMZA.Integration.Gutenberg.createInstance = function () {
|
7327 |
+
var constructor = WPGMZA.Integration.Gutenberg.getConstructor();
|
7328 |
+
return new constructor();
|
7329 |
+
};
|
7330 |
+
|
7331 |
+
// Allow the Pro module to extend and create the module, only create here when Pro isn't loaded
|
7332 |
+
if(!WPGMZA.isProVersion() && !(/^6/.test(WPGMZA.pro_version))) WPGMZA.integrationModules.gutenberg = WPGMZA.Integration.Gutenberg.createInstance();
|
7333 |
+
});
|
7334 |
+
|
7335 |
// js/v8/compatibility/astra-theme-compatibility.js
|
7336 |
/**
|
7337 |
* @namespace WPGMZA
|
7341 |
*/
|
7342 |
jQuery(function($) {
|
7343 |
|
7344 |
+
$(document).on("load", function(event) {
|
7345 |
|
7346 |
var parent = document.body.onclick;
|
7347 |
|
7387 |
|
7388 |
});
|
7389 |
|
7390 |
+
// js/v8/google-maps/google-circle.js
|
7391 |
/**
|
7392 |
* @namespace WPGMZA
|
7393 |
+
* @module GoogleCircle
|
7394 |
+
* @requires WPGMZA.Circle
|
7395 |
*/
|
7396 |
jQuery(function($) {
|
7397 |
|
7398 |
+
/**
|
7399 |
+
* Subclass, used when Google is the maps engine. <strong>Please <em>do not</em> call this constructor directly. Always use createInstance rather than instantiating this class directly.</strong> Using createInstance allows this class to be externally extensible.
|
7400 |
+
* @class WPGMZA.GoogleCircle
|
7401 |
+
* @constructor WPGMZA.GoogleCircle
|
7402 |
+
* @memberof WPGMZA
|
7403 |
+
* @augments WPGMZA.Circle
|
7404 |
+
* @see WPGMZA.Circle.createInstance
|
7405 |
+
*/
|
7406 |
+
WPGMZA.GoogleCircle = function(options, googleCircle)
|
7407 |
{
|
7408 |
var self = this;
|
7409 |
+
|
7410 |
+
WPGMZA.Circle.call(this, options, googleCircle);
|
7411 |
+
|
7412 |
+
if(googleCircle)
|
7413 |
{
|
7414 |
+
this.googleCircle = googleCircle;
|
|
|
|
|
|
|
|
|
|
|
7415 |
}
|
|
|
|
|
|
|
7416 |
else
|
7417 |
{
|
7418 |
+
this.googleCircle = new google.maps.Circle();
|
7419 |
+
this.googleCircle.wpgmzaCircle = this;
|
|
|
7420 |
}
|
7421 |
|
7422 |
+
google.maps.event.addListener(this.googleCircle, "click", function() {
|
7423 |
+
self.dispatchEvent({type: "click"});
|
7424 |
+
});
|
|
|
|
|
7425 |
|
7426 |
+
if(options)
|
7427 |
+
this.setOptions(options);
|
7428 |
+
}
|
7429 |
+
|
7430 |
+
WPGMZA.GoogleCircle.prototype = Object.create(WPGMZA.Circle.prototype);
|
7431 |
+
WPGMZA.GoogleCircle.prototype.constructor = WPGMZA.GoogleCircle;
|
7432 |
+
|
7433 |
+
WPGMZA.GoogleCircle.prototype.setCenter = function(center)
|
7434 |
+
{
|
7435 |
+
WPGMZA.Circle.prototype.setCenter.apply(this, arguments);
|
7436 |
|
7437 |
+
this.googleCircle.setCenter(center);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7438 |
}
|
7439 |
|
7440 |
+
WPGMZA.GoogleCircle.prototype.setRadius = function(radius)
|
7441 |
{
|
7442 |
+
WPGMZA.Circle.prototype.setRadius.apply(this, arguments);
|
7443 |
+
|
7444 |
+
this.googleCircle.setRadius(parseFloat(radius) * 1000);
|
7445 |
}
|
7446 |
|
7447 |
+
WPGMZA.GoogleCircle.prototype.setVisible = function(visible)
|
|
|
|
|
|
|
|
|
|
|
|
|
7448 |
{
|
7449 |
+
this.googleCircle.setVisible(visible ? true : false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7450 |
}
|
7451 |
|
7452 |
+
WPGMZA.GoogleCircle.prototype.setOptions = function(options)
|
7453 |
+
{
|
7454 |
+
var googleOptions = {};
|
|
|
|
|
|
|
7455 |
|
7456 |
+
googleOptions = $.extend({}, options);
|
7457 |
+
delete googleOptions.map;
|
7458 |
+
delete googleOptions.center;
|
7459 |
|
7460 |
+
if(options.center)
|
7461 |
+
googleOptions.center = new google.maps.LatLng({
|
7462 |
+
lat: parseFloat(options.center.lat),
|
7463 |
+
lng: parseFloat(options.center.lng)
|
7464 |
+
});
|
7465 |
+
|
7466 |
+
if(options.radius)
|
7467 |
+
googleOptions.radius = parseFloat(options.radius);
|
7468 |
|
7469 |
+
if(options.color)
|
7470 |
+
googleOptions.fillColor = options.color;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7471 |
|
7472 |
+
if(options.opacity)
|
7473 |
+
{
|
7474 |
+
googleOptions.fillOpacity = parseFloat(options.opacity);
|
7475 |
+
googleOptions.strokeOpacity = parseFloat(options.opacity);
|
7476 |
|
7477 |
+
}
|
7478 |
+
|
7479 |
+
this.googleCircle.setOptions(googleOptions);
|
7480 |
+
|
7481 |
+
if(options.map)
|
7482 |
+
options.map.addCircle(this);
|
7483 |
+
}
|
7484 |
+
|
7485 |
+
});
|
7486 |
|
7487 |
+
// js/v8/google-maps/google-geocoder.js
|
7488 |
+
/**
|
7489 |
+
* @namespace WPGMZA
|
7490 |
+
* @module GoogleGeocoder
|
7491 |
+
* @requires WPGMZA.Geocoder
|
7492 |
+
*/
|
7493 |
+
jQuery(function($) {
|
7494 |
+
|
7495 |
+
/**
|
7496 |
+
* Subclass, used when Google is the maps engine. <strong>Please <em>do not</em> call this constructor directly. Always use createInstance rather than instantiating this class directly.</strong> Using createInstance allows this class to be externally extensible.
|
7497 |
+
* @class WPGMZA.GoogleGeocoder
|
7498 |
+
* @constructor WPGMZA.GoogleGeocoder
|
7499 |
+
* @memberof WPGMZA
|
7500 |
+
* @augments WPGMZA.Geocoder
|
7501 |
+
* @see WPGMZA.Geocoder.createInstance
|
7502 |
+
*/
|
7503 |
+
WPGMZA.GoogleGeocoder = function()
|
7504 |
+
{
|
7505 |
+
WPGMZA.Geocoder.call(this);
|
7506 |
}
|
7507 |
|
7508 |
+
WPGMZA.GoogleGeocoder.prototype = Object.create(WPGMZA.Geocoder.prototype);
|
7509 |
+
WPGMZA.GoogleGeocoder.prototype.constructor = WPGMZA.GoogleGeocoder;
|
7510 |
+
|
7511 |
+
WPGMZA.GoogleGeocoder.prototype.getGoogleGeocoder = function()
|
7512 |
{
|
7513 |
+
if(WPGMZA.CloudAPI && WPGMZA.CloudAPI.isBeingUsed)
|
7514 |
+
return new WPGMZA.CloudGeocoder();
|
|
|
7515 |
|
7516 |
+
return new google.maps.Geocoder();
|
7517 |
+
}
|
7518 |
|
7519 |
+
WPGMZA.GoogleGeocoder.prototype.getLatLngFromAddress = function(options, callback)
|
7520 |
+
{
|
7521 |
+
if(!options || !options.address)
|
7522 |
+
throw new Error("No address specified");
|
|
|
|
|
|
|
|
|
|
|
7523 |
|
7524 |
+
if(WPGMZA.isLatLngString(options.address))
|
7525 |
+
return WPGMZA.Geocoder.prototype.getLatLngFromAddress.call(this, options, callback);
|
7526 |
|
7527 |
+
if(options.country)
|
7528 |
+
options.componentRestrictions = {
|
7529 |
+
country: options.country
|
|
|
7530 |
};
|
7531 |
|
7532 |
+
var geocoder = this.getGoogleGeocoder();
|
7533 |
+
|
7534 |
+
geocoder.geocode(options, function(results, status) {
|
7535 |
+
|
7536 |
+
if(status == google.maps.GeocoderStatus.OK || status == WPGMZA.CloudGeocoder.SUCCESS)
|
7537 |
+
{
|
7538 |
+
var location = results[0].geometry.location;
|
7539 |
+
var latLng, bounds = null;
|
7540 |
+
|
7541 |
+
latLng = {
|
7542 |
+
lat: location.lat(),
|
7543 |
+
lng: location.lng()
|
7544 |
+
};
|
7545 |
+
|
7546 |
+
if(bounds = results[0].geometry.bounds)
|
7547 |
+
{
|
7548 |
+
if(bounds instanceof google.maps.LatLngBounds)
|
7549 |
+
bounds = WPGMZA.LatLngBounds.fromGoogleLatLngBounds(results[0].geometry.bounds);
|
7550 |
+
else
|
7551 |
+
bounds = WPGMZA.LatLngBounds.fromGoogleLatLngBoundsLiteral(results[0].geometry.bounds);
|
7552 |
+
}
|
7553 |
+
|
7554 |
+
var results = [
|
7555 |
+
{
|
7556 |
+
geometry: {
|
7557 |
+
location: latLng
|
7558 |
+
},
|
7559 |
+
latLng: latLng,
|
7560 |
+
lat: latLng.lat,
|
7561 |
+
lng: latLng.lng,
|
7562 |
+
bounds: bounds
|
7563 |
+
}
|
7564 |
+
];
|
7565 |
+
|
7566 |
+
callback(results, WPGMZA.Geocoder.SUCCESS);
|
7567 |
+
}
|
7568 |
+
else
|
7569 |
+
{
|
7570 |
+
var nativeStatus = WPGMZA.Geocoder.FAIL;
|
7571 |
+
|
7572 |
+
if(status == google.maps.GeocoderStatus.ZERO_RESULTS)
|
7573 |
+
nativeStatus = WPGMZA.Geocoder.ZERO_RESULTS;
|
7574 |
+
|
7575 |
+
callback(null, nativeStatus);
|
7576 |
+
}
|
7577 |
+
});
|
7578 |
}
|
7579 |
|
7580 |
+
WPGMZA.GoogleGeocoder.prototype.getAddressFromLatLng = function(options, callback)
|
7581 |
{
|
7582 |
+
if(!options || !options.latLng)
|
7583 |
+
throw new Error("No latLng specified");
|
7584 |
|
7585 |
+
var latLng = new WPGMZA.LatLng(options.latLng);
|
7586 |
+
var geocoder = this.getGoogleGeocoder();
|
7587 |
|
7588 |
+
var options = $.extend(options, {
|
7589 |
+
location: {
|
7590 |
+
lat: latLng.lat,
|
7591 |
+
lng: latLng.lng
|
7592 |
+
}
|
7593 |
+
});
|
7594 |
+
delete options.latLng;
|
7595 |
+
|
7596 |
+
geocoder.geocode(options, function(results, status) {
|
7597 |
+
|
7598 |
+
if(status !== "OK")
|
7599 |
+
callback(null, WPGMZA.Geocoder.FAIL);
|
7600 |
+
|
7601 |
+
if(!results || !results.length)
|
7602 |
+
callback([], WPGMZA.Geocoder.NO_RESULTS);
|
7603 |
+
|
7604 |
+
callback([results[0].formatted_address], WPGMZA.Geocoder.SUCCESS);
|
7605 |
+
|
7606 |
+
});
|
7607 |
+
}
|
7608 |
+
|
7609 |
+
});
|
7610 |
|
7611 |
+
// js/v8/google-maps/google-html-overlay.js
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7612 |
/**
|
7613 |
* @namespace WPGMZA
|
7614 |
+
* @module GoogleHTMLOverlay
|
7615 |
+
* @requires WPGMZA
|
7616 |
*/
|
7617 |
jQuery(function($) {
|
7618 |
|
7619 |
+
// https://developers.google.com/maps/documentation/javascript/customoverlays
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7620 |
|
7621 |
+
if(WPGMZA.settings.engine && WPGMZA.settings.engine != "google-maps")
|
7622 |
+
return;
|
7623 |
|
7624 |
+
if(!window.google || !window.google.maps)
|
7625 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7626 |
|
7627 |
+
WPGMZA.GoogleHTMLOverlay = function(map)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7628 |
{
|
7629 |
+
this.element = $("<div class='wpgmza-google-html-overlay'></div>");
|
|
|
|
|
|
|
7630 |
|
7631 |
+
this.visible = true;
|
7632 |
+
this.position = new WPGMZA.LatLng();
|
7633 |
|
7634 |
+
this.setMap(map.googleMap);
|
7635 |
+
this.wpgmzaMap = map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7636 |
}
|
7637 |
|
7638 |
+
WPGMZA.GoogleHTMLOverlay.prototype = new google.maps.OverlayView();
|
7639 |
+
|
7640 |
+
WPGMZA.GoogleHTMLOverlay.prototype.onAdd = function()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7641 |
{
|
7642 |
+
var panes = this.getPanes();
|
7643 |
+
panes.overlayMouseTarget.appendChild(this.element[0]);
|
7644 |
+
|
7645 |
+
/*google.maps.event.addDomListener(this.element, "click", function() {
|
7646 |
+
|
7647 |
+
});*/
|
|
|
|
|
|
|
7648 |
}
|
7649 |
|
7650 |
+
WPGMZA.GoogleHTMLOverlay.prototype.onRemove = function()
|
7651 |
{
|
7652 |
+
if(this.element && $(this.element).parent().length)
|
7653 |
+
{
|
7654 |
+
$(this.element).remove();
|
7655 |
+
this.element = null;
|
7656 |
+
}
|
7657 |
}
|
7658 |
|
7659 |
+
WPGMZA.GoogleHTMLOverlay.prototype.draw = function()
|
7660 |
{
|
7661 |
+
this.updateElementPosition();
|
7662 |
}
|
7663 |
|
7664 |
+
/*WPGMZA.GoogleHTMLOverlay.prototype.setMap = function(map)
|
7665 |
{
|
7666 |
+
if(!(map instanceof WPGMZA.Map))
|
7667 |
+
throw new Error("Map must be an instance of WPGMZA.Map");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7668 |
|
7669 |
+
google.maps.OverlayView.prototype.setMap.call(this, map.googleMap);
|
7670 |
+
|
7671 |
+
this.wpgmzaMap = map;
|
7672 |
+
}*/
|
7673 |
+
|
7674 |
+
/*WPGMZA.GoogleHTMLOverlay.prototype.getVisible = function()
|
7675 |
+
{
|
7676 |
+
return $(this.element).css("display") != "none";
|
7677 |
+
}
|
7678 |
+
|
7679 |
+
WPGMZA.GoogleHTMLOverlay.prototype.setVisible = function(visible)
|
7680 |
+
{
|
7681 |
+
$(this.element).css({
|
7682 |
+
"display": (visible ? "block" : "none")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7683 |
});
|
7684 |
+
}*/
|
7685 |
+
|
7686 |
+
/*WPGMZA.GoogleHTMLOverlay.prototype.getPosition = function()
|
7687 |
+
{
|
7688 |
+
return new WPGMZA.LatLng(this.position);
|
7689 |
}
|
7690 |
|
7691 |
+
WPGMZA.GoogleHTMLOverlay.prototype.setPosition = function(position)
|
7692 |
+
{
|
7693 |
+
if(!(position instanceof WPGMZA.LatLng))
|
7694 |
+
throw new Error("Argument must be an instance of WPGMZA.LatLng");
|
7695 |
+
|
7696 |
+
this.position = position;
|
7697 |
+
this.updateElementPosition();
|
7698 |
+
}*/
|
7699 |
+
|
7700 |
+
WPGMZA.GoogleHTMLOverlay.prototype.updateElementPosition = function()
|
7701 |
+
{
|
7702 |
+
//var pixels = this.wpgmzaMap.latLngToPixels(this.position);
|
7703 |
+
|
7704 |
+
var projection = this.getProjection();
|
7705 |
+
|
7706 |
+
if(!projection)
|
7707 |
+
return;
|
7708 |
+
|
7709 |
+
var pixels = projection.fromLatLngToDivPixel(this.position.toGoogleLatLng());
|
7710 |
+
|
7711 |
+
$(this.element).css({
|
7712 |
+
"left": pixels.x,
|
7713 |
+
"top": pixels.y
|
7714 |
+
});
|
7715 |
+
}
|
7716 |
});
|
7717 |
|
7718 |
+
// js/v8/google-maps/google-info-window.js
|
7719 |
/**
|
7720 |
* @namespace WPGMZA
|
7721 |
+
* @module GoogleInfoWindow
|
7722 |
* @requires WPGMZA.InfoWindow
|
7723 |
* @pro-requires WPGMZA.ProInfoWindow
|
7724 |
*/
|
7726 |
|
7727 |
var Parent;
|
7728 |
|
7729 |
+
WPGMZA.GoogleInfoWindow = function(mapObject)
|
7730 |
{
|
|
|
|
|
7731 |
Parent.call(this, mapObject);
|
7732 |
|
7733 |
+
this.setMapObject(mapObject);
|
|
|
|
|
|
|
|
|
7734 |
}
|
7735 |
|
7736 |
+
WPGMZA.GoogleInfoWindow.Z_INDEX = 99;
|
7737 |
+
|
7738 |
if(WPGMZA.isProVersion())
|
7739 |
Parent = WPGMZA.ProInfoWindow;
|
7740 |
else
|
7741 |
Parent = WPGMZA.InfoWindow;
|
7742 |
|
7743 |
+
WPGMZA.GoogleInfoWindow.prototype = Object.create(Parent.prototype);
|
7744 |
+
WPGMZA.GoogleInfoWindow.prototype.constructor = WPGMZA.GoogleInfoWindow;
|
7745 |
|
7746 |
+
WPGMZA.GoogleInfoWindow.prototype.setMapObject = function(mapObject)
|
7747 |
+
{
|
7748 |
+
if(mapObject instanceof WPGMZA.Marker)
|
7749 |
+
this.googleObject = mapObject.googleMarker;
|
7750 |
+
else if(mapObject instanceof WPGMZA.Polygon)
|
7751 |
+
this.googleObject = mapObject.googlePolygon;
|
7752 |
+
else if(mapObject instanceof WPGMZA.Polyline)
|
7753 |
+
this.googleObject = mapObject.googlePolyline;
|
7754 |
+
}
|
7755 |
+
|
7756 |
+
WPGMZA.GoogleInfoWindow.prototype.createGoogleInfoWindow = function()
|
7757 |
+
{
|
7758 |
+
var self = this;
|
7759 |
|
7760 |
+
if(this.googleInfoWindow)
|
7761 |
+
return;
|
|
|
|
|
7762 |
|
7763 |
+
this.googleInfoWindow = new google.maps.InfoWindow();
|
7764 |
+
|
7765 |
+
this.googleInfoWindow.setZIndex(WPGMZA.GoogleInfoWindow.Z_INDEX);
|
7766 |
+
|
7767 |
+
google.maps.event.addListener(this.googleInfoWindow, "domready", function(event) {
|
7768 |
+
self.trigger("domready");
|
7769 |
+
});
|
7770 |
+
|
7771 |
+
google.maps.event.addListener(this.googleInfoWindow, "closeclick", function(event) {
|
7772 |
+
|
7773 |
+
if(self.state == WPGMZA.InfoWindow.STATE_CLOSED)
|
7774 |
+
return;
|
7775 |
+
|
7776 |
+
self.state = WPGMZA.InfoWindow.STATE_CLOSED;
|
7777 |
+
self.trigger("infowindowclose");
|
7778 |
+
|
7779 |
+
});
|
7780 |
+
}
|
7781 |
|
7782 |
/**
|
7783 |
* Opens the info window
|
|
|
7784 |
* @return boolean FALSE if the info window should not & will not open, TRUE if it will
|
7785 |
*/
|
7786 |
+
WPGMZA.GoogleInfoWindow.prototype.open = function(map, mapObject)
|
7787 |
{
|
7788 |
var self = this;
|
|
|
7789 |
|
7790 |
if(!Parent.prototype.open.call(this, map, mapObject))
|
7791 |
return false;
|
7792 |
|
7793 |
+
// Set parent for events to bubble up to
|
7794 |
this.parent = map;
|
7795 |
|
7796 |
+
this.createGoogleInfoWindow();
|
7797 |
+
this.setMapObject(mapObject);
|
7798 |
+
|
7799 |
+
if(this.googleObject instanceof google.maps.Polygon)
|
7800 |
+
{
|
7801 |
+
|
7802 |
+
}
|
7803 |
+
else{
|
7804 |
+
this.googleInfoWindow.open(
|
7805 |
+
this.mapObject.map.googleMap,
|
7806 |
+
this.googleObject
|
7807 |
+
);
|
7808 |
+
}
|
7809 |
|
7810 |
+
|
|
|
|
|
|
|
|
|
7811 |
|
7812 |
+
var guid = WPGMZA.guid();
|
7813 |
+
var html = "<div id='" + guid + "'>" + this.content + "</div>";
|
7814 |
+
|
7815 |
+
this.googleInfoWindow.setContent(html);
|
7816 |
|
7817 |
+
var intervalID;
|
7818 |
+
intervalID = setInterval(function(event) {
|
7819 |
+
|
7820 |
+
div = $("#" + guid);
|
7821 |
+
|
7822 |
+
if(div.length)
|
7823 |
+
{
|
7824 |
+
clearInterval(intervalID);
|
7825 |
|
7826 |
+
div[0].wpgmzaMapObject = self.mapObject;
|
7827 |
+
div.addClass("wpgmza-infowindow");
|
7828 |
|
7829 |
+
self.element = div[0];
|
7830 |
+
self.trigger("infowindowopen");
|
7831 |
+
}
|
7832 |
+
|
7833 |
+
}, 50);
|
7834 |
|
7835 |
+
return true;
|
|
|
7836 |
}
|
7837 |
|
7838 |
+
WPGMZA.GoogleInfoWindow.prototype.close = function()
|
7839 |
{
|
7840 |
+
if(!this.googleInfoWindow)
|
|
|
|
|
|
|
7841 |
return;
|
7842 |
|
7843 |
WPGMZA.InfoWindow.prototype.close.call(this);
|
7844 |
|
7845 |
+
this.googleInfoWindow.close();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7846 |
}
|
7847 |
|
7848 |
+
WPGMZA.GoogleInfoWindow.prototype.setContent = function(html)
|
7849 |
+
{
|
7850 |
+
Parent.prototype.setContent.call(this, html);
|
7851 |
+
|
7852 |
+
this.content = html;
|
7853 |
+
|
7854 |
+
this.createGoogleInfoWindow();
|
7855 |
+
|
7856 |
+
this.googleInfoWindow.setContent(html);
|
7857 |
+
}
|
7858 |
+
|
7859 |
+
WPGMZA.GoogleInfoWindow.prototype.setOptions = function(options)
|
7860 |
+
{
|
7861 |
+
Parent.prototype.setOptions.call(this, options);
|
7862 |
+
|
7863 |
+
this.createGoogleInfoWindow();
|
7864 |
+
|
7865 |
+
this.googleInfoWindow.setOptions(options);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7866 |
}
|
7867 |
|
7868 |
});
|
7869 |
|
7870 |
+
// js/v8/google-maps/google-map.js
|
7871 |
/**
|
7872 |
* @namespace WPGMZA
|
7873 |
+
* @module GoogleMap
|
7874 |
* @requires WPGMZA.Map
|
7875 |
* @pro-requires WPGMZA.ProMap
|
7876 |
*/
|
7877 |
jQuery(function($) {
|
|
|
7878 |
var Parent;
|
7879 |
|
7880 |
+
/**
|
7881 |
+
* Constructor
|
7882 |
+
* @param element to contain the map
|
7883 |
+
*/
|
7884 |
+
WPGMZA.GoogleMap = function(element, options)
|
7885 |
{
|
7886 |
var self = this;
|
7887 |
|
7888 |
+
Parent.call(this, element, options);
|
7889 |
|
7890 |
+
if(!window.google)
|
7891 |
+
{
|
7892 |
+
var status = WPGMZA.googleAPIStatus;
|
7893 |
+
var message = "Google API not loaded";
|
7894 |
+
|
7895 |
+
if(status && status.message)
|
7896 |
+
message += " - " + status.message;
|
7897 |
+
|
7898 |
+
if(status.code == "USER_CONSENT_NOT_GIVEN")
|
7899 |
+
{
|
7900 |
+
return;
|
7901 |
+
}
|
7902 |
+
|
7903 |
+
$(element).html("<div class='notice notice-error'><p>" + WPGMZA.localized_strings.google_api_not_loaded + "<pre>" + message + "</pre></p></div>");
|
7904 |
+
|
7905 |
+
throw new Error(message);
|
7906 |
+
}
|
7907 |
|
7908 |
+
this.loadGoogleMap();
|
7909 |
|
7910 |
+
if(options)
|
7911 |
+
this.setOptions(options, true);
|
7912 |
+
|
7913 |
+
google.maps.event.addListener(this.googleMap, "click", function(event) {
|
7914 |
+
var wpgmzaEvent = new WPGMZA.Event("click");
|
7915 |
+
wpgmzaEvent.latLng = {
|
7916 |
+
lat: event.latLng.lat(),
|
7917 |
+
lng: event.latLng.lng()
|
7918 |
+
};
|
7919 |
+
self.dispatchEvent(wpgmzaEvent);
|
7920 |
+
});
|
7921 |
|
7922 |
+
google.maps.event.addListener(this.googleMap, "rightclick", function(event) {
|
7923 |
+
var wpgmzaEvent = new WPGMZA.Event("rightclick");
|
7924 |
+
wpgmzaEvent.latLng = {
|
7925 |
+
lat: event.latLng.lat(),
|
7926 |
+
lng: event.latLng.lng()
|
7927 |
+
};
|
7928 |
+
self.dispatchEvent(wpgmzaEvent);
|
7929 |
});
|
7930 |
|
7931 |
+
google.maps.event.addListener(this.googleMap, "dragend", function(event) {
|
7932 |
+
self.dispatchEvent("dragend");
|
7933 |
+
});
|
7934 |
+
|
7935 |
+
google.maps.event.addListener(this.googleMap, "zoom_changed", function(event) {
|
7936 |
+
self.dispatchEvent("zoom_changed");
|
7937 |
+
self.dispatchEvent("zoomchanged");
|
7938 |
+
});
|
7939 |
+
|
7940 |
+
// Idle event
|
7941 |
+
google.maps.event.addListener(this.googleMap, "idle", function(event) {
|
7942 |
+
self.onIdle(event);
|
7943 |
+
});
|
7944 |
+
|
7945 |
+
// Dispatch event
|
7946 |
+
if(!WPGMZA.isProVersion())
|
7947 |
+
{
|
7948 |
+
this.trigger("init");
|
7949 |
|
7950 |
+
this.dispatchEvent("created");
|
7951 |
+
WPGMZA.events.dispatchEvent({type: "mapcreated", map: this});
|
|
|
|
|
|
|
|
|
|
|
7952 |
|
7953 |
+
// Legacy event
|
7954 |
+
$(this.element).trigger("wpgooglemaps_loaded");
|
7955 |
+
}
|
7956 |
+
}
|
7957 |
+
|
7958 |
+
// If we're running the Pro version, inherit from ProMap, otherwise, inherit from Map
|
7959 |
+
if(WPGMZA.isProVersion())
|
7960 |
+
{
|
7961 |
+
Parent = WPGMZA.ProMap;
|
7962 |
+
WPGMZA.GoogleMap.prototype = Object.create(WPGMZA.ProMap.prototype);
|
7963 |
+
}
|
7964 |
+
else
|
7965 |
+
{
|
7966 |
+
Parent = WPGMZA.Map;
|
7967 |
+
WPGMZA.GoogleMap.prototype = Object.create(WPGMZA.Map.prototype);
|
7968 |
+
}
|
7969 |
+
WPGMZA.GoogleMap.prototype.constructor = WPGMZA.GoogleMap;
|
7970 |
+
|
7971 |
+
WPGMZA.GoogleMap.parseThemeData = function(raw)
|
7972 |
+
{
|
7973 |
+
var json;
|
7974 |
|
7975 |
+
try{
|
7976 |
+
json = JSON.parse(raw); // Try to parse strict JSON
|
7977 |
+
}catch(e) {
|
|
|
|
|
7978 |
|
7979 |
+
try{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7980 |
|
7981 |
+
json = eval(raw); // Try to parse JS object
|
7982 |
+
|
7983 |
+
}catch(e) {
|
7984 |
+
|
7985 |
+
var str = raw;
|
7986 |
+
|
7987 |
+
str = str.replace(/\\'/g, '\'');
|
7988 |
+
str = str.replace(/\\"/g, '"');
|
7989 |
+
str = str.replace(/\\0/g, '\0');
|
7990 |
+
str = str.replace(/\\\\/g, '\\');
|
7991 |
+
|
7992 |
+
try{
|
7993 |
|
7994 |
+
json = eval(str);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7995 |
|
7996 |
+
}catch(e) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7997 |
|
7998 |
+
console.warn("Couldn't parse theme data");
|
7999 |
+
|
8000 |
+
return [];
|
|
|
|
|
|
|
8001 |
|
8002 |
+
}
|
8003 |
|
|
|
8004 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8005 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8006 |
}
|
8007 |
|
8008 |
+
return json;
|
8009 |
+
}
|
8010 |
+
|
8011 |
+
/**
|
8012 |
+
* Creates the Google Maps map
|
8013 |
+
* @return void
|
8014 |
+
*/
|
8015 |
+
WPGMZA.GoogleMap.prototype.loadGoogleMap = function()
|
8016 |
+
{
|
8017 |
+
var self = this;
|
8018 |
+
var options = this.settings.toGoogleMapsOptions();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8019 |
|
8020 |
+
this.googleMap = new google.maps.Map(this.engineElement, options);
|
8021 |
+
|
8022 |
+
google.maps.event.addListener(this.googleMap, "bounds_changed", function() {
|
8023 |
self.onBoundsChanged();
|
8024 |
});
|
|
|
8025 |
|
8026 |
+
if(this.settings.bicycle == 1)
|
8027 |
+
this.enableBicycleLayer(true);
|
8028 |
+
if(this.settings.traffic == 1)
|
8029 |
+
this.enableTrafficLayer(true);
|
8030 |
+
if(this.settings.transport == 1)
|
8031 |
+
this.enablePublicTransportLayer(true);
|
8032 |
+
this.showPointsOfInterest(this.settings.show_point_of_interest);
|
8033 |
+
|
8034 |
+
// Move the loading wheel into the map element (it has to live outside in the HTML file because it'll be overwritten by Google otherwise)
|
8035 |
+
$(this.engineElement).append($(this.element).find(".wpgmza-loader"));
|
8036 |
+
}
|
8037 |
+
|
8038 |
+
WPGMZA.GoogleMap.prototype.setOptions = function(options, initializing)
|
8039 |
+
{
|
8040 |
+
Parent.prototype.setOptions.call(this, options);
|
8041 |
+
|
8042 |
+
if(options.scrollwheel)
|
8043 |
+
delete options.scrollwheel; // NB: Delete this when true, scrollwheel: true breaks gesture handling
|
8044 |
+
|
8045 |
+
if(!initializing)
|
8046 |
{
|
8047 |
+
this.googleMap.setOptions(options);
|
8048 |
+
return;
|
8049 |
}
|
8050 |
|
8051 |
+
var converted = $.extend(options, this.settings.toGoogleMapsOptions());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8052 |
|
8053 |
+
var clone = $.extend({}, converted);
|
8054 |
+
if(!clone.center instanceof google.maps.LatLng && (clone.center instanceof WPGMZA.LatLng || typeof clone.center == "object"))
|
8055 |
+
clone.center = {
|
8056 |
+
lat: parseFloat(clone.center.lat),
|
8057 |
+
lng: parseFloat(clone.center.lng)
|
8058 |
+
};
|
8059 |
+
|
8060 |
+
if(this.settings.wpgmza_hide_point_of_interest == "1")
|
8061 |
{
|
8062 |
+
var noPoi = {
|
8063 |
+
featureType: "poi",
|
8064 |
+
elementType: "labels",
|
8065 |
+
stylers: [
|
8066 |
+
{
|
8067 |
+
visibility: "off"
|
8068 |
+
}
|
8069 |
+
]
|
8070 |
+
};
|
8071 |
|
8072 |
+
if(!clone.styles)
|
8073 |
+
clone.styles = [];
|
8074 |
|
8075 |
+
clone.styles.push(noPoi);
|
|
|
8076 |
}
|
8077 |
+
|
8078 |
+
this.googleMap.setOptions(clone);
|
8079 |
}
|
|
|
|
|
|
|
|
|
|
|
8080 |
|
8081 |
+
/**
|
8082 |
+
* Adds the specified marker to this map
|
8083 |
+
* @return void
|
8084 |
+
*/
|
8085 |
+
WPGMZA.GoogleMap.prototype.addMarker = function(marker)
|
8086 |
+
{
|
8087 |
+
marker.googleMarker.setMap(this.googleMap);
|
8088 |
+
|
8089 |
+
Parent.prototype.addMarker.call(this, marker);
|
8090 |
+
}
|
8091 |
|
8092 |
+
/**
|
8093 |
+
* Removes the specified marker from this map
|
8094 |
+
* @return void
|
8095 |
+
*/
|
8096 |
+
WPGMZA.GoogleMap.prototype.removeMarker = function(marker) {
|
8097 |
+
|
8098 |
+
marker.googleMarker.setMap(null);
|
8099 |
+
|
8100 |
+
Parent.prototype.removeMarker.call(this, marker);
|
8101 |
+
}
|
8102 |
+
|
8103 |
+
/**
|
8104 |
+
* Adds the specified polygon to this map
|
8105 |
+
* @return void
|
8106 |
+
*/
|
8107 |
+
WPGMZA.GoogleMap.prototype.addPolygon = function(polygon)
|
8108 |
{
|
8109 |
+
polygon.googlePolygon.setMap(this.googleMap);
|
8110 |
|
8111 |
+
Parent.prototype.addPolygon.call(this, polygon);
|
8112 |
+
}
|
8113 |
+
|
8114 |
+
/**
|
8115 |
+
* Removes the specified polygon from this map
|
8116 |
+
* @return void
|
8117 |
+
*/
|
8118 |
+
WPGMZA.GoogleMap.prototype.removePolygon = function(polygon)
|
8119 |
+
{
|
8120 |
+
polygon.googlePolygon.setMap(null);
|
8121 |
|
8122 |
+
Parent.prototype.removePolygon.call(this, polygon);
|
|
|
|
|
8123 |
}
|
8124 |
|
8125 |
+
/**
|
8126 |
+
* Adds the specified polyline to this map
|
8127 |
+
* @return void
|
8128 |
+
*/
|
8129 |
+
WPGMZA.GoogleMap.prototype.addPolyline = function(polyline)
|
8130 |
{
|
8131 |
+
polyline.googlePolyline.setMap(this.googleMap);
|
|
|
|
|
|
|
|
|
8132 |
|
8133 |
+
Parent.prototype.addPolyline.call(this, polyline);
|
8134 |
+
}
|
8135 |
+
|
8136 |
+
/**
|
8137 |
+
* Removes the specified polygon from this map
|
8138 |
+
* @return void
|
8139 |
+
*/
|
8140 |
+
WPGMZA.GoogleMap.prototype.removePolyline = function(polyline)
|
8141 |
+
{
|
8142 |
+
polyline.googlePolyline.setMap(null);
|
8143 |
|
8144 |
+
Parent.prototype.removePolyline.call(this, polyline);
|
8145 |
+
}
|
8146 |
+
|
8147 |
+
WPGMZA.GoogleMap.prototype.addCircle = function(circle)
|
8148 |
+
{
|
8149 |
+
circle.googleCircle.setMap(this.googleMap);
|
8150 |
|
8151 |
+
Parent.prototype.addCircle.call(this, circle);
|
8152 |
+
}
|
8153 |
+
|
8154 |
+
WPGMZA.GoogleMap.prototype.removeCircle = function(circle)
|
8155 |
+
{
|
8156 |
+
circle.googleCircle.setMap(null);
|
8157 |
|
8158 |
+
Parent.prototype.removeCircle.call(this, circle);
|
8159 |
+
}
|
8160 |
+
|
8161 |
+
WPGMZA.GoogleMap.prototype.addRectangle = function(rectangle)
|
8162 |
+
{
|
8163 |
+
rectangle.googleRectangle.setMap(this.googleMap);
|
8164 |
+
|
8165 |
+
Parent.prototype.addRectangle.call(this, rectangle);
|
8166 |
+
}
|
8167 |
+
|
8168 |
+
WPGMZA.GoogleMap.prototype.removeRectangle = function(rectangle)
|
8169 |
+
{
|
8170 |
+
rectangle.googleRectangle.setMap(null);
|
8171 |
+
|
8172 |
+
Parent.prototype.removeRectangle.call(this, rectangle);
|
8173 |
+
}
|
8174 |
+
|
8175 |
+
/**
|
8176 |
+
* Delegate for google maps getCenter
|
8177 |
+
* @return void
|
8178 |
+
*/
|
8179 |
+
WPGMZA.GoogleMap.prototype.getCenter = function()
|
8180 |
+
{
|
8181 |
+
var latLng = this.googleMap.getCenter();
|
8182 |
+
|
8183 |
+
return {
|
8184 |
+
lat: latLng.lat(),
|
8185 |
+
lng: latLng.lng()
|
8186 |
+
};
|
8187 |
+
}
|
8188 |
+
|
8189 |
+
/**
|
8190 |
+
* Delegate for google maps setCenter
|
8191 |
+
* @return void
|
8192 |
+
*/
|
8193 |
+
WPGMZA.GoogleMap.prototype.setCenter = function(latLng)
|
8194 |
+
{
|
8195 |
+
WPGMZA.Map.prototype.setCenter.call(this, latLng);
|
8196 |
+
|
8197 |
+
if(latLng instanceof WPGMZA.LatLng)
|
8198 |
+
this.googleMap.setCenter({
|
8199 |
+
lat: latLng.lat,
|
8200 |
+
lng: latLng.lng
|
8201 |
+
});
|
8202 |
+
else
|
8203 |
+
this.googleMap.setCenter(latLng);
|
8204 |
+
}
|
8205 |
+
|
8206 |
+
/**
|
8207 |
+
* Delegate for google maps setPan
|
8208 |
+
* @return void
|
8209 |
+
*/
|
8210 |
+
WPGMZA.GoogleMap.prototype.panTo = function(latLng)
|
8211 |
+
{
|
8212 |
+
if(latLng instanceof WPGMZA.LatLng)
|
8213 |
+
this.googleMap.panTo({
|
8214 |
+
lat: latLng.lat,
|
8215 |
+
lng: latLng.lng
|
8216 |
+
});
|
8217 |
+
else
|
8218 |
+
this.googleMap.panTo(latLng);
|
8219 |
}
|
8220 |
|
8221 |
+
/**
|
8222 |
+
* Delegate for google maps getCenter
|
8223 |
+
* @return void
|
8224 |
+
*/
|
8225 |
+
WPGMZA.GoogleMap.prototype.getZoom = function()
|
8226 |
{
|
8227 |
+
return this.googleMap.getZoom();
|
|
|
|
|
|
|
|
|
|
|
|
|
8228 |
}
|
8229 |
|
8230 |
+
/**
|
8231 |
+
* Delegate for google maps getZoom
|
8232 |
+
* @return void
|
8233 |
+
*/
|
8234 |
+
WPGMZA.GoogleMap.prototype.setZoom = function(value)
|
8235 |
{
|
8236 |
+
if(isNaN(value))
|
8237 |
+
throw new Error("Value must not be NaN");
|
|
|
|
|
|
|
|
|
|
|
|
|
8238 |
|
8239 |
+
return this.googleMap.setZoom(parseInt(value));
|
|
|
|
|
8240 |
}
|
8241 |
|
8242 |
+
/**
|
8243 |
+
* Gets the bounds
|
8244 |
+
* @return object
|
8245 |
+
*/
|
8246 |
+
WPGMZA.GoogleMap.prototype.getBounds = function()
|
8247 |
{
|
8248 |
+
var bounds = this.googleMap.getBounds();
|
8249 |
+
var northEast = bounds.getNorthEast();
|
8250 |
+
var southWest = bounds.getSouthWest();
|
8251 |
|
8252 |
+
var nativeBounds = new WPGMZA.LatLngBounds({});
|
|
|
8253 |
|
8254 |
+
nativeBounds.north = northEast.lat();
|
8255 |
+
nativeBounds.south = southWest.lat();
|
8256 |
+
nativeBounds.west = southWest.lng();
|
8257 |
+
nativeBounds.east = northEast.lng();
|
8258 |
|
8259 |
+
// Backward compatibility
|
8260 |
+
nativeBounds.topLeft = {
|
8261 |
+
lat: northEast.lat(),
|
8262 |
+
lng: southWest.lng()
|
8263 |
+
};
|
8264 |
+
|
8265 |
+
nativeBounds.bottomRight = {
|
8266 |
+
lat: southWest.lat(),
|
8267 |
+
lng: northEast.lng()
|
8268 |
+
};
|
8269 |
|
8270 |
return nativeBounds;
|
8271 |
}
|
8274 |
* Fit to given boundaries
|
8275 |
* @return void
|
8276 |
*/
|
8277 |
+
WPGMZA.GoogleMap.prototype.fitBounds = function(southWest, northEast)
|
8278 |
{
|
8279 |
if(southWest instanceof WPGMZA.LatLng)
|
8280 |
southWest = {lat: southWest.lat, lng: southWest.lng};
|
8295 |
};
|
8296 |
}
|
8297 |
|
8298 |
+
var nativeBounds = new google.maps.LatLngBounds(southWest, northEast);
|
8299 |
+
this.googleMap.fitBounds(nativeBounds);
|
8300 |
+
}
|
8301 |
+
|
8302 |
+
/**
|
8303 |
+
* Fit the map boundaries to visible markers
|
8304 |
+
* @return void
|
8305 |
+
*/
|
8306 |
+
WPGMZA.GoogleMap.prototype.fitBoundsToVisibleMarkers = function()
|
8307 |
+
{
|
8308 |
+
var bounds = new google.maps.LatLngBounds();
|
8309 |
+
for(var i = 0; i < this.markers.length; i++)
|
8310 |
+
{
|
8311 |
+
if(markers[i].getVisible())
|
8312 |
+
bounds.extend(markers[i].getPosition());
|
8313 |
+
}
|
8314 |
+
this.googleMap.fitBounds(bounds);
|
8315 |
+
}
|
8316 |
+
|
8317 |
+
/**
|
8318 |
+
* Enables / disables the bicycle layer
|
8319 |
+
* @param enable boolean, enable or not
|
8320 |
+
* @return void
|
8321 |
+
*/
|
8322 |
+
WPGMZA.GoogleMap.prototype.enableBicycleLayer = function(enable)
|
8323 |
+
{
|
8324 |
+
if(!this.bicycleLayer)
|
8325 |
+
this.bicycleLayer = new google.maps.BicyclingLayer();
|
8326 |
|
8327 |
+
this.bicycleLayer.setMap(
|
8328 |
+
enable ? this.googleMap : null
|
8329 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8330 |
}
|
8331 |
|
8332 |
+
/**
|
8333 |
+
* Enables / disables the bicycle layer
|
8334 |
+
* @param enable boolean, enable or not
|
8335 |
+
* @return void
|
8336 |
+
*/
|
8337 |
+
WPGMZA.GoogleMap.prototype.enableTrafficLayer = function(enable)
|
8338 |
{
|
8339 |
+
if(!this.trafficLayer)
|
8340 |
+
this.trafficLayer = new google.maps.TrafficLayer();
|
|
|
|
|
|
|
|
|
|
|
|
|
8341 |
|
8342 |
+
this.trafficLayer.setMap(
|
8343 |
+
enable ? this.googleMap : null
|
8344 |
+
);
|
8345 |
+
}
|
8346 |
+
|
8347 |
+
/**
|
8348 |
+
* Enables / disables the bicycle layer
|
8349 |
+
* @param enable boolean, enable or not
|
8350 |
+
* @return void
|
8351 |
+
*/
|
8352 |
+
WPGMZA.GoogleMap.prototype.enablePublicTransportLayer = function(enable)
|
8353 |
+
{
|
8354 |
+
if(!this.publicTransportLayer)
|
8355 |
+
this.publicTransportLayer = new google.maps.TransitLayer();
|
8356 |
|
8357 |
+
this.publicTransportLayer.setMap(
|
8358 |
+
enable ? this.googleMap : null
|
8359 |
+
);
|
8360 |
}
|
8361 |
|
8362 |
+
/**
|
8363 |
+
* Shows / hides points of interest
|
8364 |
+
* @param show boolean, enable or not
|
8365 |
+
* @return void
|
8366 |
+
*/
|
8367 |
+
WPGMZA.GoogleMap.prototype.showPointsOfInterest = function(show)
|
8368 |
{
|
8369 |
+
// TODO: This will bug the front end because there is no textarea with theme data
|
8370 |
+
var text = $("textarea[name='theme_data']").val();
|
8371 |
+
|
8372 |
+
if(!text)
|
8373 |
+
return;
|
8374 |
+
|
8375 |
+
var styles = JSON.parse(text);
|
8376 |
+
|
8377 |
+
styles.push({
|
8378 |
+
featureType: "poi",
|
8379 |
+
stylers: [
|
8380 |
+
{
|
8381 |
+
visibility: (show ? "on" : "off")
|
8382 |
+
}
|
8383 |
+
]
|
8384 |
+
});
|
8385 |
+
|
8386 |
+
this.googleMap.setOptions({styles: styles});
|
8387 |
}
|
8388 |
|
8389 |
+
/**
|
8390 |
+
* Gets the min zoom of the map
|
8391 |
+
* @return int
|
8392 |
+
*/
|
8393 |
+
WPGMZA.GoogleMap.prototype.getMinZoom = function()
|
8394 |
{
|
8395 |
+
return parseInt(this.settings.min_zoom);
|
8396 |
+
}
|
8397 |
+
|
8398 |
+
/**
|
8399 |
+
* Sets the min zoom of the map
|
8400 |
+
* @return void
|
8401 |
+
*/
|
8402 |
+
WPGMZA.GoogleMap.prototype.setMinZoom = function(value)
|
8403 |
+
{
|
8404 |
+
this.googleMap.setOptions({
|
8405 |
+
minZoom: value,
|
8406 |
+
maxZoom: this.getMaxZoom()
|
8407 |
+
});
|
8408 |
+
}
|
8409 |
+
|
8410 |
+
/**
|
8411 |
+
* Gets the min zoom of the map
|
8412 |
+
* @return int
|
8413 |
+
*/
|
8414 |
+
WPGMZA.GoogleMap.prototype.getMaxZoom = function()
|
8415 |
+
{
|
8416 |
+
return parseInt(this.settings.max_zoom);
|
8417 |
+
}
|
8418 |
+
|
8419 |
+
/**
|
8420 |
+
* Sets the min zoom of the map
|
8421 |
+
* @return void
|
8422 |
+
*/
|
8423 |
+
WPGMZA.GoogleMap.prototype.setMaxZoom = function(value)
|
8424 |
+
{
|
8425 |
+
this.googleMap.setOptions({
|
8426 |
+
minZoom: this.getMinZoom(),
|
8427 |
+
maxZoom: value
|
8428 |
+
});
|
8429 |
+
}
|
8430 |
+
|
8431 |
+
WPGMZA.GoogleMap.prototype.latLngToPixels = function(latLng)
|
8432 |
+
{
|
8433 |
+
var map = this.googleMap;
|
8434 |
+
var nativeLatLng = new google.maps.LatLng({
|
8435 |
+
lat: parseFloat(latLng.lat),
|
8436 |
+
lng: parseFloat(latLng.lng)
|
8437 |
+
});
|
8438 |
+
var topRight = map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast());
|
8439 |
+
var bottomLeft = map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest());
|
8440 |
+
var scale = Math.pow(2, map.getZoom());
|
8441 |
+
var worldPoint = map.getProjection().fromLatLngToPoint(nativeLatLng);
|
8442 |
+
return {
|
8443 |
+
x: (worldPoint.x - bottomLeft.x) * scale,
|
8444 |
+
y: (worldPoint.y - topRight.y) * scale
|
8445 |
+
};
|
8446 |
+
}
|
8447 |
+
|
8448 |
+
WPGMZA.GoogleMap.prototype.pixelsToLatLng = function(x, y)
|
8449 |
+
{
|
8450 |
+
if(y == undefined)
|
8451 |
+
{
|
8452 |
+
if("x" in x && "y" in x)
|
8453 |
+
{
|
8454 |
+
y = x.y;
|
8455 |
+
x = x.x;
|
8456 |
+
}
|
8457 |
+
else
|
8458 |
+
console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)");
|
8459 |
+
}
|
8460 |
+
|
8461 |
+
var map = this.googleMap;
|
8462 |
+
var topRight = map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast());
|
8463 |
+
var bottomLeft = map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest());
|
8464 |
+
var scale = Math.pow(2, map.getZoom());
|
8465 |
+
var worldPoint = new google.maps.Point(x / scale + bottomLeft.x, y / scale + topRight.y);
|
8466 |
+
var latLng = map.getProjection().fromPointToLatLng(worldPoint);
|
8467 |
+
return {
|
8468 |
+
lat: latLng.lat(),
|
8469 |
+
lng: latLng.lng()
|
8470 |
+
};
|
8471 |
}
|
8472 |
|
8473 |
+
/**
|
8474 |
+
* Handle the map element resizing
|
8475 |
+
* @return void
|
8476 |
+
*/
|
8477 |
+
WPGMZA.GoogleMap.prototype.onElementResized = function(event)
|
8478 |
{
|
8479 |
+
if(!this.googleMap)
|
8480 |
+
return;
|
8481 |
+
google.maps.event.trigger(this.googleMap, "resize");
|
8482 |
}
|
8483 |
+
|
8484 |
+
WPGMZA.GoogleMap.prototype.enableAllInteractions = function()
|
8485 |
+
{
|
8486 |
+
var options = {};
|
8487 |
+
|
8488 |
+
options.scrollwheel = true;
|
8489 |
+
options.draggable = true;
|
8490 |
+
options.disableDoubleClickZoom = false;
|
8491 |
+
|
8492 |
+
this.googleMap.setOptions(options);
|
8493 |
}
|
8494 |
|
8495 |
+
});
|
8496 |
+
|
8497 |
+
// js/v8/google-maps/google-marker.js
|
8498 |
+
/**
|
8499 |
+
* @namespace WPGMZA
|
8500 |
+
* @module GoogleMarker
|
8501 |
+
* @requires WPGMZA.Marker
|
8502 |
+
* @pro-requires WPGMZA.ProMarker
|
8503 |
+
*/
|
8504 |
+
jQuery(function($) {
|
8505 |
|
8506 |
+
var Parent;
|
|
|
|
|
|
|
8507 |
|
8508 |
+
WPGMZA.GoogleMarker = function(row)
|
8509 |
{
|
8510 |
+
var self = this;
|
8511 |
|
8512 |
+
Parent.call(this, row);
|
|
|
8513 |
|
8514 |
+
this._opacity = 1.0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8515 |
|
8516 |
+
var settings = {};
|
8517 |
+
if(row)
|
|
|
|
|
|
|
|
|
|
|
|
|
8518 |
{
|
8519 |
+
for(var name in row)
|
8520 |
+
{
|
8521 |
+
if(row[name] instanceof WPGMZA.LatLng)
|
8522 |
+
{
|
8523 |
+
settings[name] = row[name].toGoogleLatLng();
|
8524 |
+
}
|
8525 |
+
else if(row[name] instanceof WPGMZA.Map || name == "icon")
|
8526 |
+
{
|
8527 |
+
// NB: Ignore map here, it's not a google.maps.Map, Google would throw an exception
|
8528 |
+
// NB: Ignore icon here, it conflicts with updateIcon in Pro
|
8529 |
+
}
|
8530 |
+
else
|
8531 |
+
settings[name] = row[name];
|
8532 |
+
}
|
8533 |
}
|
8534 |
|
8535 |
+
this.googleMarker = new google.maps.Marker(settings);
|
8536 |
+
this.googleMarker.wpgmzaMarker = this;
|
|
|
|
|
|
|
|
|
8537 |
|
8538 |
+
this.googleMarker.setPosition(new google.maps.LatLng({
|
8539 |
+
lat: parseFloat(this.lat),
|
8540 |
+
lng: parseFloat(this.lng)
|
8541 |
+
}));
|
8542 |
+
|
8543 |
+
// this.googleMarker.setLabel(this.settings.label);
|
8544 |
|
8545 |
+
if(this.anim)
|
8546 |
+
this.googleMarker.setAnimation(this.anim);
|
8547 |
+
if(this.animation)
|
8548 |
+
this.googleMarker.setAnimation(this.animation);
|
8549 |
+
|
8550 |
+
google.maps.event.addListener(this.googleMarker, "click", function() {
|
8551 |
+
self.dispatchEvent("click");
|
8552 |
+
self.dispatchEvent("select");
|
8553 |
+
});
|
8554 |
|
8555 |
+
google.maps.event.addListener(this.googleMarker, "mouseover", function() {
|
8556 |
+
self.dispatchEvent("mouseover");
|
8557 |
+
});
|
|
|
|
|
|
|
8558 |
|
8559 |
+
google.maps.event.addListener(this.googleMarker, "dragend", function() {
|
8560 |
+
var googleMarkerPosition = self.googleMarker.getPosition();
|
8561 |
+
|
8562 |
+
self.setPosition({
|
8563 |
+
lat: googleMarkerPosition.lat(),
|
8564 |
+
lng: googleMarkerPosition.lng()
|
8565 |
+
});
|
8566 |
+
|
8567 |
+
self.dispatchEvent({
|
8568 |
+
type: "dragend",
|
8569 |
+
latLng: self.getPosition()
|
8570 |
+
});
|
8571 |
+
});
|
8572 |
|
8573 |
+
this.trigger("init");
|
8574 |
}
|
8575 |
|
8576 |
+
if(WPGMZA.isProVersion())
|
8577 |
+
Parent = WPGMZA.ProMarker;
|
8578 |
+
else
|
8579 |
+
Parent = WPGMZA.Marker;
|
8580 |
+
WPGMZA.GoogleMarker.prototype = Object.create(Parent.prototype);
|
8581 |
+
WPGMZA.GoogleMarker.prototype.constructor = WPGMZA.GoogleMarker;
|
8582 |
+
|
8583 |
+
Object.defineProperty(WPGMZA.GoogleMarker.prototype, "opacity", {
|
8584 |
|
8585 |
+
"get": function() {
|
8586 |
+
return this._opacity;
|
8587 |
+
},
|
8588 |
+
|
8589 |
+
"set": function(value) {
|
8590 |
+
this._opacity = value;
|
8591 |
+
this.googleMarker.setOpacity(value);
|
8592 |
+
}
|
8593 |
+
|
8594 |
+
});
|
8595 |
|
8596 |
+
WPGMZA.GoogleMarker.prototype.setLabel = function(label)
|
8597 |
{
|
8598 |
+
if(!label)
|
8599 |
+
{
|
8600 |
+
this.googleMarker.setLabel(null);
|
8601 |
+
return;
|
8602 |
+
}
|
8603 |
|
8604 |
+
this.googleMarker.setLabel({
|
8605 |
+
text: label
|
8606 |
+
});
|
8607 |
+
|
8608 |
+
if(!this.googleMarker.getIcon())
|
8609 |
+
this.googleMarker.setIcon(WPGMZA.settings.default_marker_icon);
|
8610 |
}
|
8611 |
|
8612 |
+
/**
|
8613 |
+
* Sets the position of the marker
|
8614 |
+
* @return void
|
8615 |
+
*/
|
8616 |
+
WPGMZA.GoogleMarker.prototype.setPosition = function(latLng)
|
8617 |
{
|
8618 |
+
Parent.prototype.setPosition.call(this, latLng);
|
8619 |
+
this.googleMarker.setPosition({
|
8620 |
+
lat: this.lat,
|
8621 |
+
lng: this.lng
|
8622 |
+
});
|
8623 |
}
|
8624 |
|
8625 |
+
/**
|
8626 |
+
* Sets the position offset of a marker
|
8627 |
+
* @return void
|
8628 |
+
*/
|
8629 |
+
WPGMZA.GoogleMarker.prototype.updateOffset = function()
|
8630 |
{
|
8631 |
+
var self = this;
|
8632 |
+
var icon = this.googleMarker.getIcon();
|
8633 |
+
var img = new Image();
|
8634 |
+
var params;
|
8635 |
+
var x = this._offset.x;
|
8636 |
+
var y = this._offset.y;
|
|
|
|
|
|
|
|
|
8637 |
|
8638 |
+
if(!icon)
|
8639 |
+
icon = WPGMZA.settings.default_marker_icon;
|
8640 |
|
8641 |
+
if(typeof icon == "string")
|
8642 |
+
params = {
|
8643 |
+
url: icon
|
8644 |
+
};
|
8645 |
+
else
|
8646 |
+
params = icon;
|
8647 |
+
|
8648 |
+
img.onload = function()
|
8649 |
+
{
|
8650 |
+
var defaultAnchor = {
|
8651 |
+
x: img.width / 2,
|
8652 |
+
y: img.height
|
8653 |
};
|
8654 |
+
|
8655 |
+
params.anchor = new google.maps.Point(defaultAnchor.x - x, defaultAnchor.y - y);
|
8656 |
+
|
8657 |
+
self.googleMarker.setIcon(params);
|
8658 |
+
}
|
8659 |
|
8660 |
+
img.src = params.url;
|
|
|
|
|
|
|
|
|
8661 |
}
|
8662 |
|
8663 |
+
WPGMZA.GoogleMarker.prototype.setOptions = function(options)
|
8664 |
{
|
8665 |
+
this.googleMarker.setOptions(options);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8666 |
}
|
8667 |
|
8668 |
+
/**
|
8669 |
+
* Set the marker animation
|
8670 |
+
* @return void
|
8671 |
+
*/
|
8672 |
+
WPGMZA.GoogleMarker.prototype.setAnimation = function(animation)
|
8673 |
{
|
8674 |
+
Parent.prototype.setAnimation.call(this, animation);
|
8675 |
+
this.googleMarker.setAnimation(animation);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8676 |
}
|
8677 |
|
8678 |
+
/**
|
8679 |
+
* Sets the visibility of the marker
|
8680 |
+
* @return void
|
8681 |
+
*/
|
8682 |
+
WPGMZA.GoogleMarker.prototype.setVisible = function(visible)
|
8683 |
{
|
8684 |
+
Parent.prototype.setVisible.call(this, visible);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8685 |
|
8686 |
+
this.googleMarker.setVisible(visible ? true : false);
|
|
|
|
|
8687 |
}
|
8688 |
|
8689 |
+
WPGMZA.GoogleMarker.prototype.getVisible = function(visible)
|
8690 |
{
|
8691 |
+
return this.googleMarker.getVisible();
|
8692 |
}
|
8693 |
|
8694 |
+
WPGMZA.GoogleMarker.prototype.setDraggable = function(draggable)
|
8695 |
{
|
8696 |
+
this.googleMarker.setDraggable(draggable);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8697 |
}
|
8698 |
+
|
8699 |
+
WPGMZA.GoogleMarker.prototype.setOpacity = function(opacity)
|
8700 |
+
{
|
8701 |
+
this.googleMarker.setOpacity(opacity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8702 |
}
|
8703 |
|
8704 |
});
|
8705 |
|
8706 |
+
// js/v8/google-maps/google-modern-store-locator-circle.js
|
8707 |
/**
|
8708 |
* @namespace WPGMZA
|
8709 |
+
* @module GoogleModernStoreLocatorCircle
|
8710 |
+
* @requires WPGMZA.ModernStoreLocatorCircle
|
|
|
8711 |
*/
|
8712 |
jQuery(function($) {
|
8713 |
|
8714 |
+
WPGMZA.GoogleModernStoreLocatorCircle = function(map, settings)
|
|
|
|
|
8715 |
{
|
8716 |
var self = this;
|
8717 |
|
8718 |
+
WPGMZA.ModernStoreLocatorCircle.call(this, map, settings);
|
|
|
|
|
|
|
|
|
|
|
8719 |
|
8720 |
+
this.intervalID = setInterval(function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8721 |
|
8722 |
+
var mapSize = {
|
8723 |
+
width: $(self.mapElement).width(),
|
8724 |
+
height: $(self.mapElement).height()
|
8725 |
+
};
|
8726 |
|
8727 |
+
if(mapSize.width == self.mapSize.width && mapSize.height == self.mapSize.height)
|
8728 |
+
return;
|
|
|
8729 |
|
8730 |
+
self.canvasLayer.resize_();
|
8731 |
+
self.canvasLayer.draw();
|
|
|
|
|
|
|
|
|
|
|
8732 |
|
8733 |
+
self.mapSize = mapSize;
|
|
|
8734 |
|
8735 |
+
}, 1000);
|
8736 |
+
|
8737 |
+
$(document).bind('webkitfullscreenchange mozfullscreenchange fullscreenchange', function() {
|
8738 |
|
8739 |
+
self.canvasLayer.resize_();
|
8740 |
+
self.canvasLayer.draw();
|
|
|
|
|
|
|
8741 |
|
8742 |
+
});
|
8743 |
+
}
|
8744 |
+
|
8745 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype = Object.create(WPGMZA.ModernStoreLocatorCircle.prototype);
|
8746 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.constructor = WPGMZA.GoogleModernStoreLocatorCircle;
|
8747 |
+
|
8748 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.initCanvasLayer = function()
|
8749 |
+
{
|
8750 |
+
var self = this;
|
8751 |
+
|
8752 |
+
if(this.canvasLayer)
|
8753 |
{
|
8754 |
+
this.canvasLayer.setMap(null);
|
8755 |
+
this.canvasLayer.setAnimate(false);
|
|
|
|
|
|
|
|
|
8756 |
}
|
|
|
|
|
8757 |
|
8758 |
+
this.canvasLayer = new CanvasLayer({
|
8759 |
+
map: this.map.googleMap,
|
8760 |
+
resizeHandler: function(event) {
|
8761 |
+
self.onResize(event);
|
8762 |
+
},
|
8763 |
+
updateHandler: function(event) {
|
8764 |
+
self.onUpdate(event);
|
8765 |
+
},
|
8766 |
+
animate: true,
|
8767 |
+
resolutionScale: this.getResolutionScale()
|
8768 |
+
});
|
8769 |
+
}
|
8770 |
+
|
8771 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.setOptions = function(options)
|
8772 |
+
{
|
8773 |
+
WPGMZA.ModernStoreLocatorCircle.prototype.setOptions.call(this, options);
|
8774 |
+
|
8775 |
+
this.canvasLayer.scheduleUpdate();
|
8776 |
+
}
|
8777 |
+
|
8778 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.setPosition = function(position)
|
8779 |
+
{
|
8780 |
+
WPGMZA.ModernStoreLocatorCircle.prototype.setPosition.call(this, position);
|
8781 |
+
|
8782 |
+
this.canvasLayer.scheduleUpdate();
|
8783 |
+
}
|
8784 |
+
|
8785 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.setRadius = function(radius)
|
8786 |
+
{
|
8787 |
+
WPGMZA.ModernStoreLocatorCircle.prototype.setRadius.call(this, radius);
|
8788 |
+
|
8789 |
+
this.canvasLayer.scheduleUpdate();
|
8790 |
+
}
|
8791 |
+
|
8792 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getTransformedRadius = function(km)
|
8793 |
+
{
|
8794 |
+
var multiplierAtEquator = 0.006395;
|
8795 |
+
var spherical = google.maps.geometry.spherical;
|
8796 |
+
|
8797 |
+
var center = this.settings.center;
|
8798 |
+
var equator = new WPGMZA.LatLng({
|
8799 |
+
lat: 0.0,
|
8800 |
+
lng: 0.0
|
8801 |
+
});
|
8802 |
+
var latitude = new WPGMZA.LatLng({
|
8803 |
+
lat: center.lat,
|
8804 |
+
lng: 0.0
|
8805 |
+
});
|
8806 |
+
|
8807 |
+
var offsetAtEquator = spherical.computeOffset(equator.toGoogleLatLng(), km * 1000, 90);
|
8808 |
+
var offsetAtLatitude = spherical.computeOffset(latitude.toGoogleLatLng(), km * 1000, 90);
|
8809 |
+
|
8810 |
+
var factor = offsetAtLatitude.lng() / offsetAtEquator.lng();
|
8811 |
+
var result = km * multiplierAtEquator * factor;
|
8812 |
+
|
8813 |
+
if(isNaN(result))
|
8814 |
+
throw new Error("here");
|
8815 |
+
|
8816 |
+
return result;
|
8817 |
}
|
8818 |
|
8819 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCanvasDimensions = function()
|
8820 |
+
{
|
8821 |
+
return {
|
8822 |
+
width: this.canvasLayer.canvas.width,
|
8823 |
+
height: this.canvasLayer.canvas.height
|
8824 |
+
};
|
8825 |
+
}
|
8826 |
|
8827 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getWorldOriginOffset = function()
|
8828 |
+
{
|
8829 |
+
var projection = this.map.googleMap.getProjection();
|
8830 |
+
var position = projection.fromLatLngToPoint(this.canvasLayer.getTopLeft());
|
8831 |
+
|
8832 |
+
return {
|
8833 |
+
x: -position.x,
|
8834 |
+
y: -position.y
|
8835 |
+
};
|
8836 |
+
}
|
8837 |
|
8838 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCenterPixels = function()
|
8839 |
+
{
|
8840 |
+
var center = new WPGMZA.LatLng(this.settings.center);
|
8841 |
+
var projection = this.map.googleMap.getProjection();
|
8842 |
+
return projection.fromLatLngToPoint(center.toGoogleLatLng());
|
8843 |
+
}
|
8844 |
|
8845 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getContext = function(type)
|
8846 |
{
|
8847 |
+
return this.canvasLayer.canvas.getContext("2d");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8848 |
}
|
8849 |
|
8850 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.getScale = function()
|
8851 |
{
|
8852 |
+
return Math.pow(2, this.map.getZoom()) * this.getResolutionScale();
|
|
|
|
|
|
|
8853 |
}
|
8854 |
|
8855 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.setVisible = function(visible)
|
8856 |
{
|
8857 |
+
WPGMZA.ModernStoreLocatorCircle.prototype.setVisible.call(this, visible);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8858 |
|
8859 |
+
this.canvasLayer.scheduleUpdate();
|
8860 |
}
|
8861 |
|
8862 |
+
WPGMZA.GoogleModernStoreLocatorCircle.prototype.destroy = function()
|
8863 |
{
|
8864 |
+
this.canvasLayer.setMap(null);
|
8865 |
+
this.canvasLayer = null;
|
8866 |
+
|
8867 |
+
clearInterval(this.intervalID);
|
8868 |
}
|
8869 |
|
8870 |
+
});
|
8871 |
+
|
8872 |
+
// js/v8/google-maps/google-modern-store-locator.js
|
8873 |
+
/**
|
8874 |
+
* @namespace WPGMZA
|
8875 |
+
* @module GoogleModernStoreLocator
|
8876 |
+
* @requires WPGMZA.ModernStoreLocator
|
8877 |
+
*/
|
8878 |
+
jQuery(function($) {
|
8879 |
+
|
8880 |
+
WPGMZA.GoogleModernStoreLocator = function(map_id)
|
8881 |
{
|
8882 |
+
var googleMap, self = this;
|
|
|
|
|
|
|
|
|
8883 |
|
8884 |
+
this.map = WPGMZA.getMapByID(map_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
8885 |
|
8886 |
+
WPGMZA.ModernStoreLocator.call(this, map_id);
|
8887 |
+
|
8888 |
+
var options = {
|
8889 |
+
fields: ["name", "formatted_address"],
|
8890 |
+
types: ["geocode"]
|
8891 |
+
};
|
8892 |
+
var restrict = wpgmaps_localize[map_id]["other_settings"]["wpgmza_store_locator_restrict"];
|
8893 |
+
|
8894 |
+
this.addressInput = $(this.element).find(".addressInput, #addressInput")[0];
|
8895 |
+
|
8896 |
+
if(this.addressInput)
|
8897 |
{
|
8898 |
+
if(restrict && restrict.length)
|
8899 |
+
options.componentRestrictions = {
|
8900 |
+
country: restrict
|
8901 |
+
};
|
8902 |
+
|
8903 |
+
this.autoComplete = new google.maps.places.Autocomplete(
|
8904 |
+
this.addressInput,
|
8905 |
+
options
|
8906 |
+
);
|
8907 |
}
|
8908 |
|
8909 |
+
// Positioning for Google
|
8910 |
+
this.map.googleMap.controls[google.maps.ControlPosition.TOP_CENTER].push(this.element);
|
8911 |
}
|
8912 |
|
8913 |
+
WPGMZA.GoogleModernStoreLocator.prototype = Object.create(WPGMZA.ModernStoreLocator.prototype);
|
8914 |
+
WPGMZA.GoogleModernStoreLocator.prototype.constructor = WPGMZA.GoogleModernStoreLocator;
|
8915 |
+
|
8916 |
+
});
|
8917 |
+
|
8918 |
+
// js/v8/google-maps/google-polygon.js
|
8919 |
+
/**
|
8920 |
+
* @namespace WPGMZA
|
8921 |
+
* @module GooglePolygon
|
8922 |
+
* @requires WPGMZA.Polygon
|
8923 |
+
* @pro-requires WPGMZA.ProPolygon
|
8924 |
+
*/
|
8925 |
+
jQuery(function($) {
|
8926 |
+
|
8927 |
+
var Parent;
|
8928 |
+
|
8929 |
+
WPGMZA.GooglePolygon = function(options, googlePolygon)
|
8930 |
{
|
8931 |
+
var self = this;
|
8932 |
+
|
8933 |
+
Parent.call(this, options, googlePolygon);
|
8934 |
+
|
8935 |
+
if(googlePolygon)
|
8936 |
{
|
8937 |
+
this.googlePolygon = googlePolygon;
|
8938 |
}
|
8939 |
else
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8940 |
{
|
8941 |
+
this.googlePolygon = new google.maps.Polygon();
|
8942 |
+
|
8943 |
+
if(options)
|
8944 |
{
|
8945 |
+
var googleOptions = $.extend({}, options);
|
8946 |
+
|
8947 |
+
if(options.polydata)
|
8948 |
+
googleOptions.paths = this.parseGeometry(options.polydata);
|
8949 |
+
|
8950 |
+
if(options.linecolor)
|
8951 |
+
googleOptions.strokeColor = "#" + options.linecolor;
|
8952 |
+
|
8953 |
+
if(options.lineopacity)
|
8954 |
+
googleOptions.strokeOpacity = parseFloat(options.lineopacity);
|
8955 |
+
|
8956 |
+
if(options.fillcolor)
|
8957 |
+
googleOptions.fillColor = "#" + options.fillcolor;
|
8958 |
+
|
8959 |
+
if(options.opacity)
|
8960 |
+
googleOptions.fillOpacity = parseFloat(options.opacity);
|
8961 |
+
|
8962 |
+
this.googlePolygon.setOptions(googleOptions);
|
8963 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8964 |
}
|
8965 |
+
|
8966 |
+
this.googlePolygon.wpgmzaPolygon = this;
|
8967 |
+
|
8968 |
+
google.maps.event.addListener(this.googlePolygon, "click", function() {
|
8969 |
+
self.dispatchEvent({type: "click"});
|
8970 |
+
});
|
8971 |
}
|
8972 |
|
8973 |
+
if(WPGMZA.isProVersion())
|
8974 |
+
Parent = WPGMZA.ProPolygon;
|
8975 |
+
else
|
8976 |
+
Parent = WPGMZA.Polygon;
|
8977 |
|
8978 |
+
WPGMZA.GooglePolygon.prototype = Object.create(Parent.prototype);
|
8979 |
+
WPGMZA.GooglePolygon.prototype.constructor = WPGMZA.GooglePolygon;
|
|
|
|
|
8980 |
|
8981 |
+
/**
|
8982 |
+
* Returns true if the polygon is editable
|
8983 |
+
* @return void
|
8984 |
+
*/
|
8985 |
+
WPGMZA.GooglePolygon.prototype.getEditable = function()
|
8986 |
+
{
|
8987 |
+
return this.googlePolygon.getOptions().editable;
|
8988 |
}
|
8989 |
|
8990 |
+
/**
|
8991 |
+
* Sets the editable state of the polygon
|
8992 |
+
* @return void
|
8993 |
+
*/
|
8994 |
+
WPGMZA.GooglePolygon.prototype.setEditable = function(value)
|
8995 |
{
|
8996 |
+
this.googlePolygon.setOptions({editable: value});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8997 |
}
|
8998 |
|
8999 |
+
/**
|
9000 |
+
* Returns the polygon represented by a JSON object
|
9001 |
+
* @return object
|
9002 |
+
*/
|
9003 |
+
WPGMZA.GooglePolygon.prototype.toJSON = function()
|
9004 |
{
|
9005 |
+
var result = WPGMZA.Polygon.prototype.toJSON.call(this);
|
|
|
|
|
|
|
|
|
9006 |
|
9007 |
+
result.points = [];
|
9008 |
|
9009 |
+
// TODO: Support holes using multiple paths
|
9010 |
+
var path = this.googlePolygon.getPath();
|
9011 |
+
for(var i = 0; i < path.getLength(); i++)
|
9012 |
{
|
9013 |
+
var latLng = path.getAt(i);
|
9014 |
+
result.points.push({
|
9015 |
+
lat: latLng.lat(),
|
9016 |
+
lng: latLng.lng()
|
9017 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
9018 |
}
|
9019 |
+
|
9020 |
+
return result;
|
9021 |
}
|
9022 |
|
9023 |
+
});
|
9024 |
+
|
9025 |
+
// js/v8/google-maps/google-polyline.js
|
9026 |
+
/**
|
9027 |
+
* @namespace WPGMZA
|
9028 |
+
* @module GooglePolyline
|
9029 |
+
* @requires WPGMZA.Polyline
|
9030 |
+
*/
|
9031 |
+
jQuery(function($) {
|
9032 |
+
|
9033 |
+
WPGMZA.GooglePolyline = function(options, googlePolyline)
|
9034 |
{
|
9035 |
var self = this;
|
9036 |
|
9037 |
+
WPGMZA.Polyline.call(this, options, googlePolyline);
|
9038 |
+
|
9039 |
+
if(googlePolyline)
|
9040 |
{
|
9041 |
+
this.googlePolyline = googlePolyline;
|
|
|
9042 |
}
|
9043 |
+
else
|
|
|
9044 |
{
|
9045 |
+
this.googlePolyline = new google.maps.Polyline(this.settings);
|
|
|
|
|
9046 |
|
9047 |
+
if(options)
|
9048 |
{
|
9049 |
+
var googleOptions = $.extend({}, options);
|
|
|
|
|
9050 |
|
9051 |
+
if(options.polydata)
|
9052 |
+
googleOptions.path = this.parseGeometry(options.polydata);
|
9053 |
+
|
9054 |
+
if(options.linecolor)
|
9055 |
+
googleOptions.strokeColor = "#" + options.linecolor;
|
9056 |
+
|
9057 |
+
if(options.linethickness)
|
9058 |
+
googleOptions.strokeWeight = parseInt(options.linethickness);
|
9059 |
+
|
9060 |
+
if(options.opacity)
|
9061 |
+
googleOptions.strokeOpacity = parseFloat(options.opacity);
|
9062 |
}
|
9063 |
|
9064 |
+
if(options && options.polydata)
|
9065 |
+
{
|
9066 |
+
var path = this.parseGeometry(options.polydata);
|
9067 |
+
this.setPoints(path);
|
9068 |
+
}
|
9069 |
}
|
9070 |
+
|
9071 |
+
this.googlePolyline.wpgmzaPolyline = this;
|
9072 |
+
|
9073 |
+
google.maps.event.addListener(this.googlePolyline, "click", function() {
|
9074 |
+
self.dispatchEvent({type: "click"});
|
9075 |
+
});
|
9076 |
}
|
9077 |
|
9078 |
+
WPGMZA.GooglePolyline.prototype = Object.create(WPGMZA.Polyline.prototype);
|
9079 |
+
WPGMZA.GooglePolyline.prototype.constructor = WPGMZA.GooglePolyline;
|
9080 |
+
|
9081 |
+
WPGMZA.GooglePolyline.prototype.setEditable = function(value)
|
9082 |
{
|
9083 |
+
this.googlePolyline.setOptions({editable: value});
|
9084 |
+
}
|
9085 |
+
|
9086 |
+
WPGMZA.GooglePolyline.prototype.setPoints = function(points)
|
9087 |
+
{
|
9088 |
+
this.googlePolyline.setOptions({path: points});
|
9089 |
+
}
|
9090 |
+
|
9091 |
+
WPGMZA.GooglePolyline.prototype.toJSON = function()
|
9092 |
+
{
|
9093 |
+
var result = WPGMZA.Polyline.prototype.toJSON.call(this);
|
9094 |
+
|
9095 |
+
result.points = [];
|
9096 |
+
|
9097 |
+
var path = this.googlePolyline.getPath();
|
9098 |
+
for(var i = 0; i < path.getLength(); i++)
|
9099 |
{
|
9100 |
+
var latLng = path.getAt(i);
|
9101 |
+
result.points.push({
|
9102 |
+
lat: latLng.lat(),
|
9103 |
+
lng: latLng.lng()
|
9104 |
+
});
|
9105 |
}
|
9106 |
|
9107 |
+
return result;
|
9108 |
}
|
9109 |
|
9110 |
+
});
|
9111 |
+
|
9112 |
+
// js/v8/google-maps/google-text.js
|
9113 |
+
/**
|
9114 |
+
* @namespace WPGMZA
|
9115 |
+
* @module GoogleText
|
9116 |
+
* @requires WPGMZA.Text
|
9117 |
+
*/
|
9118 |
+
jQuery(function($) {
|
9119 |
+
|
9120 |
+
WPGMZA.GoogleText = function(options)
|
9121 |
{
|
9122 |
+
WPGMZA.Text.apply(this, arguments);
|
9123 |
|
9124 |
+
this.overlay = new WPGMZA.GoogleTextOverlay(options);
|
|
|
|
|
|
|
|
|
|
|
9125 |
}
|
9126 |
|
9127 |
+
WPGMZA.extend(WPGMZA.GoogleText, WPGMZA.Text);
|
9128 |
+
|
9129 |
+
});
|
9130 |
+
|
9131 |
+
// js/v8/google-maps/google-text-overlay.js
|
9132 |
+
/**
|
9133 |
+
* @namespace WPGMZA
|
9134 |
+
* @module GoogleTextOverlay
|
9135 |
+
* @requires WPGMZA.GoogleText
|
9136 |
+
*/
|
9137 |
+
jQuery(function($) {
|
9138 |
+
|
9139 |
+
WPGMZA.GoogleTextOverlay = function(options)
|
9140 |
{
|
9141 |
+
this.element = $("<div class='wpgmza-google-text-overlay'><div class='wpgmza-inner'></div></div>");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9142 |
|
9143 |
+
if(!options)
|
9144 |
+
options = {};
|
|
|
|
|
|
|
|
|
|
|
9145 |
|
9146 |
+
if(options.position)
|
9147 |
+
this.position = options.position;
|
9148 |
|
9149 |
+
if(options.text)
|
9150 |
+
this.element.find(".wpgmza-inner").text(options.text);
|
9151 |
|
9152 |
+
if(options.map)
|
9153 |
+
this.setMap(options.map.googleMap);
|
|
|
|
|
|
|
|
|
|
|
|
|
9154 |
}
|
9155 |
|
9156 |
+
if(window.google && google.maps && google.maps.OverlayView)
|
9157 |
+
WPGMZA.GoogleTextOverlay.prototype = new google.maps.OverlayView();
|
9158 |
+
|
9159 |
+
WPGMZA.GoogleTextOverlay.prototype.onAdd = function()
|
9160 |
{
|
9161 |
+
var overlayProjection = this.getProjection();
|
9162 |
+
var position = overlayProjection.fromLatLngToDivPixel(this.position.toGoogleLatLng());
|
9163 |
|
9164 |
+
this.element.css({
|
9165 |
+
position: "absolute",
|
9166 |
+
left: position.x + "px",
|
9167 |
+
top: position.y + "px"
|
9168 |
+
});
|
9169 |
+
|
9170 |
+
var panes = this.getPanes();
|
9171 |
+
panes.floatPane.appendChild(this.element[0]);
|
9172 |
+
}
|
9173 |
+
|
9174 |
+
WPGMZA.GoogleTextOverlay.prototype.draw = function()
|
9175 |
+
{
|
9176 |
+
var overlayProjection = this.getProjection();
|
9177 |
+
var position = overlayProjection.fromLatLngToDivPixel(this.position.toGoogleLatLng());
|
9178 |
|
9179 |
+
this.element.css({
|
9180 |
+
position: "absolute",
|
9181 |
+
left: position.x + "px",
|
9182 |
+
top: position.y + "px"
|
9183 |
+
});
|
9184 |
}
|
9185 |
|
9186 |
+
WPGMZA.GoogleTextOverlay.prototype.onRemove = function()
|
|
|
|
|
|
|
|
|
9187 |
{
|
9188 |
+
this.element.remove();
|
9189 |
+
}
|
9190 |
+
|
9191 |
+
WPGMZA.GoogleTextOverlay.prototype.hide = function()
|
9192 |
+
{
|
9193 |
+
this.element.hide();
|
9194 |
+
}
|
9195 |
+
|
9196 |
+
WPGMZA.GoogleTextOverlay.prototype.show = function()
|
9197 |
+
{
|
9198 |
+
this.element.show();
|
9199 |
+
}
|
9200 |
+
|
9201 |
+
WPGMZA.GoogleTextOverlay.prototype.toggle = function()
|
9202 |
+
{
|
9203 |
+
if(this.element.is(":visible"))
|
9204 |
+
this.element.hide();
|
9205 |
+
else
|
9206 |
+
this.element.show();
|
9207 |
}
|
9208 |
|
9209 |
});
|
9210 |
|
9211 |
+
// js/v8/google-maps/google-vertex-context-menu.js
|
9212 |
/**
|
9213 |
* @namespace WPGMZA
|
9214 |
+
* @module GoogleVertexContextMenu
|
9215 |
+
* @requires wpgmza_api_call
|
9216 |
*/
|
9217 |
jQuery(function($) {
|
9218 |
|
9219 |
+
if(WPGMZA.settings.engine != "google-maps")
|
9220 |
+
return;
|
|
|
|
|
9221 |
|
9222 |
+
if(WPGMZA.googleAPIStatus && WPGMZA.googleAPIStatus.code == "USER_CONSENT_NOT_GIVEN")
|
9223 |
+
return;
|
9224 |
|
9225 |
+
WPGMZA.GoogleVertexContextMenu = function(mapEditPage)
|
9226 |
{
|
9227 |
var self = this;
|
|
|
|
|
9228 |
|
9229 |
+
this.mapEditPage = mapEditPage;
|
|
|
|
|
9230 |
|
9231 |
+
this.element = document.createElement("div");
|
9232 |
+
this.element.className = "wpgmza-vertex-context-menu";
|
9233 |
+
this.element.innerHTML = "Delete";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9234 |
|
9235 |
+
google.maps.event.addDomListener(this.element, "click", function(event) {
|
9236 |
+
self.removeVertex();
|
9237 |
+
event.preventDefault();
|
9238 |
+
event.stopPropagation();
|
9239 |
+
return false;
|
9240 |
+
});
|
9241 |
}
|
9242 |
|
9243 |
+
WPGMZA.GoogleVertexContextMenu.prototype = new google.maps.OverlayView();
|
|
|
|
|
|
|
|
|
|
|
|
|
9244 |
|
9245 |
+
WPGMZA.GoogleVertexContextMenu.prototype.onAdd = function()
|
9246 |
{
|
9247 |
+
var self = this;
|
9248 |
+
var map = this.getMap();
|
|
|
|
|
9249 |
|
9250 |
+
this.getPanes().floatPane.appendChild(this.element);
|
9251 |
+
this.divListener = google.maps.event.addDomListener(map.getDiv(), "mousedown", function(e) {
|
9252 |
+
if(e.target != self.element)
|
9253 |
+
self.close();
|
9254 |
+
}, true);
|
|
|
9255 |
}
|
9256 |
|
9257 |
+
WPGMZA.GoogleVertexContextMenu.prototype.onRemove = function()
|
9258 |
{
|
9259 |
+
google.maps.event.removeListener(this.divListener);
|
9260 |
+
this.element.parentNode.removeChild(this.element);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9261 |
|
9262 |
+
this.set("position");
|
9263 |
+
this.set("path");
|
9264 |
+
this.set("vertex");
|
9265 |
}
|
9266 |
|
9267 |
+
WPGMZA.GoogleVertexContextMenu.prototype.open = function(map, path, vertex)
|
9268 |
{
|
9269 |
+
this.set('position', path.getAt(vertex));
|
9270 |
+
this.set('path', path);
|
9271 |
+
this.set('vertex', vertex);
|
9272 |
+
this.setMap(map);
|
9273 |
+
this.draw();
|
9274 |
}
|
9275 |
|
9276 |
+
WPGMZA.GoogleVertexContextMenu.prototype.close = function()
|
9277 |
{
|
9278 |
+
this.setMap(null);
|
|
|
|
|
|
|
|
|
9279 |
}
|
9280 |
|
9281 |
+
WPGMZA.GoogleVertexContextMenu.prototype.draw = function()
|
9282 |
+
{
|
9283 |
+
var position = this.get('position');
|
9284 |
+
var projection = this.getProjection();
|
9285 |
|
9286 |
+
if (!position || !projection)
|
9287 |
+
return;
|
9288 |
+
|
9289 |
+
var point = projection.fromLatLngToDivPixel(position);
|
9290 |
+
this.element.style.top = point.y + 'px';
|
9291 |
+
this.element.style.left = point.x + 'px';
|
9292 |
+
}
|
9293 |
|
9294 |
+
WPGMZA.GoogleVertexContextMenu.prototype.removeVertex = function()
|
9295 |
{
|
9296 |
+
var path = this.get('path');
|
9297 |
+
var vertex = this.get('vertex');
|
9298 |
+
|
9299 |
+
if (!path || vertex == undefined) {
|
9300 |
+
this.close();
|
9301 |
+
return;
|
9302 |
+
}
|
9303 |
+
|
9304 |
+
path.removeAt(vertex);
|
9305 |
+
this.close();
|
9306 |
}
|
9307 |
|
|
|
|
|
|
|
9308 |
});
|
9309 |
|
9310 |
+
// js/v8/open-layers/ol-circle.js
|
9311 |
/**
|
9312 |
* @namespace WPGMZA
|
9313 |
+
* @module OLCircle
|
9314 |
+
* @requires WPGMZA.Circle
|
|
|
9315 |
*/
|
9316 |
jQuery(function($) {
|
9317 |
|
9318 |
+
var Parent = WPGMZA.Circle;
|
9319 |
|
9320 |
+
WPGMZA.OLCircle = function(options, olFeature)
|
9321 |
{
|
9322 |
var self = this;
|
9323 |
|
9324 |
+
this.center = {lat: 0, lng: 0};
|
9325 |
+
this.radius = 0;
|
9326 |
+
|
9327 |
+
this.fillcolor = "#ff0000";
|
9328 |
+
this.opacity = 0.6;
|
9329 |
+
|
9330 |
Parent.call(this, options, olFeature);
|
9331 |
|
9332 |
+
this.olStyle = new ol.style.Style(this.getStyleFromSettings());
|
9333 |
+
|
9334 |
+
this.vectorLayer3857 = this.layer = new ol.layer.Vector({
|
9335 |
+
source: new ol.source.Vector(),
|
9336 |
+
style: this.olStyle
|
9337 |
+
});
|
9338 |
|
9339 |
if(olFeature)
|
|
|
9340 |
this.olFeature = olFeature;
|
|
|
9341 |
else
|
9342 |
+
this.recreate();
|
9343 |
+
}
|
9344 |
+
|
9345 |
+
WPGMZA.OLCircle.prototype = Object.create(Parent.prototype);
|
9346 |
+
WPGMZA.OLCircle.prototype.constructor = WPGMZA.OLCircle;
|
9347 |
+
|
9348 |
+
WPGMZA.OLCircle.prototype.recreate = function()
|
9349 |
+
{
|
9350 |
+
if(this.olFeature)
|
9351 |
{
|
9352 |
+
this.layer.getSource().removeFeature(this.olFeature);
|
9353 |
+
delete this.olFeature;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9354 |
}
|
9355 |
|
9356 |
+
if(!this.center || !this.radius)
|
9357 |
+
return;
|
|
|
|
|
|
|
|
|
9358 |
|
9359 |
+
// IMPORTANT: Please note that due to what appears to be a bug in OpenLayers, the following code MUST be exected specifically in this order, or the circle won't appear
|
9360 |
+
var radius = parseFloat(this.radius) * 1000 / 2;
|
9361 |
+
var x, y;
|
9362 |
+
|
9363 |
+
x = this.center.lng;
|
9364 |
+
y = this.center.lat;
|
9365 |
+
|
9366 |
+
var circle4326 = ol.geom.Polygon.circular([x, y], radius, 64);
|
9367 |
+
var circle3857 = circle4326.clone().transform('EPSG:4326', 'EPSG:3857');
|
9368 |
+
|
9369 |
+
this.olFeature = new ol.Feature(circle3857);
|
9370 |
+
|
9371 |
+
this.layer.getSource().addFeature(this.olFeature);
|
9372 |
+
}
|
9373 |
+
|
9374 |
+
WPGMZA.OLCircle.prototype.getStyleFromSettings = function()
|
9375 |
{
|
9376 |
var params = {};
|
9377 |
|
9378 |
+
/*if(this.settings.strokeOpacity)
|
9379 |
params.stroke = new ol.style.Stroke({
|
9380 |
+
color: WPGMZA.hexOpacityToRGBA(this.settings.strokeColor, this.settings.strokeOpacity)
|
9381 |
+
});*/
|
9382 |
|
9383 |
if(this.opacity)
|
9384 |
params.fill = new ol.style.Fill({
|
9385 |
+
color: WPGMZA.hexOpacityToRGBA(this.fillColor, this.opacity)
|
9386 |
});
|
9387 |
|
9388 |
return params;
|
9389 |
}
|
9390 |
|
9391 |
+
WPGMZA.OLCircle.prototype.updateStyleFromSettings = function()
|
9392 |
{
|
9393 |
// Re-create the style - working on it directly doesn't cause a re-render
|
9394 |
var params = this.getStyleFromSettings();
|
9396 |
this.layer.setStyle(this.olStyle);
|
9397 |
}
|
9398 |
|
9399 |
+
WPGMZA.OLCircle.prototype.setVisible = function(visible)
|
9400 |
{
|
9401 |
+
this.layer.setVisible(visible ? true : false);
|
9402 |
}
|
9403 |
|
9404 |
+
WPGMZA.OLCircle.prototype.setCenter = function(center)
|
9405 |
{
|
9406 |
+
WPGMZA.Circle.prototype.setCenter.apply(this, arguments);
|
|
|
|
|
|
|
9407 |
|
9408 |
+
this.recreate();
|
9409 |
+
}
|
9410 |
+
|
9411 |
+
WPGMZA.OLCircle.prototype.setRadius = function(radius)
|
9412 |
+
{
|
9413 |
+
WPGMZA.Circle.prototype.setRadius.apply(this, arguments);
|
|
|
|
|
|
|
9414 |
|
9415 |
+
this.recreate();
|
9416 |
}
|
9417 |
|
9418 |
});
|
9419 |
|
9420 |
+
// js/v8/open-layers/ol-geocoder.js
|
9421 |
/**
|
9422 |
* @namespace WPGMZA
|
9423 |
+
* @module OLGeocoder
|
9424 |
+
* @requires WPGMZA.Geocoder
|
9425 |
*/
|
9426 |
jQuery(function($) {
|
9427 |
|
9428 |
+
/**
|
9429 |
+
* @class OLGeocoder
|
9430 |
+
* @extends Geocoder
|
9431 |
+
* @summary OpenLayers geocoder - uses Nominatim by default
|
9432 |
+
*/
|
9433 |
+
WPGMZA.OLGeocoder = function()
|
9434 |
{
|
|
|
|
|
|
|
|
|
|
|
9435 |
|
9436 |
+
}
|
9437 |
+
|
9438 |
+
WPGMZA.OLGeocoder.prototype = Object.create(WPGMZA.Geocoder.prototype);
|
9439 |
+
WPGMZA.OLGeocoder.prototype.constructor = WPGMZA.OLGeocoder;
|
9440 |
+
|
9441 |
+
/**
|
9442 |
+
* @function getResponseFromCache
|
9443 |
+
* @access protected
|
9444 |
+
* @summary Tries to retrieve cached coordinates from server cache
|
9445 |
+
* @param {string} address The street address to geocode
|
9446 |
+
* @param {function} callback Where to send the results, as an array
|
9447 |
+
* @return {void}
|
9448 |
+
*/
|
9449 |
+
WPGMZA.OLGeocoder.prototype.getResponseFromCache = function(query, callback)
|
9450 |
+
{
|
9451 |
+
WPGMZA.restAPI.call("/geocode-cache", {
|
9452 |
+
data: {
|
9453 |
+
query: JSON.stringify(query)
|
9454 |
+
},
|
9455 |
+
success: function(response, xhr, status) {
|
9456 |
+
// Legacy compatibility support
|
9457 |
+
response.lng = response.lon;
|
9458 |
|
9459 |
+
callback(response);
|
9460 |
+
},
|
9461 |
+
useCompressedPathVariable: true
|
9462 |
+
});
|
9463 |
+
|
9464 |
+
/*$.ajax(WPGMZA.ajaxurl, {
|
9465 |
+
data: {
|
9466 |
+
action: "wpgmza_query_nominatim_cache",
|
9467 |
+
query: JSON.stringify(query)
|
9468 |
+
},
|
9469 |
+
success: function(response, xhr, status) {
|
9470 |
+
// Legacy compatibility support
|
9471 |
+
response.lng = response.lon;
|
9472 |
|
9473 |
+
callback(response);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9474 |
}
|
9475 |
+
});*/
|
9476 |
+
}
|
9477 |
+
|
9478 |
+
/**
|
9479 |
+
* @function getResponseFromNominatim
|
9480 |
+
* @access protected
|
9481 |
+
* @summary Queries Nominatim on the specified address
|
9482 |
+
* @param {object} options An object containing the options for geocoding, address is a mandatory field
|
9483 |
+
* @param {function} callback The function to send the results to, as an array
|
9484 |
+
*/
|
9485 |
+
WPGMZA.OLGeocoder.prototype.getResponseFromNominatim = function(options, callback)
|
9486 |
+
{
|
9487 |
+
var data = {
|
9488 |
+
q: options.address,
|
9489 |
+
format: "json"
|
9490 |
+
};
|
9491 |
|
9492 |
+
if(options.componentRestrictions && options.componentRestrictions.country)
|
9493 |
+
data.countrycodes = options.componentRestrictions.country;
|
|
|
|
|
|
|
|
|
9494 |
|
9495 |
+
$.ajax("https://nominatim.openstreetmap.org/search/", {
|
9496 |
+
data: data,
|
9497 |
+
success: function(response, xhr, status) {
|
9498 |
+
callback(response);
|
9499 |
+
},
|
9500 |
+
error: function(response, xhr, status) {
|
9501 |
+
callback(null, WPGMZA.Geocoder.FAIL)
|
9502 |
+
}
|
9503 |
});
|
9504 |
}
|
9505 |
|
9506 |
+
/**
|
9507 |
+
* @function cacheResponse
|
9508 |
+
* @access protected
|
9509 |
+
* @summary Caches a response on the server, usually after it's been returned from Nominatim
|
9510 |
+
* @param {string} address The street address
|
9511 |
+
* @param {object|array} response The response to cache
|
9512 |
+
* @returns {void}
|
9513 |
+
*/
|
9514 |
+
WPGMZA.OLGeocoder.prototype.cacheResponse = function(query, response)
|
9515 |
{
|
9516 |
+
$.ajax(WPGMZA.ajaxurl, {
|
9517 |
+
data: {
|
9518 |
+
action: "wpgmza_store_nominatim_cache",
|
9519 |
+
query: JSON.stringify(query),
|
9520 |
+
response: JSON.stringify(response)
|
9521 |
+
},
|
9522 |
+
method: "POST"
|
9523 |
+
});
|
9524 |
+
}
|
9525 |
+
|
9526 |
+
/**
|
9527 |
+
* @function clearCache
|
9528 |
+
* @access protected
|
9529 |
+
* @summary Clears the Nomanatim geocode cache
|
9530 |
+
* @returns {void}
|
9531 |
+
*/
|
9532 |
+
WPGMZA.OLGeocoder.prototype.clearCache = function(callback)
|
9533 |
+
{
|
9534 |
+
$.ajax(WPGMZA.ajaxurl, {
|
9535 |
+
data: {
|
9536 |
+
action: "wpgmza_clear_nominatim_cache"
|
9537 |
+
},
|
9538 |
+
method: "POST",
|
9539 |
+
success: function(response){
|
9540 |
+
callback(response);
|
9541 |
+
}
|
9542 |
+
});
|
9543 |
}
|
9544 |
|
9545 |
+
WPGMZA.OLGeocoder.prototype.getLatLngFromAddress = function(options, callback)
|
9546 |
{
|
9547 |
+
return WPGMZA.OLGeocoder.prototype.geocode(options, callback);
|
|
|
|
|
|
|
9548 |
}
|
9549 |
|
9550 |
+
WPGMZA.OLGeocoder.prototype.getAddressFromLatLng = function(options, callback)
|
9551 |
{
|
9552 |
+
return WPGMZA.OLGeocoder.prototype.geocode(options, callback);
|
9553 |
}
|
9554 |
|
9555 |
+
WPGMZA.OLGeocoder.prototype.geocode = function(options, callback)
|
9556 |
{
|
9557 |
+
var self = this;
|
|
|
|
|
|
|
9558 |
|
9559 |
+
if(!options)
|
9560 |
+
throw new Error("Invalid options");
|
|
|
|
|
|
|
9561 |
|
9562 |
+
if(WPGMZA.LatLng.REGEXP.test(options.address))
|
9563 |
+
{
|
9564 |
+
var latLng = WPGMZA.LatLng.fromString(options.address);
|
9565 |
+
|
9566 |
+
callback([{
|
9567 |
+
geometry: {
|
9568 |
+
location: latLng
|
9569 |
+
},
|
9570 |
+
latLng: latLng,
|
9571 |
+
lat: latLng.lat,
|
9572 |
+
lng: latLng.lng
|
9573 |
+
}], WPGMZA.Geocoder.SUCCESS);
|
9574 |
+
|
9575 |
+
return;
|
9576 |
+
}
|
9577 |
|
9578 |
+
if(options.location)
|
9579 |
+
options.latLng = new WPGMZA.LatLng(options.location);
|
|
|
|
|
|
|
|
|
|
|
9580 |
|
9581 |
+
var finish, location;
|
9582 |
|
9583 |
+
if(options.address)
|
9584 |
{
|
9585 |
+
location = options.address;
|
9586 |
+
|
9587 |
+
finish = function(response, status)
|
9588 |
+
{
|
9589 |
+
for(var i = 0; i < response.length; i++)
|
9590 |
+
{
|
9591 |
+
response[i].geometry = {
|
9592 |
+
location: new WPGMZA.LatLng({
|
9593 |
+
lat: parseFloat(response[i].lat),
|
9594 |
+
lng: parseFloat(response[i].lon)
|
9595 |
+
})
|
9596 |
+
};
|
9597 |
+
|
9598 |
+
response[i].latLng = {
|
9599 |
+
lat: parseFloat(response[i].lat),
|
9600 |
+
lng: parseFloat(response[i].lon)
|
9601 |
+
};
|
9602 |
+
|
9603 |
+
response[i].bounds = new WPGMZA.LatLngBounds(
|
9604 |
+
new WPGMZA.LatLng({
|
9605 |
+
lat: response[i].boundingbox[1],
|
9606 |
+
lng: response[i].boundingbox[2]
|
9607 |
+
}),
|
9608 |
+
new WPGMZA.LatLng({
|
9609 |
+
lat: response[i].boundingbox[0],
|
9610 |
+
lng: response[i].boundingbox[3]
|
9611 |
+
})
|
9612 |
+
);
|
9613 |
+
|
9614 |
+
// Backward compatibility with old UGM
|
9615 |
+
response[i].lng = response[i].lon;
|
9616 |
+
}
|
9617 |
+
|
9618 |
+
callback(response, status);
|
9619 |
+
}
|
9620 |
+
}
|
9621 |
+
else if(options.latLng)
|
9622 |
+
{
|
9623 |
+
location = options.latLng.toString();
|
9624 |
+
|
9625 |
+
finish = function(response, status)
|
9626 |
+
{
|
9627 |
+
var address = response[0].display_name;
|
9628 |
+
callback([address], status);
|
9629 |
+
}
|
9630 |
}
|
9631 |
+
else
|
9632 |
+
throw new Error("You must supply either a latLng or address")
|
9633 |
|
9634 |
+
var query = {location: location, options: options};
|
9635 |
+
this.getResponseFromCache(query, function(response) {
|
9636 |
+
if(response.length)
|
9637 |
+
{
|
9638 |
+
finish(response, WPGMZA.Geocoder.SUCCESS);
|
9639 |
+
return;
|
9640 |
+
}
|
9641 |
+
|
9642 |
+
self.getResponseFromNominatim($.extend(options, {address: location}), function(response, status) {
|
9643 |
+
if(status == WPGMZA.Geocoder.FAIL)
|
9644 |
+
{
|
9645 |
+
callback(null, WPGMZA.Geocoder.FAIL);
|
9646 |
+
return;
|
9647 |
+
}
|
9648 |
+
|
9649 |
+
if(response.length == 0)
|
9650 |
+
{
|
9651 |
+
callback([], WPGMZA.Geocoder.ZERO_RESULTS);
|
9652 |
+
return;
|
9653 |
+
}
|
9654 |
+
|
9655 |
+
finish(response, WPGMZA.Geocoder.SUCCESS);
|
9656 |
+
|
9657 |
+
self.cacheResponse(query, response);
|
9658 |
+
});
|
9659 |
+
});
|
9660 |
}
|
9661 |
|
9662 |
});
|
9663 |
|
9664 |
+
// js/v8/open-layers/ol-info-window.js
|
9665 |
/**
|
9666 |
* @namespace WPGMZA
|
9667 |
+
* @module OLInfoWindow
|
9668 |
+
* @requires WPGMZA.InfoWindow
|
9669 |
+
* @pro-requires WPGMZA.ProInfoWindow
|
9670 |
*/
|
9671 |
jQuery(function($) {
|
9672 |
|
9673 |
+
var Parent;
|
9674 |
+
|
9675 |
+
WPGMZA.OLInfoWindow = function(mapObject)
|
9676 |
{
|
9677 |
+
var self = this;
|
9678 |
+
|
9679 |
+
Parent.call(this, mapObject);
|
9680 |
|
9681 |
+
this.element = $("<div class='wpgmza-infowindow ol-info-window-container ol-info-window-plain'></div>")[0];
|
9682 |
+
|
9683 |
+
$(this.element).on("click", ".ol-info-window-close", function(event) {
|
9684 |
+
self.close();
|
9685 |
+
});
|
9686 |
}
|
9687 |
|
9688 |
+
if(WPGMZA.isProVersion())
|
9689 |
+
Parent = WPGMZA.ProInfoWindow;
|
9690 |
+
else
|
9691 |
+
Parent = WPGMZA.InfoWindow;
|
9692 |
+
|
9693 |
+
WPGMZA.OLInfoWindow.prototype = Object.create(Parent.prototype);
|
9694 |
+
WPGMZA.OLInfoWindow.prototype.constructor = WPGMZA.OLInfoWindow;
|
9695 |
+
|
9696 |
+
Object.defineProperty(WPGMZA.OLInfoWindow.prototype, "isPanIntoViewAllowed", {
|
9697 |
+
|
9698 |
+
"get": function()
|
9699 |
+
{
|
9700 |
+
return true;
|
9701 |
+
}
|
9702 |
+
|
9703 |
+
});
|
9704 |
|
9705 |
/**
|
9706 |
+
* Opens the info window
|
9707 |
+
* TODO: This should take a mapObject, not an event
|
9708 |
+
* @return boolean FALSE if the info window should not & will not open, TRUE if it will
|
|
|
|
|
|
|
9709 |
*/
|
9710 |
+
WPGMZA.OLInfoWindow.prototype.open = function(map, mapObject)
|
9711 |
{
|
9712 |
var self = this;
|
9713 |
+
var latLng = mapObject.getPosition();
|
9714 |
|
9715 |
+
if(!Parent.prototype.open.call(this, map, mapObject))
|
9716 |
+
return false;
|
9717 |
|
9718 |
+
// Set parent for events to bubble up
|
9719 |
+
this.parent = map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9720 |
|
9721 |
+
if(this.overlay)
|
9722 |
+
this.mapObject.map.olMap.removeOverlay(this.overlay);
|
9723 |
+
|
9724 |
+
this.overlay = new ol.Overlay({
|
9725 |
+
element: this.element,
|
9726 |
+
stopEvent: false
|
9727 |
});
|
9728 |
|
9729 |
+
this.overlay.setPosition(ol.proj.fromLonLat([
|
9730 |
+
latLng.lng,
|
9731 |
+
latLng.lat
|
9732 |
+
]));
|
9733 |
+
self.mapObject.map.olMap.addOverlay(this.overlay);
|
9734 |
+
|
9735 |
+
$(this.element).show();
|
9736 |
+
|
9737 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
9738 |
+
{
|
9739 |
+
WPGMZA.getImageDimensions(mapObject.getIcon(), function(size) {
|
9740 |
+
|
9741 |
+
$(self.element).css({left: Math.round(size.width / 2) + "px"});
|
9742 |
+
|
9743 |
+
});
|
9744 |
+
}
|
9745 |
+
|
9746 |
+
this.trigger("infowindowopen");
|
9747 |
+
this.trigger("domready");
|
9748 |
}
|
9749 |
|
9750 |
+
WPGMZA.OLInfoWindow.prototype.close = function(event)
|
|
|
|
|
|
|
9751 |
{
|
9752 |
+
// TODO: Why? This shouldn't have to be here. Removing the overlay should hide the element (it doesn't)
|
9753 |
+
$(this.element).hide();
|
9754 |
|
9755 |
+
if(!this.overlay)
|
9756 |
+
return;
|
9757 |
+
|
9758 |
+
WPGMZA.InfoWindow.prototype.close.call(this);
|
9759 |
+
|
9760 |
+
this.trigger("infowindowclose");
|
9761 |
+
|
9762 |
+
this.mapObject.map.olMap.removeOverlay(this.overlay);
|
9763 |
+
this.overlay = null;
|
9764 |
}
|
9765 |
|
9766 |
+
WPGMZA.OLInfoWindow.prototype.setContent = function(html)
|
9767 |
{
|
9768 |
+
$(this.element).html("<i class='fa fa-times ol-info-window-close' aria-hidden='true'></i>" + html);
|
|
|
|
|
9769 |
}
|
9770 |
|
9771 |
+
WPGMZA.OLInfoWindow.prototype.setOptions = function(options)
|
9772 |
{
|
9773 |
+
if(options.maxWidth)
|
9774 |
+
{
|
9775 |
+
$(this.element).css({"max-width": options.maxWidth + "px"});
|
9776 |
+
}
|
9777 |
}
|
9778 |
|
9779 |
+
WPGMZA.OLInfoWindow.prototype.onOpen = function()
|
9780 |
{
|
9781 |
+
var self = this;
|
9782 |
+
var imgs = $(this.element).find("img");
|
9783 |
+
var numImages = imgs.length;
|
9784 |
+
var numImagesLoaded = 0;
|
9785 |
|
9786 |
+
WPGMZA.InfoWindow.prototype.onOpen.apply(this, arguments);
|
|
|
|
|
9787 |
|
9788 |
+
if(this.isPanIntoViewAllowed)
|
9789 |
+
{
|
9790 |
+
function inside(el, viewport)
|
9791 |
+
{
|
9792 |
+
var a = $(el)[0].getBoundingClientRect();
|
9793 |
+
var b = $(viewport)[0].getBoundingClientRect();
|
9794 |
+
|
9795 |
+
return a.left >= b.left && a.left <= b.right &&
|
9796 |
+
a.right <= b.right && a.right >= b.left &&
|
9797 |
+
a.top >= b.top && a.top <= b.bottom &&
|
9798 |
+
a.bottom <= b.bottom && a.bottom >= b.top;
|
9799 |
+
}
|
9800 |
+
|
9801 |
+
function panIntoView()
|
9802 |
+
{
|
9803 |
+
var height = $(self.element).height();
|
9804 |
+
var offset = -height * 0.45;
|
9805 |
+
|
9806 |
+
self.mapObject.map.animateNudge(0, offset, self.mapObject.getPosition());
|
9807 |
+
}
|
9808 |
+
|
9809 |
+
imgs.each(function(index, el) {
|
9810 |
+
el.onload = function() {
|
9811 |
+
if(++numImagesLoaded == numImages && !inside(self.element, self.mapObject.map.element))
|
9812 |
+
panIntoView();
|
9813 |
+
}
|
9814 |
});
|
9815 |
|
9816 |
+
if(numImages == 0 && !inside(self.element, self.mapObject.map.element))
|
9817 |
+
panIntoView();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9818 |
}
|
|
|
|
|
|
|
|
|
|
|
9819 |
}
|
9820 |
|
9821 |
});
|
9822 |
|
9823 |
+
// js/v8/open-layers/ol-map.js
|
9824 |
/**
|
9825 |
* @namespace WPGMZA
|
9826 |
+
* @module OLMap
|
9827 |
+
* @requires WPGMZA.Map
|
9828 |
+
* @pro-requires WPGMZA.ProMap
|
9829 |
*/
|
9830 |
jQuery(function($) {
|
9831 |
|
9832 |
+
var Parent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9833 |
|
9834 |
+
WPGMZA.OLMap = function(element, options)
|
9835 |
{
|
9836 |
+
var self = this;
|
|
|
9837 |
|
9838 |
+
Parent.call(this, element);
|
|
|
|
|
|
|
|
|
|
|
|
|
9839 |
|
9840 |
+
this.setOptions(options);
|
|
|
9841 |
|
9842 |
+
var viewOptions = this.settings.toOLViewOptions();
|
|
|
|
|
|
|
9843 |
|
9844 |
+
$(this.element).html("");
|
9845 |
|
9846 |
+
this.olMap = new ol.Map({
|
9847 |
+
target: $(element)[0],
|
9848 |
+
layers: [
|
9849 |
+
this.getTileLayer()
|
9850 |
+
],
|
9851 |
+
view: new ol.View(viewOptions)
|
9852 |
+
});
|
9853 |
+
|
9854 |
+
// TODO: Re-implement using correct setting names
|
9855 |
+
// Interactions
|
9856 |
+
this.olMap.getInteractions().forEach(function(interaction) {
|
9857 |
|
9858 |
+
// NB: The true and false values are flipped because these settings represent the "disabled" state when true
|
9859 |
+
if(interaction instanceof ol.interaction.DragPan)
|
9860 |
+
interaction.setActive( (self.settings.wpgmza_settings_map_draggable == "yes" ? false : true) );
|
9861 |
+
else if(interaction instanceof ol.interaction.DoubleClickZoom)
|
9862 |
+
interaction.setActive( (self.settings.wpgmza_settings_map_clickzoom ? false : true) );
|
9863 |
+
else if(interaction instanceof ol.interaction.MouseWheelZoom)
|
9864 |
+
interaction.setActive( (self.settings.wpgmza_settings_map_scroll == "yes" ? false : true) );
|
9865 |
+
|
9866 |
+
}, this);
|
9867 |
+
|
9868 |
+
// Cooperative gesture handling
|
9869 |
+
if(!(this.settings.wpgmza_force_greedy_gestures == "greedy" || this.settings.wpgmza_force_greedy_gestures == "yes"))
|
9870 |
+
{
|
9871 |
+
this.gestureOverlay = $("<div class='wpgmza-gesture-overlay'></div>")
|
9872 |
+
this.gestureOverlayTimeoutID = null;
|
9873 |
+
|
9874 |
+
if(WPGMZA.isTouchDevice())
|
9875 |
{
|
9876 |
+
// On touch devices, require two fingers to drag and pan
|
9877 |
+
// NB: Temporarily removed due to inconsistent behaviour
|
9878 |
+
/*this.olMap.getInteractions().forEach(function(interaction) {
|
9879 |
+
|
9880 |
+
if(interaction instanceof ol.interaction.DragPan)
|
9881 |
+
self.olMap.removeInteraction(interaction);
|
9882 |
+
|
9883 |
+
});
|
9884 |
|
9885 |
+
this.olMap.addInteraction(new ol.interaction.DragPan({
|
9886 |
+
|
9887 |
+
condition: function(olBrowserEvent) {
|
9888 |
+
|
9889 |
+
var allowed = olBrowserEvent.originalEvent.touches.length == 2;
|
9890 |
+
|
9891 |
+
if(!allowed)
|
9892 |
+
self.showGestureOverlay();
|
9893 |
+
|
9894 |
+
return allowed;
|
9895 |
+
}
|
9896 |
+
|
9897 |
+
}));
|
9898 |
|
9899 |
+
this.gestureOverlay.text(WPGMZA.localized_strings.use_two_fingers);*/
|
9900 |
+
}
|
9901 |
+
else
|
9902 |
+
{
|
9903 |
+
// On desktops, require Ctrl + zoom to zoom, show an overlay if that condition is not met
|
9904 |
+
this.olMap.on("wheel", function(event) {
|
9905 |
+
|
9906 |
+
if(!ol.events.condition.platformModifierKeyOnly(event))
|
9907 |
{
|
9908 |
+
self.showGestureOverlay();
|
9909 |
+
event.originalEvent.preventDefault();
|
9910 |
+
return false;
|
|
|
|
|
|
|
|
|
9911 |
}
|
9912 |
+
|
9913 |
+
});
|
9914 |
|
9915 |
+
this.gestureOverlay.text(WPGMZA.localized_strings.use_ctrl_scroll_to_zoom);
|
9916 |
}
|
9917 |
+
}
|
9918 |
+
|
9919 |
+
// Controls
|
9920 |
+
this.olMap.getControls().forEach(function(control) {
|
9921 |
+
|
9922 |
+
// NB: The true and false values are flipped because these settings represent the "disabled" state when true
|
9923 |
+
if(control instanceof ol.control.Zoom && WPGMZA.settings.wpgmza_settings_map_zoom == "yes")
|
9924 |
+
self.olMap.removeControl(control);
|
9925 |
+
|
9926 |
+
}, this);
|
9927 |
+
|
9928 |
+
if(WPGMZA.settings.wpgmza_settings_map_full_screen_control != "yes")
|
9929 |
+
this.olMap.addControl(new ol.control.FullScreen());
|
9930 |
+
|
9931 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
9932 |
+
{
|
9933 |
+
// Marker layer
|
9934 |
+
this.markerLayer = new ol.layer.Vector({
|
9935 |
+
source: new ol.source.Vector({
|
9936 |
+
features: []
|
9937 |
+
})
|
9938 |
+
});
|
9939 |
+
this.olMap.addLayer(this.markerLayer);
|
9940 |
+
|
9941 |
+
this.olMap.on("click", function(event) {
|
9942 |
+
var features = self.olMap.getFeaturesAtPixel(event.pixel);
|
9943 |
+
|
9944 |
+
if(!features || !features.length)
|
9945 |
+
return;
|
9946 |
+
|
9947 |
+
var marker = features[0].wpgmzaMarker;
|
9948 |
+
|
9949 |
+
if(!marker)
|
9950 |
+
return;
|
9951 |
+
|
9952 |
+
marker.trigger("click");
|
9953 |
+
marker.trigger("select");
|
9954 |
+
});
|
9955 |
+
}
|
9956 |
+
|
9957 |
+
// Listen for drag start
|
9958 |
+
this.olMap.on("movestart", function(event) {
|
9959 |
+
self.isBeingDragged = true;
|
9960 |
+
});
|
9961 |
+
|
9962 |
+
// Listen for end of pan so we can wrap longitude if needs be
|
9963 |
+
this.olMap.on("moveend", function(event) {
|
9964 |
+
self.wrapLongitude();
|
9965 |
+
|
9966 |
+
self.isBeingDragged = false;
|
9967 |
+
self.dispatchEvent("dragend");
|
9968 |
+
self.onIdle();
|
9969 |
+
});
|
9970 |
+
|
9971 |
+
// Listen for zoom
|
9972 |
+
this.olMap.getView().on("change:resolution", function(event) {
|
9973 |
+
self.dispatchEvent("zoom_changed");
|
9974 |
+
self.dispatchEvent("zoomchanged");
|
9975 |
+
setTimeout(function() {
|
9976 |
+
self.onIdle();
|
9977 |
+
}, 10);
|
9978 |
+
});
|
9979 |
+
|
9980 |
+
// Listen for bounds changing
|
9981 |
+
this.olMap.getView().on("change", function() {
|
9982 |
+
// Wrap longitude
|
9983 |
+
self.onBoundsChanged();
|
9984 |
+
});
|
9985 |
+
self.onBoundsChanged();
|
9986 |
+
|
9987 |
+
// Store locator center
|
9988 |
+
var marker;
|
9989 |
+
if(this.storeLocator && (marker = this.storeLocator.centerPointMarker))
|
9990 |
+
{
|
9991 |
+
this.olMap.addOverlay(marker.overlay);
|
9992 |
+
marker.setVisible(false);
|
9993 |
+
}
|
9994 |
+
|
9995 |
+
// Right click listener
|
9996 |
+
$(this.element).on("click contextmenu", function(event) {
|
9997 |
+
|
9998 |
+
var isRight;
|
9999 |
+
event = event || window.event;
|
10000 |
+
|
10001 |
+
var latLng = self.pixelsToLatLng(event.offsetX, event.offsetY);
|
10002 |
+
|
10003 |
+
if("which" in event)
|
10004 |
+
isRight = event.which == 3;
|
10005 |
+
else if("button" in event)
|
10006 |
+
isRight = event.button == 2;
|
10007 |
+
|
10008 |
+
if(event.which == 1 || event.button == 1)
|
10009 |
{
|
10010 |
+
if(self.isBeingDragged)
|
10011 |
+
return;
|
10012 |
|
10013 |
+
// Left click
|
10014 |
+
if($(event.target).closest(".ol-marker").length)
|
10015 |
+
return; // A marker was clicked, not the map. Do nothing
|
10016 |
|
10017 |
+
self.trigger({
|
10018 |
+
type: "click",
|
10019 |
+
latLng: latLng
|
10020 |
+
});
|
10021 |
+
|
10022 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10023 |
}
|
|
|
|
|
|
|
|
|
10024 |
|
10025 |
+
if(!isRight)
|
10026 |
+
return;
|
10027 |
|
10028 |
+
return self.onRightClick(event);
|
10029 |
+
});
|
10030 |
+
|
10031 |
+
// Dispatch event
|
10032 |
+
if(!WPGMZA.isProVersion())
|
10033 |
+
{
|
10034 |
+
this.trigger("init");
|
10035 |
|
10036 |
+
this.dispatchEvent("created");
|
10037 |
+
WPGMZA.events.dispatchEvent({type: "mapcreated", map: this});
|
10038 |
|
10039 |
+
// Legacy event
|
10040 |
+
$(this.element).trigger("wpgooglemaps_loaded");
|
10041 |
+
}
|
10042 |
}
|
|
|
|
|
10043 |
|
10044 |
+
if(WPGMZA.isProVersion())
|
10045 |
+
Parent = WPGMZA.ProMap;
|
10046 |
+
else
|
10047 |
+
Parent = WPGMZA.Map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10048 |
|
10049 |
+
WPGMZA.OLMap.prototype = Object.create(Parent.prototype);
|
10050 |
+
WPGMZA.OLMap.prototype.constructor = WPGMZA.OLMap;
|
10051 |
|
10052 |
+
WPGMZA.OLMap.prototype.getTileLayer = function()
|
10053 |
{
|
10054 |
+
var options = {};
|
10055 |
|
10056 |
+
if(WPGMZA.settings.tile_server_url)
|
10057 |
+
options.url = WPGMZA.settings.tile_server_url;
|
10058 |
|
10059 |
+
return new ol.layer.Tile({
|
10060 |
+
source: new ol.source.OSM(options)
|
10061 |
+
});
|
10062 |
}
|
10063 |
|
10064 |
+
WPGMZA.OLMap.prototype.wrapLongitude = function()
|
|
|
|
|
10065 |
{
|
10066 |
+
var transformed = ol.proj.transform(this.olMap.getView().getCenter(), "EPSG:3857", "EPSG:4326");
|
10067 |
+
var center = {
|
10068 |
+
lat: transformed[1],
|
10069 |
+
lng: transformed[0]
|
10070 |
+
};
|
10071 |
|
10072 |
+
if(center.lng >= -180 && center.lng <= 180)
|
10073 |
+
return;
|
10074 |
+
|
10075 |
+
center.lng = center.lng - 360 * Math.floor(center.lng / 360);
|
10076 |
+
|
10077 |
+
if(center.lng > 180)
|
10078 |
+
center.lng -= 360;
|
10079 |
+
|
10080 |
+
this.setCenter(center);
|
|
|
|
|
|
|
10081 |
}
|
10082 |
|
10083 |
+
WPGMZA.OLMap.prototype.getCenter = function()
|
10084 |
{
|
10085 |
+
var lonLat = ol.proj.toLonLat(
|
10086 |
+
this.olMap.getView().getCenter()
|
10087 |
+
);
|
10088 |
+
return {
|
10089 |
+
lat: lonLat[1],
|
10090 |
+
lng: lonLat[0]
|
10091 |
+
};
|
10092 |
}
|
10093 |
|
10094 |
+
WPGMZA.OLMap.prototype.setCenter = function(latLng)
|
10095 |
{
|
10096 |
+
var view = this.olMap.getView();
|
|
|
10097 |
|
10098 |
+
WPGMZA.Map.prototype.setCenter.call(this, latLng);
|
10099 |
|
10100 |
+
view.setCenter(ol.proj.fromLonLat([
|
10101 |
+
latLng.lng,
|
10102 |
+
latLng.lat
|
10103 |
+
]));
|
10104 |
+
|
10105 |
+
this.wrapLongitude();
|
10106 |
+
|
10107 |
+
this.onBoundsChanged();
|
10108 |
}
|
10109 |
|
10110 |
+
WPGMZA.OLMap.prototype.getBounds = function()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10111 |
{
|
10112 |
+
var bounds = this.olMap.getView().calculateExtent(this.olMap.getSize());
|
10113 |
+
var nativeBounds = new WPGMZA.LatLngBounds();
|
10114 |
+
|
10115 |
+
var topLeft = ol.proj.toLonLat([bounds[0], bounds[1]]);
|
10116 |
+
var bottomRight = ol.proj.toLonLat([bounds[2], bounds[3]]);
|
10117 |
+
|
10118 |
+
nativeBounds.north = topLeft[1];
|
10119 |
+
nativeBounds.south = bottomRight[1];
|
10120 |
+
|
10121 |
+
nativeBounds.west = topLeft[0];
|
10122 |
+
nativeBounds.east = bottomRight[0];
|
10123 |
+
|
10124 |
+
return nativeBounds;
|
10125 |
}
|
10126 |
|
10127 |
+
/**
|
10128 |
+
* Fit to given boundaries
|
10129 |
+
* @return void
|
10130 |
+
*/
|
10131 |
+
WPGMZA.OLMap.prototype.fitBounds = function(southWest, northEast)
|
10132 |
{
|
10133 |
+
if(southWest instanceof WPGMZA.LatLng)
|
10134 |
+
southWest = {lat: southWest.lat, lng: southWest.lng};
|
10135 |
+
if(northEast instanceof WPGMZA.LatLng)
|
10136 |
+
northEast = {lat: northEast.lat, lng: northEast.lng};
|
10137 |
+
else if(southWest instanceof WPGMZA.LatLngBounds)
|
10138 |
+
{
|
10139 |
+
var bounds = southWest;
|
10140 |
+
|
10141 |
+
southWest = {
|
10142 |
+
lat: bounds.south,
|
10143 |
+
lng: bounds.west
|
10144 |
+
};
|
10145 |
+
|
10146 |
+
northEast = {
|
10147 |
+
lat: bounds.north,
|
10148 |
+
lng: bounds.east
|
10149 |
+
};
|
10150 |
+
}
|
10151 |
|
10152 |
+
var view = this.olMap.getView();
|
10153 |
+
|
10154 |
+
var extent = ol.extent.boundingExtent([
|
10155 |
+
ol.proj.fromLonLat([
|
10156 |
+
parseFloat(southWest.lng),
|
10157 |
+
parseFloat(southWest.lat)
|
10158 |
+
]),
|
10159 |
+
ol.proj.fromLonLat([
|
10160 |
+
parseFloat(northEast.lng),
|
10161 |
+
parseFloat(northEast.lat)
|
10162 |
+
])
|
10163 |
+
]);
|
10164 |
+
view.fit(extent, this.olMap.getSize());
|
10165 |
+
}
|
10166 |
|
10167 |
+
WPGMZA.OLMap.prototype.panTo = function(latLng, zoom)
|
10168 |
{
|
10169 |
+
var view = this.olMap.getView();
|
10170 |
+
var options = {
|
10171 |
+
center: ol.proj.fromLonLat([
|
10172 |
+
parseFloat(latLng.lng),
|
10173 |
+
parseFloat(latLng.lat),
|
10174 |
+
]),
|
10175 |
+
duration: 500
|
10176 |
+
};
|
10177 |
|
10178 |
+
if(arguments.length > 1)
|
10179 |
+
options.zoom = parseInt(zoom);
|
10180 |
|
10181 |
+
view.animate(options);
|
|
|
|
|
|
|
10182 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10183 |
|
10184 |
+
WPGMZA.OLMap.prototype.getZoom = function()
|
10185 |
+
{
|
10186 |
+
return Math.round( this.olMap.getView().getZoom() );
|
10187 |
+
}
|
10188 |
|
10189 |
+
WPGMZA.OLMap.prototype.setZoom = function(value)
|
10190 |
{
|
10191 |
+
this.olMap.getView().setZoom(value);
|
|
|
|
|
10192 |
}
|
10193 |
|
10194 |
+
WPGMZA.OLMap.prototype.getMinZoom = function()
|
10195 |
+
{
|
10196 |
+
return this.olMap.getView().getMinZoom();
|
10197 |
+
}
|
10198 |
|
10199 |
+
WPGMZA.OLMap.prototype.setMinZoom = function(value)
|
10200 |
+
{
|
10201 |
+
this.olMap.getView().setMinZoom(value);
|
10202 |
+
}
|
10203 |
|
10204 |
+
WPGMZA.OLMap.prototype.getMaxZoom = function()
|
10205 |
+
{
|
10206 |
+
return this.olMap.getView().getMaxZoom();
|
10207 |
+
}
|
10208 |
|
10209 |
+
WPGMZA.OLMap.prototype.setMaxZoom = function(value)
|
10210 |
{
|
10211 |
+
this.olMap.getView().setMaxZoom(value);
|
|
|
|
|
|
|
|
|
|
|
10212 |
}
|
10213 |
|
10214 |
+
WPGMZA.OLMap.prototype.setOptions = function(options)
|
10215 |
{
|
10216 |
+
Parent.prototype.setOptions.call(this, options);
|
10217 |
|
10218 |
+
if(!this.olMap)
|
10219 |
return;
|
10220 |
|
10221 |
+
this.olMap.getView().setProperties( this.settings.toOLViewOptions() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10222 |
}
|
10223 |
|
10224 |
/**
|
10225 |
+
* TODO: Consider moving all these functions to their respective classes, same on google map (DO IT!!! It's very misleading having them here)
|
|
|
10226 |
*/
|
10227 |
+
WPGMZA.OLMap.prototype.addMarker = function(marker)
|
10228 |
{
|
10229 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT)
|
10230 |
+
this.olMap.addOverlay(marker.overlay);
|
10231 |
+
else
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10232 |
{
|
10233 |
+
this.markerLayer.getSource().addFeature(marker.feature);
|
10234 |
+
marker.featureInSource = true;
|
|
|
|
|
|
|
|
|
|
|
10235 |
}
|
10236 |
|
10237 |
+
Parent.prototype.addMarker.call(this, marker);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10238 |
}
|
10239 |
|
10240 |
+
WPGMZA.OLMap.prototype.removeMarker = function(marker)
|
10241 |
{
|
10242 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT)
|
10243 |
+
this.olMap.removeOverlay(marker.overlay);
|
10244 |
+
else
|
10245 |
+
{
|
10246 |
+
this.markerLayer.getSource().removeFeature(marker.feature);
|
10247 |
+
marker.featureInSource = false;
|
10248 |
+
}
|
10249 |
|
10250 |
+
Parent.prototype.removeMarker.call(this, marker);
|
10251 |
}
|
10252 |
|
10253 |
+
WPGMZA.OLMap.prototype.addPolygon = function(polygon)
|
10254 |
{
|
10255 |
+
this.olMap.addLayer(polygon.layer);
|
|
|
|
|
|
|
|
|
10256 |
|
10257 |
+
Parent.prototype.addPolygon.call(this, polygon);
|
10258 |
}
|
10259 |
|
10260 |
+
WPGMZA.OLMap.prototype.removePolygon = function(polygon)
|
10261 |
{
|
10262 |
+
this.olMap.removeLayer(polygon.layer);
|
|
|
|
|
10263 |
|
10264 |
+
Parent.prototype.removePolygon.call(this, polygon);
|
10265 |
}
|
10266 |
|
10267 |
+
WPGMZA.OLMap.prototype.addPolyline = function(polyline)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10268 |
{
|
10269 |
+
this.olMap.addLayer(polyline.layer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10270 |
|
10271 |
+
Parent.prototype.addPolyline.call(this, polyline);
|
10272 |
+
}
|
10273 |
+
|
10274 |
+
WPGMZA.OLMap.prototype.removePolyline = function(polyline)
|
10275 |
+
{
|
10276 |
+
this.olMap.removeLayer(polyline.layer);
|
10277 |
|
10278 |
+
Parent.prototype.removePolyline.call(this, polyline);
|
10279 |
+
}
|
10280 |
+
|
10281 |
+
WPGMZA.OLMap.prototype.addCircle = function(circle)
|
10282 |
+
{
|
10283 |
+
this.olMap.addLayer(circle.layer);
|
10284 |
|
10285 |
+
Parent.prototype.addCircle.call(this, circle);
|
10286 |
+
}
|
10287 |
+
|
10288 |
+
WPGMZA.OLMap.prototype.removeCircle = function(circle)
|
10289 |
+
{
|
10290 |
+
this.olMap.removeLayer(circle.layer);
|
10291 |
|
10292 |
+
Parent.prototype.removeCircle.call(this, circle);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10293 |
}
|
10294 |
|
10295 |
+
WPGMZA.OLMap.prototype.addRectangle = function(rectangle)
|
|
|
10296 |
{
|
10297 |
+
this.olMap.addLayer(rectangle.layer);
|
10298 |
+
|
10299 |
+
Parent.prototype.addRectangle.call(this, rectangle);
|
10300 |
}
|
10301 |
+
|
10302 |
+
WPGMZA.OLMap.prototype.removeRectangle = function(rectangle)
|
10303 |
{
|
10304 |
+
this.olMap.removeLayer(rectangle.layer);
|
10305 |
+
|
10306 |
+
Parent.prototype.removeRectangle.call(this, rectangle);
|
10307 |
}
|
|
|
10308 |
|
10309 |
+
WPGMZA.OLMap.prototype.pixelsToLatLng = function(x, y)
|
10310 |
{
|
10311 |
+
if(y == undefined)
|
10312 |
+
{
|
10313 |
+
if("x" in x && "y" in x)
|
10314 |
+
{
|
10315 |
+
y = x.y;
|
10316 |
+
x = x.x;
|
10317 |
+
}
|
10318 |
+
else
|
10319 |
+
console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)");
|
10320 |
+
}
|
10321 |
|
10322 |
+
var coord = this.olMap.getCoordinateFromPixel([x, y]);
|
10323 |
+
|
10324 |
+
if(!coord)
|
10325 |
+
return {
|
10326 |
+
x: null,
|
10327 |
+
y: null
|
10328 |
+
};
|
10329 |
+
|
10330 |
+
var lonLat = ol.proj.toLonLat(coord);
|
10331 |
+
return {
|
10332 |
+
lat: lonLat[1],
|
10333 |
+
lng: lonLat[0]
|
10334 |
+
};
|
10335 |
+
}
|
10336 |
+
|
10337 |
+
WPGMZA.OLMap.prototype.latLngToPixels = function(latLng)
|
10338 |
+
{
|
10339 |
+
var coord = ol.proj.fromLonLat([latLng.lng, latLng.lat]);
|
10340 |
+
var pixel = this.olMap.getPixelFromCoordinate(coord);
|
10341 |
+
|
10342 |
+
if(!pixel)
|
10343 |
+
return {
|
10344 |
+
x: null,
|
10345 |
+
y: null
|
10346 |
+
};
|
10347 |
+
|
10348 |
+
return {
|
10349 |
+
x: pixel[0],
|
10350 |
+
y: pixel[1]
|
10351 |
+
};
|
10352 |
+
}
|
10353 |
+
|
10354 |
+
WPGMZA.OLMap.prototype.enableBicycleLayer = function(value)
|
10355 |
+
{
|
10356 |
+
if(value)
|
10357 |
+
{
|
10358 |
+
if(!this.bicycleLayer)
|
10359 |
+
this.bicycleLayer = new ol.layer.Tile({
|
10360 |
+
source: new ol.source.OSM({
|
10361 |
+
url: "http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png"
|
10362 |
+
})
|
10363 |
+
});
|
10364 |
|
10365 |
+
this.olMap.addLayer(this.bicycleLayer);
|
10366 |
+
}
|
10367 |
+
else
|
10368 |
+
{
|
10369 |
+
if(!this.bicycleLayer)
|
10370 |
+
return;
|
10371 |
|
10372 |
+
this.olMap.removeLayer(this.bicycleLayer);
|
10373 |
}
|
|
|
|
|
10374 |
}
|
10375 |
|
10376 |
+
WPGMZA.OLMap.prototype.showGestureOverlay = function()
|
|
|
|
|
|
|
|
|
10377 |
{
|
10378 |
var self = this;
|
|
|
10379 |
|
10380 |
+
clearTimeout(this.gestureOverlayTimeoutID);
|
10381 |
|
10382 |
+
$(this.gestureOverlay).stop().animate({opacity: "100"});
|
10383 |
+
$(this.element).append(this.gestureOverlay);
|
|
|
10384 |
|
10385 |
+
$(this.gestureOverlay).css({
|
10386 |
+
"line-height": $(this.element).height() + "px",
|
10387 |
+
"opacity": "1.0"
|
10388 |
+
});
|
10389 |
+
$(this.gestureOverlay).show();
|
|
|
|
|
10390 |
|
10391 |
+
this.gestureOverlayTimeoutID = setTimeout(function() {
|
10392 |
+
self.gestureOverlay.fadeOut(2000);
|
10393 |
+
}, 2000);
|
10394 |
}
|
10395 |
|
10396 |
+
WPGMZA.OLMap.prototype.onElementResized = function(event)
|
10397 |
{
|
10398 |
+
this.olMap.updateSize();
|
10399 |
+
}
|
10400 |
+
|
10401 |
+
WPGMZA.OLMap.prototype.onRightClick = function(event)
|
10402 |
+
{
|
10403 |
+
if($(event.target).closest(".ol-marker, .wpgmza_modern_infowindow, .wpgmza-modern-store-locator").length)
|
10404 |
+
return true;
|
10405 |
|
10406 |
+
var parentOffset = $(this.element).offset();
|
10407 |
+
var relX = event.pageX - parentOffset.left;
|
10408 |
+
var relY = event.pageY - parentOffset.top;
|
10409 |
+
var latLng = this.pixelsToLatLng(relX, relY);
|
10410 |
|
10411 |
+
this.trigger({type: "rightclick", latLng: latLng});
|
|
|
|
|
|
|
|
|
10412 |
|
10413 |
+
// Legacy event compatibility
|
10414 |
+
$(this.element).trigger({type: "rightclick", latLng: latLng});
|
10415 |
|
10416 |
+
// Prevent menu
|
10417 |
+
event.preventDefault();
|
10418 |
+
return false;
|
10419 |
+
}
|
10420 |
+
|
10421 |
+
WPGMZA.OLMap.prototype.enableAllInteractions = function()
|
10422 |
+
{
|
10423 |
+
|
10424 |
+
this.olMap.getInteractions().forEach(function(interaction) {
|
10425 |
+
|
10426 |
+
if(interaction instanceof ol.interaction.DragPan || interaction instanceof ol.interaction.DoubleClickZoom || interaction instanceof ol.interaction.MouseWheelZoom)
|
10427 |
+
{
|
10428 |
+
interaction.setActive(true);
|
10429 |
+
}
|
10430 |
+
|
10431 |
+
}, this);
|
10432 |
+
|
10433 |
+
}
|
10434 |
+
|
10435 |
+
});
|
10436 |
+
|
10437 |
+
// js/v8/open-layers/ol-marker.js
|
10438 |
+
/**
|
10439 |
+
* @namespace WPGMZA
|
10440 |
+
* @module OLMarker
|
10441 |
+
* @requires WPGMZA.Marker
|
10442 |
+
* @pro-requires WPGMZA.ProMarker
|
10443 |
+
*/
|
10444 |
+
jQuery(function($) {
|
10445 |
+
|
10446 |
+
var Parent;
|
10447 |
+
|
10448 |
+
WPGMZA.OLMarker = function(row)
|
10449 |
+
{
|
10450 |
+
var self = this;
|
10451 |
+
|
10452 |
+
Parent.call(this, row);
|
10453 |
+
|
10454 |
+
var origin = ol.proj.fromLonLat([
|
10455 |
+
parseFloat(this.lng),
|
10456 |
+
parseFloat(this.lat)
|
10457 |
+
]);
|
10458 |
|
10459 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT)
|
10460 |
{
|
10461 |
+
var img = $("<img alt=''/>")[0];
|
10462 |
+
img.onload = function(event) {
|
10463 |
+
self.updateElementHeight();
|
10464 |
+
if(self.map)
|
10465 |
+
self.map.olMap.updateSize();
|
10466 |
+
}
|
10467 |
+
img.src = WPGMZA.defaultMarkerIcon;
|
10468 |
+
|
10469 |
+
this.element = $("<div class='ol-marker'></div>")[0];
|
10470 |
+
$(this.element).attr('title', this.title);
|
10471 |
+
this.element.appendChild(img);
|
10472 |
+
|
10473 |
+
this.element.wpgmzaMarker = this;
|
10474 |
+
|
10475 |
+
$(this.element).on("mouseover", function(event) {
|
10476 |
+
self.dispatchEvent("mouseover");
|
10477 |
+
});
|
10478 |
+
|
10479 |
+
this.overlay = new ol.Overlay({
|
10480 |
+
element: this.element,
|
10481 |
+
position: origin,
|
10482 |
+
positioning: "bottom-center",
|
10483 |
+
stopEvent: false
|
10484 |
+
});
|
10485 |
+
this.overlay.setPosition(origin);
|
10486 |
+
|
10487 |
+
if(this.animation)
|
10488 |
+
this.setAnimation(this.animation);
|
10489 |
+
|
10490 |
+
this.setLabel(this.settings.label);
|
10491 |
+
|
10492 |
+
if(row)
|
10493 |
+
{
|
10494 |
+
if(row.draggable)
|
10495 |
+
this.setDraggable(true);
|
10496 |
+
}
|
10497 |
|
10498 |
+
this.rebindClickListener();
|
10499 |
+
}
|
10500 |
+
else if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10501 |
+
{
|
10502 |
+
this.feature = new ol.Feature({
|
10503 |
+
geometry: new ol.geom.Point(origin)
|
10504 |
+
});
|
10505 |
|
10506 |
+
this.feature.setStyle(this.getVectorLayerStyle());
|
10507 |
+
this.feature.wpgmzaMarker = this;
|
10508 |
}
|
10509 |
+
else
|
10510 |
+
throw new Error("Invalid marker render mode");
|
10511 |
|
10512 |
+
this.trigger("init");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10513 |
}
|
10514 |
|
10515 |
+
if(WPGMZA.isProVersion())
|
10516 |
+
Parent = WPGMZA.ProMarker;
|
10517 |
+
else
|
10518 |
+
Parent = WPGMZA.Marker;
|
|
|
|
|
|
|
|
|
|
|
|
|
10519 |
|
10520 |
+
WPGMZA.OLMarker.prototype = Object.create(Parent.prototype);
|
10521 |
+
WPGMZA.OLMarker.prototype.constructor = WPGMZA.OLMarker;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10522 |
|
10523 |
+
WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT = "element";
|
10524 |
+
WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER = "vector"; // NB: This feature is experimental
|
|
|
|
|
|
|
|
|
10525 |
|
10526 |
+
WPGMZA.OLMarker.renderMode = WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT;
|
|
|
|
|
|
|
|
|
|
|
10527 |
|
10528 |
+
if(WPGMZA.settings.engine == "open-layers" && WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10529 |
{
|
10530 |
+
WPGMZA.OLMarker.defaultVectorLayerStyle = new ol.style.Style({
|
10531 |
+
image: new ol.style.Icon({
|
10532 |
+
anchor: [0.5, 1],
|
10533 |
+
src: WPGMZA.defaultMarkerIcon
|
10534 |
+
})
|
10535 |
+
});
|
10536 |
|
10537 |
+
WPGMZA.OLMarker.hiddenVectorLayerStyle = new ol.style.Style({});
|
10538 |
}
|
10539 |
|
10540 |
+
WPGMZA.OLMarker.prototype.getVectorLayerStyle = function()
|
10541 |
{
|
10542 |
+
if(this.vectorLayerStyle)
|
10543 |
+
return this.vectorLayerStyle;
|
10544 |
|
10545 |
+
return WPGMZA.OLMarker.defaultVectorLayerStyle;
|
10546 |
}
|
10547 |
|
10548 |
+
WPGMZA.OLMarker.prototype.updateElementHeight = function(height, calledOnFocus)
|
|
|
|
|
|
|
|
|
10549 |
{
|
10550 |
+
var self = this;
|
10551 |
|
10552 |
+
if(!height)
|
10553 |
+
height = $(this.element).find("img").height();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10554 |
|
10555 |
+
if(height == 0 && !calledOnFocus)
|
10556 |
+
{
|
10557 |
+
$(window).one("focus", function(event) {
|
10558 |
+
self.updateElementHeight(false, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10559 |
});
|
10560 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10561 |
|
10562 |
+
$(this.element).css({height: height + "px"});
|
10563 |
}
|
10564 |
|
10565 |
+
WPGMZA.OLMarker.prototype.addLabel = function()
|
|
|
|
|
|
|
|
|
10566 |
{
|
10567 |
+
this.setLabel(this.getLabelText());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10568 |
}
|
10569 |
|
10570 |
+
WPGMZA.OLMarker.prototype.setLabel = function(label)
|
|
|
|
|
|
|
|
|
10571 |
{
|
10572 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
|
|
|
|
|
|
|
|
10573 |
{
|
10574 |
+
console.warn("Marker labels are not currently supported in Vector Layer rendering mode");
|
10575 |
+
return;
|
10576 |
+
}
|
10577 |
+
|
10578 |
+
if(!label)
|
10579 |
+
{
|
10580 |
+
if(this.label)
|
10581 |
+
$(this.element).find(".ol-marker-label").remove();
|
10582 |
|
10583 |
+
return;
|
10584 |
+
}
|
10585 |
+
|
10586 |
+
if(!this.label)
|
10587 |
+
{
|
10588 |
+
this.label = $("<div class='ol-marker-label'/>");
|
10589 |
+
$(this.element).append(this.label);
|
10590 |
}
|
10591 |
|
10592 |
+
this.label.html(label);
|
|
|
10593 |
}
|
10594 |
|
10595 |
+
WPGMZA.OLMarker.prototype.getVisible = function(visible)
|
|
|
|
|
|
|
|
|
10596 |
{
|
10597 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
|
|
10598 |
{
|
10599 |
+
|
|
|
10600 |
}
|
10601 |
+
else
|
10602 |
+
return this.overlay.getElement().style.display != "none";
|
10603 |
}
|
10604 |
|
10605 |
+
WPGMZA.OLMarker.prototype.setVisible = function(visible)
|
|
|
|
|
|
|
|
|
|
|
10606 |
{
|
10607 |
+
Parent.prototype.setVisible.call(this, visible);
|
|
|
10608 |
|
10609 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10610 |
+
{
|
10611 |
+
if(visible)
|
10612 |
+
{
|
10613 |
+
var style = this.getVectorLayerStyle();
|
10614 |
+
this.feature.setStyle(style);
|
10615 |
+
}
|
10616 |
+
else
|
10617 |
+
this.feature.setStyle(null);
|
10618 |
+
|
10619 |
+
/*var source = this.map.markerLayer.getSource();
|
10620 |
+
|
10621 |
+
/*if(this.featureInSource == visible)
|
10622 |
+
return;
|
10623 |
+
|
10624 |
+
if(visible)
|
10625 |
+
source.addFeature(this.feature);
|
10626 |
+
else
|
10627 |
+
source.removeFeature(this.feature);
|
10628 |
+
|
10629 |
+
this.featureInSource = visible;*/
|
10630 |
+
}
|
10631 |
+
else
|
10632 |
+
this.overlay.getElement().style.display = (visible ? "block" : "none");
|
10633 |
}
|
10634 |
|
10635 |
+
WPGMZA.OLMarker.prototype.setPosition = function(latLng)
|
|
|
|
|
|
|
|
|
|
|
10636 |
{
|
10637 |
+
Parent.prototype.setPosition.call(this, latLng);
|
|
|
10638 |
|
10639 |
+
var origin = ol.proj.fromLonLat([
|
10640 |
+
parseFloat(this.lng),
|
10641 |
+
parseFloat(this.lat)
|
10642 |
+
]);
|
10643 |
|
10644 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10645 |
+
this.feature.setGeometry(new ol.geom.Point(origin));
|
10646 |
+
else
|
10647 |
+
this.overlay.setPosition(origin);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10648 |
}
|
10649 |
|
10650 |
+
WPGMZA.OLMarker.prototype.updateOffset = function(x, y)
|
|
|
|
|
|
|
|
|
|
|
10651 |
{
|
10652 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10653 |
+
{
|
10654 |
+
console.warn("Marker offset is not currently supported in Vector Layer rendering mode");
|
|
|
10655 |
return;
|
10656 |
+
}
|
10657 |
|
10658 |
+
var x = this._offset.x;
|
10659 |
+
var y = this._offset.y;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10660 |
|
10661 |
+
this.element.style.position = "relative";
|
10662 |
+
this.element.style.left = x + "px";
|
10663 |
+
this.element.style.top = y + "px";
|
10664 |
}
|
10665 |
|
10666 |
+
WPGMZA.OLMarker.prototype.setAnimation = function(anim)
|
|
|
|
|
|
|
|
|
10667 |
{
|
10668 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10669 |
+
{
|
10670 |
+
console.warn("Marker animation is not currently supported in Vector Layer rendering mode");
|
10671 |
+
return;
|
10672 |
+
}
|
10673 |
+
|
10674 |
+
Parent.prototype.setAnimation.call(this, anim);
|
10675 |
+
|
10676 |
+
switch(anim)
|
10677 |
+
{
|
10678 |
+
case WPGMZA.Marker.ANIMATION_NONE:
|
10679 |
+
$(this.element).removeAttr("data-anim");
|
10680 |
+
break;
|
10681 |
+
|
10682 |
+
case WPGMZA.Marker.ANIMATION_BOUNCE:
|
10683 |
+
$(this.element).attr("data-anim", "bounce");
|
10684 |
+
break;
|
10685 |
+
|
10686 |
+
case WPGMZA.Marker.ANIMATION_DROP:
|
10687 |
+
$(this.element).attr("data-anim", "drop");
|
10688 |
+
break;
|
10689 |
+
}
|
10690 |
}
|
10691 |
|
10692 |
+
WPGMZA.OLMarker.prototype.setDraggable = function(draggable)
|
|
|
|
|
|
|
|
|
10693 |
{
|
10694 |
+
var self = this;
|
10695 |
+
|
10696 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10697 |
+
{
|
10698 |
+
console.warn("Marker dragging is not currently supported in Vector Layer rendering mode");
|
10699 |
+
return;
|
10700 |
+
}
|
10701 |
+
|
10702 |
+
if(draggable)
|
10703 |
+
{
|
10704 |
+
var options = {
|
10705 |
+
disabled: false
|
10706 |
+
};
|
10707 |
+
|
10708 |
+
if(!this.jQueryDraggableInitialized)
|
10709 |
+
{
|
10710 |
+
options.start = function(event) {
|
10711 |
+
self.onDragStart(event);
|
10712 |
+
}
|
10713 |
+
|
10714 |
+
options.stop = function(event) {
|
10715 |
+
self.onDragEnd(event);
|
10716 |
+
};
|
10717 |
+
}
|
10718 |
+
|
10719 |
+
$(this.element).draggable(options);
|
10720 |
+
this.jQueryDraggableInitialized = true;
|
10721 |
+
|
10722 |
+
this.rebindClickListener();
|
10723 |
+
}
|
10724 |
+
else
|
10725 |
+
$(this.element).draggable({disabled: true});
|
10726 |
}
|
10727 |
|
10728 |
+
WPGMZA.OLMarker.prototype.setOpacity = function(opacity)
|
|
|
|
|
|
|
|
|
10729 |
{
|
10730 |
+
if(WPGMZA.OLMarker.renderMode == WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)
|
10731 |
+
{
|
10732 |
+
console.warn("Marker opacity is not currently supported in Vector Layer rendering mode");
|
10733 |
+
return;
|
10734 |
+
}
|
10735 |
+
|
10736 |
+
$(this.element).css({opacity: opacity});
|
10737 |
}
|
10738 |
|
10739 |
+
WPGMZA.OLMarker.prototype.onDragStart = function(event)
|
|
|
|
|
|
|
|
|
10740 |
{
|
10741 |
+
this.isBeingDragged = true;
|
10742 |
+
|
10743 |
+
this.map.olMap.getInteractions().forEach(function(interaction) {
|
10744 |
+
|
10745 |
+
if(interaction instanceof ol.interaction.DragPan)
|
10746 |
+
interaction.setActive(false);
|
10747 |
+
|
10748 |
});
|
10749 |
}
|
10750 |
|
10751 |
+
WPGMZA.OLMarker.prototype.onDragEnd = function(event)
|
10752 |
{
|
10753 |
+
var self = this;
|
10754 |
+
var offset = {
|
10755 |
+
top: parseFloat( $(this.element).css("top").match(/-?\d+/)[0] ),
|
10756 |
+
left: parseFloat( $(this.element).css("left").match(/-?\d+/)[0] )
|
10757 |
+
};
|
10758 |
+
|
10759 |
+
$(this.element).css({
|
10760 |
+
top: "0px",
|
10761 |
+
left: "0px"
|
10762 |
});
|
10763 |
+
|
10764 |
+
var currentLatLng = this.getPosition();
|
10765 |
+
var pixelsBeforeDrag = this.map.latLngToPixels(currentLatLng);
|
10766 |
+
var pixelsAfterDrag = {
|
10767 |
+
x: pixelsBeforeDrag.x + offset.left,
|
10768 |
+
y: pixelsBeforeDrag.y + offset.top
|
|
|
10769 |
};
|
10770 |
+
var latLngAfterDrag = this.map.pixelsToLatLng(pixelsAfterDrag);
|
10771 |
+
|
10772 |
+
this.setPosition(latLngAfterDrag);
|
10773 |
+
|
10774 |
+
this.isBeingDragged = false;
|
10775 |
+
this.trigger({type: "dragend", latLng: latLngAfterDrag});
|
10776 |
+
|
10777 |
+
// NB: "yes" represents disabled
|
10778 |
+
if(this.map.settings.wpgmza_settings_map_draggable != "yes")
|
10779 |
+
this.map.olMap.getInteractions().forEach(function(interaction) {
|
10780 |
+
|
10781 |
+
if(interaction instanceof ol.interaction.DragPan)
|
10782 |
+
interaction.setActive(true);
|
10783 |
+
|
10784 |
+
});
|
10785 |
}
|
10786 |
|
10787 |
+
WPGMZA.OLMarker.prototype.onElementClick = function(event)
|
10788 |
{
|
10789 |
+
var self = event.currentTarget.wpgmzaMarker;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10790 |
|
10791 |
+
if(self.isBeingDragged)
|
10792 |
+
return; // Don't dispatch click event after a drag
|
10793 |
+
|
10794 |
+
self.dispatchEvent("click");
|
10795 |
+
self.dispatchEvent("select");
|
|
|
|
|
|
|
|
|
|
|
10796 |
}
|
10797 |
|
10798 |
/**
|
10799 |
+
* Binds / rebinds the click listener. This must be bound after draggable is initialized,
|
10800 |
+
* this solves the click listener firing before dragend
|
10801 |
*/
|
10802 |
+
WPGMZA.OLMarker.prototype.rebindClickListener = function()
|
10803 |
{
|
10804 |
+
$(this.element).off("click", this.onElementClick);
|
10805 |
+
$(this.element).on("click", this.onElementClick);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10806 |
}
|
10807 |
|
10808 |
});
|
10809 |
|
10810 |
+
// js/v8/open-layers/ol-modern-store-locator-circle.js
|
10811 |
/**
|
10812 |
* @namespace WPGMZA
|
10813 |
+
* @module OLModernStoreLocatorCircle
|
10814 |
+
* @requires WPGMZA.ModernStoreLocatorCircle
|
|
|
10815 |
*/
|
10816 |
jQuery(function($) {
|
10817 |
|
10818 |
+
WPGMZA.OLModernStoreLocatorCircle = function(map, settings)
|
10819 |
+
{
|
10820 |
+
WPGMZA.ModernStoreLocatorCircle.call(this, map, settings);
|
10821 |
+
}
|
10822 |
|
10823 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype = Object.create(WPGMZA.ModernStoreLocatorCircle.prototype);
|
10824 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.constructor = WPGMZA.OLModernStoreLocatorCircle;
|
10825 |
+
|
10826 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.initCanvasLayer = function()
|
10827 |
{
|
10828 |
var self = this;
|
10829 |
+
var mapElement = $(this.map.element);
|
10830 |
+
var olViewportElement = mapElement.children(".ol-viewport");
|
10831 |
|
10832 |
+
this.canvas = document.createElement("canvas");
|
10833 |
+
this.canvas.className = "wpgmza-ol-canvas-overlay";
|
10834 |
+
mapElement.append(this.canvas);
|
10835 |
|
10836 |
+
this.renderFunction = function(event) {
|
10837 |
+
|
10838 |
+
if(self.canvas.width != olViewportElement.width() || self.canvas.height != olViewportElement.height())
|
|
|
10839 |
{
|
10840 |
+
self.canvas.width = olViewportElement.width();
|
10841 |
+
self.canvas.height = olViewportElement.height();
|
10842 |
+
|
10843 |
+
$(this.canvas).css({
|
10844 |
+
width: olViewportElement.width() + "px",
|
10845 |
+
height: olViewportElement.height() + "px"
|
10846 |
+
});
|
|
|
|
|
|
|
|
|
10847 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10848 |
|
10849 |
+
self.draw();
|
10850 |
+
};
|
|
|
|
|
10851 |
|
10852 |
+
this.map.olMap.on("postrender", this.renderFunction);
|
10853 |
+
}
|
10854 |
+
|
10855 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getContext = function(type)
|
10856 |
+
{
|
10857 |
+
return this.canvas.getContext(type);
|
10858 |
+
}
|
10859 |
+
|
10860 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getCanvasDimensions = function()
|
10861 |
+
{
|
10862 |
+
return {
|
10863 |
+
width: this.canvas.width,
|
10864 |
+
height: this.canvas.height
|
10865 |
+
};
|
10866 |
+
}
|
10867 |
+
|
10868 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getCenterPixels = function()
|
10869 |
+
{
|
10870 |
+
var center = this.map.latLngToPixels(this.settings.center);
|
10871 |
|
10872 |
+
return center;
|
10873 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10874 |
|
10875 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getWorldOriginOffset = function()
|
10876 |
+
{
|
10877 |
+
return {
|
10878 |
+
x: 0,
|
10879 |
+
y: 0
|
10880 |
+
};
|
10881 |
}
|
10882 |
|
10883 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getTransformedRadius = function(km)
|
10884 |
+
{
|
10885 |
+
var center = new WPGMZA.LatLng(this.settings.center);
|
10886 |
+
var outer = new WPGMZA.LatLng(center);
|
|
|
|
|
|
|
|
|
10887 |
|
10888 |
+
outer.moveByDistance(km, 90);
|
|
|
|
|
10889 |
|
10890 |
+
var centerPixels = this.map.latLngToPixels(center);
|
10891 |
+
var outerPixels = this.map.latLngToPixels(outer);
|
10892 |
+
|
10893 |
+
return Math.abs(outerPixels.x - centerPixels.x);
|
10894 |
+
|
10895 |
+
/*if(!window.testMarker){
|
10896 |
+
window.testMarker = WPGMZA.Marker.createInstance({
|
10897 |
+
position: outer
|
10898 |
+
});
|
10899 |
+
WPGMZA.maps[0].addMarker(window.testMarker);
|
10900 |
}
|
10901 |
|
10902 |
+
return 100;*/
|
10903 |
+
}
|
10904 |
|
10905 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.getScale = function()
|
10906 |
{
|
10907 |
+
return 1;
|
10908 |
+
}
|
10909 |
+
|
10910 |
+
WPGMZA.OLModernStoreLocatorCircle.prototype.destroy = function()
|
10911 |
+
{
|
10912 |
+
$(this.canvas).remove();
|
|
|
|
|
|
|
10913 |
|
10914 |
+
this.map.olMap.un("postrender", this.renderFunction);
|
10915 |
+
this.map = null;
|
10916 |
+
this.canvas = null;
|
10917 |
}
|
10918 |
|
10919 |
+
});
|
10920 |
+
|
10921 |
+
// js/v8/open-layers/ol-modern-store-locator.js
|
10922 |
+
/**
|
10923 |
+
* @namespace WPGMZA
|
10924 |
+
* @module OLModernStoreLocator
|
10925 |
+
* @requires WPGMZA.ModernStoreLocator
|
10926 |
+
*/
|
10927 |
+
jQuery(function($) {
|
10928 |
+
|
10929 |
+
WPGMZA.OLModernStoreLocator = function(map_id)
|
10930 |
{
|
10931 |
+
var element;
|
10932 |
+
|
10933 |
+
WPGMZA.ModernStoreLocator.call(this, map_id);
|
10934 |
+
|
10935 |
+
if(WPGMZA.isProVersion())
|
10936 |
+
element = $(".wpgmza_map[data-map-id='" + map_id + "']");
|
10937 |
+
else
|
10938 |
+
element = $("#wpgmza_map");
|
10939 |
+
|
10940 |
+
element.append(this.element);
|
10941 |
}
|
10942 |
|
10943 |
+
WPGMZA.OLModernStoreLocator.prototype = Object.create(WPGMZA.ModernStoreLocator);
|
10944 |
+
WPGMZA.OLModernStoreLocator.prototype.constructor = WPGMZA.OLModernStoreLocator;
|
10945 |
+
|
10946 |
+
});
|
10947 |
+
|
10948 |
+
// js/v8/open-layers/ol-polygon.js
|
10949 |
+
/**
|
10950 |
+
* @namespace WPGMZA
|
10951 |
+
* @module OLPolygon
|
10952 |
+
* @requires WPGMZA.Polygon
|
10953 |
+
* @pro-requires WPGMZA.ProPolygon
|
10954 |
+
*/
|
10955 |
+
jQuery(function($) {
|
10956 |
+
|
10957 |
+
var Parent;
|
10958 |
+
|
10959 |
+
WPGMZA.OLPolygon = function(options, olFeature)
|
10960 |
{
|
10961 |
var self = this;
|
|
|
|
|
|
|
|
|
|
|
10962 |
|
10963 |
+
Parent.call(this, options, olFeature);
|
|
|
10964 |
|
10965 |
+
this.olStyle = new ol.style.Style();
|
|
|
|
|
|
|
|
|
|
|
10966 |
|
10967 |
+
if(olFeature)
|
10968 |
{
|
10969 |
+
this.olFeature = olFeature;
|
10970 |
+
}
|
10971 |
+
else
|
10972 |
+
{
|
10973 |
+
var coordinates = [[]];
|
10974 |
|
10975 |
+
if(options && options.polydata)
|
10976 |
+
{
|
10977 |
+
var paths = this.parseGeometry(options.polydata);
|
10978 |
+
|
10979 |
+
for(var i = 0; i < paths.length; i++)
|
10980 |
+
coordinates[0].push(ol.proj.fromLonLat([
|
10981 |
+
parseFloat(paths[i].lng),
|
10982 |
+
parseFloat(paths[i].lat)
|
10983 |
+
]));
|
10984 |
+
|
10985 |
+
this.olStyle = new ol.style.Style(this.getStyleFromSettings());
|
10986 |
+
}
|
10987 |
|
10988 |
+
this.olFeature = new ol.Feature({
|
10989 |
+
geometry: new ol.geom.Polygon(coordinates)
|
10990 |
+
});
|
10991 |
}
|
10992 |
|
10993 |
+
this.layer = new ol.layer.Vector({
|
10994 |
+
source: new ol.source.Vector({
|
10995 |
+
features: [this.olFeature]
|
10996 |
+
}),
|
10997 |
+
style: this.olStyle
|
10998 |
+
});
|
10999 |
+
|
11000 |
+
this.layer.getSource().getFeatures()[0].setProperties({
|
11001 |
+
wpgmzaPolygon: this
|
11002 |
+
});
|
11003 |
}
|
11004 |
|
11005 |
+
if(WPGMZA.isProVersion())
|
11006 |
+
Parent = WPGMZA.ProPolygon;
|
11007 |
+
else
|
11008 |
+
Parent = WPGMZA.Polygon;
|
|
|
|
|
|
|
|
|
|
|
11009 |
|
11010 |
+
WPGMZA.OLPolygon.prototype = Object.create(Parent.prototype);
|
11011 |
+
WPGMZA.OLPolygon.prototype.constructor = WPGMZA.OLPolygon;
|
11012 |
+
|
11013 |
+
WPGMZA.OLPolygon.prototype.getStyleFromSettings = function()
|
|
|
11014 |
{
|
11015 |
+
var params = {};
|
11016 |
+
|
11017 |
+
if(this.linecolor && this.lineopacity)
|
11018 |
+
params.stroke = new ol.style.Stroke({
|
11019 |
+
color: WPGMZA.hexOpacityToRGBA("#" + this.linecolor, this.lineopacity)
|
11020 |
+
});
|
11021 |
|
11022 |
+
if(this.opacity)
|
11023 |
+
params.fill = new ol.style.Fill({
|
11024 |
+
color: WPGMZA.hexOpacityToRGBA(this.fillcolor, this.opacity)
|
11025 |
+
});
|
11026 |
+
|
11027 |
+
return params;
|
11028 |
}
|
11029 |
|
11030 |
+
WPGMZA.OLPolygon.prototype.updateStyleFromSettings = function()
|
11031 |
{
|
11032 |
+
// Re-create the style - working on it directly doesn't cause a re-render
|
11033 |
+
var params = this.getStyleFromSettings();
|
11034 |
+
this.olStyle = new ol.style.Style(params);
|
11035 |
+
this.layer.setStyle(this.olStyle);
|
11036 |
}
|
11037 |
|
11038 |
+
WPGMZA.OLPolygon.prototype.setEditable = function(editable)
|
11039 |
{
|
11040 |
+
|
11041 |
}
|
11042 |
|
11043 |
+
WPGMZA.OLPolygon.prototype.toJSON = function()
|
11044 |
{
|
11045 |
+
var result = Parent.prototype.toJSON.call(this);
|
11046 |
+
var coordinates = this.olFeature.getGeometry().getCoordinates()[0];
|
11047 |
+
|
11048 |
+
result.points = [];
|
11049 |
+
|
11050 |
+
for(var i = 0; i < coordinates.length; i++)
|
11051 |
+
{
|
11052 |
+
var lonLat = ol.proj.toLonLat(coordinates[i]);
|
11053 |
+
var latLng = {
|
11054 |
+
lat: lonLat[1],
|
11055 |
+
lng: lonLat[0]
|
11056 |
+
};
|
11057 |
+
result.points.push(latLng);
|
11058 |
+
}
|
11059 |
+
|
11060 |
+
return result;
|
11061 |
}
|
11062 |
|
11063 |
});
|
11064 |
|
11065 |
+
// js/v8/open-layers/ol-polyline.js
|
11066 |
/**
|
11067 |
* @namespace WPGMZA
|
11068 |
+
* @module OLPolyline
|
11069 |
+
* @requires WPGMZA.Polyline
|
11070 |
*/
|
11071 |
jQuery(function($) {
|
11072 |
|
11073 |
+
var Parent;
|
11074 |
+
|
11075 |
+
WPGMZA.OLPolyline = function(options, olFeature)
|
11076 |
{
|
11077 |
var self = this;
|
11078 |
|
11079 |
+
WPGMZA.Polyline.call(this, options);
|
11080 |
|
11081 |
+
this.olStyle = new ol.style.Style();
|
11082 |
+
|
11083 |
+
if(olFeature)
|
11084 |
+
{
|
11085 |
+
this.olFeature = olFeature;
|
11086 |
+
}
|
11087 |
+
else
|
11088 |
+
{
|
11089 |
+
var coordinates = [];
|
11090 |
|
11091 |
+
if(options && (options.polydata || options.points))
|
11092 |
+
{
|
11093 |
+
var path;
|
11094 |
+
|
11095 |
+
if(options.polydata)
|
11096 |
+
path = this.parseGeometry(options.polydata);
|
11097 |
+
else
|
11098 |
+
path = options.points;
|
11099 |
+
|
11100 |
+
for(var i = 0; i < path.length; i++)
|
11101 |
+
{
|
11102 |
+
if(!($.isNumeric(path[i].lat)))
|
11103 |
+
throw new Error("Invalid latitude");
|
11104 |
+
|
11105 |
+
if(!($.isNumeric(path[i].lng)))
|
11106 |
+
throw new Error("Invalid longitude");
|
11107 |
+
|
11108 |
+
coordinates.push(ol.proj.fromLonLat([
|
11109 |
+
parseFloat(path[i].lng),
|
11110 |
+
parseFloat(path[i].lat)
|
11111 |
+
]));
|
11112 |
+
}
|
11113 |
+
}
|
11114 |
|
11115 |
+
var params = this.getStyleFromSettings();
|
11116 |
+
this.olStyle = new ol.style.Style(params);
|
11117 |
|
11118 |
+
this.olFeature = new ol.Feature({
|
11119 |
+
geometry: new ol.geom.LineString(coordinates)
|
11120 |
+
});
|
11121 |
+
}
|
11122 |
|
11123 |
+
this.layer = new ol.layer.Vector({
|
11124 |
+
source: new ol.source.Vector({
|
11125 |
+
features: [this.olFeature]
|
11126 |
+
}),
|
11127 |
+
style: this.olStyle
|
11128 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11129 |
|
11130 |
+
this.layer.getSource().getFeatures()[0].setProperties({
|
11131 |
+
wpgmzaPolyline: this
|
11132 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11133 |
}
|
11134 |
|
11135 |
+
Parent = WPGMZA.Polyline;
|
11136 |
+
|
11137 |
+
WPGMZA.OLPolyline.prototype = Object.create(Parent.prototype);
|
11138 |
+
WPGMZA.OLPolyline.prototype.constructor = WPGMZA.OLPolyline;
|
11139 |
+
|
11140 |
+
WPGMZA.OLPolyline.prototype.getStyleFromSettings = function()
|
11141 |
{
|
11142 |
+
var params = {};
|
11143 |
|
11144 |
+
if(this.settings.strokeOpacity)
|
11145 |
+
params.stroke = new ol.style.Stroke({
|
11146 |
+
color: WPGMZA.hexOpacityToRGBA(this.settings.strokeColor, this.settings.strokeOpacity),
|
11147 |
+
width: parseInt(this.settings.strokeWeight)
|
11148 |
+
});
|
11149 |
+
|
11150 |
+
return params;
|
11151 |
}
|
11152 |
|
11153 |
+
WPGMZA.OLPolyline.prototype.updateStyleFromSettings = function()
|
11154 |
{
|
11155 |
+
// Re-create the style - working on it directly doesn't cause a re-render
|
11156 |
+
var params = this.getStyleFromSettings();
|
11157 |
+
this.olStyle = new ol.style.Style(params);
|
11158 |
+
this.layer.setStyle(this.olStyle);
|
11159 |
}
|
11160 |
|
11161 |
+
WPGMZA.OLPolyline.prototype.setEditable = function(editable)
|
11162 |
{
|
|
|
11163 |
|
|
|
11164 |
}
|
11165 |
|
11166 |
+
WPGMZA.OLPolyline.prototype.setPoints = function(points)
|
11167 |
{
|
11168 |
+
if(this.olFeature)
|
11169 |
+
this.layer.getSource().removeFeature(this.olFeature);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11170 |
|
11171 |
+
var coordinates = [];
|
|
|
11172 |
|
11173 |
+
for(var i = 0; i < points.length; i++)
|
11174 |
+
coordinates.push(ol.proj.fromLonLat([
|
11175 |
+
parseFloat(points[i].lng),
|
11176 |
+
parseFloat(points[i].lat)
|
11177 |
+
]));
|
11178 |
|
11179 |
+
this.olFeature = new ol.Feature({
|
11180 |
+
geometry: new ol.geom.LineString(coordinates)
|
11181 |
+
});
|
11182 |
|
11183 |
+
this.layer.getSource().addFeature(this.olFeature);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11184 |
}
|
11185 |
|
11186 |
+
WPGMZA.OLPolyline.prototype.toJSON = function()
|
11187 |
{
|
11188 |
+
var result = Parent.prototype.toJSON.call(this);
|
11189 |
+
var coordinates = this.olFeature.getGeometry().getCoordinates();
|
11190 |
|
11191 |
+
result.points = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11192 |
|
11193 |
+
for(var i = 0; i < coordinates.length; i++)
|
11194 |
+
{
|
11195 |
+
var lonLat = ol.proj.toLonLat(coordinates[i]);
|
11196 |
+
var latLng = {
|
11197 |
+
lat: lonLat[1],
|
11198 |
+
lng: lonLat[0]
|
11199 |
+
};
|
11200 |
+
result.points.push(latLng);
|
11201 |
+
}
|
11202 |
|
11203 |
+
return result;
|
11204 |
}
|
11205 |
|
11206 |
});
|
11207 |
|
11208 |
+
// js/v8/open-layers/ol-text.js
|
11209 |
/**
|
11210 |
* @namespace WPGMZA
|
11211 |
+
* @module OLText
|
11212 |
+
* @requires WPGMZA.Text
|
11213 |
*/
|
11214 |
jQuery(function($) {
|
11215 |
|
11216 |
+
WPGMZA.OLText = function()
|
11217 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11218 |
|
|
|
|
|
11219 |
}
|
11220 |
|
|
|
|
|
|
|
11221 |
});
|
11222 |
|
11223 |
+
// js/v8/tables/datatable.js
|
11224 |
/**
|
11225 |
* @namespace WPGMZA
|
11226 |
+
* @module DataTable
|
11227 |
+
* @requires WPGMZA
|
|
|
11228 |
*/
|
11229 |
jQuery(function($) {
|
11230 |
|
11231 |
+
WPGMZA.DataTable = function(element)
|
|
|
|
|
11232 |
{
|
11233 |
var self = this;
|
11234 |
+
if(!$.fn.dataTable)
|
|
|
|
|
|
|
11235 |
{
|
11236 |
+
console.warn("The dataTables library is not loaded. Cannot create a dataTable. Did you enable 'Do not enqueue dataTables'?");
|
11237 |
+
|
11238 |
+
if(WPGMZA.settings.wpgmza_do_not_enqueue_datatables && WPGMZA.getCurrentPage() == WPGMZA.PAGE_MAP_EDIT)
|
11239 |
+
alert("You have selected 'Do not enqueue DataTables' in WP Google Maps' settings. No 3rd party software is loading the DataTables library. Because of this, the marker table cannot load. Please uncheck this option to use the marker table.");
|
11240 |
+
|
11241 |
+
return;
|
11242 |
}
|
11243 |
+
|
11244 |
+
if($.fn.dataTable.ext)
|
11245 |
+
$.fn.dataTable.ext.errMode = "throw";
|
11246 |
else
|
11247 |
{
|
11248 |
+
var version = $.fn.dataTable.version ? $.fn.dataTable.version : "unknown";
|
11249 |
|
11250 |
+
console.warn("You appear to be running an outdated or modified version of the dataTables library. This may cause issues with table functionality. This is usually caused by 3rd party software loading an older version of DataTables. The loaded version is " + version + ", we recommend version 1.10.12 or above.");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11251 |
}
|
11252 |
|
11253 |
+
this.element = element;
|
11254 |
+
this.element.wpgmzaDataTable = this;
|
11255 |
+
this.dataTableElement = this.getDataTableElement();
|
11256 |
+
|
11257 |
+
var settings = this.getDataTableSettings();
|
|
|
|
|
|
|
|
|
|
|
|
|
11258 |
|
11259 |
+
this.phpClass = $(element).attr("data-wpgmza-php-class");
|
11260 |
+
this.wpgmzaDataTable = this;
|
11261 |
+
|
11262 |
+
this.useCompressedPathVariable = (WPGMZA.restAPI.isCompressedPathVariableSupported && WPGMZA.settings.enable_compressed_path_variables);
|
11263 |
+
this.method = (this.useCompressedPathVariable ? "GET" : "POST");
|
11264 |
+
|
11265 |
+
if(this.getLanguageURL() == undefined || this.getLanguageURL() == "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json")
|
11266 |
+
{
|
11267 |
+
this.dataTable = $(this.dataTableElement).DataTable(settings);
|
11268 |
+
this.dataTable.ajax.reload();
|
11269 |
+
}
|
11270 |
+
else{
|
11271 |
+
|
11272 |
+
$.ajax(this.getLanguageURL(), {
|
11273 |
+
|
11274 |
+
success: function(response, status, xhr)
|
11275 |
+
{
|
11276 |
+
self.languageJSON = response; // TODO: This doesn't appear to go anywhere
|
11277 |
+
|
11278 |
+
self.dataTable = $(self.dataTableElement).DataTable(settings);
|
11279 |
+
self.dataTable.ajax.reload();
|
11280 |
+
},
|
11281 |
+
|
11282 |
+
error: function()
|
11283 |
+
{
|
11284 |
+
// TODO: Use complete instead
|
11285 |
+
self.dataTable = $(self.dataTableElement).DataTable(settings);
|
11286 |
+
self.dataTable.ajax.reload();
|
11287 |
+
}
|
11288 |
+
|
11289 |
+
});
|
11290 |
+
}
|
11291 |
}
|
11292 |
|
11293 |
+
WPGMZA.DataTable.prototype.getDataTableElement = function()
|
|
|
|
|
|
|
|
|
11294 |
{
|
11295 |
+
return $(this.element).find("table");
|
11296 |
}
|
11297 |
|
11298 |
/**
|
11299 |
+
* This function wraps the request so it doesn't collide with WP query vars,
|
11300 |
+
* it also adds the PHP class so that the controller knows which class to
|
11301 |
+
* instantiate
|
11302 |
* @return object
|
11303 |
*/
|
11304 |
+
WPGMZA.DataTable.prototype.onAJAXRequest = function(data, settings)
|
11305 |
{
|
11306 |
+
// TODO: Move this to the REST API module and add useCompressedPathVariable
|
11307 |
+
var params = {
|
11308 |
+
"phpClass": this.phpClass
|
11309 |
+
};
|
11310 |
|
11311 |
+
var attr = $(this.element).attr("data-wpgmza-ajax-parameters");
|
11312 |
+
if(attr)
|
11313 |
+
$.extend(params, JSON.parse(attr));
|
11314 |
|
11315 |
+
return $.extend(data, params);
|
11316 |
+
}
|
11317 |
+
|
11318 |
+
WPGMZA.DataTable.prototype.onDataTableAjaxRequest = function(data, callback, settings) {
|
11319 |
+
var self = this;
|
11320 |
+
var element = this.element;
|
11321 |
+
var route = $(element).attr("data-wpgmza-rest-api-route");
|
11322 |
+
var params = this.onAJAXRequest(data, settings);
|
11323 |
+
var draw = params.draw;
|
11324 |
+
|
11325 |
+
delete params.draw;
|
11326 |
+
|
11327 |
+
if(!route)
|
11328 |
+
throw new Error("No data-wpgmza-rest-api-route attribute specified");
|
11329 |
+
|
11330 |
+
var options = {
|
11331 |
+
method: "POST",
|
11332 |
+
useCompressedPathVariable: true,
|
11333 |
+
data: params,
|
11334 |
+
dataType: "json",
|
11335 |
+
cache: !this.preventCaching,
|
11336 |
+
beforeSend: function(xhr) {
|
11337 |
+
// Put draw in header, for compressed requests
|
11338 |
+
xhr.setRequestHeader("X-DataTables-Draw", draw);
|
11339 |
+
},
|
11340 |
+
success: function(response, status, xhr) {
|
11341 |
+
|
11342 |
+
response.draw = draw;
|
11343 |
+
self.lastResponse = response;
|
11344 |
+
|
11345 |
+
callback(response);
|
11346 |
+
self.onAJAXResponse(response);
|
11347 |
+
|
11348 |
+
}
|
11349 |
+
};
|
11350 |
+
|
11351 |
+
|
11352 |
+
|
11353 |
+
return WPGMZA.restAPI.call(route, options);
|
11354 |
+
}
|
11355 |
+
|
11356 |
+
WPGMZA.DataTable.prototype.getDataTableSettings = function()
|
11357 |
+
{
|
11358 |
+
var self = this;
|
11359 |
+
var element = this.element;
|
11360 |
+
var options = {};
|
11361 |
+
|
11362 |
+
if($(element).attr("data-wpgmza-datatable-options"))
|
11363 |
+
options = JSON.parse($(element).attr("data-wpgmza-datatable-options"));
|
11364 |
+
|
11365 |
+
options.deferLoading = true;
|
11366 |
+
options.processing = true;
|
11367 |
+
options.serverSide = true;
|
11368 |
+
options.ajax = function(data, callback, settings) {
|
11369 |
+
return WPGMZA.DataTable.prototype.onDataTableAjaxRequest.apply(self, arguments);
|
11370 |
}
|
11371 |
|
11372 |
+
if(WPGMZA.AdvancedTableDataTable && this instanceof WPGMZA.AdvancedTableDataTable && WPGMZA.settings.wpgmza_default_items)
|
11373 |
+
options.iDisplayLength = parseInt(WPGMZA.settings.wpgmza_default_items);
|
11374 |
+
|
11375 |
+
options.aLengthMenu = [[5, 10, 25, 50, 100, -1], ["5", "10", "25", "50", "100", WPGMZA.localized_strings.all]];
|
11376 |
+
|
11377 |
+
var languageURL = this.getLanguageURL();
|
11378 |
+
if(languageURL)
|
11379 |
+
options.language = {
|
11380 |
+
"url": languageURL
|
11381 |
+
};
|
11382 |
+
|
11383 |
+
return options;
|
11384 |
}
|
11385 |
|
11386 |
+
WPGMZA.DataTable.prototype.getLanguageURL = function()
|
11387 |
+
{
|
11388 |
+
if(!WPGMZA.locale)
|
11389 |
+
return null;
|
11390 |
+
|
11391 |
+
var languageURL;
|
11392 |
+
|
11393 |
+
switch(WPGMZA.locale.substr(0, 2))
|
11394 |
+
{
|
11395 |
+
case "af":
|
11396 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Afrikaans.json";
|
11397 |
+
break;
|
11398 |
+
|
11399 |
+
case "sq":
|
11400 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Albanian.json";
|
11401 |
+
break;
|
11402 |
+
|
11403 |
+
case "am":
|
11404 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Amharic.json";
|
11405 |
+
break;
|
11406 |
+
|
11407 |
+
case "ar":
|
11408 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Arabic.json";
|
11409 |
+
break;
|
11410 |
+
|
11411 |
+
case "hy":
|
11412 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Armenian.json";
|
11413 |
+
break;
|
11414 |
+
|
11415 |
+
case "az":
|
11416 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Azerbaijan.json";
|
11417 |
+
break;
|
11418 |
+
|
11419 |
+
case "bn":
|
11420 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bangla.json";
|
11421 |
+
break;
|
11422 |
+
|
11423 |
+
case "eu":
|
11424 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Basque.json";
|
11425 |
+
break;
|
11426 |
+
|
11427 |
+
case "be":
|
11428 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Belarusian.json";
|
11429 |
+
break;
|
11430 |
+
|
11431 |
+
case "bg":
|
11432 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Bulgarian.json";
|
11433 |
+
break;
|
11434 |
+
|
11435 |
+
case "ca":
|
11436 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Catalan.json";
|
11437 |
+
break;
|
11438 |
+
|
11439 |
+
case "zh":
|
11440 |
+
if(WPGMZA.locale == "zh_TW")
|
11441 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Chinese-traditional.json";
|
11442 |
+
else
|
11443 |
+
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Chinese.json";
|
11444 |
+
break;
|
11445 |
+
|
11446 |
+
case "hr":
|
11447 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Croatian.json";
|
11448 |
+
break;
|
11449 |
+
|
11450 |
+
case "cs":
|
11451 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Czech.json";
|
11452 |
+
break;
|
11453 |
+
|
11454 |
+
case "da":
|
11455 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Danish.json";
|
11456 |
+
break;
|
11457 |
+
|
11458 |
+
case "nl":
|
11459 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Dutch.json";
|
11460 |
+
break;
|
11461 |
+
|
11462 |
+
/*case "en":
|
11463 |
+
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json";
|
11464 |
+
break;*/
|
11465 |
+
|
11466 |
+
case "et":
|
11467 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Estonian.json";
|
11468 |
+
break;
|
11469 |
+
|
11470 |
+
case "fi":
|
11471 |
+
if(WPGMZA.locale.match(/^fil/))
|
11472 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Filipino.json";
|
11473 |
+
else
|
11474 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Finnish.json";
|
11475 |
+
break;
|
11476 |
+
|
11477 |
+
case "fr":
|
11478 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/French.json";
|
11479 |
+
break;
|
11480 |
+
|
11481 |
+
case "gl":
|
11482 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Galician.json";
|
11483 |
+
break;
|
11484 |
+
|
11485 |
+
case "ka":
|
11486 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Georgian.json";
|
11487 |
+
break;
|
11488 |
+
|
11489 |
+
case "de":
|
11490 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/German.json";
|
11491 |
+
break;
|
11492 |
+
|
11493 |
+
case "el":
|
11494 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Greek.json";
|
11495 |
+
break;
|
11496 |
+
|
11497 |
+
case "gu":
|
11498 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Gujarati.json";
|
11499 |
+
break;
|
11500 |
+
|
11501 |
+
case "he":
|
11502 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hebrew.json";
|
11503 |
+
break;
|
11504 |
+
|
11505 |
+
case "hi":
|
11506 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hindi.json";
|
11507 |
+
break;
|
11508 |
+
|
11509 |
+
case "hu":
|
11510 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Hungarian.json";
|
11511 |
+
break;
|
11512 |
+
|
11513 |
+
case "is":
|
11514 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Icelandic.json";
|
11515 |
+
break;
|
11516 |
+
|
11517 |
+
/*case "id":
|
11518 |
+
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Indonesian-Alternative.json";
|
11519 |
+
break;*/
|
11520 |
+
|
11521 |
+
case "id":
|
11522 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Indonesian.json";
|
11523 |
+
break;
|
11524 |
+
|
11525 |
+
case "ga":
|
11526 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Irish.json";
|
11527 |
+
break;
|
11528 |
|
11529 |
+
case "it":
|
11530 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Italian.json";
|
11531 |
+
break;
|
11532 |
+
|
11533 |
+
case "ja":
|
11534 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Japanese.json";
|
11535 |
+
break;
|
11536 |
+
|
11537 |
+
case "kk":
|
11538 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kazakh.json";
|
11539 |
+
break;
|
11540 |
+
|
11541 |
+
case "ko":
|
11542 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Korean.json";
|
11543 |
+
break;
|
11544 |
+
|
11545 |
+
case "ky":
|
11546 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Kyrgyz.json";
|
11547 |
+
break;
|
11548 |
+
|
11549 |
+
case "lv":
|
11550 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Latvian.json";
|
11551 |
+
break;
|
11552 |
+
|
11553 |
+
case "lt":
|
11554 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Lithuanian.json";
|
11555 |
+
break;
|
11556 |
+
|
11557 |
+
case "mk":
|
11558 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Macedonian.json";
|
11559 |
+
break;
|
11560 |
+
|
11561 |
+
case "ml":
|
11562 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Malay.json";
|
11563 |
+
break;
|
11564 |
+
|
11565 |
+
case "mn":
|
11566 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Mongolian.json";
|
11567 |
+
break;
|
11568 |
+
|
11569 |
+
case "ne":
|
11570 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Nepali.json";
|
11571 |
+
break;
|
11572 |
+
|
11573 |
+
case "nb":
|
11574 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Bokmal.json";
|
11575 |
+
break;
|
11576 |
|
11577 |
+
case "nn":
|
11578 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Norwegian-Nynorsk.json";
|
11579 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11580 |
|
11581 |
+
case "ps":
|
11582 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Pashto.json";
|
11583 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11584 |
|
11585 |
+
case "fa":
|
11586 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Persian.json";
|
11587 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11588 |
|
11589 |
+
case "pl":
|
11590 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Polish.json";
|
11591 |
+
break;
|
11592 |
+
|
11593 |
+
case "pt":
|
11594 |
+
if(WPGMZA.locale == "pt_BR")
|
11595 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Portuguese-Brasil.json";
|
11596 |
+
else
|
11597 |
+
languageURL = "//cdn.datatables.net/plug-ins/1.10.12/i18n/Portuguese.json";
|
11598 |
+
break;
|
11599 |
+
|
11600 |
+
case "ro":
|
11601 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Romanian.json";
|
11602 |
+
break;
|
11603 |
+
|
11604 |
+
case "ru":
|
11605 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Russian.json";
|
11606 |
+
break;
|
11607 |
+
|
11608 |
+
case "sr":
|
11609 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Serbian.json";
|
11610 |
+
break;
|
11611 |
+
|
11612 |
+
case "si":
|
11613 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Sinhala.json";
|
11614 |
+
break;
|
11615 |
+
|
11616 |
+
case "sk":
|
11617 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovak.json";
|
11618 |
+
break;
|
11619 |
+
|
11620 |
+
case "sl":
|
11621 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Slovenian.json";
|
11622 |
+
break;
|
11623 |
+
|
11624 |
+
case "es":
|
11625 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Spanish.json";
|
11626 |
+
break;
|
11627 |
+
|
11628 |
+
case "sw":
|
11629 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swahili.json";
|
11630 |
+
break;
|
11631 |
+
|
11632 |
+
case "sv":
|
11633 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Swedish.json";
|
11634 |
+
break;
|
11635 |
+
|
11636 |
+
case "ta":
|
11637 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Tamil.json";
|
11638 |
+
break;
|
11639 |
+
|
11640 |
+
case "te":
|
11641 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/telugu.json";
|
11642 |
+
break;
|
11643 |
+
|
11644 |
+
case "th":
|
11645 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Thai.json";
|
11646 |
+
break;
|
11647 |
+
|
11648 |
+
case "tr":
|
11649 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Turkish.json";
|
11650 |
+
break;
|
11651 |
|
11652 |
+
case "uk":
|
11653 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Ukrainian.json";
|
11654 |
+
break;
|
11655 |
+
|
11656 |
+
case "ur":
|
11657 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Urdu.json";
|
11658 |
+
break;
|
11659 |
+
|
11660 |
+
case "uz":
|
11661 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Uzbek.json";
|
11662 |
+
break;
|
11663 |
+
|
11664 |
+
case "vi":
|
11665 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Vietnamese.json";
|
11666 |
+
break;
|
11667 |
+
|
11668 |
+
case "cy":
|
11669 |
+
languageURL = WPGMZA.pluginDirURL + "languages/datatables/Welsh.json";
|
11670 |
+
break;
|
11671 |
+
}
|
11672 |
|
11673 |
+
return languageURL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11674 |
}
|
11675 |
|
11676 |
+
WPGMZA.DataTable.prototype.onAJAXResponse = function(response)
|
11677 |
{
|
11678 |
+
|
11679 |
}
|
11680 |
|
11681 |
+
WPGMZA.DataTable.prototype.reload = function()
|
11682 |
{
|
11683 |
+
this.dataTable.ajax.reload(null, false); // null callback, false for resetPaging
|
|
|
|
|
|
|
11684 |
}
|
11685 |
|
11686 |
});
|
11687 |
|
11688 |
+
// js/v8/tables/admin-marker-datatable.js
|
11689 |
/**
|
11690 |
* @namespace WPGMZA
|
11691 |
+
* @module AdminMarkerDataTable
|
11692 |
+
* @requires WPGMZA.DataTable
|
11693 |
*/
|
11694 |
jQuery(function($) {
|
11695 |
|
11696 |
+
WPGMZA.AdminMarkerDataTable = function(element)
|
|
|
|
|
|
|
|
|
|
|
|
|
11697 |
{
|
11698 |
var self = this;
|
11699 |
|
11700 |
+
this.preventCaching = true;
|
11701 |
|
11702 |
+
WPGMZA.DataTable.call(this, element);
|
|
|
|
|
11703 |
|
11704 |
+
// NB: Pro marker panel currently manages edit marker buttons
|
11705 |
+
|
11706 |
+
$(element).on("click", "[data-delete-marker-id]", function(event) {
|
11707 |
+
self.onDeleteMarker(event);
|
11708 |
+
});
|
11709 |
+
|
11710 |
+
$(element).find(".wpgmza.select_all_markers").on("click", function(event) {
|
11711 |
+
self.onSelectAll(event);
|
11712 |
+
});
|
11713 |
+
|
11714 |
+
$(element).find(".wpgmza.bulk_delete").on("click", function(event) {
|
11715 |
+
self.onBulkDelete(event);
|
11716 |
+
});
|
11717 |
+
|
11718 |
+
$(element).on("click", "[data-center-marker-id]", function(event) {
|
11719 |
+
self.onCenterMarker(event);
|
11720 |
});
|
11721 |
}
|
11722 |
|
11723 |
+
WPGMZA.AdminMarkerDataTable.prototype = Object.create(WPGMZA.DataTable.prototype);
|
11724 |
+
WPGMZA.AdminMarkerDataTable.prototype.constructor = WPGMZA.AdminMarkerDataTable;
|
11725 |
|
11726 |
+
WPGMZA.AdminMarkerDataTable.createInstance = function(element)
|
11727 |
{
|
11728 |
+
return new WPGMZA.AdminMarkerDataTable(element);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11729 |
}
|
11730 |
|
11731 |
+
WPGMZA.AdminMarkerDataTable.prototype.getDataTableSettings = function()
|
11732 |
{
|
11733 |
+
var self = this;
|
11734 |
+
var options = WPGMZA.DataTable.prototype.getDataTableSettings.call(this);
|
11735 |
|
11736 |
+
options.createdRow = function(row, data, index)
|
11737 |
+
{
|
11738 |
+
var meta = self.lastResponse.meta[index];
|
11739 |
+
row.wpgmzaMarkerData = meta;
|
11740 |
+
}
|
11741 |
+
|
11742 |
+
return options;
|
11743 |
}
|
11744 |
|
11745 |
+
WPGMZA.AdminMarkerDataTable.prototype.onEditMarker = function(event)
|
11746 |
{
|
11747 |
+
WPGMZA.animatedScroll("#wpgmaps_tabs_markers");
|
|
|
|
|
|
|
|
|
11748 |
}
|
11749 |
|
11750 |
+
WPGMZA.AdminMarkerDataTable.prototype.onDeleteMarker = function(event)
|
11751 |
{
|
11752 |
+
var self = this;
|
11753 |
+
var id = $(event.currentTarget).attr("data-delete-marker-id");
|
11754 |
+
|
11755 |
+
var data = {
|
11756 |
+
action: 'delete_marker',
|
11757 |
+
security: WPGMZA.legacyajaxnonce,
|
11758 |
+
map_id: WPGMZA.mapEditPage.map.id,
|
11759 |
+
marker_id: id
|
11760 |
+
};
|
11761 |
+
|
11762 |
+
$.post(ajaxurl, data, function(response) {
|
11763 |
+
|
11764 |
+
WPGMZA.mapEditPage.map.removeMarkerByID(id);
|
11765 |
+
self.reload();
|
11766 |
+
|
11767 |
+
});
|
11768 |
}
|
11769 |
|
11770 |
+
// NB: Move this to UGM
|
11771 |
+
WPGMZA.AdminMarkerDataTable.prototype.onApproveMarker = function(event)
|
11772 |
{
|
11773 |
+
var self = this;
|
11774 |
+
var cur_id = $(this).attr("id");
|
11775 |
+
|
11776 |
+
var data = {
|
11777 |
+
action: 'approve_marker',
|
11778 |
+
security: WPGMZA.legacyajaxnonce,
|
11779 |
+
map_id: WPGMZA.mapEditPage.map.id,
|
11780 |
+
marker_id: cur_id
|
11781 |
+
};
|
11782 |
+
$.post(ajaxurl, data, function (response) {
|
11783 |
+
|
11784 |
+
|
11785 |
+
wpgmza_InitMap();
|
11786 |
+
wpgmza_reinitialisetbl();
|
11787 |
|
11788 |
+
});
|
|
|
|
|
11789 |
}
|
11790 |
|
11791 |
+
WPGMZA.AdminMarkerDataTable.prototype.onSelectAll = function(event)
|
11792 |
{
|
11793 |
+
$(this.element).find("input[name='mark']").prop("checked", true);
|
11794 |
+
}
|
11795 |
+
|
11796 |
+
WPGMZA.AdminMarkerDataTable.prototype.onBulkDelete = function(event)
|
11797 |
+
{
|
11798 |
+
var self = this;
|
11799 |
+
var ids = [];
|
11800 |
+
var map = WPGMZA.maps[0];
|
11801 |
+
|
11802 |
+
$(this.element).find("input[name='mark']:checked").each(function(index, el) {
|
11803 |
+
var row = $(el).closest("tr")[0];
|
11804 |
+
ids.push(row.wpgmzaMarkerData.id);
|
11805 |
+
});
|
11806 |
+
|
11807 |
+
ids.forEach(function(marker_id) {
|
11808 |
+
var marker = map.getMarkerByID(marker_id);
|
11809 |
+
|
11810 |
+
if(marker)
|
11811 |
+
map.removeMarker(marker);
|
11812 |
+
});
|
11813 |
+
|
11814 |
+
WPGMZA.restAPI.call("/markers/", {
|
11815 |
+
method: "DELETE",
|
11816 |
+
data: {
|
11817 |
+
ids: ids
|
11818 |
+
},
|
11819 |
+
complete: function() {
|
11820 |
+
self.reload();
|
11821 |
+
}
|
11822 |
+
});
|
11823 |
+
}
|
11824 |
|
11825 |
+
WPGMZA.AdminMarkerDataTable.prototype.onCenterMarker = function(event)
|
11826 |
+
{
|
11827 |
+
var id;
|
11828 |
+
|
11829 |
+
//Check if we have selected the center on marker button or called this function elsewhere
|
11830 |
+
if(event.currentTarget == undefined)
|
11831 |
+
{
|
11832 |
+
id = event;
|
11833 |
+
}
|
11834 |
+
else{
|
11835 |
+
id = $(event.currentTarget).attr("data-center-marker-id");
|
11836 |
}
|
11837 |
|
11838 |
+
var marker = WPGMZA.mapEditPage.map.getMarkerByID(id);
|
11839 |
+
|
11840 |
+
if(marker){
|
11841 |
+
var latLng = new WPGMZA.LatLng({
|
11842 |
+
lat: marker.lat,
|
11843 |
+
lng: marker.lng
|
11844 |
+
});
|
11845 |
+
|
11846 |
+
//Set a static zoom level
|
11847 |
+
var zoom_value = 6;
|
11848 |
+
WPGMZA.mapEditPage.map.setCenter(latLng);
|
11849 |
+
WPGMZA.mapEditPage.map.setZoom(zoom_value);
|
11850 |
+
WPGMZA.animateScroll("#wpgmaps_tabs_markers");
|
11851 |
+
}
|
11852 |
+
|
11853 |
+
|
11854 |
}
|
11855 |
|
11856 |
+
$(document).ready(function(event) {
|
11857 |
+
|
11858 |
+
$("[data-wpgmza-admin-marker-datatable]").each(function(index, el) {
|
11859 |
+
WPGMZA.adminMarkerDataTable = WPGMZA.AdminMarkerDataTable.createInstance(el);
|
11860 |
+
});
|
11861 |
+
|
11862 |
+
});
|
11863 |
+
|
11864 |
});
|
js/v8/wp-google-maps.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function($){var core={MARKER_PULL_DATABASE:"0",MARKER_PULL_XML:"1",PAGE_MAP_LIST:"map-list",PAGE_MAP_EDIT:"map-edit",PAGE_SETTINGS:"map-settings",PAGE_SUPPORT:"map-support",PAGE_CATEGORIES:"categories",PAGE_ADVANCED:"advanced",PAGE_CUSTOM_FIELDS:"custom-fields",maps:[],events:null,settings:null,restAPI:null,localized_strings:null,loadingHTML:'<div class="wpgmza-preloader"><div></div><div></div><div></div><div></div></div>',getCurrentPage:function(){switch(WPGMZA.getQueryParamValue("page")){case"wp-google-maps-menu":return window.location.href.match(/action=edit/)&&window.location.href.match(/map_id=\d+/)?WPGMZA.PAGE_MAP_EDIT:WPGMZA.PAGE_MAP_LIST;case"wp-google-maps-menu-settings":return WPGMZA.PAGE_SETTINGS;case"wp-google-maps-menu-support":return WPGMZA.PAGE_SUPPORT;case"wp-google-maps-menu-categories":return WPGMZA.PAGE_CATEGORIES;case"wp-google-maps-menu-advanced":return WPGMZA.PAGE_ADVANCED;case"wp-google-maps-menu-custom-fields":return WPGMZA.PAGE_CUSTOM_FIELDS;default:return null}},getScrollAnimationOffset:function(){return(WPGMZA.settings.scroll_animation_offset||0)+$("#wpadminbar").height()},getScrollAnimationDuration:function(){return WPGMZA.settings.scroll_animation_milliseconds?WPGMZA.settings.scroll_animation_milliseconds:500},animateScroll:function(element,milliseconds){var offset=WPGMZA.getScrollAnimationOffset();milliseconds=milliseconds||WPGMZA.getScrollAnimationDuration(),$("html, body").animate({scrollTop:$(element).offset().top-offset},milliseconds)},extend:function(child,parent){var constructor=child;child.prototype=Object.create(parent.prototype),child.prototype.constructor=constructor},guid:function(){var d=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(d+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=(d+16*Math.random())%16|0;return d=Math.floor(d/16),("x"===c?r:3&r|8).toString(16)})},hexOpacityToRGBA:function(colour,opacity){var hex=parseInt(colour.replace(/^#/,""),16);return[(16711680&hex)>>16,(65280&hex)>>8,255&hex,parseFloat(opacity)]},hexToRgba:function(hex){var c;return/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)?(3==(c=hex.substring(1).split("")).length&&(c=[c[0],c[0],c[1],c[1],c[2],c[2]]),{r:(c="0x"+c.join(""))>>16&255,g:c>>8&255,b:255&c,a:1}):0},rgbaToString:function(rgba){return"rgba("+rgba.r+", "+rgba.g+", "+rgba.b+", "+rgba.a+")"},latLngRegexp:/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/,isLatLngString:function(str){if("string"!=typeof str)return null;str.match(/^\(.+\)$/)&&(str=str.replace(/^\(|\)$/,""));var m=str.match(WPGMZA.latLngRegexp);return m?new WPGMZA.LatLng({lat:parseFloat(m[1]),lng:parseFloat(m[3])}):null},stringToLatLng:function(str){var result=WPGMZA.isLatLngString(str);if(!result)throw new Error("Not a valid latLng");return result},isHexColorString:function(str){return"string"==typeof str&&!!str.match(/#[0-9A-F]{6}/i)},imageDimensionsCache:{},getImageDimensions:function(src,callback){if(WPGMZA.imageDimensionsCache[src])callback(WPGMZA.imageDimensionsCache[src]);else{var img=document.createElement("img");img.onload=function(event){var result={width:img.width,height:img.height};WPGMZA.imageDimensionsCache[src]=result,callback(result)},img.src=src}},decodeEntities:function(input){return input.replace(/&(nbsp|amp|quot|lt|gt);/g,function(m,e){return m[e]}).replace(/&#(\d+);/gi,function(m,e){return String.fromCharCode(parseInt(e,10))})},isDeveloperMode:function(){return this.settings.developer_mode||window.Cookies&&window.Cookies.get("wpgmza-developer-mode")},isProVersion:function(){return"1"==this._isProVersion},openMediaDialog:function(callback){var file_frame;if(file_frame)return file_frame.uploader.uploader.param("post_id",set_to_post_id),void file_frame.open();(file_frame=wp.media.frames.file_frame=wp.media({title:"Select a image to upload",button:{text:"Use this image"},multiple:!1})).on("select",function(){attachment=file_frame.state().get("selection").first().toJSON(),callback(attachment.id,attachment.url)}),file_frame.open()},getCurrentPosition:function(callback,error,watch){var nativeFunction="getCurrentPosition";if(WPGMZA.userLocationDenied)error&&error({code:1,message:"Location unavailable"});else if(watch&&(nativeFunction="watchPosition"),navigator.geolocation){var options={enableHighAccuracy:!0};navigator.geolocation[nativeFunction]?navigator.geolocation[nativeFunction](function(position){callback&&callback(position),WPGMZA.events.trigger("userlocationfound")},function(err){options.enableHighAccuracy=!1,navigator.geolocation[nativeFunction](function(position){callback&&callback(position),WPGMZA.events.trigger("userlocationfound")},function(err){console.warn(err.code,err.message),1==err.code&&(WPGMZA.userLocationDenied=!0),error&&error(err)},options)},options):console.warn(nativeFunction+" is not available")}else console.warn("No geolocation available on this device")},watchPosition:function(callback,error){return WPGMZA.getCurrentPosition(callback,error,!0)},runCatchableTask:function(callback,friendlyErrorContainer){if(WPGMZA.isDeveloperMode())callback();else try{callback()}catch(e){var friendlyError=new WPGMZA.FriendlyError(e);$(friendlyErrorContainer).html(""),$(friendlyErrorContainer).append(friendlyError.element),$(friendlyErrorContainer).show()}},assertInstanceOf:function(instance,instanceName){var engine,fullInstanceName,pro=WPGMZA.isProVersion()?"Pro":"";switch(WPGMZA.settings.engine){case"open-layers":engine="OL";break;default:engine="Google"}if(fullInstanceName=WPGMZA[engine+pro+instanceName]?engine+pro+instanceName:WPGMZA[pro+instanceName]?pro+instanceName:WPGMZA[engine+instanceName]?engine+instanceName:instanceName,!(instance instanceof WPGMZA[fullInstanceName]))throw new Error("Object must be an instance of "+fullInstanceName+" (did you call a constructor directly, rather than createInstance?)")},getMapByID:function(id){return!WPGMZA.isProVersion()||MYMAP.map instanceof WPGMZA.Map?MYMAP.map:MYMAP[id].map},isGoogleAutocompleteSupported:function(){return!!window.google&&(!!google.maps&&(!!google.maps.places&&(!!google.maps.places.Autocomplete&&(!WPGMZA.CloudAPI||!WPGMZA.CloudAPI.isBeingUsed))))},googleAPIStatus:window.wpgmza_google_api_status,isSafari:function(){var ua=navigator.userAgent.toLowerCase();return ua.match(/safari/i)&&!ua.match(/chrome/i)},isTouchDevice:function(){return"ontouchstart"in window},isDeviceiOS:function(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)},isModernComponentStyleAllowed:function(){return!WPGMZA.settings.user_interface_style||"legacy"==WPGMZA.settings.user_interface_style||"modern"==WPGMZA.settings.user_interface_style},isElementInView:function(element){var pageTop=$(window).scrollTop(),pageBottom=pageTop+$(window).height(),elementTop=$(element).offset().top,elementBottom=elementTop+$(element).height();return elementTop<pageTop&&pageBottom<elementBottom||(pageTop<=elementTop&&elementTop<=pageBottom||pageTop<=elementBottom&&elementBottom<=pageBottom)},isFullScreen:function(){return isFullScreen},getQueryParamValue:function(name){var m,regex=new RegExp(name+"=([^&#]*)");return(m=window.location.href.match(regex))?m[1]:null},notification:function(text,time){switch(arguments.length){case 0:text="",time=4e3;break;case 1:time=4e3}var html='<div class="wpgmza-popup-notification">'+text+"</div>";jQuery("body").append(html),setTimeout(function(){jQuery("body").find(".wpgmza-popup-notification").remove()},time)}};for(var key in window.WPGMZA?window.WPGMZA=$.extend(window.WPGMZA,core):window.WPGMZA=core,WPGMZA_localized_data){var value=WPGMZA_localized_data[key];WPGMZA[key]=value}WPGMZA.settings.useLegacyGlobals=!0,jQuery(function($){$(window).trigger("ready.wpgmza"),$("script[src*='wp-google-maps.combined.js'], script[src*='wp-google-maps-pro.combined.js']").length&&console.warn("Minified script is out of date, using combined script instead.");var elements=$("script").filter(function(){return this.src.match(/(^|\/)jquery\.(min\.)?js(\?|$)/i)});1<elements.length&&console.warn("Multiple jQuery versions detected: ",elements),WPGMZA.restAPI=WPGMZA.RestAPI.createInstance(),WPGMZA.CloudAPI&&(WPGMZA.cloudAPI=WPGMZA.CloudAPI.createInstance()),$(document).on("click",".wpgmza_edit_btn",function(){WPGMZA.animateScroll("#wpgmaps_tabs_markers")})});var isFullScreen=!1;function onScroll(event){$(".wpgmza_map").each(function(index,el){var isInView=WPGMZA.isElementInView(el);el.wpgmzaScrollIntoViewTriggerFlag?isInView||(el.wpgmzaScrollIntoViewTriggerFlag=!1):isInView&&($(el).trigger("mapscrolledintoview.wpgmza"),el.wpgmzaScrollIntoViewTriggerFlag=!0)})}$(document).on("fullscreenchange",function(){isFullScreen=!!document.fullscreenElement}),$(window).on("load",function(event){for(var key in[]){console.warn("The Array object has been extended incorrectly by your theme or another plugin. This can cause issues with functionality.");break}if("https:"!=window.location.protocol){var warning='<div class="notice notice-warning"><p>'+WPGMZA.localized_strings.unsecure_geolocation+"</p></div>";$(".wpgmza-geolocation-setting").each(function(index,el){$(el).after($(warning))})}}),$(window).on("scroll",onScroll),$(window).on("load",onScroll),WPGMZA.refreshOnLoad&&window.location.reload()}),jQuery(function($){WPGMZA.Compatibility=function(){this.preventDocumentWriteGoogleMapsAPI()},WPGMZA.Compatibility.prototype.preventDocumentWriteGoogleMapsAPI=function(){var old=document.write;document.write=function(content){content.match&&content.match(/maps\.google/)||old.call(document,content)}},WPGMZA.compatiblityModule=new WPGMZA.Compatibility}),function(root,factory){"object"==typeof exports?module.exports=factory(root):"function"==typeof define&&define.amd?define([],factory.bind(root,root)):factory(root)}("undefined"!=typeof global?global:this,function(root){if(root.CSS&&root.CSS.escape)return root.CSS.escape;function cssEscape(value){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var codeUnit,string=String(value),length=string.length,index=-1,result="",firstCodeUnit=string.charCodeAt(0);++index<length;)0!=(codeUnit=string.charCodeAt(index))?result+=1<=codeUnit&&codeUnit<=31||127==codeUnit||0==index&&48<=codeUnit&&codeUnit<=57||1==index&&48<=codeUnit&&codeUnit<=57&&45==firstCodeUnit?"\\"+codeUnit.toString(16)+" ":(0!=index||1!=length||45!=codeUnit)&&(128<=codeUnit||45==codeUnit||95==codeUnit||48<=codeUnit&&codeUnit<=57||65<=codeUnit&&codeUnit<=90||97<=codeUnit&&codeUnit<=122)?string.charAt(index):"\\"+string.charAt(index):result+="�";return result}return root.CSS||(root.CSS={}),root.CSS.escape=cssEscape}),jQuery(function($){Math.PI;function deg2rad(deg){return deg*(Math.PI/180)}WPGMZA.Distance={MILES:!0,KILOMETERS:!1,MILES_PER_KILOMETER:.621371,KILOMETERS_PER_MILE:1.60934,uiToMeters:function(uiDistance){return parseFloat(uiDistance)/(WPGMZA.settings.distance_units==WPGMZA.Distance.MILES?WPGMZA.Distance.MILES_PER_KILOMETER:1)*1e3},uiToKilometers:function(uiDistance){return.001*WPGMZA.Distance.uiToMeters(uiDistance)},uiToMiles:function(uiDistance){return WPGMZA.Distance.uiToKilometers(uiDistance)*WPGMZA.Distance.MILES_PER_KILOMETER},kilometersToUI:function(km){return WPGMZA.settings.distance_units==WPGMZA.Distance.MILES?km*WPGMZA.Distance.MILES_PER_KILOMETER:km},between:function(a,b){if(!(a instanceof WPGMZA.LatLng||"lat"in a&&"lng"in a))throw new Error("First argument must be an instance of WPGMZA.LatLng or a literal");if(!(b instanceof WPGMZA.LatLng||"lat"in b&&"lng"in b))throw new Error("Second argument must be an instance of WPGMZA.LatLng or a literal");if(a===b)return 0;var lat1=a.lat,lon1=a.lng,lat2=b.lat,lon2=b.lng,dLat=deg2rad(lat2-lat1),dLon=deg2rad(lon2-lon1);a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(deg2rad(lat1))*Math.cos(deg2rad(lat2))*Math.sin(dLon/2)*Math.sin(dLon/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))}}}),jQuery(function($){WPGMZA.EliasFano=function(){if(!WPGMZA.EliasFano.isSupported)throw new Error("Elias Fano encoding is not supported on browsers without Uint8Array");WPGMZA.EliasFano.decodingTablesInitialised||WPGMZA.EliasFano.createDecodingTable()},WPGMZA.EliasFano.isSupported="Uint8Array"in window,WPGMZA.EliasFano.decodingTableHighBits=[],WPGMZA.EliasFano.decodingTableDocIDNumber=null,WPGMZA.EliasFano.decodingTableHighBitsCarryover=null,WPGMZA.EliasFano.createDecodingTable=function(){WPGMZA.EliasFano.decodingTableDocIDNumber=new Uint8Array(256),WPGMZA.EliasFano.decodingTableHighBitsCarryover=new Uint8Array(256);for(var decodingTableHighBits=WPGMZA.EliasFano.decodingTableHighBits,decodingTableDocIDNumber=WPGMZA.EliasFano.decodingTableDocIDNumber,decodingTableHighBitsCarryover=WPGMZA.EliasFano.decodingTableHighBitsCarryover,i=0;i<256;i++){var zeroCount=0;decodingTableHighBits[i]=[];for(var j=7;0<=j;j--)zeroCount=0<(i&1<<j)?(decodingTableHighBits[i][decodingTableDocIDNumber[i]]=zeroCount,decodingTableDocIDNumber[i]++,0):(zeroCount+1)%255;decodingTableHighBitsCarryover[i]=zeroCount}WPGMZA.EliasFano.decodingTablesInitialised=!0},WPGMZA.EliasFano.prototype.encode=function(list){var lastDocID=0,buffer1=0,bufferLength1=0,buffer2=0,bufferLength2=0;if(0==list.length)return result;function toByte(n){return 255&n}var compressedBufferPointer1=0,compressedBufferPointer2=0,averageDelta=list[list.length-1]/list.length,averageDeltaLog=Math.log2(averageDelta),lowBitsLength=Math.floor(averageDeltaLog),lowBitsMask=(1<<lowBitsLength)-1,prev=null,maxCompressedSize=Math.floor((2+Math.ceil(Math.log2(averageDelta)))*list.length/8)+6,compressedBuffer=new Uint8Array(maxCompressedSize);lowBitsLength<0&&(lowBitsLength=0),compressedBufferPointer2=Math.floor(lowBitsLength*list.length/8+6),compressedBuffer[compressedBufferPointer1++]=toByte(list.length),compressedBuffer[compressedBufferPointer1++]=toByte(list.length>>8),compressedBuffer[compressedBufferPointer1++]=toByte(list.length>>16),compressedBuffer[compressedBufferPointer1++]=toByte(list.length>>24),compressedBuffer[compressedBufferPointer1++]=toByte(lowBitsLength),list.forEach(function(docID){var docIDDelta=docID-lastDocID-1;if(!$.isNumeric(docID))throw new Error("Value is not numeric");if(docID=parseInt(docID),null!==prev&&docID<=prev)throw new Error("Elias Fano encoding can only be used on a sorted, ascending list of unique integers.");for(prev=docID,buffer1<<=lowBitsLength,buffer1|=docIDDelta&lowBitsMask,bufferLength1+=lowBitsLength;7<bufferLength1;)bufferLength1-=8,compressedBuffer[compressedBufferPointer1++]=toByte(buffer1>>bufferLength1);var unaryCodeLength=1+(docIDDelta>>lowBitsLength);for(buffer2<<=unaryCodeLength,buffer2|=1,bufferLength2+=unaryCodeLength;7<bufferLength2;)bufferLength2-=8,compressedBuffer[compressedBufferPointer2++]=toByte(buffer2>>bufferLength2);lastDocID=docID}),0<bufferLength1&&(compressedBuffer[compressedBufferPointer1++]=toByte(buffer1<<8-bufferLength1)),0<bufferLength2&&(compressedBuffer[compressedBufferPointer2++]=toByte(buffer2<<8-bufferLength2));var result=new Uint8Array(compressedBuffer);return result.pointer=compressedBufferPointer2,result},WPGMZA.EliasFano.prototype.decode=function(compressedBuffer){var resultPointer=0,list=[],decodingTableHighBits=WPGMZA.EliasFano.decodingTableHighBits,decodingTableDocIDNumber=WPGMZA.EliasFano.decodingTableDocIDNumber,decodingTableHighBitsCarryover=WPGMZA.EliasFano.decodingTableHighBitsCarryover,lowBitsPointer=0,lastDocID=0,docID=0,docIDNumber=0,listCount=compressedBuffer[lowBitsPointer++];listCount|=compressedBuffer[lowBitsPointer++]<<8,listCount|=compressedBuffer[lowBitsPointer++]<<16,listCount|=compressedBuffer[lowBitsPointer++]<<24;var highBitsPointer,lowBitsLength=compressedBuffer[lowBitsPointer++],lowBitsCount=0,lowBits=0,cb=1;for(highBitsPointer=Math.floor(lowBitsLength*listCount/8+6);highBitsPointer<compressedBuffer.pointer;highBitsPointer++){docID+=decodingTableHighBitsCarryover[cb],docIDNumber=decodingTableDocIDNumber[cb=compressedBuffer[highBitsPointer]];for(var i=0;i<docIDNumber;i++){for(docID<<=lowBitsCount,docID|=lowBits&(1<<lowBitsCount)-1;lowBitsCount<lowBitsLength;)docID<<=8,docID|=lowBits=compressedBuffer[lowBitsPointer++],lowBitsCount+=8;docID>>=lowBitsCount-=lowBitsLength,docID+=(decodingTableHighBits[cb][i]<<lowBitsLength)+lastDocID+1,lastDocID=list[resultPointer++]=docID,docID=0}}return list}}),jQuery(function($){WPGMZA.EventDispatcher=function(){WPGMZA.assertInstanceOf(this,"EventDispatcher"),this._listenersByType={}},WPGMZA.EventDispatcher.prototype.addEventListener=function(type,listener,thisObject,useCapture){var types=type.split(/\s+/);if(1<types.length)for(var i=0;i<types.length;i++)this.addEventListener(types[i],listener,thisObject,useCapture);else{if(!(listener instanceof Function))throw new Error("Listener must be a function");var target;target=this._listenersByType.hasOwnProperty(type)?this._listenersByType[type]:this._listenersByType[type]=[];var obj={listener:listener,thisObject:thisObject||this,useCapture:!!useCapture};target.push(obj)}},WPGMZA.EventDispatcher.prototype.on=WPGMZA.EventDispatcher.prototype.addEventListener,WPGMZA.EventDispatcher.prototype.removeEventListener=function(type,listener,thisObject,useCapture){var arr,obj;if(arr=this._listenersByType[type]){thisObject=thisObject||this,useCapture=!!useCapture;for(var i=0;i<arr.length;i++)if(obj=arr[i],(1==arguments.length||obj.listener==listener)&&obj.thisObject==thisObject&&obj.useCapture==useCapture)return void arr.splice(i,1)}},WPGMZA.EventDispatcher.prototype.off=WPGMZA.EventDispatcher.prototype.removeEventListener,WPGMZA.EventDispatcher.prototype.hasEventListener=function(type){return!!_listenersByType[type]},WPGMZA.EventDispatcher.prototype.dispatchEvent=function(event){if(!(event instanceof WPGMZA.Event))if("string"==typeof event)event=new WPGMZA.Event(event);else{var src=event;for(var name in event=new WPGMZA.Event,src)event[name]=src[name]}for(var path=[],obj=(event.target=this).parent;null!=obj;obj=obj.parent)path.unshift(obj);event.phase=WPGMZA.Event.CAPTURING_PHASE;for(var i=0;i<path.length&&!event._cancelled;i++)path[i]._triggerListeners(event);if(!event._cancelled){for(event.phase=WPGMZA.Event.AT_TARGET,this._triggerListeners(event),event.phase=WPGMZA.Event.BUBBLING_PHASE,i=path.length-1;0<=i&&!event._cancelled;i--)path[i]._triggerListeners(event);var topMostElement=this.element;for(obj=this.parent;null!=obj;obj=obj.parent)obj.element&&(topMostElement=obj.element);if(topMostElement){var customEvent={};for(var key in event){var value=event[key];"type"==key&&(value+=".wpgmza"),customEvent[key]=value}$(topMostElement).trigger(customEvent)}}},WPGMZA.EventDispatcher.prototype.trigger=WPGMZA.EventDispatcher.prototype.dispatchEvent,WPGMZA.EventDispatcher.prototype._triggerListeners=function(event){var arr,obj;if(arr=this._listenersByType[event.type])for(var i=0;i<arr.length;i++)obj=arr[i],event.phase==WPGMZA.Event.CAPTURING_PHASE&&!obj.useCapture||obj.listener.call(arr[i].thisObject,event)},WPGMZA.events=new WPGMZA.EventDispatcher}),jQuery(function($){WPGMZA.AddressInput=function(element,map){if(!(element instanceof HTMLInputElement))throw new Error("Element is not an instance of HTMLInputElement");var json;this.element=element;var options={fields:["name","formatted_address"],types:["geocode"]};(json=$(element).attr("data-autocomplete-options"))&&(options=$.extend(options,JSON.parse(json))),map&&map.settings.wpgmza_store_locator_restrict&&(options.country=map.settings.wpgmza_store_locator_restrict),WPGMZA.isGoogleAutocompleteSupported()?(element.googleAutoComplete=new google.maps.places.Autocomplete(element,options),options.country&&element.googleAutoComplete.setComponentRestrictions({country:options.country})):WPGMZA.CloudAPI&&WPGMZA.CloudAPI.isBeingUsed&&(element.cloudAutoComplete=new WPGMZA.CloudAutocomplete(element,options))},WPGMZA.extend(WPGMZA.AddressInput,WPGMZA.EventDispatcher),WPGMZA.AddressInput.createInstance=function(element,map){return new WPGMZA.AddressInput(element,map)}}),jQuery(function($){WPGMZA.Event=function(options){if("string"==typeof options&&(this.type=options),this.bubbles=!0,this.cancelable=!0,this.phase=WPGMZA.Event.PHASE_CAPTURE,this.target=null,this._cancelled=!1,"object"==typeof options)for(var name in options)this[name]=options[name]},WPGMZA.Event.CAPTURING_PHASE=0,WPGMZA.Event.AT_TARGET=1,WPGMZA.Event.BUBBLING_PHASE=2,WPGMZA.Event.prototype.stopPropagation=function(){this._cancelled=!0}}),jQuery(function($){WPGMZA.FancyControls={formatToggleSwitch:function(el){var div=$("<div class='switch'></div>"),input=el,container=el.parentNode,text=$(container).text().trim(),label=$("<label></label>");$(input).addClass("cmn-toggle cmn-toggle-round-flat"),$(input).attr("id",$(input).attr("name")),$(label).attr("for",$(input).attr("name")),$(div).append(input),$(div).append(label),$(container).replaceWith(div),$(div).wrap($("<div></div>")),$(div).after(text)},formatToggleButton:function(el){var div=$("<div class='switch'></div>"),input=el,container=el.parentNode,text=$(container).text().trim(),label=$("<label></label>");$(input).addClass("cmn-toggle cmn-toggle-yes-no"),$(input).attr("id",$(input).attr("name")),$(label).attr("for",$(input).attr("name")),$(label).attr("data-on",WPGMZA.localized_strings.yes),$(label).attr("data-off",WPGMZA.localized_strings.no),$(div).append(input),$(div).append(label),$(container).replaceWith(div),$(div).wrap($("<div></div>")),$(div).after(text)}},$(".wpgmza-fancy-toggle-switch").each(function(index,el){WPGMZA.FancyControls.formatToggleSwitch(el)}),$(".wpgmza-fancy-toggle-button").each(function(index,el){WPGMZA.FancyControls.formatToggleButton(el)})}),jQuery(function($){WPGMZA.FriendlyError=function(){}}),jQuery(function($){WPGMZA.Geocoder=function(){WPGMZA.assertInstanceOf(this,"Geocoder")},WPGMZA.Geocoder.SUCCESS="success",WPGMZA.Geocoder.ZERO_RESULTS="zero-results",WPGMZA.Geocoder.FAIL="fail",WPGMZA.Geocoder.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.OLGeocoder;default:return WPGMZA.GoogleGeocoder}},WPGMZA.Geocoder.createInstance=function(){return new(WPGMZA.Geocoder.getConstructor())},WPGMZA.Geocoder.prototype.getLatLngFromAddress=function(options,callback){if(WPGMZA.isLatLngString(options.address)){var parts=options.address.split(/,\s*/),latLng=new WPGMZA.LatLng({lat:parseFloat(parts[0]),lng:parseFloat(parts[1])});callback([latLng.latLng=latLng],WPGMZA.Geocoder.SUCCESS)}},WPGMZA.Geocoder.prototype.getAddressFromLatLng=function(options,callback){callback([new WPGMZA.LatLng(options.latLng).toString()],WPGMZA.Geocoder.SUCCESS)},WPGMZA.Geocoder.prototype.geocode=function(options,callback){if("address"in options)return this.getLatLngFromAddress(options,callback);if("latLng"in options)return this.getAddressFromLatLng(options,callback);throw new Error("You must supply either a latLng or address")}}),jQuery(function($){WPGMZA.GoogleAPIErrorHandler=function(){var self=this;if("google-maps"==WPGMZA.settings.engine&&("map-edit"==WPGMZA.currentPage||0==WPGMZA.is_admin&&1==WPGMZA.userCanAdministrator)){this.element=$(WPGMZA.html.googleMapsAPIErrorDialog),1==WPGMZA.is_admin&&this.element.find(".wpgmza-front-end-only").remove(),this.errorMessageList=this.element.find(".wpgmza-google-api-error-list"),this.templateListItem=this.element.find("li.template").remove(),this.messagesAlreadyDisplayed={};var _error=console.error;console.error=function(message){self.onErrorMessage(message),_error.apply(this,arguments)},"google-maps"!=WPGMZA.settings.engine||WPGMZA.settings.wpgmza_google_maps_api_key&&WPGMZA.settings.wpgmza_google_maps_api_key.length||WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT||this.addErrorMessage(WPGMZA.localized_strings.no_google_maps_api_key,["https://www.wpgmaps.com/documentation/creating-a-google-maps-api-key/"])}},WPGMZA.GoogleAPIErrorHandler.prototype.onErrorMessage=function(message){var m;if(message)if((m=message.match(/You have exceeded your (daily )?request quota for this API/))||(m=message.match(/This API project is not authorized to use this API/))||(m=message.match(/^Geocoding Service: .+/))){var urls=message.match(/http(s)?:\/\/[^\s]+/gm);this.addErrorMessage(m[0],urls)}else(m=message.match(/^Google Maps.+error: (.+)\s+(http(s?):\/\/.+)/m))&&this.addErrorMessage(m[1].replace(/([A-Z])/g," $1"),[m[2]])},WPGMZA.GoogleAPIErrorHandler.prototype.addErrorMessage=function(message,urls){var self=this;if(!this.messagesAlreadyDisplayed[message]){var li=this.templateListItem.clone();$(li).find(".wpgmza-message").html(message);var buttonContainer=$(li).find(".wpgmza-documentation-buttons"),buttonTemplate=$(li).find(".wpgmza-documentation-buttons>a");if(buttonTemplate.remove(),urls&&urls.length){for(var i=0;i<urls.length;i++){urls[i];var button=buttonTemplate.clone(),text=WPGMZA.localized_strings.documentation;button.attr("href",urls[i]),$(button).find("i").addClass("fa-external-link"),$(button).append(text)}buttonContainer.append(button)}$(this.errorMessageList).append(li),$("#wpgmza_map, .wpgmza_map").each(function(index,el){var container=$(el).find(".wpgmza-google-maps-api-error-overlay");0==container.length&&(container=$("<div class='wpgmza-google-maps-api-error-overlay'></div>")).html(self.element.html()),setTimeout(function(){$(el).append(container)},1e3)}),$(".gm-err-container").parent().css({"z-index":1}),this.messagesAlreadyDisplayed[message]=!0}},WPGMZA.googleAPIErrorHandler=new WPGMZA.GoogleAPIErrorHandler}),jQuery(function($){WPGMZA.InfoWindow=function(mapObject){var self=this;WPGMZA.EventDispatcher.call(this),WPGMZA.assertInstanceOf(this,"InfoWindow"),this.on("infowindowopen",function(event){self.onOpen(event)}),mapObject&&(this.mapObject=mapObject,this.state=WPGMZA.InfoWindow.STATE_CLOSED,mapObject.map?setTimeout(function(){self.onMapObjectAdded(event)},100):mapObject.addEventListener("added",function(event){self.onMapObjectAdded(event)}))},WPGMZA.InfoWindow.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.InfoWindow.prototype.constructor=WPGMZA.InfoWindow,WPGMZA.InfoWindow.OPEN_BY_CLICK=1,WPGMZA.InfoWindow.OPEN_BY_HOVER=2,WPGMZA.InfoWindow.STATE_OPEN="open",WPGMZA.InfoWindow.STATE_CLOSED="closed",WPGMZA.InfoWindow.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.isProVersion()?WPGMZA.OLProInfoWindow:WPGMZA.OLInfoWindow;default:return WPGMZA.isProVersion()?WPGMZA.GoogleProInfoWindow:WPGMZA.GoogleInfoWindow}},WPGMZA.InfoWindow.createInstance=function(mapObject){return new(this.getConstructor())(mapObject)},WPGMZA.InfoWindow.prototype.getContent=function(callback){var html="";this.mapObject instanceof WPGMZA.Marker&&(html=this.mapObject.address),callback(html)},WPGMZA.InfoWindow.prototype.open=function(map,mapObject){return this.mapObject=mapObject,!WPGMZA.settings.disable_infowindows&&"1"!=WPGMZA.settings.wpgmza_settings_disable_infowindows&&(!this.mapObject.disableInfoWindow&&(this.state=WPGMZA.InfoWindow.STATE_OPEN,!0))},WPGMZA.InfoWindow.prototype.close=function(){this.state!=WPGMZA.InfoWindow.STATE_CLOSED&&(this.state=WPGMZA.InfoWindow.STATE_CLOSED,this.trigger("infowindowclose"))},WPGMZA.InfoWindow.prototype.setContent=function(options){},WPGMZA.InfoWindow.prototype.setOptions=function(options){},WPGMZA.InfoWindow.prototype.onMapObjectAdded=function(){1==this.mapObject.settings.infoopen&&this.open()},WPGMZA.InfoWindow.prototype.onOpen=function(){}}),jQuery(function($){WPGMZA.LatLng=function(arg,lng){if(this._lat=0,(this._lng=0)!=arguments.length)if(1==arguments.length){if("string"==typeof arg){var m;if(!(m=arg.match(WPGMZA.LatLng.REGEXP)))throw new Error("Invalid LatLng string");arg={lat:m[1],lng:m[3]}}if("object"!=typeof arg||!("lat"in arg&&"lng"in arg))throw new Error("Argument must be a LatLng literal");this.lat=arg.lat,this.lng=arg.lng}else this.lat=arg,this.lng=lng},WPGMZA.LatLng.REGEXP=/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/,WPGMZA.LatLng.isValid=function(obj){return"object"==typeof obj&&("lat"in obj&&"lng"in obj)},WPGMZA.LatLng.isLatLngString=function(str){return"string"==typeof str&&!!str.match(WPGMZA.LatLng.REGEXP)},Object.defineProperty(WPGMZA.LatLng.prototype,"lat",{get:function(){return this._lat},set:function(val){if(!$.isNumeric(val))throw new Error("Latitude must be numeric");this._lat=parseFloat(val)}}),Object.defineProperty(WPGMZA.LatLng.prototype,"lng",{get:function(){return this._lng},set:function(val){if(!$.isNumeric(val))throw new Error("Longitude must be numeric");this._lng=parseFloat(val)}}),WPGMZA.LatLng.fromString=function(string){if(!WPGMZA.LatLng.isLatLngString(string))throw new Error("Not a valid latlng string");var m=string.match(WPGMZA.LatLng.REGEXP);return new WPGMZA.LatLng({lat:parseFloat(m[1]),lng:parseFloat(m[3])})},WPGMZA.LatLng.prototype.toString=function(){return this._lat+", "+this._lng},WPGMZA.LatLng.fromCurrentPosition=function(callback,options){options=options||{},callback&&WPGMZA.getCurrentPosition(function(position){var latLng=new WPGMZA.LatLng({lat:position.coords.latitude,lng:position.coords.longitude});options.geocodeAddress?WPGMZA.Geocoder.createInstance().getAddressFromLatLng({latLng:latLng},function(results){results.length&&(latLng.address=results[0]),callback(latLng)}):callback(latLng)})},WPGMZA.LatLng.fromGoogleLatLng=function(googleLatLng){return new WPGMZA.LatLng(googleLatLng.lat(),googleLatLng.lng())},WPGMZA.LatLng.toGoogleLatLngArray=function(arr){var result=[];return arr.forEach(function(nativeLatLng){if(!(nativeLatLng instanceof WPGMZA.LatLng||"lat"in nativeLatLng&&"lng"in nativeLatLng))throw new Error("Unexpected input");result.push(new google.maps.LatLng({lat:parseFloat(nativeLatLng.lat),lng:parseFloat(nativeLatLng.lng)}))}),result},WPGMZA.LatLng.prototype.toGoogleLatLng=function(){return new google.maps.LatLng({lat:this.lat,lng:this.lng})},WPGMZA.LatLng.prototype.toLatLngLiteral=function(){return{lat:this.lat,lng:this.lng}},WPGMZA.LatLng.prototype.moveByDistance=function(kilometers,heading){var delta=parseFloat(kilometers)/6371,theta=parseFloat(heading)/180*Math.PI,phi1=this.lat/180*Math.PI,lambda1=this.lng/180*Math.PI,sinPhi1=Math.sin(phi1),cosPhi1=Math.cos(phi1),sinDelta=Math.sin(delta),cosDelta=Math.cos(delta),sinTheta=Math.sin(theta),sinPhi2=sinPhi1*cosDelta+cosPhi1*sinDelta*Math.cos(theta),phi2=Math.asin(sinPhi2),y=sinTheta*sinDelta*cosPhi1,x=cosDelta-sinPhi1*sinPhi2,lambda2=lambda1+Math.atan2(y,x);this.lat=180*phi2/Math.PI,this.lng=180*lambda2/Math.PI},WPGMZA.LatLng.prototype.getGreatCircleDistance=function(arg1,arg2){var other,lat1=this.lat,lon1=this.lng;if(1==arguments.length)other=new WPGMZA.LatLng(arg1);else{if(2!=arguments.length)throw new Error("Invalid number of arguments");other=new WPGMZA.LatLng(arg1,arg2)}var lat2=other.lat,lon2=other.lng,phi1=lat1.toRadians(),phi2=lat2.toRadians(),deltaPhi=(lat2-lat1).toRadians(),deltaLambda=(lon2-lon1).toRadians(),a=Math.sin(deltaPhi/2)*Math.sin(deltaPhi/2)+Math.cos(phi1)*Math.cos(phi2)*Math.sin(deltaLambda/2)*Math.sin(deltaLambda/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))}}),jQuery(function($){WPGMZA.LatLngBounds=function(southWest,northEast){if(southWest instanceof WPGMZA.LatLngBounds){var other=southWest;this.south=other.south,this.north=other.north,this.west=other.west,this.east=other.east}else southWest&&northEast&&(this.south=southWest.lat,this.north=northEast.lat,this.west=southWest.lng,this.east=northEast.lng)},WPGMZA.LatLngBounds.fromGoogleLatLngBounds=function(googleLatLngBounds){if(!(googleLatLngBounds instanceof google.maps.LatLngBounds))throw new Error("Argument must be an instance of google.maps.LatLngBounds");var result=new WPGMZA.LatLngBounds,southWest=googleLatLngBounds.getSouthWest(),northEast=googleLatLngBounds.getNorthEast();return result.north=northEast.lat(),result.south=southWest.lat(),result.west=southWest.lng(),result.east=northEast.lng(),result},WPGMZA.LatLngBounds.fromGoogleLatLngBoundsLiteral=function(obj){var result=new WPGMZA.LatLngBounds,southWest=obj.southwest,northEast=obj.northeast;return result.north=northEast.lat,result.south=southWest.lat,result.west=southWest.lng,result.east=northEast.lng,result},WPGMZA.LatLngBounds.prototype.isInInitialState=function(){return null==this.north&&null==this.south&&null==this.west&&null==this.east},WPGMZA.LatLngBounds.prototype.extend=function(latLng){if(latLng instanceof WPGMZA.LatLng||(latLng=new WPGMZA.LatLng(latLng)),this.isInInitialState())return this.north=this.south=latLng.lat,void(this.west=this.east=latLng.lng);latLng.lat<this.north&&(this.north=latLng.lat),latLng.lat>this.south&&(this.south=latLng.lat),latLng.lng<this.west&&(this.west=latLng.lng),latLng.lng>this.east&&(this.east=latLng.lng)},WPGMZA.LatLngBounds.prototype.extendByPixelMargin=function(map,x,arg){var y=x;if(!(map instanceof WPGMZA.Map))throw new Error("First argument must be an instance of WPGMZA.Map");if(this.isInInitialState())throw new Error("Cannot extend by pixels in initial state");3<=arguments.length&&(y=arg);var southWest=new WPGMZA.LatLng(this.south,this.west),northEast=new WPGMZA.LatLng(this.north,this.east);southWest=map.latLngToPixels(southWest),northEast=map.latLngToPixels(northEast),southWest.x-=x,southWest.y+=y,northEast.x+=x,northEast.y-=y,southWest=map.pixelsToLatLng(southWest.x,southWest.y),northEast=map.pixelsToLatLng(northEast.x,northEast.y);this.toString();this.north=northEast.lat,this.south=southWest.lat,this.west=southWest.lng,this.east=northEast.lng},WPGMZA.LatLngBounds.prototype.contains=function(latLng){if(!(latLng instanceof WPGMZA.LatLng))throw new Error("Argument must be an instance of WPGMZA.LatLng");return!(latLng.lat<Math.min(this.north,this.south))&&(!(latLng.lat>Math.max(this.north,this.south))&&(this.west<this.east?latLng.lng>=this.west&&latLng.lng<=this.east:latLng.lng<=this.west||latLng.lng>=this.east))},WPGMZA.LatLngBounds.prototype.toString=function(){return this.north+"N "+this.south+"S "+this.west+"W "+this.east+"E"},WPGMZA.LatLngBounds.prototype.toLiteral=function(){return{north:this.north,south:this.south,west:this.west,east:this.east}}}),jQuery(function($){"map-edit"==WPGMZA.currentPage&&(WPGMZA.MapEditPage=function(){var self=this;if(this.themePanel=new WPGMZA.ThemePanel,this.themeEditor=new WPGMZA.ThemeEditor,this.map=WPGMZA.maps[0],"yes"==WPGMZA.settings.wpgmza_settings_map_scroll||"yes"==WPGMZA.settings.wpgmza_settings_map_draggable||"yes"==WPGMZA.settings.wpgmza_settings_map_clickzoom){var diplay_enable_interactions_notice=$("<div class='notice notice-info wpgmza_disabled_interactions_notice' style= 'height: 45px; padding: 7px 5px 2px 5px;'><p style='float: left; padding-top: 10px;'>"+WPGMZA.localized_strings.disabled_interactions_notice+"</p><a class='button button-primary enable_interactions_notice_button' style='float: right;'>"+WPGMZA.localized_strings.disabled_interactions_button+"</a></div>");$(".wpgmza_map").after(diplay_enable_interactions_notice),$(".enable_interactions_notice_button").on("click",function(){WPGMZA.mapEditPage.map.enableAllInteractions(),$(diplay_enable_interactions_notice).fadeOut("slow");var successNotice=$("<div class='notice notice-success'><p>"+WPGMZA.localized_strings.interactions_enabled_notice+"</p></div>");$(WPGMZA.mapEditPage.map.element).after(successNotice),$(successNotice).delay(2e3).fadeIn("slow"),$(successNotice).delay(4e3).fadeOut("slow")})}$("#wpgmza_max_zoom, #wpgmza_min_zoom").on("change input",function(event){self.onZoomLimitChanged(event)})},WPGMZA.MapEditPage.createInstance=function(){return WPGMZA.isProVersion()&&WPGMZA.Version.compare(WPGMZA.pro_version,"8.0.0")>=WPGMZA.Version.EQUAL_TO?new WPGMZA.ProMapEditPage:new WPGMZA.MapEditPage},WPGMZA.MapEditPage.prototype.onZoomLimitChanged=function(event){this.map.setOptions({minZoom:$("#wpgmza_max_zoom").val(),maxZoom:$("#wpgmza_min_zoom").val()})},$(window).on("load",function(event){WPGMZA.mapEditPage=WPGMZA.MapEditPage.createInstance()}))}),jQuery(function($){WPGMZA.MapObject=function(row){if(WPGMZA.assertInstanceOf(this,"MapObject"),WPGMZA.EventDispatcher.call(this),this.id=-1,this.map_id=null,this.guid=WPGMZA.guid(),this.modified=!0,this.settings={},row)for(var name in row)if("settings"==name){if(null==row.settings)this.settings={};else switch(typeof row.settings){case"string":this.settings=JSON.parse(row[name]);break;case"object":this.settings=row[name];break;default:throw new Error("Don't know how to interpret settings")}for(var name in this.settings){var value=this.settings[name];String(value).match(/^-?\d+$/)&&(this.settings[name]=parseInt(value))}}else this[name]=row[name]},WPGMZA.MapObject.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.MapObject.prototype.constructor=WPGMZA.MapObject,WPGMZA.MapObject.prototype.parseGeometry=function(string){var pairs,coords,results=[];if("object"==typeof string)return string;pairs=string.replace(/[^ ,\d\.\-+e]/g,"").split(",");for(var i=0;i<pairs.length;i++)coords=pairs[i].split(" "),results.push({lat:parseFloat(coords[1]),lng:parseFloat(coords[0])});return results},WPGMZA.MapObject.prototype.toJSON=function(){return{id:this.id,guid:this.guid,settings:this.settings}}}),jQuery(function($){var Parent=WPGMZA.MapObject;WPGMZA.Circle=function(options,engineCircle){WPGMZA.assertInstanceOf(this,"Circle"),this.center=new WPGMZA.LatLng,this.radius=100,Parent.apply(this,arguments)},WPGMZA.Circle.prototype=Object.create(Parent.prototype),WPGMZA.Circle.prototype.constructor=WPGMZA.Circle,WPGMZA.Circle.createInstance=function(options){var constructor;switch(WPGMZA.settings.engine){case"open-layers":constructor=WPGMZA.OLCircle;break;default:constructor=WPGMZA.GoogleCircle}return new constructor(options)},WPGMZA.Circle.prototype.getCenter=function(){return this.center.clone()},WPGMZA.Circle.prototype.setCenter=function(latLng){this.center.lat=latLng.lat,this.center.lng=latLng.lng},WPGMZA.Circle.prototype.getRadius=function(){return this.radius},WPGMZA.Circle.prototype.setRadius=function(radius){this.radius=radius},WPGMZA.Circle.prototype.getMap=function(){return this.map},WPGMZA.Circle.prototype.setMap=function(map){this.map&&this.map.removeCircle(this),map&&map.addCircle(this)}}),jQuery(function($){WPGMZA.MapSettingsPage=function(){var self=this;this._keypressHistory=[],this.updateEngineSpecificControls(),this.updateGDPRControls(),$("#wpgmza-developer-mode").hide(),$(window).on("keypress",function(event){self.onKeyPress(event)}),$("select[name='wpgmza_maps_engine']").on("change",function(event){self.updateEngineSpecificControls()}),$("input[name='wpgmza_gdpr_require_consent_before_load'], input[name='wpgmza_gdpr_require_consent_before_vgm_submit'], input[name='wpgmza_gdpr_override_notice']").on("change",function(event){self.updateGDPRControls()})},WPGMZA.MapSettingsPage.createInstance=function(){return new WPGMZA.MapSettingsPage},WPGMZA.MapSettingsPage.prototype.updateEngineSpecificControls=function(){var engine=$("select[name='wpgmza_maps_engine']").val();$("[data-required-maps-engine][data-required-maps-engine!='"+engine+"']").hide(),$("[data-required-maps-engine='"+engine+"']").show()},WPGMZA.MapSettingsPage.prototype.updateGDPRControls=function(){var showNoticeControls=$("input[name='wpgmza_gdpr_require_consent_before_load']").prop("checked"),vgmCheckbox=$("input[name='wpgmza_gdpr_require_consent_before_vgm_submit']");vgmCheckbox.length&&(showNoticeControls=showNoticeControls||vgmCheckbox.prop("checked"));var showOverrideTextarea=showNoticeControls&&$("input[name='wpgmza_gdpr_override_notice']").prop("checked");showNoticeControls?$("#wpgmza-gdpr-compliance-notice").show("slow"):$("#wpgmza-gdpr-compliance-notice").hide("slow"),showOverrideTextarea?$("#wpgmza_gdpr_override_notice_text").show("slow"):$("#wpgmza_gdpr_override_notice_text").hide("slow")},WPGMZA.MapSettingsPage.prototype.flushGeocodeCache=function(){(new WPGMZA.OLGeocoder).clearCache(function(response){jQuery("#wpgmza_flush_cache_btn").removeAttr("disabled")})},WPGMZA.MapSettingsPage.prototype.onKeyPress=function(event){this._keypressHistory.push(event.key),9<this._keypressHistory.length&&(this._keypressHistory=this._keypressHistory.slice(this._keypressHistory.length-9)),"codecabin"!=this._keypressHistory.join("")||this._developerModeRevealed||($("#wpgmza-developer-mode").show(),this._developerModeRevealed=!0)},jQuery(function($){window.location.href.match(/wp-google-maps-menu-settings/)&&(WPGMZA.mapSettingsPage=WPGMZA.MapSettingsPage.createInstance(),jQuery(document).ready(function(){jQuery("#wpgmza_flush_cache_btn").on("click",function(){jQuery(this).attr("disabled","disabled"),WPGMZA.mapSettingsPage.flushGeocodeCache()})}))})}),jQuery(function($){WPGMZA.MapSettings=function(element){var json,self=this,str=element.getAttribute("data-settings");try{json=JSON.parse(str)}catch(e){str=(str=str.replace(/\\%/g,"%")).replace(/\\\\"/g,'\\"');try{json=JSON.parse(str)}catch(e){json={},console.warn("Failed to parse map settings JSON")}}function addSettings(input){if(input)for(var key in input)if("other_settings"!=key){var value=input[key];String(value).match(/^-?\d+$/)&&(value=parseInt(value)),self[key]=value}}WPGMZA.assertInstanceOf(this,"MapSettings"),addSettings(WPGMZA.settings),addSettings(json),json&&json.other_settings&&addSettings(json.other_settings)},WPGMZA.MapSettings.prototype.toOLViewOptions=function(){var self=this,options={center:ol.proj.fromLonLat([-119.4179,36.7783]),zoom:4};function empty(name){return"object"!=typeof self[name]&&(!self[name]||!self[name].length)}if("string"==typeof this.start_location){var coords=this.start_location.replace(/^\(|\)$/g,"").split(",");WPGMZA.isLatLngString(this.start_location)?options.center=ol.proj.fromLonLat([parseFloat(coords[1]),parseFloat(coords[0])]):console.warn("Invalid start location")}return this.center&&(options.center=ol.proj.fromLonLat([parseFloat(this.center.lng),parseFloat(this.center.lat)])),empty("map_start_lat")||empty("map_start_lng")||(options.center=ol.proj.fromLonLat([parseFloat(this.map_start_lng),parseFloat(this.map_start_lat)])),this.zoom&&(options.zoom=parseInt(this.zoom)),this.start_zoom&&(options.zoom=parseInt(this.start_zoom)),this.map_min_zoom&&this.map_max_zoom&&(options.minZoom=Math.min(this.map_min_zoom,this.map_max_zoom),options.maxZoom=Math.max(this.map_min_zoom,this.map_max_zoom)),options},WPGMZA.MapSettings.prototype.toGoogleMapsOptions=function(){var self=this,latLngCoords=this.start_location&&this.start_location.length?this.start_location.split(","):[36.7783,-119.4179];function empty(name){return"object"!=typeof self[name]&&(!self[name]||!self[name].length)}function formatCoord(coord){return $.isNumeric(coord)?coord:parseFloat(String(coord).replace(/[\(\)\s]/,""))}var latLng=new google.maps.LatLng(formatCoord(latLngCoords[0]),formatCoord(latLngCoords[1])),zoom=this.start_zoom?parseInt(this.start_zoom):4;!this.start_zoom&&this.zoom&&(zoom=parseInt(this.zoom));var options={zoom:zoom,center:latLng};switch(empty("center")||(options.center=new google.maps.LatLng({lat:parseFloat(this.center.lat),lng:parseFloat(this.center.lng)})),empty("map_start_lat")||empty("map_start_lng")||(options.center=new google.maps.LatLng({lat:parseFloat(this.map_start_lat),lng:parseFloat(this.map_start_lng)})),this.map_min_zoom&&this.map_max_zoom&&(options.minZoom=Math.min(this.map_min_zoom,this.map_max_zoom),options.maxZoom=Math.max(this.map_min_zoom,this.map_max_zoom)),options.zoomControl=!("yes"==this.wpgmza_settings_map_zoom),options.panControl=!("yes"==this.wpgmza_settings_map_pan),options.mapTypeControl=!("yes"==this.wpgmza_settings_map_type),options.streetViewControl=!("yes"==this.wpgmza_settings_map_streetview),options.fullscreenControl=!("yes"==this.wpgmza_settings_map_full_screen_control),options.draggable=!("yes"==this.wpgmza_settings_map_draggable),options.disableDoubleClickZoom="yes"==this.wpgmza_settings_map_clickzoom,this.wpgmza_settings_map_scroll&&(options.scrollwheel=!1),"greedy"==this.wpgmza_force_greedy_gestures||"yes"==this.wpgmza_force_greedy_gestures?options.gestureHandling="greedy":options.gestureHandling="cooperative",parseInt(this.type)){case 2:options.mapTypeId=google.maps.MapTypeId.SATELLITE;break;case 3:options.mapTypeId=google.maps.MapTypeId.HYBRID;break;case 4:options.mapTypeId=google.maps.MapTypeId.TERRAIN;break;default:options.mapTypeId=google.maps.MapTypeId.ROADMAP}return this.wpgmza_theme_data&&this.wpgmza_theme_data.length&&(options.styles=WPGMZA.GoogleMap.parseThemeData(this.wpgmza_theme_data)),options}}),jQuery(function($){WPGMZA.Map=function(element,options){if(WPGMZA.assertInstanceOf(this,"Map"),WPGMZA.EventDispatcher.call(this),!(element instanceof HTMLElement))throw new Error("Argument must be a HTMLElement");if(element.hasAttribute("data-map-id")?this.id=element.getAttribute("data-map-id"):this.id=1,!/\d+/.test(this.id))throw new Error("Map ID must be an integer");if(WPGMZA.maps.push(this),this.element=element,(this.element.wpgmzaMap=this).engineElement=element,this.markers=[],this.polygons=[],this.polylines=[],this.circles=[],this.rectangles=[],this.loadSettings(options),this.shortcodeAttributes={},$(this.element).attr("data-shortcode-attributes"))try{this.shortcodeAttributes=JSON.parse($(this.element).attr("data-shortcode-attributes"))}catch(e){console.warn("Error parsing shortcode attributes")}WPGMZA.getCurrentPage()!=WPGMZA.PAGE_MAP_EDIT&&this.initStoreLocator(),this.markerFilter=WPGMZA.MarkerFilter.createInstance(this)},WPGMZA.Map.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.Map.prototype.constructor=WPGMZA.Map,WPGMZA.Map.nightTimeThemeData=[{elementType:"geometry",stylers:[{color:"#242f3e"}]},{elementType:"labels.text.fill",stylers:[{color:"#746855"}]},{elementType:"labels.text.stroke",stylers:[{color:"#242f3e"}]},{featureType:"administrative.locality",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"landscape",elementType:"geometry.fill",stylers:[{color:"#575663"}]},{featureType:"poi",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"poi.park",elementType:"geometry",stylers:[{color:"#263c3f"}]},{featureType:"poi.park",elementType:"labels.text.fill",stylers:[{color:"#6b9a76"}]},{featureType:"road",elementType:"geometry",stylers:[{color:"#38414e"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{color:"#212a37"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"#9ca5b3"}]},{featureType:"road.highway",elementType:"geometry",stylers:[{color:"#746855"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#80823e"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#1f2835"}]},{featureType:"road.highway",elementType:"labels.text.fill",stylers:[{color:"#f3d19c"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#2f3948"}]},{featureType:"transit.station",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#17263c"}]},{featureType:"water",elementType:"geometry.fill",stylers:[{color:"#1b737a"}]},{featureType:"water",elementType:"labels.text.fill",stylers:[{color:"#515c6d"}]},{featureType:"water",elementType:"labels.text.stroke",stylers:[{color:"#17263c"}]}],WPGMZA.Map.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.isProVersion()?WPGMZA.OLProMap:WPGMZA.OLMap;default:return WPGMZA.isProVersion()?WPGMZA.GoogleProMap:WPGMZA.GoogleMap}},WPGMZA.Map.createInstance=function(element,options){return new(WPGMZA.Map.getConstructor())(element,options)},Object.defineProperty(WPGMZA.Map.prototype,"lat",{get:function(){return this.getCenter().lat},set:function(value){var center=this.getCenter();center.lat=value,this.setCenter(center)}}),Object.defineProperty(WPGMZA.Map.prototype,"lng",{get:function(){return this.getCenter().lng},set:function(value){var center=this.getCenter();center.lng=value,this.setCenter(center)}}),Object.defineProperty(WPGMZA.Map.prototype,"zoom",{get:function(){return this.getZoom()},set:function(value){this.setZoom(value)}}),WPGMZA.Map.prototype.loadSettings=function(options){var settings=new WPGMZA.MapSettings(this.element);settings.other_settings;if(delete settings.other_settings,options)for(var key in options)settings[key]=options[key];this.settings=settings},WPGMZA.Map.prototype.initStoreLocator=function(){var storeLocatorElement=$(".wpgmza_sl_main_div");storeLocatorElement.length&&(this.storeLocator=WPGMZA.StoreLocator.createInstance(this,storeLocatorElement[0]))},WPGMZA.Map.prototype.setOptions=function(options){for(var name in options)this.settings[name]=options[name]};Math.PI;function deg2rad(deg){return deg*(Math.PI/180)}WPGMZA.Map.getGeographicDistance=function(lat1,lon1,lat2,lon2){var dLat=deg2rad(lat2-lat1),dLon=deg2rad(lon2-lon1),a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(deg2rad(lat1))*Math.cos(deg2rad(lat2))*Math.sin(dLon/2)*Math.sin(dLon/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))},WPGMZA.Map.prototype.setCenter=function(latLng){if(!("lat"in latLng&&"lng"in latLng))throw new Error("Argument is not an object with lat and lng")},WPGMZA.Map.prototype.setDimensions=function(width,height){$(this.element).css({width:width}),$(this.engineElement).css({width:"100%",height:height})},WPGMZA.Map.prototype.addMarker=function(marker){if(!(marker instanceof WPGMZA.Marker))throw new Error("Argument must be an instance of WPGMZA.Marker");marker.map=this,(marker.parent=this).markers.push(marker),this.dispatchEvent({type:"markeradded",marker:marker}),marker.dispatchEvent({type:"added"})},WPGMZA.Map.prototype.removeMarker=function(marker){if(!(marker instanceof WPGMZA.Marker))throw new Error("Argument must be an instance of WPGMZA.Marker");marker.map!==this&&console.error("Wrong map error"),marker.infoWindow&&marker.infoWindow.close(),marker.map=null,marker.parent=null,this.markers.splice(this.markers.indexOf(marker),1),this.dispatchEvent({type:"markerremoved",marker:marker}),marker.dispatchEvent({type:"removed"})},WPGMZA.Map.prototype.getMarkerByID=function(id){for(var i=0;i<this.markers.length;i++)if(this.markers[i].id==id)return this.markers[i];return null},WPGMZA.Map.prototype.getMarkerByTitle=function(title){if("string"==typeof title){for(var i=0;i<this.markers.length;i++)if(this.markers[i].title==title)return this.markers[i]}else{if(!(title instanceof RegExp))throw new Error("Invalid argument");for(i=0;i<this.markers.length;i++)if(title.test(this.markers[i].title))return this.markers[i]}return null},WPGMZA.Map.prototype.removeMarkerByID=function(id){var marker=this.getMarkerByID(id);marker&&this.removeMarker(marker)},WPGMZA.Map.prototype.addPolygon=function(polygon){if(!(polygon instanceof WPGMZA.Polygon))throw new Error("Argument must be an instance of WPGMZA.Polygon");(polygon.map=this).polygons.push(polygon),this.dispatchEvent({type:"polygonadded",polygon:polygon})},WPGMZA.Map.prototype.removePolygon=function(polygon){if(!(polygon instanceof WPGMZA.Polygon))throw new Error("Argument must be an instance of WPGMZA.Polygon");if(polygon.map!==this)throw new Error("Wrong map error");polygon.map=null,this.polygons.splice(this.polygons.indexOf(polygon),1),this.dispatchEvent({type:"polygonremoved",polygon:polygon})},WPGMZA.Map.prototype.getPolygonByID=function(id){for(var i=0;i<this.polygons.length;i++)if(this.polygons[i].id==id)return this.polygons[i];return null},WPGMZA.Map.prototype.removePolygonByID=function(id){var polygon=this.getPolygonByID(id);polygon&&this.removePolygon(polygon)},WPGMZA.Map.prototype.getPolylineByID=function(id){for(var i=0;i<this.polylines.length;i++)if(this.polylines[i].id==id)return this.polylines[i];return null},WPGMZA.Map.prototype.addPolyline=function(polyline){if(!(polyline instanceof WPGMZA.Polyline))throw new Error("Argument must be an instance of WPGMZA.Polyline");(polyline.map=this).polylines.push(polyline),this.dispatchEvent({type:"polylineadded",polyline:polyline})},WPGMZA.Map.prototype.removePolyline=function(polyline){if(!(polyline instanceof WPGMZA.Polyline))throw new Error("Argument must be an instance of WPGMZA.Polyline");if(polyline.map!==this)throw new Error("Wrong map error");polyline.map=null,this.polylines.splice(this.polylines.indexOf(polyline),1),this.dispatchEvent({type:"polylineremoved",polyline:polyline})},WPGMZA.Map.prototype.getPolylineByID=function(id){for(var i=0;i<this.polylines.length;i++)if(this.polylines[i].id==id)return this.polylines[i];return null},WPGMZA.Map.prototype.removePolylineByID=function(id){var polyline=this.getPolylineByID(id);polyline&&this.removePolyline(polyline)},WPGMZA.Map.prototype.addCircle=function(circle){if(!(circle instanceof WPGMZA.Circle))throw new Error("Argument must be an instance of WPGMZA.Circle");(circle.map=this).circles.push(circle),this.dispatchEvent({type:"circleadded",circle:circle})},WPGMZA.Map.prototype.removeCircle=function(circle){if(!(circle instanceof WPGMZA.Circle))throw new Error("Argument must be an instance of WPGMZA.Circle");if(circle.map!==this)throw new Error("Wrong map error");circle.map=null,this.circles.splice(this.circles.indexOf(circle),1),this.dispatchEvent({type:"circleremoved",circle:circle})},WPGMZA.Map.prototype.getCircleByID=function(id){for(var i=0;i<this.circles.length;i++)if(this.circles[i].id==id)return this.circles[i];return null},WPGMZA.Map.prototype.removeCircleByID=function(id){var circle=this.getCircleByID(id);circle&&this.removeCircle(circle)},WPGMZA.Map.prototype.nudgeLatLng=function(latLng,x,y){var pixels=this.latLngToPixels(latLng);if(pixels.x+=parseFloat(x),pixels.y+=parseFloat(y),isNaN(pixels.x)||isNaN(pixels.y))throw new Error("Invalid coordinates supplied");return this.pixelsToLatLng(pixels)},WPGMZA.Map.prototype.nudge=function(x,y){var nudged=this.nudgeLatLng(this.getCenter(),x,y);this.setCenter(nudged)},WPGMZA.Map.prototype.animateNudge=function(x,y,origin,milliseconds){var nudged;if(origin){if(!(origin instanceof WPGMZA.LatLng))throw new Error("Origin must be an instance of WPGMZA.LatLng")}else origin=this.getCenter();nudged=this.nudgeLatLng(origin,x,y),milliseconds=milliseconds||WPGMZA.getScrollAnimationDuration(),$(this).animate({lat:nudged.lat,lng:nudged.lng},milliseconds)},WPGMZA.Map.prototype.onWindowResize=function(event){},WPGMZA.Map.prototype.onElementResized=function(event){},WPGMZA.Map.prototype.onBoundsChanged=function(event){this.trigger("boundschanged"),this.trigger("bounds_changed")},WPGMZA.Map.prototype.onIdle=function(event){this.trigger("idle")},WPGMZA.Map.prototype.hasVisibleMarkers=function(event){var markers_visible=0;for(var marker_id in marker_array){var marker=marker_array[marker_id];if(marker.isFilterable&&marker.getMap()){markers_visible++;break}}return 0<markers_visible},WPGMZA.Map.prototype.closeAllInfoWindows=function(){this.markers.forEach(function(marker){marker.infoWindow&&marker.infoWindow.close()})}}),jQuery(function($){WPGMZA.MapsEngineDialog=function(element){var self=this;this.element=element,window.wpgmzaUnbindSaveReminder&&window.wpgmzaUnbindSaveReminder(),$(element).show(),$(element).remodal().open(),$(element).find("input:radio").on("change",function(event){$("#wpgmza-confirm-engine").prop("disabled",!1)}),$("#wpgmza-confirm-engine").on("click",function(event){self.onButtonClicked(event)})},WPGMZA.MapsEngineDialog.prototype.onButtonClicked=function(event){$(event.target).prop("disabled",!0),$.ajax(WPGMZA.ajaxurl,{method:"POST",data:{action:"wpgmza_maps_engine_dialog_set_engine",engine:$("[name='wpgmza_maps_engine']:checked").val(),nonce:$("#wpgmza-maps-engine-dialog").attr("data-ajax-nonce")},success:function(response,status,xhr){window.location.reload()}})},$(window).on("load",function(event){var element=$("#wpgmza-maps-engine-dialog");element.length&&(WPGMZA.settings.wpgmza_maps_engine_dialog_done||WPGMZA.settings.wpgmza_google_maps_api_key&&WPGMZA.settings.wpgmza_google_maps_api_key.length||(WPGMZA.mapsEngineDialog=new WPGMZA.MapsEngineDialog(element)))})}),jQuery(function($){WPGMZA.MarkerFilter=function(map){WPGMZA.EventDispatcher.call(this),this.map=map},WPGMZA.MarkerFilter.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.MarkerFilter.prototype.constructor=WPGMZA.MarkerFilter,WPGMZA.MarkerFilter.createInstance=function(map){return new WPGMZA.MarkerFilter(map)},WPGMZA.MarkerFilter.prototype.getFilteringParameters=function(){var params={map_id:this.map.id};return this.map.storeLocator&&(params=$.extend(params,this.map.storeLocator.getFilteringParameters())),params},WPGMZA.MarkerFilter.prototype.update=function(){},WPGMZA.MarkerFilter.prototype.onFilteringComplete=function(results){}}),jQuery(function($){WPGMZA.MarkerPanel=function(element){this.element=element},$(window).on("load",function(event){WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT&&(WPGMZA.mapEditPage.markerPanel=new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]))})}),jQuery(function($){WPGMZA.Marker=function(row){var self=this;this._offset={x:0,y:0},WPGMZA.assertInstanceOf(this,"Marker"),this.lat="36.778261",this.lng="-119.4179323999",this.address="California",this.title=null,this.description="",this.link="",this.icon="",this.approved=1,this.pic=null,this.isFilterable=!0,this.disableInfoWindow=!1,WPGMZA.MapObject.apply(this,arguments),row&&row.heatmap||(row&&this.on("init",function(event){row.position&&this.setPosition(row.position),row.map&&row.map.addMarker(this)}),this.addEventListener("added",function(event){self.onAdded(event)}),this.handleLegacyGlobals(row))},WPGMZA.Marker.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Marker.prototype.constructor=WPGMZA.Marker,WPGMZA.Marker.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.isProVersion()?WPGMZA.OLProMarker:WPGMZA.OLMarker;default:return WPGMZA.isProVersion()?WPGMZA.GoogleProMarker:WPGMZA.GoogleMarker}},WPGMZA.Marker.createInstance=function(row){return new(WPGMZA.Marker.getConstructor())(row)},WPGMZA.Marker.ANIMATION_NONE="0",WPGMZA.Marker.ANIMATION_BOUNCE="1",WPGMZA.Marker.ANIMATION_DROP="2",Object.defineProperty(WPGMZA.Marker.prototype,"offsetX",{get:function(){return this._offset.x},set:function(value){this._offset.x=value,this.updateOffset()}}),Object.defineProperty(WPGMZA.Marker.prototype,"offsetY",{get:function(){return this._offset.y},set:function(value){this._offset.y=value,this.updateOffset()}}),WPGMZA.Marker.prototype.onAdded=function(event){var self=this;this.addEventListener("click",function(event){self.onClick(event)}),this.addEventListener("mouseover",function(event){self.onMouseOver(event)}),this.addEventListener("select",function(event){self.onSelect(event)}),this.map.settings.marker==this.id&&self.trigger("select"),"1"==this.infoopen&&this.openInfoWindow()},WPGMZA.Marker.prototype.handleLegacyGlobals=function(row){var m;if(WPGMZA.settings.useLegacyGlobals&&this.map_id&&this.id&&!(WPGMZA.pro_version&&(m=WPGMZA.pro_version.match(/\d+/))&&m[0]<=7)){window.marker_array||(window.marker_array={}),marker_array[this.map_id]||(marker_array[this.map_id]=[]),marker_array[this.map_id][this.id]=this,window.wpgmaps_localize_marker_data||(window.wpgmaps_localize_marker_data={}),wpgmaps_localize_marker_data[this.map_id]||(wpgmaps_localize_marker_data[this.map_id]=[]);var cloned=$.extend({marker_id:this.id},row);wpgmaps_localize_marker_data[this.map_id][this.id]=cloned}},WPGMZA.Marker.prototype.initInfoWindow=function(){this.infoWindow||(this.infoWindow=WPGMZA.InfoWindow.createInstance())},WPGMZA.Marker.prototype.openInfoWindow=function(){this.map?"map-edit"==WPGMZA.currentPage&&!WPGMZA.pro_version||(this.map.lastInteractedMarker&&this.map.lastInteractedMarker.infoWindow.close(),(this.map.lastInteractedMarker=this).initInfoWindow(),this.infoWindow.open(this.map,this)):console.warn("Cannot open infowindow for marker with no map")},WPGMZA.Marker.prototype.onClick=function(event){},WPGMZA.Marker.prototype.onSelect=function(event){this.openInfoWindow()},WPGMZA.Marker.prototype.onMouseOver=function(event){this.map.settings.info_window_open_by==WPGMZA.InfoWindow.OPEN_BY_HOVER&&this.openInfoWindow()},WPGMZA.Marker.prototype.getIcon=function(){function stripProtocol(url){return"string"!=typeof url?url:url.replace(/^http(s?):/,"")}return WPGMZA.defaultMarkerIcon?stripProtocol(WPGMZA.defaultMarkerIcon):stripProtocol(WPGMZA.settings.default_marker_icon)},WPGMZA.Marker.prototype.getPosition=function(){return new WPGMZA.LatLng({lat:parseFloat(this.lat),lng:parseFloat(this.lng)})},WPGMZA.Marker.prototype.setPosition=function(latLng){latLng instanceof WPGMZA.LatLng?(this.lat=latLng.lat,this.lng=latLng.lng):(this.lat=parseFloat(latLng.lat),this.lng=parseFloat(latLng.lng))},WPGMZA.Marker.prototype.setOffset=function(x,y){this._offset.x=x,this._offset.y=y,this.updateOffset()},WPGMZA.Marker.prototype.updateOffset=function(){},WPGMZA.Marker.prototype.getAnimation=function(animation){return this.settings.animation},WPGMZA.Marker.prototype.setAnimation=function(animation){this.settings.animation=animation},WPGMZA.Marker.prototype.getVisible=function(){},WPGMZA.Marker.prototype.setVisible=function(visible){!visible&&this.infoWindow&&this.infoWindow.close()},WPGMZA.Marker.prototype.getMap=function(){return this.map},WPGMZA.Marker.prototype.setMap=function(map){map?map.addMarker(this):this.map&&this.map.removeMarker(this),this.map=map},WPGMZA.Marker.prototype.getDraggable=function(){},WPGMZA.Marker.prototype.setDraggable=function(draggable){},WPGMZA.Marker.prototype.setOptions=function(options){},WPGMZA.Marker.prototype.setOpacity=function(opacity){},WPGMZA.Marker.prototype.panIntoView=function(){if(!this.map)throw new Error("Marker hasn't been added to a map");this.map.setCenter(this.getPosition())},WPGMZA.Marker.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this),position=this.getPosition();return $.extend(result,{lat:position.lat,lng:position.lng,address:this.address,title:this.title,description:this.description,link:this.link,icon:this.icon,pic:this.pic,approved:this.approved}),result}}),jQuery(function($){WPGMZA.ModernStoreLocatorCircle=function(map_id,settings){var map;map=WPGMZA.isProVersion()?this.map=MYMAP[map_id].map:this.map=MYMAP.map,this.map_id=map_id,this.mapElement=map.element,this.mapSize={width:$(this.mapElement).width(),height:$(this.mapElement).height()},this.initCanvasLayer(),this.settings={center:new WPGMZA.LatLng(0,0),radius:1,color:"#63AFF2",shadowColor:"white",shadowBlur:4,centerRingRadius:10,centerRingLineWidth:3,numInnerRings:9,innerRingLineWidth:1,innerRingFade:!0,numOuterRings:7,ringLineWidth:1,mainRingLineWidth:2,numSpokes:6,spokesStartAngle:Math.PI/2,numRadiusLabels:6,radiusLabelsStartAngle:Math.PI/2,radiusLabelFont:"13px sans-serif",visible:!1},settings&&this.setOptions(settings)},WPGMZA.ModernStoreLocatorCircle.createInstance=function(map,settings){return"google-maps"==WPGMZA.settings.engine?new WPGMZA.GoogleModernStoreLocatorCircle(map,settings):new WPGMZA.OLModernStoreLocatorCircle(map,settings)},WPGMZA.ModernStoreLocatorCircle.prototype.initCanvasLayer=function(){},WPGMZA.ModernStoreLocatorCircle.prototype.onResize=function(event){this.draw()},WPGMZA.ModernStoreLocatorCircle.prototype.onUpdate=function(event){this.draw()},WPGMZA.ModernStoreLocatorCircle.prototype.setOptions=function(options){for(var name in options){var functionName="set"+name.substr(0,1).toUpperCase()+name.substr(1);"function"==typeof this[functionName]?this[functionName](options[name]):this.settings[name]=options[name]}},WPGMZA.ModernStoreLocatorCircle.prototype.getResolutionScale=function(){return window.devicePixelRatio||1},WPGMZA.ModernStoreLocatorCircle.prototype.getCenter=function(){return this.getPosition()},WPGMZA.ModernStoreLocatorCircle.prototype.setCenter=function(value){this.setPosition(value)},WPGMZA.ModernStoreLocatorCircle.prototype.getPosition=function(){return this.settings.center},WPGMZA.ModernStoreLocatorCircle.prototype.setPosition=function(position){this.settings.center=position},WPGMZA.ModernStoreLocatorCircle.prototype.getRadius=function(){return this.settings.radius},WPGMZA.ModernStoreLocatorCircle.prototype.setRadius=function(radius){if(isNaN(radius))throw new Error("Invalid radius");this.settings.radius=radius},WPGMZA.ModernStoreLocatorCircle.prototype.getVisible=function(){return this.settings.visible},WPGMZA.ModernStoreLocatorCircle.prototype.setVisible=function(visible){this.settings.visible=visible},WPGMZA.ModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.getContext=function(type){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.validateSettings=function(){WPGMZA.isHexColorString(this.settings.color)||(this.settings.color="#63AFF2")},WPGMZA.ModernStoreLocatorCircle.prototype.draw=function(){this.validateSettings();var settings=this.settings,canvasDimensions=this.getCanvasDimensions(),canvasWidth=canvasDimensions.width,canvasHeight=canvasDimensions.height;this.map,this.getResolutionScale();if(context=this.getContext("2d"),context.clearRect(0,0,canvasWidth,canvasHeight),settings.visible){context.shadowColor=settings.shadowColor,context.shadowBlur=settings.shadowBlur,context.setTransform(1,0,0,1,0,0);var scale=this.getScale();context.scale(scale,scale);var offset=this.getWorldOriginOffset();context.translate(offset.x,offset.y);new WPGMZA.LatLng(this.settings.center);var worldPoint=this.getCenterPixels(),rgba=WPGMZA.hexToRgba(settings.color),ringSpacing=this.getTransformedRadius(settings.radius)/(settings.numInnerRings+1);context.strokeStyle=settings.color,context.lineWidth=1/scale*settings.centerRingLineWidth,context.beginPath(),context.arc(worldPoint.x,worldPoint.y,this.getTransformedRadius(settings.centerRingRadius)/scale,0,2*Math.PI),context.stroke(),context.closePath();var end,radius=this.getTransformedRadius(settings.radius)+ringSpacing*settings.numOuterRings+1,grad=context.createRadialGradient(0,0,0,0,0,radius),start=(rgba=WPGMZA.hexToRgba(settings.color),WPGMZA.rgbaToString(rgba));rgba.a=0,end=WPGMZA.rgbaToString(rgba),grad.addColorStop(0,start),grad.addColorStop(1,end),context.save(),context.translate(worldPoint.x,worldPoint.y),context.strokeStyle=grad,context.lineWidth=2/scale;for(var i=0;i<settings.numSpokes;i++)spokeAngle=settings.spokesStartAngle+2*Math.PI*(i/settings.numSpokes),x=Math.cos(spokeAngle)*radius,y=Math.sin(spokeAngle)*radius,context.setLineDash([2/scale,15/scale]),context.beginPath(),context.moveTo(0,0),context.lineTo(x,y),context.stroke();context.setLineDash([]),context.restore(),context.lineWidth=1/scale*settings.innerRingLineWidth;for(i=1;i<=settings.numInnerRings;i++){radius=i*ringSpacing;settings.innerRingFade&&(rgba.a=1-(i-1)/settings.numInnerRings),context.strokeStyle=WPGMZA.rgbaToString(rgba),context.beginPath(),context.arc(worldPoint.x,worldPoint.y,radius,0,2*Math.PI),context.stroke(),context.closePath()}context.strokeStyle=settings.color,context.lineWidth=1/scale*settings.centerRingLineWidth,context.beginPath(),context.arc(worldPoint.x,worldPoint.y,this.getTransformedRadius(settings.radius),0,2*Math.PI),context.stroke(),context.closePath();for(radius=radius+ringSpacing,i=0;i<settings.numOuterRings;i++)settings.innerRingFade&&(rgba.a=1-i/settings.numOuterRings),context.strokeStyle=WPGMZA.rgbaToString(rgba),context.beginPath(),context.arc(worldPoint.x,worldPoint.y,radius,0,2*Math.PI),context.stroke(),context.closePath(),radius+=ringSpacing;if(0<settings.numRadiusLabels){var m,x,y;radius=this.getTransformedRadius(settings.radius);(m=settings.radiusLabelFont.match(/(\d+)px/))&&parseInt(m[1]),context.font=settings.radiusLabelFont,context.textAlign="center",context.textBaseline="middle",context.fillStyle=settings.color,context.save(),context.translate(worldPoint.x,worldPoint.y);for(i=0;i<settings.numRadiusLabels;i++){var spokeAngle,width,textAngle=(spokeAngle=settings.radiusLabelsStartAngle+2*Math.PI*(i/settings.numRadiusLabels))+Math.PI/2,text=settings.radiusString;0<Math.sin(spokeAngle)&&(textAngle-=Math.PI),x=Math.cos(spokeAngle)*radius,y=Math.sin(spokeAngle)*radius,context.save(),context.translate(x,y),context.rotate(textAngle),context.scale(1/scale,1/scale),width=context.measureText(text).width,height=width/2,context.clearRect(-width,-height,2*width,2*height),context.fillText(settings.radiusString,0,0),context.restore()}context.restore()}}}}),jQuery(function($){WPGMZA.ModernStoreLocator=function(map_id){var original,self=this,map=WPGMZA.getMapByID(map_id);if(WPGMZA.assertInstanceOf(this,"ModernStoreLocator"),(original=WPGMZA.isProVersion()?$(".wpgmza_sl_search_button[mid='"+map_id+"'], .wpgmza_sl_search_button_"+map_id).closest(".wpgmza_sl_main_div"):$(".wpgmza_sl_search_button").closest(".wpgmza_sl_main_div")).length){this.element=$("<div class='wpgmza-modern-store-locator'><div class='wpgmza-inner wpgmza-modern-hover-opaque'/></div>")[0];var addressInput,inner=$(this.element).find(".wpgmza-inner");addressInput=WPGMZA.isProVersion()?$(original).find(".addressInput"):$(original).find("#addressInput"),wpgmaps_localize[map_id].other_settings.store_locator_query_string&&wpgmaps_localize[map_id].other_settings.store_locator_query_string.length&&addressInput.attr("placeholder",wpgmaps_localize[map_id].other_settings.store_locator_query_string),inner.append(addressInput);var button,titleSearch=$(original).find("[id='nameInput_"+map_id+"']");if(titleSearch.length){var placeholder=wpgmaps_localize[map_id].other_settings.store_locator_name_string;placeholder&&placeholder.length&&titleSearch.attr("placeholder",placeholder),inner.append(titleSearch)}(button=$(original).find("button.wpgmza-use-my-location"))&&inner.append(button),$(addressInput).on("keydown keypress",function(event){13==event.keyCode&&(self.searchButton.trigger("click"),searchLocations(map_id),map.storeLocator.onSearch(event))}),$(addressInput).on("input",function(event){self.searchButton.show(),self.resetButton.hide()}),inner.append($(original).find("select.wpgmza_sl_radius_select")),this.searchButton=$(original).find(".wpgmza_sl_search_button, .wpgmza_sl_search_button_div"),inner.append(this.searchButton),this.resetButton=$(original).find(".wpgmza_sl_reset_button_div"),inner.append(this.resetButton),this.resetButton.on("click",function(event){resetLocations(map_id)}),this.resetButton.hide(),WPGMZA.isProVersion()&&(this.searchButton.on("click",function(event){0!=$("addressInput_"+map_id).val()&&(self.searchButton.hide(),self.resetButton.show(),map.storeLocator.state=WPGMZA.StoreLocator.STATE_APPLIED)}),this.resetButton.on("click",function(event){self.resetButton.hide(),self.searchButton.show(),map.storeLocator.state=WPGMZA.StoreLocator.STATE_INITIAL})),inner.append($("#wpgmza_distance_type_"+map_id));var container=$(original).find(".wpgmza_cat_checkbox_holder"),items=($(container).children("ul"),$(container).find("li")),numCategories=0,icons=[];items.each(function(index,el){var id=$(el).attr("class").match(/\d+/);for(var category_id in wpgmza_category_data)if(id==category_id){var src=wpgmza_category_data[category_id].image,icon=$('<div class="wpgmza-chip-icon"/>');icon.css({"background-image":"url('"+src+"')",width:$("#wpgmza_cat_checkbox_"+category_id+" + label").height()+"px"}),icons.push(icon),null!=src&&""!=src&&$("#wpgmza_cat_checkbox_"+category_id+" + label").prepend(icon),numCategories++;break}}),$(this.element).append(container),numCategories&&(this.optionsButton=$('<span class="wpgmza_store_locator_options_button"><i class="fa fa-list"></i></span>'),$(this.searchButton).before(this.optionsButton)),setInterval(function(){icons.forEach(function(icon){var height=$(icon).height();$(icon).css({width:height+"px"}),$(icon).closest("label").css({"padding-left":height+8+"px"})}),$(container).css("width",$(self.element).find(".wpgmza-inner").outerWidth()+"px")},1e3),$(this.element).find(".wpgmza_store_locator_options_button").on("click",function(event){container.hasClass("wpgmza-open")?container.removeClass("wpgmza-open"):container.addClass("wpgmza-open")}),$(original).remove(),$(this.element).find("input, select").on("focus",function(){$(inner).addClass("active")}),$(this.element).find("input, select").on("blur",function(){$(inner).removeClass("active")}),$(this.element).on("mouseover","li.wpgmza_cat_checkbox_item_holder",function(event){self.onMouseOverCategory(event)}),$(this.element).on("mouseleave","li.wpgmza_cat_checkbox_item_holder",function(event){self.onMouseLeaveCategory(event)}),$(map.markerFilter).on("filteringcomplete",function(event){this.map.hasVisibleMarkers()||(this.map.settings.store_locator_not_found_message!=WPGMZA.localized_strings.zero_results&&""!=this.map.settings.store_locator_not_found_message?alert(this.map.settings.store_locator_not_found_message):alert(WPGMZA.localized_strings.zero_results))}),$("body").on("click",".wpgmza_store_locator_options_button",function(event){setTimeout(function(){if($(".wpgmza_cat_checkbox_holder").hasClass("wpgmza-open")){var p_cat=$(".wpgmza_cat_checkbox_holder"),position_cat=p_cat.position().top+p_cat.outerHeight(!0)+$(".wpgmza-modern-store-locator").height(),$p_map=$(".wpgmza_map");$p_map.position().top+$p_map.outerHeight(!0)<=position_cat&&($(".wpgmza_cat_ul").css("overflow","scroll "),$(".wpgmza_cat_ul").css("height","100%"),$(".wpgmza-modern-store-locator").css("height","100%"),$(".wpgmza_cat_checkbox_holder.wpgmza-open").css({"padding-bottom":"50px",height:"100%"}))}},500)})}},WPGMZA.ModernStoreLocator.createInstance=function(map_id){switch(WPGMZA.settings.engine){case"open-layers":return new WPGMZA.OLModernStoreLocator(map_id);default:return new WPGMZA.GoogleModernStoreLocator(map_id)}},WPGMZA.ModernStoreLocator.prototype.onMouseOverCategory=function(event){var li=event.currentTarget;$(li).children("ul.wpgmza_cat_checkbox_item_holder").stop(!0,!1).fadeIn()},WPGMZA.ModernStoreLocator.prototype.onMouseLeaveCategory=function(event){var li=event.currentTarget;$(li).children("ul.wpgmza_cat_checkbox_item_holder").stop(!0,!1).fadeOut()}}),jQuery(function($){WPGMZA.NativeMapsAppIcon=function(){navigator.userAgent.match(/^Apple|iPhone|iPad|iPod/)?(this.type="apple",this.element=$('<span><i class="fab fa fa-apple" aria-hidden="true"></i></span>')):(this.type="google",this.element=$('<span><i class="fab fa fa-google" aria-hidden="true"></i></span>'))}}),jQuery(function($){Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(begin,end){return new Uint8Array(Array.prototype.slice.call(this,begin,end))}}),WPGMZA.isSafari()&&!window.external&&(window.external={})}),jQuery(function($){WPGMZA.Polygon=function(row,enginePolygon){WPGMZA.assertInstanceOf(this,"Polygon"),this.paths=null,this.title=null,this.name=null,this.link=null,WPGMZA.MapObject.apply(this,arguments)},WPGMZA.Polygon.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Polygon.prototype.constructor=WPGMZA.Polygon,WPGMZA.Polygon.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.isProVersion()?WPGMZA.OLProPolygon:WPGMZA.OLPolygon;default:return WPGMZA.isProVersion()?WPGMZA.GoogleProPolygon:WPGMZA.GooglePolygon}},WPGMZA.Polygon.createInstance=function(row,engineObject){return new(WPGMZA.Polygon.getConstructor())(row,engineObject)},WPGMZA.Polygon.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this);return $.extend(result,{name:this.name,title:this.title,link:this.link}),result}}),jQuery(function($){WPGMZA.Polyline=function(row,googlePolyline){WPGMZA.assertInstanceOf(this,"Polyline"),this.title=null,WPGMZA.MapObject.apply(this,arguments)},WPGMZA.Polyline.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Polyline.prototype.constructor=WPGMZA.Polyline,WPGMZA.Polyline.getConstructor=function(){switch(WPGMZA.settings.engine){case"open-layers":return WPGMZA.OLPolyline;default:return WPGMZA.GooglePolyline}},WPGMZA.Polyline.createInstance=function(row,engineObject){return new(WPGMZA.Polyline.getConstructor())(row,engineObject)},WPGMZA.Polyline.prototype.getPoints=function(){return this.toJSON().points},WPGMZA.Polyline.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this);return result.title=this.title,result}}),jQuery(function($){WPGMZA.PopoutPanel=function(element){this.element=element},WPGMZA.PopoutPanel.prototype.open=function(){$(this.element).addClass("wpgmza-open")},WPGMZA.PopoutPanel.prototype.close=function(){$(this.element).removeClass("wpgmza-open")}}),jQuery(function($){function sendAJAXFallbackRequest(route,params){if((params=$.extend({},params)).data||(params.data={}),"route"in params.data)throw new Error("Cannot send route through this method");if("action"in params.data)throw new Error("Cannot send action through this method");return params.data.route=route,params.data.action="wpgmza_rest_api_request",WPGMZA.restAPI.addNonce(route,params,WPGMZA.RestAPI.CONTEXT_AJAX),$.ajax(WPGMZA.ajaxurl,params)}WPGMZA.RestAPI=function(){WPGMZA.RestAPI.URL=WPGMZA.resturl,this.useAJAXFallback=!1},WPGMZA.RestAPI.CONTEXT_REST="REST",WPGMZA.RestAPI.CONTEXT_AJAX="AJAX",WPGMZA.RestAPI.createInstance=function(){return new WPGMZA.RestAPI},Object.defineProperty(WPGMZA.RestAPI.prototype,"isCompressedPathVariableSupported",{get:function(){return WPGMZA.serverCanInflate&&"Uint8Array"in window&&"TextEncoder"in window}}),Object.defineProperty(WPGMZA.RestAPI.prototype,"isCompressedPathVariableAllowed",{get:function(){return!WPGMZA.pro_version||WPGMZA.Version.compare(WPGMZA.pro_version,"8.0.0")>=WPGMZA.Version.EQUAL_TO?!WPGMZA.settings.disable_compressed_path_variables:WPGMZA.settings.enable_compressed_path_variables}}),Object.defineProperty(WPGMZA.RestAPI.prototype,"maxURLLength",{get:function(){return 2083}}),WPGMZA.RestAPI.prototype.compressParams=function(params){var suffix="";if(params.markerIDs){var markerIDs=params.markerIDs.split(",");if(1<markerIDs.length){var encoded=(new WPGMZA.EliasFano).encode(markerIDs),compressed=pako.deflate(encoded),string=Array.prototype.map.call(compressed,function(ch){return String.fromCharCode(ch)}).join("");suffix="/"+btoa(string).replace(/\//g,"-").replace(/=+$/,""),params.midcbp=encoded.pointer,delete params.markerIDs}}string=JSON.stringify(params);var input=(new TextEncoder).encode(string),raw=(compressed=pako.deflate(input),Array.prototype.map.call(compressed,function(ch){return String.fromCharCode(ch)}).join(""));return btoa(raw).replace(/\//g,"-").replace(/=+$/,"")+suffix},WPGMZA.RestAPI.prototype.getNonce=function(route){var matches=[];for(var pattern in WPGMZA.restnoncetable){var regex=new RegExp(pattern);route.match(regex)&&matches.push({pattern:pattern,nonce:WPGMZA.restnoncetable[pattern],length:pattern.length})}if(!matches.length)throw new Error("No nonce found for route");return matches.sort(function(a,b){return b.length-a.length}),matches[0].nonce},WPGMZA.RestAPI.prototype.addNonce=function(route,params,context){function setRESTNonce(xhr){context==WPGMZA.RestAPI.CONTEXT_REST&&xhr.setRequestHeader("X-WP-Nonce",WPGMZA.restnonce),params&¶ms.method&&!params.method.match(/^GET$/i)&&xhr.setRequestHeader("X-WPGMZA-Action-Nonce",self.getNonce(route))}var self=this;if(params.beforeSend){var base=params.beforeSend;params.beforeSend=function(xhr){base(xhr),setRESTNonce(xhr)}}else params.beforeSend=setRESTNonce},WPGMZA.RestAPI.prototype.call=function(route,params){if(this.useAJAXFallback)return sendAJAXFallbackRequest(route,params);var attemptedCompressedPathVariable=!1,fallbackRoute=route,fallbackParams=$.extend({},params);if("string"!=typeof route||!route.match(/^\//)&&!route.match(/^http/))throw new Error("Invalid route");if(WPGMZA.RestAPI.URL.match(/\/$/)&&(route=route.replace(/^\//,"")),params=params||{},this.addNonce(route,params,WPGMZA.RestAPI.CONTEXT_REST),params.error||(params.error=function(xhr,status,message){if("abort"!=status){switch(xhr.status){case 401:case 403:return $.post(WPGMZA.ajaxurl,{action:"wpgmza_report_rest_api_blocked"},function(response){}),console.warn("The REST API was blocked. This is usually due to security plugins blocking REST requests for non-authenticated users."),this.useAJAXFallback=!0,sendAJAXFallbackRequest(fallbackRoute,fallbackParams);case 414:if(!attemptedCompressedPathVariable)break;return fallbackParams.method="POST",fallbackParams.useCompressedPathVariable=!1,WPGMZA.restAPI.call(fallbackRoute,fallbackParams)}throw new Error(message)}}),params.useCompressedPathVariable&&this.isCompressedPathVariableSupported&&this.isCompressedPathVariableAllowed){var compressedParams=$.extend({},params),data=params.data,base64=this.compressParams(data);WPGMZA.isServerIIS&&(base64=base64.replace(/\+/g,"%20"));var compressedRoute=route.replace(/\/$/,"")+"/base64"+base64;WPGMZA.RestAPI.URL;compressedParams.method="GET",delete compressedParams.data,!1===params.cache&&(compressedParams.data={skip_cache:1}),compressedRoute.length<this.maxURLLength?(attemptedCompressedPathVariable=!0,route=compressedRoute,params=compressedParams):(WPGMZA.RestAPI.compressedPathVariableURLLimitWarningDisplayed||console.warn("Compressed path variable route would exceed URL length limit"),WPGMZA.RestAPI.compressedPathVariableURLLimitWarningDisplayed=!0)}return WPGMZA.RestAPI.URL.match(/\?/)&&(route=route.replace(/\?/,"&")),$.ajax(WPGMZA.RestAPI.URL+route,params)};var nativeCallFunction=WPGMZA.RestAPI.call;WPGMZA.RestAPI.call=function(){console.warn("WPGMZA.RestAPI.call was called statically, did you mean to call the function on WPGMZA.restAPI?"),nativeCallFunction.apply(this,arguments)},$(document.body).on("click","#wpgmza-rest-api-blocked button.notice-dismiss",function(event){WPGMZA.restAPI.call("/rest-api/",{method:"POST",data:{dismiss_blocked_notice:!0}})})}),jQuery(function($){WPGMZA.SettingsPage=function(){$("#wpgmza-global-settings").tabs()},WPGMZA.SettingsPage.createInstance=function(){return new WPGMZA.SettingsPage},$(window).on("load",function(event){var useLegacyHTML=WPGMZA.settings.useLegacyHTML||!window.location.href.match(/no-legacy-html/);WPGMZA.getCurrentPage()!=WPGMZA.PAGE_SETTINGS||useLegacyHTML||(WPGMZA.settingsPage=WPGMZA.SettingsPage.createInstance())})}),jQuery(function($){WPGMZA.StoreLocator=function(map,element){var self=this;WPGMZA.EventDispatcher.call(this),this._center=null,this.map=map,this.element=element,(this.element.wpgmzaStoreLocator=this).state=WPGMZA.StoreLocator.STATE_INITIAL,$(element).find(".wpgmza-not-found-msg").hide(),this.addressInput=WPGMZA.AddressInput.createInstance($(element).find("input.wpgmza-address")[0],map),this.map.on("storelocatorgeocodecomplete",function(event){self.onGeocodeComplete(event)}),this.map.on("init",function(event){self.map.markerFilter.on("filteringcomplete",function(event){self.onFilteringComplete(event)})}),$(element).on("keypress","input",function(event){13==event.which&&(searchLocations(self.map.id),self.onSearch(event))}),$(document.body).on("click",".wpgmza_sl_search_button_"+map.id+", [data-map-id='"+map.id+"'] .wpgmza_sl_search_button",function(event){self.onSearch(event)}),$(document.body).on("click",".wpgmza_sl_reset_button_"+map.id+", [data-map-id='"+map.id+"'] .wpgmza_sl_reset_button_div",function(event){self.onReset(event)})},WPGMZA.StoreLocator.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.StoreLocator.prototype.constructor=WPGMZA.StoreLocator,WPGMZA.StoreLocator.STATE_INITIAL="initial",WPGMZA.StoreLocator.STATE_APPLIED="applied",WPGMZA.StoreLocator.createInstance=function(map,element){return new WPGMZA.StoreLocator(map,element)},Object.defineProperty(WPGMZA.StoreLocator.prototype,"distanceUnits",{get:function(){return 1==this.map.settings.store_locator_distance?WPGMZA.Distance.MILES:WPGMZA.Distance.KILOMETERS}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"radius",{get:function(){return $("#radiusSelect, #radiusSelect_"+this.map.id).val()}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"center",{get:function(){return this._center}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"bounds",{get:function(){return this._bounds}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"marker",{get:function(){if(1!=this.map.settings.store_locator_bounce)return null;if(this._marker)return this._marker;return this._marker=WPGMZA.Marker.createInstance({visible:!1}),this._marker.disableInfoWindow=!0,this._marker.isFilterable=!1,this._marker.setAnimation(WPGMZA.Marker.ANIMATION_BOUNCE),this._marker}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"circle",{get:function(){return this._circle||("modern"!=this.map.settings.wpgmza_store_locator_radius_style||WPGMZA.isDeviceiOS()?this._circle=WPGMZA.Circle.createInstance({strokeColor:"#ff0000",strokeOpacity:"0.25",strokeWeight:2,fillColor:"#ff0000",fillOpacity:"0.15",visible:!1,clickable:!1}):(this._circle=WPGMZA.ModernStoreLocatorCircle.createInstance(this.map.id),this._circle.settings.color=this.circleStrokeColor)),this._circle}}),WPGMZA.StoreLocator.prototype.onGeocodeComplete=function(event){if(!event.results||!event.results.length)return this._center=null,void(this._bounds=null);this._center=new WPGMZA.LatLng(event.results[0].latLng),this._bounds=new WPGMZA.LatLngBounds(event.results[0].bounds),this.map.markerFilter.update({},this)},WPGMZA.StoreLocator.prototype.onSearch=function(event){this.state=WPGMZA.StoreLocator.STATE_APPLIED},WPGMZA.StoreLocator.prototype.onReset=function(event){this.state=WPGMZA.StoreLocator.STATE_INITIAL,this._center=null,this._bounds=null,this.map.markerFilter.update({},this)},WPGMZA.StoreLocator.prototype.getFilteringParameters=function(){return this.center?{center:this.center,radius:this.radius}:{}},WPGMZA.StoreLocator.prototype.onFilteringComplete=function(event){var params=event.filteringParams,marker=this.marker;marker&&marker.setVisible(!1),params.center&&marker&&(marker.setPosition(params.center),marker.setVisible(!0),marker.map!=this.map&&this.map.addMarker(marker));var circle=this.circle;if(circle){var factor=this.distanceUnits==WPGMZA.Distance.MILES?WPGMZA.Distance.KILOMETERS_PER_MILE:1;circle.setVisible(!1),params.center&¶ms.radius&&(circle.setRadius(params.radius*factor),circle.setCenter(params.center),circle.setVisible(!0),circle.map!=this.map&&this.map.addCircle(circle)),circle instanceof WPGMZA.ModernStoreLocatorCircle&&(circle.settings.radiusString=this.radius)}this.map.hasVisibleMarkers()?$(this.element).find(".wpgmza-not-found-msg").hide():$(this.element).find(".wpgmza-not-found-msg").show()}}),jQuery(function($){WPGMZA.Text=function(options){if(options)for(var name in options)this[name]=options[name]},WPGMZA.Text.createInstance=function(options){switch(WPGMZA.settings.engine){case"open-layers":return new WPGMZA.OLText(options);default:return new WPGMZA.GoogleText(options)}}}),jQuery(function($){WPGMZA.ThemeEditor=function(){WPGMZA.EventDispatcher.call(this),this.element=$("#wpgmza-theme-editor"),this.element.length?"open-layers"!=WPGMZA.settings.engine?(this.json=[{}],this.mapElement=WPGMZA.maps[0].element,this.element.appendTo("#wpgmza-map-theme-editor__holder"),$(window).on("scroll",function(event){}),setInterval(function(){},200),this.initHTML(),WPGMZA.themeEditor=this):this.element.remove():console.warn("No element to initialise theme editor on")},WPGMZA.extend(WPGMZA.ThemeEditor,WPGMZA.EventDispatcher),WPGMZA.ThemeEditor.prototype.updatePosition=function(){},WPGMZA.ThemeEditor.features={all:[],administrative:["country","land_parcel","locality","neighborhood","province"],landscape:["man_made","natural","natural.landcover","natural.terrain"],poi:["attraction","business","government","medical","park","place_of_worship","school","sports_complex"],road:["arterial","highway","highway.controlled_access","local"],transit:["line","station","station.airport","station.bus","station.rail"],water:[]},WPGMZA.ThemeEditor.elements={all:[],geometry:["fill","stroke"],labels:["icon","text","text.fill","text.stroke"]},WPGMZA.ThemeEditor.prototype.parse=function(){$("#wpgmza_theme_editor_feature option, #wpgmza_theme_editor_element option").css("font-weight","normal"),$("#wpgmza_theme_editor_error").hide(),$("#wpgmza_theme_editor").show(),$("#wpgmza_theme_editor_do_hue").prop("checked",!1),$("#wpgmza_theme_editor_hue").val("#000000"),$("#wpgmza_theme_editor_lightness").val(""),$("#wpgmza_theme_editor_saturation").val(""),$("#wpgmza_theme_editor_gamma").val(""),$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!1),$("#wpgmza_theme_editor_visibility").val("inherit"),$("#wpgmza_theme_editor_do_color").prop("checked",!1),$("#wpgmza_theme_editor_color").val("#000000"),$("#wpgmza_theme_editor_weight").val("");var textarea=$('textarea[name="wpgmza_theme_data"]');if(!textarea.val()||textarea.val().length<1)this.json=[{}];else{try{this.json=$.parseJSON($('textarea[name="wpgmza_theme_data"]').val())}catch(e){return this.json=[{}],$("#wpgmza_theme_editor").hide(),void $("#wpgmza_theme_editor_error").show()}if(!$.isArray(this.json)){var jsonCopy=this.json;this.json=[],this.json.push(jsonCopy)}this.highlightFeatures(),this.highlightElements(),this.loadElementStylers()}},WPGMZA.ThemeEditor.prototype.highlightFeatures=function(){$("#wpgmza_theme_editor_feature option").css("font-weight","normal"),$.each(this.json,function(i,v){v.hasOwnProperty("featureType")?$('#wpgmza_theme_editor_feature option[value="'+v.featureType+'"]').css("font-weight","bold"):$('#wpgmza_theme_editor_feature option[value="all"]').css("font-weight","bold")})},WPGMZA.ThemeEditor.prototype.highlightElements=function(){var feature=$("#wpgmza_theme_editor_feature").val();$("#wpgmza_theme_editor_element option").css("font-weight","normal"),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")?$('#wpgmza_theme_editor_element option[value="'+v.elementType+'"]').css("font-weight","bold"):$('#wpgmza_theme_editor_element option[value="all"]').css("font-weight","bold"))})},WPGMZA.ThemeEditor.prototype.loadElementStylers=function(){var feature=$("#wpgmza_theme_editor_feature").val(),element=$("#wpgmza_theme_editor_element").val();$("#wpgmza_theme_editor_do_hue").prop("checked",!1),$("#wpgmza_theme_editor_hue").val("#000000"),$("#wpgmza_theme_editor_lightness").val(""),$("#wpgmza_theme_editor_saturation").val(""),$("#wpgmza_theme_editor_gamma").val(""),$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!1),$("#wpgmza_theme_editor_visibility").val("inherit"),$("#wpgmza_theme_editor_do_color").prop("checked",!1),$("#wpgmza_theme_editor_color").val("#000000"),$("#wpgmza_theme_editor_weight").val(""),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")&&v.elementType==element||"all"==element&&!v.hasOwnProperty("elementType"))&&v.hasOwnProperty("stylers")&&$.isArray(v.stylers)&&0<v.stylers.length&&$.each(v.stylers,function(ii,vv){vv.hasOwnProperty("hue")&&($("#wpgmza_theme_editor_do_hue").prop("checked",!0),$("#wpgmza_theme_editor_hue").val(vv.hue)),vv.hasOwnProperty("lightness")&&$("#wpgmza_theme_editor_lightness").val(vv.lightness),vv.hasOwnProperty("saturation")&&$("#wpgmza_theme_editor_saturation").val(vv.xaturation),vv.hasOwnProperty("gamma")&&$("#wpgmza_theme_editor_gamma").val(vv.gamma),vv.hasOwnProperty("invert_lightness")&&$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!0),vv.hasOwnProperty("visibility")&&$("#wpgmza_theme_editor_visibility").val(vv.visibility),vv.hasOwnProperty("color")&&($("#wpgmza_theme_editor_do_color").prop("checked",!0),$("#wpgmza_theme_editor_color").val(vv.color)),vv.hasOwnProperty("weight")&&$("#wpgmza_theme_editor_weight").val(vv.weight)})})},WPGMZA.ThemeEditor.prototype.writeElementStylers=function(){var feature=$("#wpgmza_theme_editor_feature").val(),element=$("#wpgmza_theme_editor_element").val(),indexJSON=null,stylers=[];if("inherit"!=$("#wpgmza_theme_editor_visibility").val()&&stylers.push({visibility:$("#wpgmza_theme_editor_visibility").val()}),!0===$("#wpgmza_theme_editor_do_color").prop("checked")&&stylers.push({color:$("#wpgmza_theme_editor_color").val()}),!0===$("#wpgmza_theme_editor_do_hue").prop("checked")&&stylers.push({hue:$("#wpgmza_theme_editor_hue").val()}),0<$("#wpgmza_theme_editor_gamma").val().length&&stylers.push({gamma:parseFloat($("#wpgmza_theme_editor_gamma").val())}),0<$("#wpgmza_theme_editor_weight").val().length&&stylers.push({weight:parseFloat($("#wpgmza_theme_editor_weight").val())}),0<$("#wpgmza_theme_editor_saturation").val().length&&stylers.push({saturation:parseFloat($("#wpgmza_theme_editor_saturation").val())}),0<$("#wpgmza_theme_editor_lightness").val().length&&stylers.push({lightness:parseFloat($("#wpgmza_theme_editor_lightness").val())}),!0===$("#wpgmza_theme_editor_do_invert_lightness").prop("checked")&&stylers.push({invert_lightness:!0}),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")&&v.elementType==element||"all"==element&&!v.hasOwnProperty("elementType"))&&(indexJSON=i)}),null===indexJSON){if(0<stylers.length){var new_feature_element_stylers={};"all"!=feature&&(new_feature_element_stylers.featureType=feature),"all"!=element&&(new_feature_element_stylers.elementType=element),new_feature_element_stylers.stylers=stylers,this.json.push(new_feature_element_stylers)}}else 0<stylers.length?this.json[indexJSON].stylers=stylers:this.json.splice(indexJSON,1);$('textarea[name="wpgmza_theme_data"]').val(JSON.stringify(this.json).replace(/:/g,": ").replace(/,/g,", ")),this.highlightFeatures(),this.highlightElements(),WPGMZA.themePanel.updateMapTheme()},WPGMZA.ThemeEditor.prototype.initHTML=function(){var self=this;$.each(WPGMZA.ThemeEditor.features,function(i,v){$("#wpgmza_theme_editor_feature").append('<option value="'+i+'">'+i+"</option>"),0<v.length&&$.each(v,function(ii,vv){$("#wpgmza_theme_editor_feature").append('<option value="'+i+"."+vv+'">'+i+"."+vv+"</option>")})}),$.each(WPGMZA.ThemeEditor.elements,function(i,v){$("#wpgmza_theme_editor_element").append('<option value="'+i+'">'+i+"</option>"),0<v.length&&$.each(v,function(ii,vv){$("#wpgmza_theme_editor_element").append('<option value="'+i+"."+vv+'">'+i+"."+vv+"</option>")})}),this.parse(),$('textarea[name="wpgmza_theme_data"]').on("input selectionchange propertychange",function(){self.parse()}),$(".wpgmza_theme_selection").click(function(){setTimeout(function(){$('textarea[name="wpgmza_theme_data"]').trigger("input")},1e3)}),$("#wpgmza_theme_editor_feature").on("change",function(){self.highlightElements(),self.loadElementStylers()}),$("#wpgmza_theme_editor_element").on("change",function(){self.loadElementStylers()}),$("#wpgmza_theme_editor_do_hue, #wpgmza_theme_editor_hue, #wpgmza_theme_editor_lightness, #wpgmza_theme_editor_saturation, #wpgmza_theme_editor_gamma, #wpgmza_theme_editor_do_invert_lightness, #wpgmza_theme_editor_visibility, #wpgmza_theme_editor_do_color, #wpgmza_theme_editor_color, #wpgmza_theme_editor_weight").on("input selectionchange propertychange",function(){self.writeElementStylers()}),"open-layers"==WPGMZA.settings.engine&&$("#wpgmza_theme_editor :input").prop("disabled",!0)}}),jQuery(function($){WPGMZA.ThemePanel=function(){var self=this;this.element=$("#wpgmza-theme-panel"),this.map=WPGMZA.maps[0],this.element.length?($("#wpgmza-theme-presets").owlCarousel({items:5,dots:!0}),this.element.on("click","#wpgmza-theme-presets label",function(event){self.onThemePresetClick(event)}),$("#wpgmza-open-theme-editor").on("click",function(event){$("#wpgmza-map-theme-editor__holder").addClass("active"),$("#wpgmza-theme-editor").addClass("active"),WPGMZA.animateScroll($("#wpgmza-theme-editor"))}),WPGMZA.themePanel=this):console.warn("No element to initialise theme panel on")},WPGMZA.ThemePanel.previewImageCenter={lat:33.701806462148646,lng:-118.15949896058983},WPGMZA.ThemePanel.previewImageZoom=11,WPGMZA.ThemePanel.prototype.onThemePresetClick=function(event){var selectedData=$(event.currentTarget).find("[data-theme-json]").attr("data-theme-json"),textarea=$(this.element).find("textarea[name='wpgmza_theme_data']"),existingData=textarea.val(),allPresetData=[];$(this.element).find("[data-theme-json]").each(function(index,el){allPresetData.push($(el).attr("data-theme-json"))}),existingData.length&&-1==allPresetData.indexOf(existingData)&&!confirm(WPGMZA.localized_strings.overwrite_theme_data)||(textarea.val(selectedData),this.updateMapTheme(),WPGMZA.themeEditor.parse())},WPGMZA.ThemePanel.prototype.updateMapTheme=function(){var data;try{data=JSON.parse($("textarea[name='wpgmza_theme_data']").val())}catch(e){return void alert(WPGMZA.localized_strings.invalid_theme_data)}this.map.setOptions({styles:data})}}),jQuery(function($){WPGMZA.Version=function(){},WPGMZA.Version.GREATER_THAN=1,WPGMZA.Version.EQUAL_TO=0,WPGMZA.Version.LESS_THAN=-1,WPGMZA.Version.compare=function(v1,v2){for(var v1parts=v1.match(/\d+/g),v2parts=v2.match(/\d+/g),i=0;i<v1parts.length;++i){if(v2parts.length===i)return 1;if(v1parts[i]!==v2parts[i])return v1parts[i]>v2parts[i]?1:-1}return v1parts.length!=v2parts.length?-1:0}}),jQuery(function($){$(window).on("load",function(event){var parent=document.body.onclick;parent&&(document.body.onclick=function(event){event.target instanceof WPGMZA.Marker||parent(event)})})}),jQuery(function($){WPGMZA.GoogleUICompatibility=function(){if(!(navigator.vendor&&-1<navigator.vendor.indexOf("Apple")&&navigator.userAgent&&-1==navigator.userAgent.indexOf("CriOS")&&-1==navigator.userAgent.indexOf("FxiOS"))){var style=$("<style id='wpgmza-google-ui-compatiblity-fix'/>");style.html(".wpgmza_map img:not(button img) { padding:0 !important; }"),$(document.head).append(style)}},WPGMZA.googleUICompatibility=new WPGMZA.GoogleUICompatibility}),jQuery(function($){WPGMZA.DataTable=function(element){var self=this;if(!$.fn.dataTable)return console.warn("The dataTables library is not loaded. Cannot create a dataTable. Did you enable 'Do not enqueue dataTables'?"),void(WPGMZA.settings.wpgmza_do_not_enqueue_datatables&&WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT&&alert("You have selected 'Do not enqueue DataTables' in WP Google Maps' settings. No 3rd party software is loading the DataTables library. Because of this, the marker table cannot load. Please uncheck this option to use the marker table."));if($.fn.dataTable.ext)$.fn.dataTable.ext.errMode="throw";else{var version=$.fn.dataTable.version?$.fn.dataTable.version:"unknown";console.warn("You appear to be running an outdated or modified version of the dataTables library. This may cause issues with table functionality. This is usually caused by 3rd party software loading an older version of DataTables. The loaded version is "+version+", we recommend version 1.10.12 or above.")}this.element=element,(this.element.wpgmzaDataTable=this).dataTableElement=this.getDataTableElement();var settings=this.getDataTableSettings();this.phpClass=$(element).attr("data-wpgmza-php-class"),(this.wpgmzaDataTable=this).useCompressedPathVariable=WPGMZA.restAPI.isCompressedPathVariableSupported&&WPGMZA.settings.enable_compressed_path_variables,this.method=this.useCompressedPathVariable?"GET":"POST",null==this.getLanguageURL()||"//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json"==this.getLanguageURL()?(this.dataTable=$(this.dataTableElement).DataTable(settings),this.dataTable.ajax.reload()):$.ajax(this.getLanguageURL(),{success:function(response,status,xhr){self.languageJSON=response,self.dataTable=$(self.dataTableElement).DataTable(settings),self.dataTable.ajax.reload()},error:function(){self.dataTable=$(self.dataTableElement).DataTable(settings),self.dataTable.ajax.reload()}})},WPGMZA.DataTable.prototype.getDataTableElement=function(){return $(this.element).find("table")},WPGMZA.DataTable.prototype.onAJAXRequest=function(data,settings){var params={phpClass:this.phpClass},attr=$(this.element).attr("data-wpgmza-ajax-parameters");return attr&&$.extend(params,JSON.parse(attr)),$.extend(data,params)},WPGMZA.DataTable.prototype.onDataTableAjaxRequest=function(data,callback,settings){var self=this,element=this.element,route=$(element).attr("data-wpgmza-rest-api-route"),params=this.onAJAXRequest(data,settings),draw=params.draw;if(delete params.draw,!route)throw new Error("No data-wpgmza-rest-api-route attribute specified");var options={method:"POST",useCompressedPathVariable:!0,data:params,dataType:"json",cache:!this.preventCaching,beforeSend:function(xhr){xhr.setRequestHeader("X-DataTables-Draw",draw)},success:function(response,status,xhr){response.draw=draw,self.lastResponse=response,callback(response),self.onAJAXResponse(response)}};return WPGMZA.restAPI.call(route,options)},WPGMZA.DataTable.prototype.getDataTableSettings=function(){var self=this,element=this.element,options={};$(element).attr("data-wpgmza-datatable-options")&&(options=JSON.parse($(element).attr("data-wpgmza-datatable-options"))),options.deferLoading=!0,options.processing=!0,options.serverSide=!0,options.ajax=function(data,callback,settings){return WPGMZA.DataTable.prototype.onDataTableAjaxRequest.apply(self,arguments)},WPGMZA.AdvancedTableDataTable&&this instanceof WPGMZA.AdvancedTableDataTable&&WPGMZA.settings.wpgmza_default_items&&(options.iDisplayLength=parseInt(WPGMZA.settings.wpgmza_default_items)),options.aLengthMenu=[[5,10,25,50,100,-1],["5","10","25","50","100",WPGMZA.localized_strings.all]];var languageURL=this.getLanguageURL();return languageURL&&(options.language={url:languageURL}),options},WPGMZA.DataTable.prototype.getLanguageURL=function(){if(!WPGMZA.locale)return null;var languageURL;switch(WPGMZA.locale.substr(0,2)){case"af":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Afrikaans.json";break;case"sq":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Albanian.json";break;case"am":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Amharic.json";break;case"ar":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Arabic.json";break;case"hy":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Armenian.json";break;case"az":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Azerbaijan.json";break;case"bn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Bangla.json";break;case"eu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Basque.json";break;case"be":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Belarusian.json";break;case"bg":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Bulgarian.json";break;case"ca":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Catalan.json";break;case"zh":languageURL="zh_TW"==WPGMZA.locale?WPGMZA.pluginDirURL+"languages/datatables/Chinese-traditional.json":"//cdn.datatables.net/plug-ins/1.10.12/i18n/Chinese.json";break;case"hr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Croatian.json";break;case"cs":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Czech.json";break;case"da":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Danish.json";break;case"nl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Dutch.json";break;case"et":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Estonian.json";break;case"fi":languageURL=WPGMZA.locale.match(/^fil/)?WPGMZA.pluginDirURL+"languages/datatables/Filipino.json":WPGMZA.pluginDirURL+"languages/datatables/Finnish.json";break;case"fr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/French.json";break;case"gl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Galician.json";break;case"ka":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Georgian.json";break;case"de":languageURL=WPGMZA.pluginDirURL+"languages/datatables/German.json";break;case"el":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Greek.json";break;case"gu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Gujarati.json";break;case"he":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hebrew.json";break;case"hi":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hindi.json";break;case"hu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hungarian.json";break;case"is":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Icelandic.json";break;case"id":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Indonesian.json";break;case"ga":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Irish.json";break;case"it":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Italian.json";break;case"ja":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Japanese.json";break;case"kk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Kazakh.json";break;case"ko":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Korean.json";break;case"ky":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Kyrgyz.json";break;case"lv":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Latvian.json";break;case"lt":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Lithuanian.json";break;case"mk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Macedonian.json";break;case"ml":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Malay.json";break;case"mn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Mongolian.json";break;case"ne":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Nepali.json";break;case"nb":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Norwegian-Bokmal.json";break;case"nn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Norwegian-Nynorsk.json";break;case"ps":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Pashto.json";break;case"fa":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Persian.json";break;case"pl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Polish.json";break;case"pt":languageURL="pt_BR"==WPGMZA.locale?WPGMZA.pluginDirURL+"languages/datatables/Portuguese-Brasil.json":"//cdn.datatables.net/plug-ins/1.10.12/i18n/Portuguese.json";break;case"ro":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Romanian.json";break;case"ru":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Russian.json";break;case"sr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Serbian.json";break;case"si":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Sinhala.json";break;case"sk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Slovak.json";break;case"sl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Slovenian.json";break;case"es":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Spanish.json";break;case"sw":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Swahili.json";break;case"sv":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Swedish.json";break;case"ta":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Tamil.json";break;case"te":languageURL=WPGMZA.pluginDirURL+"languages/datatables/telugu.json";break;case"th":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Thai.json";break;case"tr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Turkish.json";break;case"uk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Ukrainian.json";break;case"ur":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Urdu.json";break;case"uz":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Uzbek.json";break;case"vi":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Vietnamese.json";break;case"cy":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Welsh.json"}return languageURL},WPGMZA.DataTable.prototype.onAJAXResponse=function(response){},WPGMZA.DataTable.prototype.reload=function(){this.dataTable.ajax.reload(null,!1)}}),jQuery(function($){WPGMZA.AdminMarkerDataTable=function(element){var self=this;this.preventCaching=!0,WPGMZA.DataTable.call(this,element),$(element).on("click","[data-delete-marker-id]",function(event){self.onDeleteMarker(event)}),$(element).find(".wpgmza.select_all_markers").on("click",function(event){self.onSelectAll(event)}),$(element).find(".wpgmza.bulk_delete").on("click",function(event){self.onBulkDelete(event)}),$(element).on("click","[data-center-marker-id]",function(event){self.onCenterMarker(event)})},WPGMZA.AdminMarkerDataTable.prototype=Object.create(WPGMZA.DataTable.prototype),WPGMZA.AdminMarkerDataTable.prototype.constructor=WPGMZA.AdminMarkerDataTable,WPGMZA.AdminMarkerDataTable.createInstance=function(element){return new WPGMZA.AdminMarkerDataTable(element)},WPGMZA.AdminMarkerDataTable.prototype.getDataTableSettings=function(){var self=this,options=WPGMZA.DataTable.prototype.getDataTableSettings.call(this);return options.createdRow=function(row,data,index){var meta=self.lastResponse.meta[index];row.wpgmzaMarkerData=meta},options},WPGMZA.AdminMarkerDataTable.prototype.onEditMarker=function(event){WPGMZA.animatedScroll("#wpgmaps_tabs_markers")},WPGMZA.AdminMarkerDataTable.prototype.onDeleteMarker=function(event){var self=this,id=$(event.currentTarget).attr("data-delete-marker-id"),data={action:"delete_marker",security:WPGMZA.legacyajaxnonce,map_id:WPGMZA.mapEditPage.map.id,marker_id:id};$.post(ajaxurl,data,function(response){WPGMZA.mapEditPage.map.removeMarkerByID(id),self.reload()})},WPGMZA.AdminMarkerDataTable.prototype.onApproveMarker=function(event){var cur_id=$(this).attr("id"),data={action:"approve_marker",security:WPGMZA.legacyajaxnonce,map_id:WPGMZA.mapEditPage.map.id,marker_id:cur_id};$.post(ajaxurl,data,function(response){wpgmza_InitMap(),wpgmza_reinitialisetbl()})},WPGMZA.AdminMarkerDataTable.prototype.onSelectAll=function(event){$(this.element).find("input[name='mark']").prop("checked",!0)},WPGMZA.AdminMarkerDataTable.prototype.onBulkDelete=function(event){var self=this,ids=[],map=WPGMZA.maps[0];$(this.element).find("input[name='mark']:checked").each(function(index,el){var row=$(el).closest("tr")[0];ids.push(row.wpgmzaMarkerData.id)}),ids.forEach(function(marker_id){var marker=map.getMarkerByID(marker_id);marker&&map.removeMarker(marker)}),WPGMZA.restAPI.call("/markers/",{method:"DELETE",data:{ids:ids},complete:function(){self.reload()}})},WPGMZA.AdminMarkerDataTable.prototype.onCenterMarker=function(event){var id;id=null==event.currentTarget?event:$(event.currentTarget).attr("data-center-marker-id");var marker=WPGMZA.mapEditPage.map.getMarkerByID(id);if(marker){var latLng=new WPGMZA.LatLng({lat:marker.lat,lng:marker.lng});WPGMZA.mapEditPage.map.setCenter(latLng),WPGMZA.mapEditPage.map.setZoom(6),WPGMZA.animateScroll("#wpgmaps_tabs_markers")}},$(document).ready(function(event){$("[data-wpgmza-admin-marker-datatable]").each(function(index,el){WPGMZA.adminMarkerDataTable=WPGMZA.AdminMarkerDataTable.createInstance(el)})})}),jQuery(function($){WPGMZA.Integration={},WPGMZA.integrationModules={}}),jQuery(function($){if(window.wp&&wp.i18n&&wp.blocks&&wp.editor&&wp.components){var __=wp.i18n.__,registerBlockType=wp.blocks.registerBlockType,_wp$editor=wp.editor,InspectorControls=_wp$editor.InspectorControls,_wp$components=(_wp$editor.BlockControls,wp.components),Dashicon=_wp$components.Dashicon,PanelBody=(_wp$components.Toolbar,_wp$components.Button,_wp$components.Tooltip,_wp$components.PanelBody);_wp$components.TextareaControl,_wp$components.CheckboxControl,_wp$components.TextControl,_wp$components.SelectControl,_wp$components.RichText;WPGMZA.Integration.Gutenberg=function(){registerBlockType("gutenberg-wpgmza/block",this.getBlockDefinition())},WPGMZA.Integration.Gutenberg.prototype.getBlockTitle=function(){return __("WP Google Maps")},WPGMZA.Integration.Gutenberg.prototype.getBlockInspectorControls=function(props){return React.createElement(InspectorControls,{key:"inspector"},React.createElement(PanelBody,{title:__("Map Settings")},React.createElement("p",{class:"map-block-gutenberg-button-container"},React.createElement("a",{href:WPGMZA.adminurl+"admin.php?page=wp-google-maps-menu&action=edit&map_id=1",target:"_blank",class:"button button-primary"},React.createElement("i",{class:"fa fa-pencil-square-o","aria-hidden":"true"}),__("Go to Map Editor"))),React.createElement("p",{class:"map-block-gutenberg-button-container"},React.createElement("a",{href:"https://www.wpgmaps.com/documentation/creating-your-first-map/",target:"_blank",class:"button button-primary"},React.createElement("i",{class:"fa fa-book","aria-hidden":"true"}),__("View Documentation")))))},WPGMZA.Integration.Gutenberg.prototype.getBlockAttributes=function(){return{}},WPGMZA.Integration.Gutenberg.prototype.getBlockDefinition=function(props){var _this=this;return{title:__("WP Google Maps"),description:__("The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss."),category:"common",icon:"location-alt",keywords:[__("Map"),__("Maps"),__("Google")],attributes:this.getBlockAttributes(),edit:function(props){return[!!props.isSelected&&_this.getBlockInspectorControls(props),React.createElement("div",{className:props.className+" wpgmza-gutenberg-block"},React.createElement(Dashicon,{icon:"location-alt"}),React.createElement("span",{class:"wpgmza-gutenberg-block-title"},__("Your map will appear here on your websites front end")))]},save:function(){return null}}},WPGMZA.Integration.Gutenberg.getConstructor=function(){return WPGMZA.Integration.Gutenberg},WPGMZA.Integration.Gutenberg.createInstance=function(){return new(WPGMZA.Integration.Gutenberg.getConstructor())},WPGMZA.isProVersion()||/^6/.test(WPGMZA.pro_version)||(WPGMZA.integrationModules.gutenberg=WPGMZA.Integration.Gutenberg.createInstance())}}),jQuery(function($){var Parent=WPGMZA.Circle;WPGMZA.OLCircle=function(options,olFeature){this.center={lat:0,lng:0},this.radius=0,this.fillcolor="#ff0000",this.opacity=.6,Parent.call(this,options,olFeature),this.olStyle=new ol.style.Style(this.getStyleFromSettings()),this.vectorLayer3857=this.layer=new ol.layer.Vector({source:new ol.source.Vector,style:this.olStyle}),olFeature?this.olFeature=olFeature:this.recreate()},WPGMZA.OLCircle.prototype=Object.create(Parent.prototype),WPGMZA.OLCircle.prototype.constructor=WPGMZA.OLCircle,WPGMZA.OLCircle.prototype.recreate=function(){if(this.olFeature&&(this.layer.getSource().removeFeature(this.olFeature),delete this.olFeature),this.center&&this.radius){var x,y,radius=1e3*parseFloat(this.radius)/2;x=this.center.lng,y=this.center.lat;var circle3857=ol.geom.Polygon.circular([x,y],radius,64).clone().transform("EPSG:4326","EPSG:3857");this.olFeature=new ol.Feature(circle3857),this.layer.getSource().addFeature(this.olFeature)}},WPGMZA.OLCircle.prototype.getStyleFromSettings=function(){var params={};return this.opacity&&(params.fill=new ol.style.Fill({color:WPGMZA.hexOpacityToRGBA(this.fillColor,this.opacity)})),params},WPGMZA.OLCircle.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLCircle.prototype.setVisible=function(visible){this.layer.setVisible(!!visible)},WPGMZA.OLCircle.prototype.setCenter=function(center){WPGMZA.Circle.prototype.setCenter.apply(this,arguments),this.recreate()},WPGMZA.OLCircle.prototype.setRadius=function(radius){WPGMZA.Circle.prototype.setRadius.apply(this,arguments),this.recreate()}}),jQuery(function($){WPGMZA.OLGeocoder=function(){},WPGMZA.OLGeocoder.prototype=Object.create(WPGMZA.Geocoder.prototype),WPGMZA.OLGeocoder.prototype.constructor=WPGMZA.OLGeocoder,WPGMZA.OLGeocoder.prototype.getResponseFromCache=function(query,callback){WPGMZA.restAPI.call("/geocode-cache",{data:{query:JSON.stringify(query)},success:function(response,xhr,status){response.lng=response.lon,callback(response)},useCompressedPathVariable:!0})},WPGMZA.OLGeocoder.prototype.getResponseFromNominatim=function(options,callback){var data={q:options.address,format:"json"};options.componentRestrictions&&options.componentRestrictions.country&&(data.countrycodes=options.componentRestrictions.country),$.ajax("https://nominatim.openstreetmap.org/search/",{data:data,success:function(response,xhr,status){callback(response)},error:function(response,xhr,status){callback(null,WPGMZA.Geocoder.FAIL)}})},WPGMZA.OLGeocoder.prototype.cacheResponse=function(query,response){$.ajax(WPGMZA.ajaxurl,{data:{action:"wpgmza_store_nominatim_cache",query:JSON.stringify(query),response:JSON.stringify(response)},method:"POST"})},WPGMZA.OLGeocoder.prototype.clearCache=function(callback){$.ajax(WPGMZA.ajaxurl,{data:{action:"wpgmza_clear_nominatim_cache"},method:"POST",success:function(response){callback(response)}})},WPGMZA.OLGeocoder.prototype.getLatLngFromAddress=function(options,callback){return WPGMZA.OLGeocoder.prototype.geocode(options,callback)},WPGMZA.OLGeocoder.prototype.getAddressFromLatLng=function(options,callback){return WPGMZA.OLGeocoder.prototype.geocode(options,callback)},WPGMZA.OLGeocoder.prototype.geocode=function(options,callback){var self=this;if(!options)throw new Error("Invalid options");if(WPGMZA.LatLng.REGEXP.test(options.address)){var latLng=WPGMZA.LatLng.fromString(options.address);callback([{geometry:{location:latLng},latLng:latLng,lat:latLng.lat,lng:latLng.lng}],WPGMZA.Geocoder.SUCCESS)}else{var finish,location;if(options.location&&(options.latLng=new WPGMZA.LatLng(options.location)),options.address)location=options.address,finish=function(response,status){for(var i=0;i<response.length;i++)response[i].geometry={location:new WPGMZA.LatLng({lat:parseFloat(response[i].lat),lng:parseFloat(response[i].lon)})},response[i].latLng={lat:parseFloat(response[i].lat),lng:parseFloat(response[i].lon)},response[i].bounds=new WPGMZA.LatLngBounds(new WPGMZA.LatLng({lat:response[i].boundingbox[1],lng:response[i].boundingbox[2]}),new WPGMZA.LatLng({lat:response[i].boundingbox[0],lng:response[i].boundingbox[3]})),response[i].lng=response[i].lon;callback(response,status)};else{if(!options.latLng)throw new Error("You must supply either a latLng or address");location=options.latLng.toString(),finish=function(response,status){var address=response[0].display_name;callback([address],status)}}var query={location:location,options:options};this.getResponseFromCache(query,function(response){response.length?finish(response,WPGMZA.Geocoder.SUCCESS):self.getResponseFromNominatim($.extend(options,{address:location}),function(response,status){status!=WPGMZA.Geocoder.FAIL?0!=response.length?(finish(response,WPGMZA.Geocoder.SUCCESS),self.cacheResponse(query,response)):callback([],WPGMZA.Geocoder.ZERO_RESULTS):callback(null,WPGMZA.Geocoder.FAIL)})})}}}),jQuery(function($){var Parent;WPGMZA.OLInfoWindow=function(mapObject){var self=this;Parent.call(this,mapObject),this.element=$("<div class='wpgmza-infowindow ol-info-window-container ol-info-window-plain'></div>")[0],$(this.element).on("click",".ol-info-window-close",function(event){self.close()})},Parent=WPGMZA.isProVersion()?WPGMZA.ProInfoWindow:WPGMZA.InfoWindow,WPGMZA.OLInfoWindow.prototype=Object.create(Parent.prototype),WPGMZA.OLInfoWindow.prototype.constructor=WPGMZA.OLInfoWindow,Object.defineProperty(WPGMZA.OLInfoWindow.prototype,"isPanIntoViewAllowed",{get:function(){return!0}}),WPGMZA.OLInfoWindow.prototype.open=function(map,mapObject){var self=this,latLng=mapObject.getPosition();if(!Parent.prototype.open.call(this,map,mapObject))return!1;this.parent=map,this.overlay&&this.mapObject.map.olMap.removeOverlay(this.overlay),this.overlay=new ol.Overlay({element:this.element,stopEvent:!1}),this.overlay.setPosition(ol.proj.fromLonLat([latLng.lng,latLng.lat])),self.mapObject.map.olMap.addOverlay(this.overlay),$(this.element).show(),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&WPGMZA.getImageDimensions(mapObject.getIcon(),function(size){$(self.element).css({left:Math.round(size.width/2)+"px"})}),this.trigger("infowindowopen"),this.trigger("domready")},WPGMZA.OLInfoWindow.prototype.close=function(event){$(this.element).hide(),this.overlay&&(WPGMZA.InfoWindow.prototype.close.call(this),this.trigger("infowindowclose"),this.mapObject.map.olMap.removeOverlay(this.overlay),this.overlay=null)},WPGMZA.OLInfoWindow.prototype.setContent=function(html){$(this.element).html("<i class='fa fa-times ol-info-window-close' aria-hidden='true'></i>"+html)},WPGMZA.OLInfoWindow.prototype.setOptions=function(options){options.maxWidth&&$(this.element).css({"max-width":options.maxWidth+"px"})},WPGMZA.OLInfoWindow.prototype.onOpen=function(){var self=this,imgs=$(this.element).find("img"),numImages=imgs.length,numImagesLoaded=0;if(WPGMZA.InfoWindow.prototype.onOpen.apply(this,arguments),this.isPanIntoViewAllowed){function inside(el,viewport){var a=$(el)[0].getBoundingClientRect(),b=$(viewport)[0].getBoundingClientRect();return a.left>=b.left&&a.left<=b.right&&a.right<=b.right&&a.right>=b.left&&a.top>=b.top&&a.top<=b.bottom&&a.bottom<=b.bottom&&a.bottom>=b.top}function panIntoView(){var offset=.45*-$(self.element).height();self.mapObject.map.animateNudge(0,offset,self.mapObject.getPosition())}imgs.each(function(index,el){el.onload=function(){++numImagesLoaded!=numImages||inside(self.element,self.mapObject.map.element)||panIntoView()}}),0!=numImages||inside(self.element,self.mapObject.map.element)||panIntoView()}}}),jQuery(function($){var Parent;WPGMZA.OLMap=function(element,options){var self=this;Parent.call(this,element),this.setOptions(options);var marker,viewOptions=this.settings.toOLViewOptions();$(this.element).html(""),this.olMap=new ol.Map({target:$(element)[0],layers:[this.getTileLayer()],view:new ol.View(viewOptions)}),this.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan?interaction.setActive("yes"!=self.settings.wpgmza_settings_map_draggable):interaction instanceof ol.interaction.DoubleClickZoom?interaction.setActive(!self.settings.wpgmza_settings_map_clickzoom):interaction instanceof ol.interaction.MouseWheelZoom&&interaction.setActive("yes"!=self.settings.wpgmza_settings_map_scroll)},this),"greedy"!=this.settings.wpgmza_force_greedy_gestures&&"yes"!=this.settings.wpgmza_force_greedy_gestures&&(this.gestureOverlay=$("<div class='wpgmza-gesture-overlay'></div>"),this.gestureOverlayTimeoutID=null,WPGMZA.isTouchDevice()||(this.olMap.on("wheel",function(event){if(!ol.events.condition.platformModifierKeyOnly(event))return self.showGestureOverlay(),event.originalEvent.preventDefault(),!1}),this.gestureOverlay.text(WPGMZA.localized_strings.use_ctrl_scroll_to_zoom))),this.olMap.getControls().forEach(function(control){control instanceof ol.control.Zoom&&"yes"==WPGMZA.settings.wpgmza_settings_map_zoom&&self.olMap.removeControl(control)},this),"yes"!=WPGMZA.settings.wpgmza_settings_map_full_screen_control&&this.olMap.addControl(new ol.control.FullScreen),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&(this.markerLayer=new ol.layer.Vector({source:new ol.source.Vector({features:[]})}),this.olMap.addLayer(this.markerLayer),this.olMap.on("click",function(event){var features=self.olMap.getFeaturesAtPixel(event.pixel);if(features&&features.length){var marker=features[0].wpgmzaMarker;marker&&(marker.trigger("click"),marker.trigger("select"))}})),this.olMap.on("movestart",function(event){self.isBeingDragged=!0}),this.olMap.on("moveend",function(event){self.wrapLongitude(),self.isBeingDragged=!1,self.dispatchEvent("dragend"),self.onIdle()}),this.olMap.getView().on("change:resolution",function(event){self.dispatchEvent("zoom_changed"),self.dispatchEvent("zoomchanged"),setTimeout(function(){self.onIdle()},10)}),this.olMap.getView().on("change",function(){self.onBoundsChanged()}),self.onBoundsChanged(),this.storeLocator&&(marker=this.storeLocator.centerPointMarker)&&(this.olMap.addOverlay(marker.overlay),marker.setVisible(!1)),$(this.element).on("click contextmenu",function(event){var isRight;event=event||window.event;var latLng=self.pixelsToLatLng(event.offsetX,event.offsetY);if("which"in event?isRight=3==event.which:"button"in event&&(isRight=2==event.button),1!=event.which&&1!=event.button){if(isRight)return self.onRightClick(event)}else{if(self.isBeingDragged)return;if($(event.target).closest(".ol-marker").length)return;self.trigger({type:"click",latLng:latLng})}}),WPGMZA.isProVersion()||(this.trigger("init"),this.dispatchEvent("created"),WPGMZA.events.dispatchEvent({type:"mapcreated",map:this}),$(this.element).trigger("wpgooglemaps_loaded"))},Parent=WPGMZA.isProVersion()?WPGMZA.ProMap:WPGMZA.Map,WPGMZA.OLMap.prototype=Object.create(Parent.prototype),WPGMZA.OLMap.prototype.constructor=WPGMZA.OLMap,WPGMZA.OLMap.prototype.getTileLayer=function(){var options={};return WPGMZA.settings.tile_server_url&&(options.url=WPGMZA.settings.tile_server_url),new ol.layer.Tile({source:new ol.source.OSM(options)})},WPGMZA.OLMap.prototype.wrapLongitude=function(){var transformed=ol.proj.transform(this.olMap.getView().getCenter(),"EPSG:3857","EPSG:4326"),center={lat:transformed[1],lng:transformed[0]};-180<=center.lng&¢er.lng<=180||(center.lng=center.lng-360*Math.floor(center.lng/360),180<center.lng&&(center.lng-=360),this.setCenter(center))},WPGMZA.OLMap.prototype.getCenter=function(){var lonLat=ol.proj.toLonLat(this.olMap.getView().getCenter());return{lat:lonLat[1],lng:lonLat[0]}},WPGMZA.OLMap.prototype.setCenter=function(latLng){var view=this.olMap.getView();WPGMZA.Map.prototype.setCenter.call(this,latLng),view.setCenter(ol.proj.fromLonLat([latLng.lng,latLng.lat])),this.wrapLongitude(),this.onBoundsChanged()},WPGMZA.OLMap.prototype.getBounds=function(){var bounds=this.olMap.getView().calculateExtent(this.olMap.getSize()),nativeBounds=new WPGMZA.LatLngBounds,topLeft=ol.proj.toLonLat([bounds[0],bounds[1]]),bottomRight=ol.proj.toLonLat([bounds[2],bounds[3]]);return nativeBounds.north=topLeft[1],nativeBounds.south=bottomRight[1],nativeBounds.west=topLeft[0],nativeBounds.east=bottomRight[0],nativeBounds},WPGMZA.OLMap.prototype.fitBounds=function(southWest,northEast){if(southWest instanceof WPGMZA.LatLng&&(southWest={lat:southWest.lat,lng:southWest.lng}),northEast instanceof WPGMZA.LatLng)northEast={lat:northEast.lat,lng:northEast.lng};else if(southWest instanceof WPGMZA.LatLngBounds){var bounds=southWest;southWest={lat:bounds.south,lng:bounds.west},northEast={lat:bounds.north,lng:bounds.east}}var view=this.olMap.getView(),extent=ol.extent.boundingExtent([ol.proj.fromLonLat([parseFloat(southWest.lng),parseFloat(southWest.lat)]),ol.proj.fromLonLat([parseFloat(northEast.lng),parseFloat(northEast.lat)])]);view.fit(extent,this.olMap.getSize())},WPGMZA.OLMap.prototype.panTo=function(latLng,zoom){var view=this.olMap.getView(),options={center:ol.proj.fromLonLat([parseFloat(latLng.lng),parseFloat(latLng.lat)]),duration:500};1<arguments.length&&(options.zoom=parseInt(zoom)),view.animate(options)},WPGMZA.OLMap.prototype.getZoom=function(){return Math.round(this.olMap.getView().getZoom())},WPGMZA.OLMap.prototype.setZoom=function(value){this.olMap.getView().setZoom(value)},WPGMZA.OLMap.prototype.getMinZoom=function(){return this.olMap.getView().getMinZoom()},WPGMZA.OLMap.prototype.setMinZoom=function(value){this.olMap.getView().setMinZoom(value)},WPGMZA.OLMap.prototype.getMaxZoom=function(){return this.olMap.getView().getMaxZoom()},WPGMZA.OLMap.prototype.setMaxZoom=function(value){this.olMap.getView().setMaxZoom(value)},WPGMZA.OLMap.prototype.setOptions=function(options){Parent.prototype.setOptions.call(this,options),this.olMap&&this.olMap.getView().setProperties(this.settings.toOLViewOptions())},WPGMZA.OLMap.prototype.addMarker=function(marker){WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT?this.olMap.addOverlay(marker.overlay):(this.markerLayer.getSource().addFeature(marker.feature),marker.featureInSource=!0),Parent.prototype.addMarker.call(this,marker)},WPGMZA.OLMap.prototype.removeMarker=function(marker){WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT?this.olMap.removeOverlay(marker.overlay):(this.markerLayer.getSource().removeFeature(marker.feature),marker.featureInSource=!1),Parent.prototype.removeMarker.call(this,marker)},WPGMZA.OLMap.prototype.addPolygon=function(polygon){this.olMap.addLayer(polygon.layer),Parent.prototype.addPolygon.call(this,polygon)},WPGMZA.OLMap.prototype.removePolygon=function(polygon){this.olMap.removeLayer(polygon.layer),Parent.prototype.removePolygon.call(this,polygon)},WPGMZA.OLMap.prototype.addPolyline=function(polyline){this.olMap.addLayer(polyline.layer),Parent.prototype.addPolyline.call(this,polyline)},WPGMZA.OLMap.prototype.removePolyline=function(polyline){this.olMap.removeLayer(polyline.layer),Parent.prototype.removePolyline.call(this,polyline)},WPGMZA.OLMap.prototype.addCircle=function(circle){this.olMap.addLayer(circle.layer),Parent.prototype.addCircle.call(this,circle)},WPGMZA.OLMap.prototype.removeCircle=function(circle){this.olMap.removeLayer(circle.layer),Parent.prototype.removeCircle.call(this,circle)},WPGMZA.OLMap.prototype.addRectangle=function(rectangle){this.olMap.addLayer(rectangle.layer),Parent.prototype.addRectangle.call(this,rectangle)},WPGMZA.OLMap.prototype.removeRectangle=function(rectangle){this.olMap.removeLayer(rectangle.layer),Parent.prototype.removeRectangle.call(this,rectangle)},WPGMZA.OLMap.prototype.pixelsToLatLng=function(x,y){null==y&&("x"in x&&"y"in x?(y=x.y,x=x.x):console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)"));var coord=this.olMap.getCoordinateFromPixel([x,y]);if(!coord)return{x:null,y:null};var lonLat=ol.proj.toLonLat(coord);return{lat:lonLat[1],lng:lonLat[0]}},WPGMZA.OLMap.prototype.latLngToPixels=function(latLng){var coord=ol.proj.fromLonLat([latLng.lng,latLng.lat]),pixel=this.olMap.getPixelFromCoordinate(coord);return pixel?{x:pixel[0],y:pixel[1]}:{x:null,y:null}},WPGMZA.OLMap.prototype.enableBicycleLayer=function(value){if(value)this.bicycleLayer||(this.bicycleLayer=new ol.layer.Tile({source:new ol.source.OSM({url:"http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png"})})),this.olMap.addLayer(this.bicycleLayer);else{if(!this.bicycleLayer)return;this.olMap.removeLayer(this.bicycleLayer)}},WPGMZA.OLMap.prototype.showGestureOverlay=function(){var self=this;clearTimeout(this.gestureOverlayTimeoutID),$(this.gestureOverlay).stop().animate({opacity:"100"}),$(this.element).append(this.gestureOverlay),$(this.gestureOverlay).css({"line-height":$(this.element).height()+"px",opacity:"1.0"}),$(this.gestureOverlay).show(),this.gestureOverlayTimeoutID=setTimeout(function(){self.gestureOverlay.fadeOut(2e3)},2e3)},WPGMZA.OLMap.prototype.onElementResized=function(event){this.olMap.updateSize()},WPGMZA.OLMap.prototype.onRightClick=function(event){if($(event.target).closest(".ol-marker, .wpgmza_modern_infowindow, .wpgmza-modern-store-locator").length)return!0;var parentOffset=$(this.element).offset(),relX=event.pageX-parentOffset.left,relY=event.pageY-parentOffset.top,latLng=this.pixelsToLatLng(relX,relY);return this.trigger({type:"rightclick",latLng:latLng}),$(this.element).trigger({type:"rightclick",latLng:latLng}),event.preventDefault(),!1},WPGMZA.OLMap.prototype.enableAllInteractions=function(){this.olMap.getInteractions().forEach(function(interaction){(interaction instanceof ol.interaction.DragPan||interaction instanceof ol.interaction.DoubleClickZoom||interaction instanceof ol.interaction.MouseWheelZoom)&&interaction.setActive(!0)},this)}}),jQuery(function($){var Parent;WPGMZA.OLMarker=function(row){var self=this;Parent.call(this,row);var origin=ol.proj.fromLonLat([parseFloat(this.lng),parseFloat(this.lat)]);if(WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT){var img=$("<img alt=''/>")[0];img.onload=function(event){self.updateElementHeight(),self.map&&self.map.olMap.updateSize()},img.src=WPGMZA.defaultMarkerIcon,this.element=$("<div class='ol-marker'></div>")[0],$(this.element).attr("title",this.title),this.element.appendChild(img),this.element.wpgmzaMarker=this,$(this.element).on("mouseover",function(event){self.dispatchEvent("mouseover")}),this.overlay=new ol.Overlay({element:this.element,position:origin,positioning:"bottom-center",stopEvent:!1}),this.overlay.setPosition(origin),this.animation&&this.setAnimation(this.animation),this.setLabel(this.settings.label),row&&row.draggable&&this.setDraggable(!0),this.rebindClickListener()}else{if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)throw new Error("Invalid marker render mode");this.feature=new ol.Feature({geometry:new ol.geom.Point(origin)}),this.feature.setStyle(this.getVectorLayerStyle()),this.feature.wpgmzaMarker=this}this.trigger("init")},Parent=WPGMZA.isProVersion()?WPGMZA.ProMarker:WPGMZA.Marker,WPGMZA.OLMarker.prototype=Object.create(Parent.prototype),WPGMZA.OLMarker.prototype.constructor=WPGMZA.OLMarker,WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT="element",WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER="vector",WPGMZA.OLMarker.renderMode=WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT,"open-layers"==WPGMZA.settings.engine&&WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&(WPGMZA.OLMarker.defaultVectorLayerStyle=new ol.style.Style({image:new ol.style.Icon({anchor:[.5,1],src:WPGMZA.defaultMarkerIcon})}),WPGMZA.OLMarker.hiddenVectorLayerStyle=new ol.style.Style({})),WPGMZA.OLMarker.prototype.getVectorLayerStyle=function(){return this.vectorLayerStyle?this.vectorLayerStyle:WPGMZA.OLMarker.defaultVectorLayerStyle},WPGMZA.OLMarker.prototype.updateElementHeight=function(height,calledOnFocus){var self=this;0!=(height=height||$(this.element).find("img").height())||calledOnFocus||$(window).one("focus",function(event){self.updateElementHeight(!1,!0)}),$(this.element).css({height:height+"px"})},WPGMZA.OLMarker.prototype.addLabel=function(){this.setLabel(this.getLabelText())},WPGMZA.OLMarker.prototype.setLabel=function(label){WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?label?(this.label||(this.label=$("<div class='ol-marker-label'/>"),$(this.element).append(this.label)),this.label.html(label)):this.label&&$(this.element).find(".ol-marker-label").remove():console.warn("Marker labels are not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.getVisible=function(visible){if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)return"none"!=this.overlay.getElement().style.display},WPGMZA.OLMarker.prototype.setVisible=function(visible){if(Parent.prototype.setVisible.call(this,visible),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)if(visible){var style=this.getVectorLayerStyle();this.feature.setStyle(style)}else this.feature.setStyle(null);else this.overlay.getElement().style.display=visible?"block":"none"},WPGMZA.OLMarker.prototype.setPosition=function(latLng){Parent.prototype.setPosition.call(this,latLng);var origin=ol.proj.fromLonLat([parseFloat(this.lng),parseFloat(this.lat)]);WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?this.feature.setGeometry(new ol.geom.Point(origin)):this.overlay.setPosition(origin)},WPGMZA.OLMarker.prototype.updateOffset=function(x,y){if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER){x=this._offset.x,y=this._offset.y;this.element.style.position="relative",this.element.style.left=x+"px",this.element.style.top=y+"px"}else console.warn("Marker offset is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setAnimation=function(anim){if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)switch(Parent.prototype.setAnimation.call(this,anim),anim){case WPGMZA.Marker.ANIMATION_NONE:$(this.element).removeAttr("data-anim");break;case WPGMZA.Marker.ANIMATION_BOUNCE:$(this.element).attr("data-anim","bounce");break;case WPGMZA.Marker.ANIMATION_DROP:$(this.element).attr("data-anim","drop")}else console.warn("Marker animation is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setDraggable=function(draggable){var self=this;if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)if(draggable){var options={disabled:!1};this.jQueryDraggableInitialized||(options.start=function(event){self.onDragStart(event)},options.stop=function(event){self.onDragEnd(event)}),$(this.element).draggable(options),this.jQueryDraggableInitialized=!0,this.rebindClickListener()}else $(this.element).draggable({disabled:!0});else console.warn("Marker dragging is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setOpacity=function(opacity){WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?$(this.element).css({opacity:opacity}):console.warn("Marker opacity is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.onDragStart=function(event){this.isBeingDragged=!0,this.map.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan&&interaction.setActive(!1)})},WPGMZA.OLMarker.prototype.onDragEnd=function(event){var offset_top=parseFloat($(this.element).css("top").match(/-?\d+/)[0]),offset_left=parseFloat($(this.element).css("left").match(/-?\d+/)[0]);$(this.element).css({top:"0px",left:"0px"});var currentLatLng=this.getPosition(),pixelsBeforeDrag=this.map.latLngToPixels(currentLatLng),pixelsAfterDrag={x:pixelsBeforeDrag.x+offset_left,y:pixelsBeforeDrag.y+offset_top},latLngAfterDrag=this.map.pixelsToLatLng(pixelsAfterDrag);this.setPosition(latLngAfterDrag),this.isBeingDragged=!1,this.trigger({type:"dragend",latLng:latLngAfterDrag}),"yes"!=this.map.settings.wpgmza_settings_map_draggable&&this.map.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan&&interaction.setActive(!0)})},WPGMZA.OLMarker.prototype.onElementClick=function(event){var self=event.currentTarget.wpgmzaMarker;self.isBeingDragged||(self.dispatchEvent("click"),self.dispatchEvent("select"))},WPGMZA.OLMarker.prototype.rebindClickListener=function(){$(this.element).off("click",this.onElementClick),$(this.element).on("click",this.onElementClick)}}),jQuery(function($){WPGMZA.OLModernStoreLocatorCircle=function(map,settings){WPGMZA.ModernStoreLocatorCircle.call(this,map,settings)},WPGMZA.OLModernStoreLocatorCircle.prototype=Object.create(WPGMZA.ModernStoreLocatorCircle.prototype),WPGMZA.OLModernStoreLocatorCircle.prototype.constructor=WPGMZA.OLModernStoreLocatorCircle,WPGMZA.OLModernStoreLocatorCircle.prototype.initCanvasLayer=function(){var self=this,mapElement=$(this.map.element),olViewportElement=mapElement.children(".ol-viewport");this.canvas=document.createElement("canvas"),this.canvas.className="wpgmza-ol-canvas-overlay",mapElement.append(this.canvas),this.renderFunction=function(event){self.canvas.width==olViewportElement.width()&&self.canvas.height==olViewportElement.height()||(self.canvas.width=olViewportElement.width(),self.canvas.height=olViewportElement.height(),$(this.canvas).css({width:olViewportElement.width()+"px",height:olViewportElement.height()+"px"})),self.draw()},this.map.olMap.on("postrender",this.renderFunction)},WPGMZA.OLModernStoreLocatorCircle.prototype.getContext=function(type){return this.canvas.getContext(type)},WPGMZA.OLModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){return{width:this.canvas.width,height:this.canvas.height}},WPGMZA.OLModernStoreLocatorCircle.prototype.getCenterPixels=function(){return this.map.latLngToPixels(this.settings.center)},WPGMZA.OLModernStoreLocatorCircle.prototype.getWorldOriginOffset=function(){return{x:0,y:0}},WPGMZA.OLModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){var center=new WPGMZA.LatLng(this.settings.center),outer=new WPGMZA.LatLng(center);outer.moveByDistance(km,90);var centerPixels=this.map.latLngToPixels(center),outerPixels=this.map.latLngToPixels(outer);return Math.abs(outerPixels.x-centerPixels.x)},WPGMZA.OLModernStoreLocatorCircle.prototype.getScale=function(){return 1},WPGMZA.OLModernStoreLocatorCircle.prototype.destroy=function(){$(this.canvas).remove(),this.map.olMap.un("postrender",this.renderFunction),this.map=null,this.canvas=null}}),jQuery(function($){WPGMZA.OLModernStoreLocator=function(map_id){WPGMZA.ModernStoreLocator.call(this,map_id),(WPGMZA.isProVersion()?$(".wpgmza_map[data-map-id='"+map_id+"']"):$("#wpgmza_map")).append(this.element)},WPGMZA.OLModernStoreLocator.prototype=Object.create(WPGMZA.ModernStoreLocator),WPGMZA.OLModernStoreLocator.prototype.constructor=WPGMZA.OLModernStoreLocator}),jQuery(function($){var Parent;WPGMZA.OLPolygon=function(options,olFeature){if(Parent.call(this,options,olFeature),this.olStyle=new ol.style.Style,olFeature)this.olFeature=olFeature;else{var coordinates=[[]];if(options&&options.polydata){for(var paths=this.parseGeometry(options.polydata),i=0;i<paths.length;i++)coordinates[0].push(ol.proj.fromLonLat([parseFloat(paths[i].lng),parseFloat(paths[i].lat)]));this.olStyle=new ol.style.Style(this.getStyleFromSettings())}this.olFeature=new ol.Feature({geometry:new ol.geom.Polygon(coordinates)})}this.layer=new ol.layer.Vector({source:new ol.source.Vector({features:[this.olFeature]}),style:this.olStyle}),this.layer.getSource().getFeatures()[0].setProperties({wpgmzaPolygon:this})},Parent=WPGMZA.isProVersion()?WPGMZA.ProPolygon:WPGMZA.Polygon,WPGMZA.OLPolygon.prototype=Object.create(Parent.prototype),WPGMZA.OLPolygon.prototype.constructor=WPGMZA.OLPolygon,WPGMZA.OLPolygon.prototype.getStyleFromSettings=function(){var params={};return this.linecolor&&this.lineopacity&&(params.stroke=new ol.style.Stroke({color:WPGMZA.hexOpacityToRGBA("#"+this.linecolor,this.lineopacity)})),this.opacity&&(params.fill=new ol.style.Fill({color:WPGMZA.hexOpacityToRGBA(this.fillcolor,this.opacity)})),params},WPGMZA.OLPolygon.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLPolygon.prototype.setEditable=function(editable){},WPGMZA.OLPolygon.prototype.toJSON=function(){var result=Parent.prototype.toJSON.call(this),coordinates=this.olFeature.getGeometry().getCoordinates()[0];result.points=[];for(var i=0;i<coordinates.length;i++){var lonLat=ol.proj.toLonLat(coordinates[i]),latLng={lat:lonLat[1],lng:lonLat[0]};result.points.push(latLng)}return result}}),jQuery(function($){var Parent;WPGMZA.OLPolyline=function(options,olFeature){if(WPGMZA.Polyline.call(this,options),this.olStyle=new ol.style.Style,olFeature)this.olFeature=olFeature;else{var coordinates=[];if(options&&(options.polydata||options.points)){var path;path=options.polydata?this.parseGeometry(options.polydata):options.points;for(var i=0;i<path.length;i++){if(!$.isNumeric(path[i].lat))throw new Error("Invalid latitude");if(!$.isNumeric(path[i].lng))throw new Error("Invalid longitude");coordinates.push(ol.proj.fromLonLat([parseFloat(path[i].lng),parseFloat(path[i].lat)]))}}var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.olFeature=new ol.Feature({geometry:new ol.geom.LineString(coordinates)})}this.layer=new ol.layer.Vector({source:new ol.source.Vector({features:[this.olFeature]}),style:this.olStyle}),this.layer.getSource().getFeatures()[0].setProperties({wpgmzaPolyline:this})},Parent=WPGMZA.Polyline,WPGMZA.OLPolyline.prototype=Object.create(Parent.prototype),WPGMZA.OLPolyline.prototype.constructor=WPGMZA.OLPolyline,WPGMZA.OLPolyline.prototype.getStyleFromSettings=function(){var params={};return this.settings.strokeOpacity&&(params.stroke=new ol.style.Stroke({color:WPGMZA.hexOpacityToRGBA(this.settings.strokeColor,this.settings.strokeOpacity),width:parseInt(this.settings.strokeWeight)})),params},WPGMZA.OLPolyline.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLPolyline.prototype.setEditable=function(editable){},WPGMZA.OLPolyline.prototype.setPoints=function(points){this.olFeature&&this.layer.getSource().removeFeature(this.olFeature);for(var coordinates=[],i=0;i<points.length;i++)coordinates.push(ol.proj.fromLonLat([parseFloat(points[i].lng),parseFloat(points[i].lat)]));this.olFeature=new ol.Feature({geometry:new ol.geom.LineString(coordinates)}),this.layer.getSource().addFeature(this.olFeature)},WPGMZA.OLPolyline.prototype.toJSON=function(){var result=Parent.prototype.toJSON.call(this),coordinates=this.olFeature.getGeometry().getCoordinates();result.points=[];for(var i=0;i<coordinates.length;i++){var lonLat=ol.proj.toLonLat(coordinates[i]),latLng={lat:lonLat[1],lng:lonLat[0]};result.points.push(latLng)}return result}}),jQuery(function($){WPGMZA.OLText=function(){}}),jQuery(function($){WPGMZA.GoogleCircle=function(options,googleCircle){var self=this;WPGMZA.Circle.call(this,options,googleCircle),googleCircle?this.googleCircle=googleCircle:(this.googleCircle=new google.maps.Circle,this.googleCircle.wpgmzaCircle=this),google.maps.event.addListener(this.googleCircle,"click",function(){self.dispatchEvent({type:"click"})}),options&&this.setOptions(options)},WPGMZA.GoogleCircle.prototype=Object.create(WPGMZA.Circle.prototype),WPGMZA.GoogleCircle.prototype.constructor=WPGMZA.GoogleCircle,WPGMZA.GoogleCircle.prototype.setCenter=function(center){WPGMZA.Circle.prototype.setCenter.apply(this,arguments),this.googleCircle.setCenter(center)},WPGMZA.GoogleCircle.prototype.setRadius=function(radius){WPGMZA.Circle.prototype.setRadius.apply(this,arguments),this.googleCircle.setRadius(1e3*parseFloat(radius))},WPGMZA.GoogleCircle.prototype.setVisible=function(visible){this.googleCircle.setVisible(!!visible)},WPGMZA.GoogleCircle.prototype.setOptions=function(options){var googleOptions={};delete(googleOptions=$.extend({},options)).map,delete googleOptions.center,options.center&&(googleOptions.center=new google.maps.LatLng({lat:parseFloat(options.center.lat),lng:parseFloat(options.center.lng)})),options.radius&&(googleOptions.radius=parseFloat(options.radius)),options.color&&(googleOptions.fillColor=options.color),options.opacity&&(googleOptions.fillOpacity=parseFloat(options.opacity),googleOptions.strokeOpacity=parseFloat(options.opacity)),this.googleCircle.setOptions(googleOptions),options.map&&options.map.addCircle(this)}}),jQuery(function($){WPGMZA.GoogleGeocoder=function(){WPGMZA.Geocoder.call(this)},WPGMZA.GoogleGeocoder.prototype=Object.create(WPGMZA.Geocoder.prototype),WPGMZA.GoogleGeocoder.prototype.constructor=WPGMZA.GoogleGeocoder,WPGMZA.GoogleGeocoder.prototype.getGoogleGeocoder=function(){return WPGMZA.CloudAPI&&WPGMZA.CloudAPI.isBeingUsed?new WPGMZA.CloudGeocoder:new google.maps.Geocoder},WPGMZA.GoogleGeocoder.prototype.getLatLngFromAddress=function(options,callback){if(!options||!options.address)throw new Error("No address specified");if(WPGMZA.isLatLngString(options.address))return WPGMZA.Geocoder.prototype.getLatLngFromAddress.call(this,options,callback);options.country&&(options.componentRestrictions={country:options.country}),this.getGoogleGeocoder().geocode(options,function(results,status){if(status==google.maps.GeocoderStatus.OK||status==WPGMZA.CloudGeocoder.SUCCESS){var latLng,location=results[0].geometry.location,bounds=null;latLng={lat:location.lat(),lng:location.lng()},(bounds=results[0].geometry.bounds)&&(bounds=bounds instanceof google.maps.LatLngBounds?WPGMZA.LatLngBounds.fromGoogleLatLngBounds(results[0].geometry.bounds):WPGMZA.LatLngBounds.fromGoogleLatLngBoundsLiteral(results[0].geometry.bounds)),callback(results=[{geometry:{location:latLng},latLng:latLng,lat:latLng.lat,lng:latLng.lng,bounds:bounds}],WPGMZA.Geocoder.SUCCESS)}else{var nativeStatus=WPGMZA.Geocoder.FAIL;status==google.maps.GeocoderStatus.ZERO_RESULTS&&(nativeStatus=WPGMZA.Geocoder.ZERO_RESULTS),callback(null,nativeStatus)}})},WPGMZA.GoogleGeocoder.prototype.getAddressFromLatLng=function(options,callback){if(!options||!options.latLng)throw new Error("No latLng specified");var latLng=new WPGMZA.LatLng(options.latLng),geocoder=this.getGoogleGeocoder();delete(options=$.extend(options,{location:{lat:latLng.lat,lng:latLng.lng}})).latLng,geocoder.geocode(options,function(results,status){"OK"!==status&&callback(null,WPGMZA.Geocoder.FAIL),results&&results.length||callback([],WPGMZA.Geocoder.NO_RESULTS),callback([results[0].formatted_address],WPGMZA.Geocoder.SUCCESS)})}}),jQuery(function($){WPGMZA.settings.engine&&"google-maps"!=WPGMZA.settings.engine||window.google&&window.google.maps&&(WPGMZA.GoogleHTMLOverlay=function(map){this.element=$("<div class='wpgmza-google-html-overlay'></div>"),this.visible=!0,this.position=new WPGMZA.LatLng,this.setMap(map.googleMap),this.wpgmzaMap=map},WPGMZA.GoogleHTMLOverlay.prototype=new google.maps.OverlayView,WPGMZA.GoogleHTMLOverlay.prototype.onAdd=function(){this.getPanes().overlayMouseTarget.appendChild(this.element[0])},WPGMZA.GoogleHTMLOverlay.prototype.onRemove=function(){this.element&&$(this.element).parent().length&&($(this.element).remove(),this.element=null)},WPGMZA.GoogleHTMLOverlay.prototype.draw=function(){this.updateElementPosition()},WPGMZA.GoogleHTMLOverlay.prototype.updateElementPosition=function(){var projection=this.getProjection();if(projection){var pixels=projection.fromLatLngToDivPixel(this.position.toGoogleLatLng());$(this.element).css({left:pixels.x,top:pixels.y})}})}),jQuery(function($){var Parent;WPGMZA.GoogleInfoWindow=function(mapObject){Parent.call(this,mapObject),this.setMapObject(mapObject)},WPGMZA.GoogleInfoWindow.Z_INDEX=99,Parent=WPGMZA.isProVersion()?WPGMZA.ProInfoWindow:WPGMZA.InfoWindow,WPGMZA.GoogleInfoWindow.prototype=Object.create(Parent.prototype),WPGMZA.GoogleInfoWindow.prototype.constructor=WPGMZA.GoogleInfoWindow,WPGMZA.GoogleInfoWindow.prototype.setMapObject=function(mapObject){mapObject instanceof WPGMZA.Marker?this.googleObject=mapObject.googleMarker:mapObject instanceof WPGMZA.Polygon?this.googleObject=mapObject.googlePolygon:mapObject instanceof WPGMZA.Polyline&&(this.googleObject=mapObject.googlePolyline)},WPGMZA.GoogleInfoWindow.prototype.createGoogleInfoWindow=function(){var self=this;this.googleInfoWindow||(this.googleInfoWindow=new google.maps.InfoWindow,this.googleInfoWindow.setZIndex(WPGMZA.GoogleInfoWindow.Z_INDEX),google.maps.event.addListener(this.googleInfoWindow,"domready",function(event){self.trigger("domready")}),google.maps.event.addListener(this.googleInfoWindow,"closeclick",function(event){self.state!=WPGMZA.InfoWindow.STATE_CLOSED&&(self.state=WPGMZA.InfoWindow.STATE_CLOSED,self.trigger("infowindowclose"))}))},WPGMZA.GoogleInfoWindow.prototype.open=function(map,mapObject){var self=this;if(!Parent.prototype.open.call(this,map,mapObject))return!1;this.parent=map,this.createGoogleInfoWindow(),this.setMapObject(mapObject),this.googleObject instanceof google.maps.Polygon||this.googleInfoWindow.open(this.mapObject.map.googleMap,this.googleObject);var intervalID,guid=WPGMZA.guid(),html="<div id='"+guid+"'>"+this.content+"</div>";return this.googleInfoWindow.setContent(html),intervalID=setInterval(function(event){div=$("#"+guid),div.length&&(clearInterval(intervalID),div[0].wpgmzaMapObject=self.mapObject,div.addClass("wpgmza-infowindow"),self.element=div[0],self.trigger("infowindowopen"))},50),!0},WPGMZA.GoogleInfoWindow.prototype.close=function(){this.googleInfoWindow&&(WPGMZA.InfoWindow.prototype.close.call(this),this.googleInfoWindow.close())},WPGMZA.GoogleInfoWindow.prototype.setContent=function(html){Parent.prototype.setContent.call(this,html),this.content=html,this.createGoogleInfoWindow(),this.googleInfoWindow.setContent(html)},WPGMZA.GoogleInfoWindow.prototype.setOptions=function(options){Parent.prototype.setOptions.call(this,options),this.createGoogleInfoWindow(),this.googleInfoWindow.setOptions(options)}}),jQuery(function($){var Parent;WPGMZA.GoogleMap=function(element,options){var self=this;if(Parent.call(this,element,options),!window.google){var status=WPGMZA.googleAPIStatus,message="Google API not loaded";if(status&&status.message&&(message+=" - "+status.message),"USER_CONSENT_NOT_GIVEN"==status.code)return;throw $(element).html("<div class='notice notice-error'><p>"+WPGMZA.localized_strings.google_api_not_loaded+"<pre>"+message+"</pre></p></div>"),new Error(message)}this.loadGoogleMap(),options&&this.setOptions(options,!0),google.maps.event.addListener(this.googleMap,"click",function(event){var wpgmzaEvent=new WPGMZA.Event("click");wpgmzaEvent.latLng={lat:event.latLng.lat(),lng:event.latLng.lng()},self.dispatchEvent(wpgmzaEvent)}),google.maps.event.addListener(this.googleMap,"rightclick",function(event){var wpgmzaEvent=new WPGMZA.Event("rightclick");wpgmzaEvent.latLng={lat:event.latLng.lat(),lng:event.latLng.lng()},self.dispatchEvent(wpgmzaEvent)}),google.maps.event.addListener(this.googleMap,"dragend",function(event){self.dispatchEvent("dragend")}),google.maps.event.addListener(this.googleMap,"zoom_changed",function(event){self.dispatchEvent("zoom_changed"),self.dispatchEvent("zoomchanged")}),google.maps.event.addListener(this.googleMap,"idle",function(event){self.onIdle(event)}),WPGMZA.isProVersion()||(this.trigger("init"),this.dispatchEvent("created"),WPGMZA.events.dispatchEvent({type:"mapcreated",map:this}),$(this.element).trigger("wpgooglemaps_loaded"))},WPGMZA.isProVersion()?(Parent=WPGMZA.ProMap,WPGMZA.GoogleMap.prototype=Object.create(WPGMZA.ProMap.prototype)):(Parent=WPGMZA.Map,WPGMZA.GoogleMap.prototype=Object.create(WPGMZA.Map.prototype)),WPGMZA.GoogleMap.prototype.constructor=WPGMZA.GoogleMap,WPGMZA.GoogleMap.parseThemeData=function(raw){var json;try{json=JSON.parse(raw)}catch(e){try{json=eval(raw)}catch(e){var str=raw;str=str.replace(/\\'/g,"'"),str=str.replace(/\\"/g,'"'),str=str.replace(/\\0/g,"\0"),str=str.replace(/\\\\/g,"\\");try{json=eval(str)}catch(e){return console.warn("Couldn't parse theme data"),[]}}}return json},WPGMZA.GoogleMap.prototype.loadGoogleMap=function(){var self=this,options=this.settings.toGoogleMapsOptions();this.googleMap=new google.maps.Map(this.engineElement,options),google.maps.event.addListener(this.googleMap,"bounds_changed",function(){self.onBoundsChanged()}),1==this.settings.bicycle&&this.enableBicycleLayer(!0),1==this.settings.traffic&&this.enableTrafficLayer(!0),1==this.settings.transport&&this.enablePublicTransportLayer(!0),this.showPointsOfInterest(this.settings.show_point_of_interest),$(this.engineElement).append($(this.element).find(".wpgmza-loader"))},WPGMZA.GoogleMap.prototype.setOptions=function(options,initializing){if(Parent.prototype.setOptions.call(this,options),options.scrollwheel&&delete options.scrollwheel,initializing){var converted=$.extend(options,this.settings.toGoogleMapsOptions()),clone=$.extend({},converted);if(!clone.center instanceof google.maps.LatLng&&(clone.center instanceof WPGMZA.LatLng||"object"==typeof clone.center)&&(clone.center={lat:parseFloat(clone.center.lat),lng:parseFloat(clone.center.lng)}),"1"==this.settings.hide_point_of_interest){clone.styles||(clone.styles=[]),clone.styles.push({featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]})}this.googleMap.setOptions(clone)}else this.googleMap.setOptions(options)},WPGMZA.GoogleMap.prototype.addMarker=function(marker){marker.googleMarker.setMap(this.googleMap),Parent.prototype.addMarker.call(this,marker)},WPGMZA.GoogleMap.prototype.removeMarker=function(marker){marker.googleMarker.setMap(null),Parent.prototype.removeMarker.call(this,marker)},WPGMZA.GoogleMap.prototype.addPolygon=function(polygon){polygon.googlePolygon.setMap(this.googleMap),Parent.prototype.addPolygon.call(this,polygon)},WPGMZA.GoogleMap.prototype.removePolygon=function(polygon){polygon.googlePolygon.setMap(null),Parent.prototype.removePolygon.call(this,polygon)},WPGMZA.GoogleMap.prototype.addPolyline=function(polyline){polyline.googlePolyline.setMap(this.googleMap),Parent.prototype.addPolyline.call(this,polyline)},WPGMZA.GoogleMap.prototype.removePolyline=function(polyline){polyline.googlePolyline.setMap(null),Parent.prototype.removePolyline.call(this,polyline)},WPGMZA.GoogleMap.prototype.addCircle=function(circle){circle.googleCircle.setMap(this.googleMap),Parent.prototype.addCircle.call(this,circle)},WPGMZA.GoogleMap.prototype.removeCircle=function(circle){circle.googleCircle.setMap(null),Parent.prototype.removeCircle.call(this,circle)},WPGMZA.GoogleMap.prototype.addRectangle=function(rectangle){rectangle.googleRectangle.setMap(this.googleMap),Parent.prototype.addRectangle.call(this,rectangle)},WPGMZA.GoogleMap.prototype.removeRectangle=function(rectangle){rectangle.googleRectangle.setMap(null),Parent.prototype.removeRectangle.call(this,rectangle)},WPGMZA.GoogleMap.prototype.getCenter=function(){var latLng=this.googleMap.getCenter();return{lat:latLng.lat(),lng:latLng.lng()}},WPGMZA.GoogleMap.prototype.setCenter=function(latLng){WPGMZA.Map.prototype.setCenter.call(this,latLng),latLng instanceof WPGMZA.LatLng?this.googleMap.setCenter({lat:latLng.lat,lng:latLng.lng}):this.googleMap.setCenter(latLng)},WPGMZA.GoogleMap.prototype.panTo=function(latLng){latLng instanceof WPGMZA.LatLng?this.googleMap.panTo({lat:latLng.lat,lng:latLng.lng}):this.googleMap.panTo(latLng)},WPGMZA.GoogleMap.prototype.getZoom=function(){return this.googleMap.getZoom()},WPGMZA.GoogleMap.prototype.setZoom=function(value){if(isNaN(value))throw new Error("Value must not be NaN");return this.googleMap.setZoom(parseInt(value))},WPGMZA.GoogleMap.prototype.getBounds=function(){var bounds=this.googleMap.getBounds(),northEast=bounds.getNorthEast(),southWest=bounds.getSouthWest(),nativeBounds=new WPGMZA.LatLngBounds({});return nativeBounds.north=northEast.lat(),nativeBounds.south=southWest.lat(),nativeBounds.west=southWest.lng(),nativeBounds.east=northEast.lng(),nativeBounds.topLeft={lat:northEast.lat(),lng:southWest.lng()},nativeBounds.bottomRight={lat:southWest.lat(),lng:northEast.lng()},nativeBounds},WPGMZA.GoogleMap.prototype.fitBounds=function(southWest,northEast){if(southWest instanceof WPGMZA.LatLng&&(southWest={lat:southWest.lat,lng:southWest.lng}),northEast instanceof WPGMZA.LatLng)northEast={lat:northEast.lat,lng:northEast.lng};else if(southWest instanceof WPGMZA.LatLngBounds){var bounds=southWest;southWest={lat:bounds.south,lng:bounds.west},northEast={lat:bounds.north,lng:bounds.east}}var nativeBounds=new google.maps.LatLngBounds(southWest,northEast);this.googleMap.fitBounds(nativeBounds)},WPGMZA.GoogleMap.prototype.fitBoundsToVisibleMarkers=function(){for(var bounds=new google.maps.LatLngBounds,i=0;i<this.markers.length;i++)markers[i].getVisible()&&bounds.extend(markers[i].getPosition());this.googleMap.fitBounds(bounds)},WPGMZA.GoogleMap.prototype.enableBicycleLayer=function(enable){this.bicycleLayer||(this.bicycleLayer=new google.maps.BicyclingLayer),this.bicycleLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.enableTrafficLayer=function(enable){this.trafficLayer||(this.trafficLayer=new google.maps.TrafficLayer),this.trafficLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.enablePublicTransportLayer=function(enable){this.publicTransportLayer||(this.publicTransportLayer=new google.maps.TransitLayer),this.publicTransportLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.showPointsOfInterest=function(show){var text=$("textarea[name='theme_data']").val();if(text){var styles=JSON.parse(text);styles.push({featureType:"poi",stylers:[{visibility:show?"on":"off"}]}),this.googleMap.setOptions({styles:styles})}},WPGMZA.GoogleMap.prototype.getMinZoom=function(){return parseInt(this.settings.min_zoom)},WPGMZA.GoogleMap.prototype.setMinZoom=function(value){this.googleMap.setOptions({minZoom:value,maxZoom:this.getMaxZoom()})},WPGMZA.GoogleMap.prototype.getMaxZoom=function(){return parseInt(this.settings.max_zoom)},WPGMZA.GoogleMap.prototype.setMaxZoom=function(value){this.googleMap.setOptions({minZoom:this.getMinZoom(),maxZoom:value})},WPGMZA.GoogleMap.prototype.latLngToPixels=function(latLng){var map=this.googleMap,nativeLatLng=new google.maps.LatLng({lat:parseFloat(latLng.lat),lng:parseFloat(latLng.lng)}),topRight=map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()),bottomLeft=map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()),scale=Math.pow(2,map.getZoom()),worldPoint=map.getProjection().fromLatLngToPoint(nativeLatLng);return{x:(worldPoint.x-bottomLeft.x)*scale,y:(worldPoint.y-topRight.y)*scale}},WPGMZA.GoogleMap.prototype.pixelsToLatLng=function(x,y){null==y&&("x"in x&&"y"in x?(y=x.y,x=x.x):console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)"));var map=this.googleMap,topRight=map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()),bottomLeft=map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()),scale=Math.pow(2,map.getZoom()),worldPoint=new google.maps.Point(x/scale+bottomLeft.x,y/scale+topRight.y),latLng=map.getProjection().fromPointToLatLng(worldPoint);return{lat:latLng.lat(),lng:latLng.lng()}},WPGMZA.GoogleMap.prototype.onElementResized=function(event){this.googleMap&&google.maps.event.trigger(this.googleMap,"resize")},WPGMZA.GoogleMap.prototype.enableAllInteractions=function(){var options={scrollwheel:!0,draggable:!0,disableDoubleClickZoom:!1};this.googleMap.setOptions(options)}}),jQuery(function($){var Parent;WPGMZA.GoogleMarker=function(row){var self=this;Parent.call(this,row),this._opacity=1;var settings={};if(row)for(var name in row)row[name]instanceof WPGMZA.LatLng?settings[name]=row[name].toGoogleLatLng():row[name]instanceof WPGMZA.Map||"icon"==name||(settings[name]=row[name]);this.googleMarker=new google.maps.Marker(settings),(this.googleMarker.wpgmzaMarker=this).googleMarker.setPosition(new google.maps.LatLng({lat:parseFloat(this.lat),lng:parseFloat(this.lng)})),this.anim&&this.googleMarker.setAnimation(this.anim),this.animation&&this.googleMarker.setAnimation(this.animation),google.maps.event.addListener(this.googleMarker,"click",function(){self.dispatchEvent("click"),self.dispatchEvent("select")}),google.maps.event.addListener(this.googleMarker,"mouseover",function(){self.dispatchEvent("mouseover")}),google.maps.event.addListener(this.googleMarker,"dragend",function(){var googleMarkerPosition=self.googleMarker.getPosition();self.setPosition({lat:googleMarkerPosition.lat(),lng:googleMarkerPosition.lng()}),self.dispatchEvent({type:"dragend",latLng:self.getPosition()})}),this.trigger("init")},Parent=WPGMZA.isProVersion()?WPGMZA.ProMarker:WPGMZA.Marker,WPGMZA.GoogleMarker.prototype=Object.create(Parent.prototype),WPGMZA.GoogleMarker.prototype.constructor=WPGMZA.GoogleMarker,Object.defineProperty(WPGMZA.GoogleMarker.prototype,"opacity",{get:function(){return this._opacity},set:function(value){this._opacity=value,this.googleMarker.setOpacity(value)}}),WPGMZA.GoogleMarker.prototype.setLabel=function(label){label?(this.googleMarker.setLabel({text:label}),this.googleMarker.getIcon()||this.googleMarker.setIcon(WPGMZA.settings.default_marker_icon)):this.googleMarker.setLabel(null)},WPGMZA.GoogleMarker.prototype.setPosition=function(latLng){Parent.prototype.setPosition.call(this,latLng),this.googleMarker.setPosition({lat:this.lat,lng:this.lng})},WPGMZA.GoogleMarker.prototype.updateOffset=function(){var params,self=this,icon=this.googleMarker.getIcon(),img=new Image,x=this._offset.x,y=this._offset.y;icon=icon||WPGMZA.settings.default_marker_icon,params="string"==typeof icon?{url:icon}:icon,img.onload=function(){var defaultAnchor_x=img.width/2,defaultAnchor_y=img.height;params.anchor=new google.maps.Point(defaultAnchor_x-x,defaultAnchor_y-y),self.googleMarker.setIcon(params)},img.src=params.url},WPGMZA.GoogleMarker.prototype.setOptions=function(options){this.googleMarker.setOptions(options)},WPGMZA.GoogleMarker.prototype.setAnimation=function(animation){Parent.prototype.setAnimation.call(this,animation),this.googleMarker.setAnimation(animation)},WPGMZA.GoogleMarker.prototype.setVisible=function(visible){Parent.prototype.setVisible.call(this,visible),this.googleMarker.setVisible(!!visible)},WPGMZA.GoogleMarker.prototype.getVisible=function(visible){return this.googleMarker.getVisible()},WPGMZA.GoogleMarker.prototype.setDraggable=function(draggable){this.googleMarker.setDraggable(draggable)},WPGMZA.GoogleMarker.prototype.setOpacity=function(opacity){this.googleMarker.setOpacity(opacity)}}),jQuery(function($){WPGMZA.GoogleModernStoreLocatorCircle=function(map,settings){var self=this;WPGMZA.ModernStoreLocatorCircle.call(this,map,settings),this.intervalID=setInterval(function(){var mapSize={width:$(self.mapElement).width(),height:$(self.mapElement).height()};mapSize.width==self.mapSize.width&&mapSize.height==self.mapSize.height||(self.canvasLayer.resize_(),self.canvasLayer.draw(),self.mapSize=mapSize)},1e3),$(document).bind("webkitfullscreenchange mozfullscreenchange fullscreenchange",function(){self.canvasLayer.resize_(),self.canvasLayer.draw()})},WPGMZA.GoogleModernStoreLocatorCircle.prototype=Object.create(WPGMZA.ModernStoreLocatorCircle.prototype),WPGMZA.GoogleModernStoreLocatorCircle.prototype.constructor=WPGMZA.GoogleModernStoreLocatorCircle,WPGMZA.GoogleModernStoreLocatorCircle.prototype.initCanvasLayer=function(){var self=this;this.canvasLayer&&(this.canvasLayer.setMap(null),this.canvasLayer.setAnimate(!1)),this.canvasLayer=new CanvasLayer({map:this.map.googleMap,resizeHandler:function(event){self.onResize(event)},updateHandler:function(event){self.onUpdate(event)},animate:!0,resolutionScale:this.getResolutionScale()})},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setOptions=function(options){WPGMZA.ModernStoreLocatorCircle.prototype.setOptions.call(this,options),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setPosition=function(position){WPGMZA.ModernStoreLocatorCircle.prototype.setPosition.call(this,position),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setRadius=function(radius){WPGMZA.ModernStoreLocatorCircle.prototype.setRadius.call(this,radius),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){var spherical=google.maps.geometry.spherical,center=this.settings.center,equator=new WPGMZA.LatLng({lat:0,lng:0}),latitude=new WPGMZA.LatLng({lat:center.lat,lng:0}),offsetAtEquator=spherical.computeOffset(equator.toGoogleLatLng(),1e3*km,90),result=.006395*km*(spherical.computeOffset(latitude.toGoogleLatLng(),1e3*km,90).lng()/offsetAtEquator.lng());if(isNaN(result))throw new Error("here");return result},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){return{width:this.canvasLayer.canvas.width,height:this.canvasLayer.canvas.height}},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getWorldOriginOffset=function(){var position=this.map.googleMap.getProjection().fromLatLngToPoint(this.canvasLayer.getTopLeft());return{x:-position.x,y:-position.y}},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCenterPixels=function(){var center=new WPGMZA.LatLng(this.settings.center);return this.map.googleMap.getProjection().fromLatLngToPoint(center.toGoogleLatLng())},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getContext=function(type){return this.canvasLayer.canvas.getContext("2d")},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getScale=function(){return Math.pow(2,this.map.getZoom())*this.getResolutionScale()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setVisible=function(visible){WPGMZA.ModernStoreLocatorCircle.prototype.setVisible.call(this,visible),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.destroy=function(){this.canvasLayer.setMap(null),this.canvasLayer=null,clearInterval(this.intervalID)}}),jQuery(function($){WPGMZA.GoogleModernStoreLocator=function(map_id){this.map=WPGMZA.getMapByID(map_id),WPGMZA.ModernStoreLocator.call(this,map_id);var options={fields:["name","formatted_address"],types:["geocode"]},restrict=wpgmaps_localize[map_id].other_settings.wpgmza_store_locator_restrict;this.addressInput=$(this.element).find(".addressInput, #addressInput")[0],this.addressInput&&(restrict&&restrict.length&&(options.componentRestrictions={country:restrict}),this.autoComplete=new google.maps.places.Autocomplete(this.addressInput,options)),this.map.googleMap.controls[google.maps.ControlPosition.TOP_CENTER].push(this.element)},WPGMZA.GoogleModernStoreLocator.prototype=Object.create(WPGMZA.ModernStoreLocator.prototype),WPGMZA.GoogleModernStoreLocator.prototype.constructor=WPGMZA.GoogleModernStoreLocator}),jQuery(function($){var Parent;WPGMZA.GooglePolygon=function(options,googlePolygon){var self=this;if(Parent.call(this,options,googlePolygon),googlePolygon)this.googlePolygon=googlePolygon;else if(this.googlePolygon=new google.maps.Polygon,options){var googleOptions=$.extend({},options);options.polydata&&(googleOptions.paths=this.parseGeometry(options.polydata)),options.linecolor&&(googleOptions.strokeColor="#"+options.linecolor),options.lineopacity&&(googleOptions.strokeOpacity=parseFloat(options.lineopacity)),options.fillcolor&&(googleOptions.fillColor="#"+options.fillcolor),options.opacity&&(googleOptions.fillOpacity=parseFloat(options.opacity)),this.googlePolygon.setOptions(googleOptions)}this.googlePolygon.wpgmzaPolygon=this,google.maps.event.addListener(this.googlePolygon,"click",function(){self.dispatchEvent({type:"click"})})},Parent=WPGMZA.isProVersion()?WPGMZA.ProPolygon:WPGMZA.Polygon,WPGMZA.GooglePolygon.prototype=Object.create(Parent.prototype),WPGMZA.GooglePolygon.prototype.constructor=WPGMZA.GooglePolygon,WPGMZA.GooglePolygon.prototype.getEditable=function(){return this.googlePolygon.getOptions().editable},WPGMZA.GooglePolygon.prototype.setEditable=function(value){this.googlePolygon.setOptions({editable:value})},WPGMZA.GooglePolygon.prototype.toJSON=function(){var result=WPGMZA.Polygon.prototype.toJSON.call(this);result.points=[];for(var path=this.googlePolygon.getPath(),i=0;i<path.getLength();i++){var latLng=path.getAt(i);result.points.push({lat:latLng.lat(),lng:latLng.lng()})}return result}}),jQuery(function($){WPGMZA.GooglePolyline=function(options,googlePolyline){var self=this;if(WPGMZA.Polyline.call(this,options,googlePolyline),googlePolyline)this.googlePolyline=googlePolyline;else{if(this.googlePolyline=new google.maps.Polyline(this.settings),options){var googleOptions=$.extend({},options);options.polydata&&(googleOptions.path=this.parseGeometry(options.polydata)),options.linecolor&&(googleOptions.strokeColor="#"+options.linecolor),options.linethickness&&(googleOptions.strokeWeight=parseInt(options.linethickness)),options.opacity&&(googleOptions.strokeOpacity=parseFloat(options.opacity))}if(options&&options.polydata){var path=this.parseGeometry(options.polydata);this.setPoints(path)}}this.googlePolyline.wpgmzaPolyline=this,google.maps.event.addListener(this.googlePolyline,"click",function(){self.dispatchEvent({type:"click"})})},WPGMZA.GooglePolyline.prototype=Object.create(WPGMZA.Polyline.prototype),WPGMZA.GooglePolyline.prototype.constructor=WPGMZA.GooglePolyline,WPGMZA.GooglePolyline.prototype.setEditable=function(value){this.googlePolyline.setOptions({editable:value})},WPGMZA.GooglePolyline.prototype.setPoints=function(points){this.googlePolyline.setOptions({path:points})},WPGMZA.GooglePolyline.prototype.toJSON=function(){var result=WPGMZA.Polyline.prototype.toJSON.call(this);result.points=[];for(var path=this.googlePolyline.getPath(),i=0;i<path.getLength();i++){var latLng=path.getAt(i);result.points.push({lat:latLng.lat(),lng:latLng.lng()})}return result}}),jQuery(function($){WPGMZA.GoogleText=function(options){WPGMZA.Text.apply(this,arguments),this.overlay=new WPGMZA.GoogleTextOverlay(options)},WPGMZA.extend(WPGMZA.GoogleText,WPGMZA.Text)}),jQuery(function($){WPGMZA.GoogleTextOverlay=function(options){this.element=$("<div class='wpgmza-google-text-overlay'><div class='wpgmza-inner'></div></div>"),(options=options||{}).position&&(this.position=options.position),options.text&&this.element.find(".wpgmza-inner").text(options.text),options.map&&this.setMap(options.map.googleMap)},window.google&&google.maps&&google.maps.OverlayView&&(WPGMZA.GoogleTextOverlay.prototype=new google.maps.OverlayView),WPGMZA.GoogleTextOverlay.prototype.onAdd=function(){var position=this.getProjection().fromLatLngToDivPixel(this.position.toGoogleLatLng());this.element.css({position:"absolute",left:position.x+"px",top:position.y+"px"}),this.getPanes().floatPane.appendChild(this.element[0])},WPGMZA.GoogleTextOverlay.prototype.draw=function(){var position=this.getProjection().fromLatLngToDivPixel(this.position.toGoogleLatLng());this.element.css({position:"absolute",left:position.x+"px",top:position.y+"px"})},WPGMZA.GoogleTextOverlay.prototype.onRemove=function(){this.element.remove()},WPGMZA.GoogleTextOverlay.prototype.hide=function(){this.element.hide()},WPGMZA.GoogleTextOverlay.prototype.show=function(){this.element.show()},WPGMZA.GoogleTextOverlay.prototype.toggle=function(){this.element.is(":visible")?this.element.hide():this.element.show()}}),jQuery(function($){"google-maps"==WPGMZA.settings.engine&&(WPGMZA.googleAPIStatus&&"USER_CONSENT_NOT_GIVEN"==WPGMZA.googleAPIStatus.code||(WPGMZA.GoogleVertexContextMenu=function(mapEditPage){var self=this;this.mapEditPage=mapEditPage,this.element=document.createElement("div"),this.element.className="wpgmza-vertex-context-menu",this.element.innerHTML="Delete",google.maps.event.addDomListener(this.element,"click",function(event){return self.removeVertex(),event.preventDefault(),event.stopPropagation(),!1})},WPGMZA.GoogleVertexContextMenu.prototype=new google.maps.OverlayView,WPGMZA.GoogleVertexContextMenu.prototype.onAdd=function(){var self=this,map=this.getMap();this.getPanes().floatPane.appendChild(this.element),this.divListener=google.maps.event.addDomListener(map.getDiv(),"mousedown",function(e){e.target!=self.element&&self.close()},!0)},WPGMZA.GoogleVertexContextMenu.prototype.onRemove=function(){google.maps.event.removeListener(this.divListener),this.element.parentNode.removeChild(this.element),this.set("position"),this.set("path"),this.set("vertex")},WPGMZA.GoogleVertexContextMenu.prototype.open=function(map,path,vertex){this.set("position",path.getAt(vertex)),this.set("path",path),this.set("vertex",vertex),this.setMap(map),this.draw()},WPGMZA.GoogleVertexContextMenu.prototype.close=function(){this.setMap(null)},WPGMZA.GoogleVertexContextMenu.prototype.draw=function(){var position=this.get("position"),projection=this.getProjection();if(position&&projection){var point=projection.fromLatLngToDivPixel(position);this.element.style.top=point.y+"px",this.element.style.left=point.x+"px"}},WPGMZA.GoogleVertexContextMenu.prototype.removeVertex=function(){var path=this.get("path"),vertex=this.get("vertex");path&&null!=vertex&&path.removeAt(vertex),this.close()}))});
|
1 |
+
jQuery(function($){var key,core={MARKER_PULL_DATABASE:"0",MARKER_PULL_XML:"1",PAGE_MAP_LIST:"map-list",PAGE_MAP_EDIT:"map-edit",PAGE_SETTINGS:"map-settings",PAGE_SUPPORT:"map-support",PAGE_CATEGORIES:"categories",PAGE_ADVANCED:"advanced",PAGE_CUSTOM_FIELDS:"custom-fields",maps:[],events:null,settings:null,restAPI:null,localized_strings:null,loadingHTML:'<div class="wpgmza-preloader"><div></div><div></div><div></div><div></div></div>',getCurrentPage:function(){switch(WPGMZA.getQueryParamValue("page")){case"wp-google-maps-menu":return window.location.href.match(/action=edit/)&&window.location.href.match(/map_id=\d+/)?WPGMZA.PAGE_MAP_EDIT:WPGMZA.PAGE_MAP_LIST;case"wp-google-maps-menu-settings":return WPGMZA.PAGE_SETTINGS;case"wp-google-maps-menu-support":return WPGMZA.PAGE_SUPPORT;case"wp-google-maps-menu-categories":return WPGMZA.PAGE_CATEGORIES;case"wp-google-maps-menu-advanced":return WPGMZA.PAGE_ADVANCED;case"wp-google-maps-menu-custom-fields":return WPGMZA.PAGE_CUSTOM_FIELDS;default:return null}},getScrollAnimationOffset:function(){return(WPGMZA.settings.scroll_animation_offset||0)+$("#wpadminbar").height()},getScrollAnimationDuration:function(){return WPGMZA.settings.scroll_animation_milliseconds||500},animateScroll:function(element,milliseconds){var offset=WPGMZA.getScrollAnimationOffset();milliseconds=milliseconds||WPGMZA.getScrollAnimationDuration(),$("html, body").animate({scrollTop:$(element).offset().top-offset},milliseconds)},extend:function(child,parent){var constructor=child;child.prototype=Object.create(parent.prototype),child.prototype.constructor=constructor},guid:function(){var d=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(d+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=(d+16*Math.random())%16|0;return d=Math.floor(d/16),("x"===c?r:3&r|8).toString(16)})},hexOpacityToRGBA:function(hex,opacity){hex=parseInt(hex.replace(/^#/,""),16);return[(16711680&hex)>>16,(65280&hex)>>8,255&hex,parseFloat(opacity)]},hexToRgba:function(c){return/^#([A-Fa-f0-9]{3}){1,2}$/.test(c)?(3==(c=c.substring(1).split("")).length&&(c=[c[0],c[0],c[1],c[1],c[2],c[2]]),{r:(c="0x"+c.join(""))>>16&255,g:c>>8&255,b:255&c,a:1}):0},rgbaToString:function(rgba){return"rgba("+rgba.r+", "+rgba.g+", "+rgba.b+", "+rgba.a+")"},latLngRegexp:/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/,isLatLngString:function(m){if("string"!=typeof m)return null;m.match(/^\(.+\)$/)&&(m=m.replace(/^\(|\)$/,""));m=m.match(WPGMZA.latLngRegexp);return m?new WPGMZA.LatLng({lat:parseFloat(m[1]),lng:parseFloat(m[3])}):null},stringToLatLng:function(result){result=WPGMZA.isLatLngString(result);if(!result)throw new Error("Not a valid latLng");return result},isHexColorString:function(str){return"string"==typeof str&&!!str.match(/#[0-9A-F]{6}/i)},imageDimensionsCache:{},getImageDimensions:function(src,callback){var img;WPGMZA.imageDimensionsCache[src]?callback(WPGMZA.imageDimensionsCache[src]):((img=document.createElement("img")).onload=function(event){var result={width:img.width,height:img.height};WPGMZA.imageDimensionsCache[src]=result,callback(result)},img.src=src)},decodeEntities:function(input){return input.replace(/&(nbsp|amp|quot|lt|gt);/g,function(m,e){return m[e]}).replace(/&#(\d+);/gi,function(m,e){return String.fromCharCode(parseInt(e,10))})},isDeveloperMode:function(){return this.settings.developer_mode||window.Cookies&&window.Cookies.get("wpgmza-developer-mode")},isProVersion:function(){return"1"==this._isProVersion},openMediaDialog:function(callback){var file_frame;if(file_frame)return file_frame.uploader.uploader.param("post_id",set_to_post_id),void file_frame.open();(file_frame=wp.media.frames.file_frame=wp.media({title:"Select a image to upload",button:{text:"Use this image"},multiple:!1})).on("select",function(){attachment=file_frame.state().get("selection").first().toJSON(),callback(attachment.id,attachment.url)}),file_frame.open()},getCurrentPosition:function(callback,error,watch){var options,nativeFunction="getCurrentPosition";WPGMZA.userLocationDenied?error&&error({code:1,message:"Location unavailable"}):(watch&&(nativeFunction="watchPosition"),navigator.geolocation?(options={enableHighAccuracy:!0},navigator.geolocation[nativeFunction]?navigator.geolocation[nativeFunction](function(position){callback&&callback(position),WPGMZA.events.trigger("userlocationfound")},function(err){options.enableHighAccuracy=!1,navigator.geolocation[nativeFunction](function(position){callback&&callback(position),WPGMZA.events.trigger("userlocationfound")},function(err){console.warn(err.code,err.message),1==err.code&&(WPGMZA.userLocationDenied=!0),error&&error(err)},options)},options):console.warn(nativeFunction+" is not available")):console.warn("No geolocation available on this device"))},watchPosition:function(callback,error){return WPGMZA.getCurrentPosition(callback,error,!0)},runCatchableTask:function(callback,friendlyErrorContainer){if(WPGMZA.isDeveloperMode())callback();else try{callback()}catch(e){var friendlyError=new WPGMZA.FriendlyError(e);$(friendlyErrorContainer).html(""),$(friendlyErrorContainer).append(friendlyError.element),$(friendlyErrorContainer).show()}},assertInstanceOf:function(instance,fullInstanceName){var pro=WPGMZA.isProVersion()?"Pro":"",engine="open-layers"===WPGMZA.settings.engine?"OL":"Google",fullInstanceName=WPGMZA[engine+pro+fullInstanceName]?engine+pro+fullInstanceName:WPGMZA[pro+fullInstanceName]?pro+fullInstanceName:WPGMZA[engine+fullInstanceName]?engine+fullInstanceName:fullInstanceName;if(!(instance instanceof WPGMZA[fullInstanceName]))throw new Error("Object must be an instance of "+fullInstanceName+" (did you call a constructor directly, rather than createInstance?)")},getMapByID:function(id){return(!WPGMZA.isProVersion()||MYMAP.map instanceof WPGMZA.Map?MYMAP:MYMAP[id]).map},isGoogleAutocompleteSupported:function(){return!!window.google&&(!!google.maps&&(!!google.maps.places&&(!!google.maps.places.Autocomplete&&(!WPGMZA.CloudAPI||!WPGMZA.CloudAPI.isBeingUsed))))},googleAPIStatus:window.wpgmza_google_api_status,isSafari:function(){var ua=navigator.userAgent.toLowerCase();return ua.match(/safari/i)&&!ua.match(/chrome/i)},isTouchDevice:function(){return"ontouchstart"in window},isDeviceiOS:function(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||!!navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)},isModernComponentStyleAllowed:function(){return!WPGMZA.settings.user_interface_style||"legacy"==WPGMZA.settings.user_interface_style||"modern"==WPGMZA.settings.user_interface_style},isElementInView:function(elementBottom){var pageTop=$(window).scrollTop(),pageBottom=pageTop+$(window).height(),elementTop=$(elementBottom).offset().top,elementBottom=elementTop+$(elementBottom).height();return elementTop<pageTop&&pageBottom<elementBottom||(pageTop<=elementTop&&elementTop<=pageBottom||pageTop<=elementBottom&&elementBottom<=pageBottom)},isFullScreen:function(){return isFullScreen},getQueryParamValue:function(m){m=new RegExp(m+"=([^&#]*)");return(m=window.location.href.match(m))?m[1]:null},notification:function(text,time){switch(arguments.length){case 0:text="",time=4e3;break;case 1:time=4e3}var html='<div class="wpgmza-popup-notification">'+text+"</div>";jQuery("body").append(html),setTimeout(function(){jQuery("body").find(".wpgmza-popup-notification").remove()},time)}};for(key in window.WPGMZA?window.WPGMZA=$.extend(window.WPGMZA,core):window.WPGMZA=core,WPGMZA_localized_data){var value=WPGMZA_localized_data[key];WPGMZA[key]=value}WPGMZA.settings.useLegacyGlobals=!0,jQuery(function($){$(window).trigger("ready.wpgmza"),$("script[src*='wp-google-maps.combined.js'], script[src*='wp-google-maps-pro.combined.js']").length&&console.warn("Minified script is out of date, using combined script instead.");var elements=$("script").filter(function(){return this.src.match(/(^|\/)jquery\.(min\.)?js(\?|$)/i)});1<elements.length&&console.warn("Multiple jQuery versions detected: ",elements),WPGMZA.restAPI=WPGMZA.RestAPI.createInstance(),WPGMZA.CloudAPI&&(WPGMZA.cloudAPI=WPGMZA.CloudAPI.createInstance()),$(document).on("click",".wpgmza_edit_btn",function(){WPGMZA.animateScroll("#wpgmaps_tabs_markers")})});var isFullScreen=!1;function onScroll(event){$(".wpgmza_map").each(function(index,el){var isInView=WPGMZA.isElementInView(el);el.wpgmzaScrollIntoViewTriggerFlag?isInView||(el.wpgmzaScrollIntoViewTriggerFlag=!1):isInView&&($(el).trigger("mapscrolledintoview.wpgmza"),el.wpgmzaScrollIntoViewTriggerFlag=!0)})}$(document).on("fullscreenchange",function(){isFullScreen=!!document.fullscreenElement}),$(window).on("load",function(event){var key,warning;for(key in[]){console.warn("The Array object has been extended incorrectly by your theme or another plugin. This can cause issues with functionality.");break}"https:"!=window.location.protocol&&(warning='<div class="notice notice-warning"><p>'+WPGMZA.localized_strings.unsecure_geolocation+"</p></div>",$(".wpgmza-geolocation-setting").each(function(index,el){$(el).after($(warning))}))}),$(window).on("scroll",onScroll),$(window).on("load",onScroll),WPGMZA.refreshOnLoad&&window.location.reload()}),jQuery(function($){WPGMZA.Compatibility=function(){this.preventDocumentWriteGoogleMapsAPI()},WPGMZA.Compatibility.prototype.preventDocumentWriteGoogleMapsAPI=function(){var old=document.write;document.write=function(content){content.match&&content.match(/maps\.google/)||old.call(document,content)}},WPGMZA.compatiblityModule=new WPGMZA.Compatibility}),function(root,factory){"object"==typeof exports?module.exports=factory(root):"function"==typeof define&&define.amd?define([],factory.bind(root,root)):factory(root)}("undefined"!=typeof global?global:this,function(root){if(root.CSS&&root.CSS.escape)return root.CSS.escape;function cssEscape(value){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var codeUnit,string=String(value),length=string.length,index=-1,result="",firstCodeUnit=string.charCodeAt(0);++index<length;)0!=(codeUnit=string.charCodeAt(index))?result+=1<=codeUnit&&codeUnit<=31||127==codeUnit||0==index&&48<=codeUnit&&codeUnit<=57||1==index&&48<=codeUnit&&codeUnit<=57&&45==firstCodeUnit?"\\"+codeUnit.toString(16)+" ":(0!=index||1!=length||45!=codeUnit)&&(128<=codeUnit||45==codeUnit||95==codeUnit||48<=codeUnit&&codeUnit<=57||65<=codeUnit&&codeUnit<=90||97<=codeUnit&&codeUnit<=122)?string.charAt(index):"\\"+string.charAt(index):result+="�";return result}return root.CSS||(root.CSS={}),root.CSS.escape=cssEscape}),jQuery(function($){Math.PI;function deg2rad(deg){return deg*(Math.PI/180)}WPGMZA.Distance={MILES:!0,KILOMETERS:!1,MILES_PER_KILOMETER:.621371,KILOMETERS_PER_MILE:1.60934,uiToMeters:function(uiDistance){return parseFloat(uiDistance)/(WPGMZA.settings.distance_units==WPGMZA.Distance.MILES?WPGMZA.Distance.MILES_PER_KILOMETER:1)*1e3},uiToKilometers:function(uiDistance){return.001*WPGMZA.Distance.uiToMeters(uiDistance)},uiToMiles:function(uiDistance){return WPGMZA.Distance.uiToKilometers(uiDistance)*WPGMZA.Distance.MILES_PER_KILOMETER},kilometersToUI:function(km){return WPGMZA.settings.distance_units==WPGMZA.Distance.MILES?km*WPGMZA.Distance.MILES_PER_KILOMETER:km},between:function(a,dLat){if(!(a instanceof WPGMZA.LatLng||"lat"in a&&"lng"in a))throw new Error("First argument must be an instance of WPGMZA.LatLng or a literal");if(!(dLat instanceof WPGMZA.LatLng||"lat"in dLat&&"lng"in dLat))throw new Error("Second argument must be an instance of WPGMZA.LatLng or a literal");if(a===dLat)return 0;var lat1=a.lat,dLon=a.lng,lat2=dLat.lat,lon2=dLat.lng,dLat=deg2rad(lat2-lat1),dLon=deg2rad(lon2-dLon),a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(deg2rad(lat1))*Math.cos(deg2rad(lat2))*Math.sin(dLon/2)*Math.sin(dLon/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))}}}),jQuery(function($){WPGMZA.EliasFano=function(){if(!WPGMZA.EliasFano.isSupported)throw new Error("Elias Fano encoding is not supported on browsers without Uint8Array");WPGMZA.EliasFano.decodingTablesInitialised||WPGMZA.EliasFano.createDecodingTable()},WPGMZA.EliasFano.isSupported="Uint8Array"in window,WPGMZA.EliasFano.decodingTableHighBits=[],WPGMZA.EliasFano.decodingTableDocIDNumber=null,WPGMZA.EliasFano.decodingTableHighBitsCarryover=null,WPGMZA.EliasFano.createDecodingTable=function(){WPGMZA.EliasFano.decodingTableDocIDNumber=new Uint8Array(256),WPGMZA.EliasFano.decodingTableHighBitsCarryover=new Uint8Array(256);for(var decodingTableHighBits=WPGMZA.EliasFano.decodingTableHighBits,decodingTableDocIDNumber=WPGMZA.EliasFano.decodingTableDocIDNumber,decodingTableHighBitsCarryover=WPGMZA.EliasFano.decodingTableHighBitsCarryover,i=0;i<256;i++){var zeroCount=0;decodingTableHighBits[i]=[];for(var j=7;0<=j;j--)zeroCount=0<(i&1<<j)?(decodingTableHighBits[i][decodingTableDocIDNumber[i]]=zeroCount,decodingTableDocIDNumber[i]++,0):(zeroCount+1)%255;decodingTableHighBitsCarryover[i]=zeroCount}WPGMZA.EliasFano.decodingTablesInitialised=!0},WPGMZA.EliasFano.prototype.encode=function(list){var lastDocID=0,buffer1=0,bufferLength1=0,buffer2=0,bufferLength2=0;if(0==list.length)return result;var compressedBufferPointer1=0,compressedBufferPointer2=0,maxCompressedSize=list[list.length-1]/list.length,averageDeltaLog=Math.log2(maxCompressedSize),lowBitsLength=Math.floor(averageDeltaLog),lowBitsMask=(1<<lowBitsLength)-1,prev=null,maxCompressedSize=Math.floor((2+Math.ceil(Math.log2(maxCompressedSize)))*list.length/8)+6,compressedBuffer=new Uint8Array(maxCompressedSize);lowBitsLength<0&&(lowBitsLength=0),compressedBufferPointer2=Math.floor(lowBitsLength*list.length/8+6),compressedBuffer[compressedBufferPointer1++]=255&list.length,compressedBuffer[compressedBufferPointer1++]=255&list.length>>8,compressedBuffer[compressedBufferPointer1++]=255&list.length>>16,compressedBuffer[compressedBufferPointer1++]=255&list.length>>24,compressedBuffer[compressedBufferPointer1++]=255&lowBitsLength,list.forEach(function(docID){var unaryCodeLength=docID-lastDocID-1;if(!$.isNumeric(docID))throw new Error("Value is not numeric");if(docID=parseInt(docID),null!==prev&&docID<=prev)throw new Error("Elias Fano encoding can only be used on a sorted, ascending list of unique integers.");for(prev=docID,buffer1<<=lowBitsLength,buffer1|=unaryCodeLength&lowBitsMask,bufferLength1+=lowBitsLength;7<bufferLength1;)bufferLength1-=8,compressedBuffer[compressedBufferPointer1++]=255&buffer1>>bufferLength1;unaryCodeLength=1+(unaryCodeLength>>lowBitsLength);for(buffer2<<=unaryCodeLength,buffer2|=1,bufferLength2+=unaryCodeLength;7<bufferLength2;)bufferLength2-=8,compressedBuffer[compressedBufferPointer2++]=255&buffer2>>bufferLength2;lastDocID=docID}),0<bufferLength1&&(compressedBuffer[compressedBufferPointer1++]=255&buffer1<<8-bufferLength1),0<bufferLength2&&(compressedBuffer[compressedBufferPointer2++]=255&buffer2<<8-bufferLength2);var result=new Uint8Array(compressedBuffer);return result.pointer=compressedBufferPointer2,result},WPGMZA.EliasFano.prototype.decode=function(compressedBuffer){var docIDNumber,resultPointer=0,list=[],decodingTableHighBits=WPGMZA.EliasFano.decodingTableHighBits,decodingTableDocIDNumber=WPGMZA.EliasFano.decodingTableDocIDNumber,decodingTableHighBitsCarryover=WPGMZA.EliasFano.decodingTableHighBitsCarryover,lowBitsPointer=0,lastDocID=0,docID=0,listCount=compressedBuffer[lowBitsPointer++];listCount|=compressedBuffer[lowBitsPointer++]<<8,listCount|=compressedBuffer[lowBitsPointer++]<<16,listCount|=compressedBuffer[lowBitsPointer++]<<24;for(var lowBitsLength=compressedBuffer[lowBitsPointer++],lowBitsCount=0,lowBits=0,cb=1,highBitsPointer=Math.floor(lowBitsLength*listCount/8+6);highBitsPointer<compressedBuffer.pointer;highBitsPointer++){docID+=decodingTableHighBitsCarryover[cb],docIDNumber=decodingTableDocIDNumber[cb=compressedBuffer[highBitsPointer]];for(var i=0;i<docIDNumber;i++){for(docID<<=lowBitsCount,docID|=lowBits&(1<<lowBitsCount)-1;lowBitsCount<lowBitsLength;)docID<<=8,docID|=lowBits=compressedBuffer[lowBitsPointer++],lowBitsCount+=8;docID>>=lowBitsCount-=lowBitsLength,docID+=(decodingTableHighBits[cb][i]<<lowBitsLength)+lastDocID+1,lastDocID=list[resultPointer++]=docID,docID=0}}return list}}),jQuery(function($){WPGMZA.EventDispatcher=function(){WPGMZA.assertInstanceOf(this,"EventDispatcher"),this._listenersByType={}},WPGMZA.EventDispatcher.prototype.addEventListener=function(obj,listener,thisObject,useCapture){var types=obj.split(/\s+/);if(1<types.length)for(var i=0;i<types.length;i++)this.addEventListener(types[i],listener,thisObject,useCapture);else{if(!(listener instanceof Function))throw new Error("Listener must be a function");var target=this._listenersByType.hasOwnProperty(obj)?this._listenersByType[obj]:this._listenersByType[obj]=[],obj={listener:listener,thisObject:thisObject||this,useCapture:!!useCapture};target.push(obj)}},WPGMZA.EventDispatcher.prototype.on=WPGMZA.EventDispatcher.prototype.addEventListener,WPGMZA.EventDispatcher.prototype.removeEventListener=function(type,listener,thisObject,useCapture){var arr,obj;if(arr=this._listenersByType[type]){thisObject=thisObject||this,useCapture=!!useCapture;for(var i=0;i<arr.length;i++)if(obj=arr[i],(1==arguments.length||obj.listener==listener)&&obj.thisObject==thisObject&&obj.useCapture==useCapture)return void arr.splice(i,1)}},WPGMZA.EventDispatcher.prototype.off=WPGMZA.EventDispatcher.prototype.removeEventListener,WPGMZA.EventDispatcher.prototype.hasEventListener=function(type){return!!_listenersByType[type]},WPGMZA.EventDispatcher.prototype.dispatchEvent=function(event){if(!(event instanceof WPGMZA.Event))if("string"==typeof event)event=new WPGMZA.Event(event);else{var name,src=event;for(name in event=new WPGMZA.Event,src)event[name]=src[name]}for(var path=[],obj=(event.target=this).parent;null!=obj;obj=obj.parent)path.unshift(obj);event.phase=WPGMZA.Event.CAPTURING_PHASE;for(var i=0;i<path.length&&!event._cancelled;i++)path[i]._triggerListeners(event);if(!event._cancelled){for(event.phase=WPGMZA.Event.AT_TARGET,this._triggerListeners(event),event.phase=WPGMZA.Event.BUBBLING_PHASE,i=path.length-1;0<=i&&!event._cancelled;i--)path[i]._triggerListeners(event);for(var topMostElement=this.element,obj=this.parent;null!=obj;obj=obj.parent)obj.element&&(topMostElement=obj.element);if(topMostElement){var key,customEvent={};for(key in event){var value=event[key];"type"==key&&(value+=".wpgmza"),customEvent[key]=value}$(topMostElement).trigger(customEvent)}}},WPGMZA.EventDispatcher.prototype.trigger=WPGMZA.EventDispatcher.prototype.dispatchEvent,WPGMZA.EventDispatcher.prototype._triggerListeners=function(event){var arr,obj;if(arr=this._listenersByType[event.type])for(var i=0;i<arr.length;i++)obj=arr[i],event.phase==WPGMZA.Event.CAPTURING_PHASE&&!obj.useCapture||obj.listener.call(arr[i].thisObject,event)},WPGMZA.events=new WPGMZA.EventDispatcher}),jQuery(function($){WPGMZA.AddressInput=function(element,map){if(!(element instanceof HTMLInputElement))throw new Error("Element is not an instance of HTMLInputElement");var json;this.element=element;var options={fields:["name","formatted_address"],types:["geocode"]};(json=$(element).attr("data-autocomplete-options"))&&(options=$.extend(options,JSON.parse(json))),map&&map.settings.wpgmza_store_locator_restrict&&(options.country=map.settings.wpgmza_store_locator_restrict),WPGMZA.isGoogleAutocompleteSupported()?(element.googleAutoComplete=new google.maps.places.Autocomplete(element,options),options.country&&element.googleAutoComplete.setComponentRestrictions({country:options.country})):WPGMZA.CloudAPI&&WPGMZA.CloudAPI.isBeingUsed&&(element.cloudAutoComplete=new WPGMZA.CloudAutocomplete(element,options))},WPGMZA.extend(WPGMZA.AddressInput,WPGMZA.EventDispatcher),WPGMZA.AddressInput.createInstance=function(element,map){return new WPGMZA.AddressInput(element,map)}}),jQuery(function($){WPGMZA.Event=function(options){if("string"==typeof options&&(this.type=options),this.bubbles=!0,this.cancelable=!0,this.phase=WPGMZA.Event.PHASE_CAPTURE,this.target=null,this._cancelled=!1,"object"==typeof options)for(var name in options)this[name]=options[name]},WPGMZA.Event.CAPTURING_PHASE=0,WPGMZA.Event.AT_TARGET=1,WPGMZA.Event.BUBBLING_PHASE=2,WPGMZA.Event.prototype.stopPropagation=function(){this._cancelled=!0}}),jQuery(function($){WPGMZA.FancyControls={formatToggleSwitch:function(label){var div=$("<div class='switch'></div>"),input=label,container=label.parentNode,text=$(container).text().trim(),label=$("<label></label>");$(input).addClass("cmn-toggle cmn-toggle-round-flat"),$(input).attr("id",$(input).attr("name")),$(label).attr("for",$(input).attr("name")),$(div).append(input),$(div).append(label),$(container).replaceWith(div),$(div).wrap($("<div></div>")),$(div).after(text)},formatToggleButton:function(label){var div=$("<div class='switch'></div>"),input=label,container=label.parentNode,text=$(container).text().trim(),label=$("<label></label>");$(input).addClass("cmn-toggle cmn-toggle-yes-no"),$(input).attr("id",$(input).attr("name")),$(label).attr("for",$(input).attr("name")),$(label).attr("data-on",WPGMZA.localized_strings.yes),$(label).attr("data-off",WPGMZA.localized_strings.no),$(div).append(input),$(div).append(label),$(container).replaceWith(div),$(div).wrap($("<div></div>")),$(div).after(text)}},$(".wpgmza-fancy-toggle-switch").each(function(index,el){WPGMZA.FancyControls.formatToggleSwitch(el)}),$(".wpgmza-fancy-toggle-button").each(function(index,el){WPGMZA.FancyControls.formatToggleButton(el)})}),jQuery(function($){WPGMZA.FriendlyError=function(){}}),jQuery(function($){WPGMZA.Geocoder=function(){WPGMZA.assertInstanceOf(this,"Geocoder")},WPGMZA.Geocoder.SUCCESS="success",WPGMZA.Geocoder.ZERO_RESULTS="zero-results",WPGMZA.Geocoder.FAIL="fail",WPGMZA.Geocoder.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.GoogleGeocoder:WPGMZA.OLGeocoder},WPGMZA.Geocoder.createInstance=function(){return new(WPGMZA.Geocoder.getConstructor())},WPGMZA.Geocoder.prototype.getLatLngFromAddress=function(latLng,callback){WPGMZA.isLatLngString(latLng.address)&&(latLng=latLng.address.split(/,\s*/),callback([(latLng=new WPGMZA.LatLng({lat:parseFloat(latLng[0]),lng:parseFloat(latLng[1])})).latLng=latLng],WPGMZA.Geocoder.SUCCESS))},WPGMZA.Geocoder.prototype.getAddressFromLatLng=function(options,callback){callback([new WPGMZA.LatLng(options.latLng).toString()],WPGMZA.Geocoder.SUCCESS)},WPGMZA.Geocoder.prototype.geocode=function(options,callback){if("address"in options)return this.getLatLngFromAddress(options,callback);if("latLng"in options)return this.getAddressFromLatLng(options,callback);throw new Error("You must supply either a latLng or address")}}),jQuery(function($){WPGMZA.GoogleAPIErrorHandler=function(){var _error,self=this;"google-maps"==WPGMZA.settings.engine&&("map-edit"==WPGMZA.currentPage||0==WPGMZA.is_admin&&1==WPGMZA.userCanAdministrator)&&(this.element=$(WPGMZA.html.googleMapsAPIErrorDialog),1==WPGMZA.is_admin&&this.element.find(".wpgmza-front-end-only").remove(),this.errorMessageList=this.element.find(".wpgmza-google-api-error-list"),this.templateListItem=this.element.find("li.template").remove(),this.messagesAlreadyDisplayed={},_error=console.error,console.error=function(message){self.onErrorMessage(message),_error.apply(this,arguments)},"google-maps"!=WPGMZA.settings.engine||WPGMZA.settings.wpgmza_google_maps_api_key&&WPGMZA.settings.wpgmza_google_maps_api_key.length||WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT||this.addErrorMessage(WPGMZA.localized_strings.no_google_maps_api_key,["https://www.wpgmaps.com/documentation/creating-a-google-maps-api-key/"]))},WPGMZA.GoogleAPIErrorHandler.prototype.onErrorMessage=function(message){var m,urls;message&&((m=message.match(/You have exceeded your (daily )?request quota for this API/))||(m=message.match(/This API project is not authorized to use this API/))||(m=message.match(/^Geocoding Service: .+/))?(urls=message.match(/http(s)?:\/\/[^\s]+/gm),this.addErrorMessage(m[0],urls)):(m=message.match(/^Google Maps.+error: (.+)\s+(http(s?):\/\/.+)/m))&&this.addErrorMessage(m[1].replace(/([A-Z])/g," $1"),[m[2]]))},WPGMZA.GoogleAPIErrorHandler.prototype.addErrorMessage=function(message,urls){var self=this;if(!this.messagesAlreadyDisplayed[message]){var li=this.templateListItem.clone();$(li).find(".wpgmza-message").html(message);var buttonContainer=$(li).find(".wpgmza-documentation-buttons"),buttonTemplate=$(li).find(".wpgmza-documentation-buttons>a");if(buttonTemplate.remove(),urls&&urls.length){for(var i=0;i<urls.length;i++){urls[i];var button=buttonTemplate.clone(),text=WPGMZA.localized_strings.documentation;button.attr("href",urls[i]),$(button).find("i").addClass("fa-external-link"),$(button).append(text)}buttonContainer.append(button)}$(this.errorMessageList).append(li),$("#wpgmza_map, .wpgmza_map").each(function(index,el){var container=$(el).find(".wpgmza-google-maps-api-error-overlay");0==container.length&&(container=$("<div class='wpgmza-google-maps-api-error-overlay'></div>")).html(self.element.html()),setTimeout(function(){$(el).append(container)},1e3)}),$(".gm-err-container").parent().css({"z-index":1}),this.messagesAlreadyDisplayed[message]=!0}},WPGMZA.googleAPIErrorHandler=new WPGMZA.GoogleAPIErrorHandler}),jQuery(function($){WPGMZA.InfoWindow=function(mapObject){var self=this;WPGMZA.EventDispatcher.call(this),WPGMZA.assertInstanceOf(this,"InfoWindow"),this.on("infowindowopen",function(event){self.onOpen(event)}),mapObject&&(this.mapObject=mapObject,this.state=WPGMZA.InfoWindow.STATE_CLOSED,mapObject.map?setTimeout(function(){self.onMapObjectAdded(event)},100):mapObject.addEventListener("added",function(event){self.onMapObjectAdded(event)}))},WPGMZA.InfoWindow.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.InfoWindow.prototype.constructor=WPGMZA.InfoWindow,WPGMZA.InfoWindow.OPEN_BY_CLICK=1,WPGMZA.InfoWindow.OPEN_BY_HOVER=2,WPGMZA.InfoWindow.STATE_OPEN="open",WPGMZA.InfoWindow.STATE_CLOSED="closed",WPGMZA.InfoWindow.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.isProVersion()?WPGMZA.GoogleProInfoWindow:WPGMZA.GoogleInfoWindow:WPGMZA.isProVersion()?WPGMZA.OLProInfoWindow:WPGMZA.OLInfoWindow},WPGMZA.InfoWindow.createInstance=function(mapObject){return new(this.getConstructor())(mapObject)},WPGMZA.InfoWindow.prototype.getContent=function(callback){var html="";this.mapObject instanceof WPGMZA.Marker&&(html=this.mapObject.address),callback(html)},WPGMZA.InfoWindow.prototype.open=function(map,mapObject){return this.mapObject=mapObject,!WPGMZA.settings.disable_infowindows&&"1"!=WPGMZA.settings.wpgmza_settings_disable_infowindows&&(!this.mapObject.disableInfoWindow&&(this.state=WPGMZA.InfoWindow.STATE_OPEN,!0))},WPGMZA.InfoWindow.prototype.close=function(){this.state!=WPGMZA.InfoWindow.STATE_CLOSED&&(this.state=WPGMZA.InfoWindow.STATE_CLOSED,this.trigger("infowindowclose"))},WPGMZA.InfoWindow.prototype.setContent=function(options){},WPGMZA.InfoWindow.prototype.setOptions=function(options){},WPGMZA.InfoWindow.prototype.onMapObjectAdded=function(){1==this.mapObject.settings.infoopen&&this.open()},WPGMZA.InfoWindow.prototype.onOpen=function(){}}),jQuery(function($){WPGMZA.LatLng=function(arg,lng){if(this._lat=0,(this._lng=0)!=arguments.length)if(1==arguments.length){if("string"==typeof arg){var m;if(!(m=arg.match(WPGMZA.LatLng.REGEXP)))throw new Error("Invalid LatLng string");arg={lat:m[1],lng:m[3]}}if("object"!=typeof arg||!("lat"in arg&&"lng"in arg))throw new Error("Argument must be a LatLng literal");this.lat=arg.lat,this.lng=arg.lng}else this.lat=arg,this.lng=lng},WPGMZA.LatLng.REGEXP=/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/,WPGMZA.LatLng.isValid=function(obj){return"object"==typeof obj&&("lat"in obj&&"lng"in obj)},WPGMZA.LatLng.isLatLngString=function(str){return"string"==typeof str&&!!str.match(WPGMZA.LatLng.REGEXP)},Object.defineProperty(WPGMZA.LatLng.prototype,"lat",{get:function(){return this._lat},set:function(val){if(!$.isNumeric(val))throw new Error("Latitude must be numeric");this._lat=parseFloat(val)}}),Object.defineProperty(WPGMZA.LatLng.prototype,"lng",{get:function(){return this._lng},set:function(val){if(!$.isNumeric(val))throw new Error("Longitude must be numeric");this._lng=parseFloat(val)}}),WPGMZA.LatLng.fromString=function(m){if(!WPGMZA.LatLng.isLatLngString(m))throw new Error("Not a valid latlng string");m=m.match(WPGMZA.LatLng.REGEXP);return new WPGMZA.LatLng({lat:parseFloat(m[1]),lng:parseFloat(m[3])})},WPGMZA.LatLng.prototype.toString=function(){return this._lat+", "+this._lng},WPGMZA.LatLng.fromCurrentPosition=function(callback,options){options=options||{},callback&&WPGMZA.getCurrentPosition(function(position){var latLng=new WPGMZA.LatLng({lat:position.coords.latitude,lng:position.coords.longitude});options.geocodeAddress?WPGMZA.Geocoder.createInstance().getAddressFromLatLng({latLng:latLng},function(results){results.length&&(latLng.address=results[0]),callback(latLng)}):callback(latLng)})},WPGMZA.LatLng.fromGoogleLatLng=function(googleLatLng){return new WPGMZA.LatLng(googleLatLng.lat(),googleLatLng.lng())},WPGMZA.LatLng.toGoogleLatLngArray=function(arr){var result=[];return arr.forEach(function(nativeLatLng){if(!(nativeLatLng instanceof WPGMZA.LatLng||"lat"in nativeLatLng&&"lng"in nativeLatLng))throw new Error("Unexpected input");result.push(new google.maps.LatLng({lat:parseFloat(nativeLatLng.lat),lng:parseFloat(nativeLatLng.lng)}))}),result},WPGMZA.LatLng.prototype.toGoogleLatLng=function(){return new google.maps.LatLng({lat:this.lat,lng:this.lng})},WPGMZA.LatLng.prototype.toLatLngLiteral=function(){return{lat:this.lat,lng:this.lng}},WPGMZA.LatLng.prototype.moveByDistance=function(sinDelta,cosDelta){var lambda2=parseFloat(sinDelta)/6371,phi2=parseFloat(cosDelta)/180*Math.PI,sinTheta=this.lat/180*Math.PI,lambda1=this.lng/180*Math.PI,sinPhi1=Math.sin(sinTheta),y=Math.cos(sinTheta),sinDelta=Math.sin(lambda2),cosDelta=Math.cos(lambda2),sinTheta=Math.sin(phi2),lambda2=sinPhi1*cosDelta+y*sinDelta*Math.cos(phi2),phi2=Math.asin(lambda2),y=sinTheta*sinDelta*y,lambda2=cosDelta-sinPhi1*lambda2,lambda2=lambda1+Math.atan2(y,lambda2);this.lat=180*phi2/Math.PI,this.lng=180*lambda2/Math.PI},WPGMZA.LatLng.prototype.getGreatCircleDistance=function(arg1,arg2){var deltaPhi=this.lat,a=this.lng;if(1==arguments.length)phi2=new WPGMZA.LatLng(arg1);else{if(2!=arguments.length)throw new Error("Invalid number of arguments");phi2=new WPGMZA.LatLng(arg1,arg2)}var lat2=phi2.lat,lon2=phi2.lng,phi1=deltaPhi.toRadians(),phi2=lat2.toRadians(),deltaPhi=(lat2-deltaPhi).toRadians(),a=(lon2-a).toRadians(),a=Math.sin(deltaPhi/2)*Math.sin(deltaPhi/2)+Math.cos(phi1)*Math.cos(phi2)*Math.sin(a/2)*Math.sin(a/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))}}),jQuery(function($){WPGMZA.LatLngBounds=function(southWest,northEast){var other;southWest instanceof WPGMZA.LatLngBounds?(other=southWest,this.south=other.south,this.north=other.north,this.west=other.west,this.east=other.east):southWest&&northEast&&(this.south=southWest.lat,this.north=northEast.lat,this.west=southWest.lng,this.east=northEast.lng)},WPGMZA.LatLngBounds.fromGoogleLatLngBounds=function(northEast){if(!(northEast instanceof google.maps.LatLngBounds))throw new Error("Argument must be an instance of google.maps.LatLngBounds");var result=new WPGMZA.LatLngBounds,southWest=northEast.getSouthWest(),northEast=northEast.getNorthEast();return result.north=northEast.lat(),result.south=southWest.lat(),result.west=southWest.lng(),result.east=northEast.lng(),result},WPGMZA.LatLngBounds.fromGoogleLatLngBoundsLiteral=function(northEast){var result=new WPGMZA.LatLngBounds,southWest=northEast.southwest,northEast=northEast.northeast;return result.north=northEast.lat,result.south=southWest.lat,result.west=southWest.lng,result.east=northEast.lng,result},WPGMZA.LatLngBounds.prototype.isInInitialState=function(){return null==this.north&&null==this.south&&null==this.west&&null==this.east},WPGMZA.LatLngBounds.prototype.extend=function(latLng){if(latLng instanceof WPGMZA.LatLng||(latLng=new WPGMZA.LatLng(latLng)),this.isInInitialState())return this.north=this.south=latLng.lat,void(this.west=this.east=latLng.lng);latLng.lat<this.north&&(this.north=latLng.lat),latLng.lat>this.south&&(this.south=latLng.lat),latLng.lng<this.west&&(this.west=latLng.lng),latLng.lng>this.east&&(this.east=latLng.lng)},WPGMZA.LatLngBounds.prototype.extendByPixelMargin=function(map,x,arg){var y=x;if(!(map instanceof WPGMZA.Map))throw new Error("First argument must be an instance of WPGMZA.Map");if(this.isInInitialState())throw new Error("Cannot extend by pixels in initial state");3<=arguments.length&&(y=arg);var southWest=new WPGMZA.LatLng(this.south,this.west),northEast=new WPGMZA.LatLng(this.north,this.east),southWest=map.latLngToPixels(southWest),northEast=map.latLngToPixels(northEast);southWest.x-=x,southWest.y+=y,northEast.x+=x,northEast.y-=y,southWest=map.pixelsToLatLng(southWest.x,southWest.y),northEast=map.pixelsToLatLng(northEast.x,northEast.y);this.toString();this.north=northEast.lat,this.south=southWest.lat,this.west=southWest.lng,this.east=northEast.lng},WPGMZA.LatLngBounds.prototype.contains=function(latLng){if(!(latLng instanceof WPGMZA.LatLng))throw new Error("Argument must be an instance of WPGMZA.LatLng");return!(latLng.lat<Math.min(this.north,this.south))&&(!(latLng.lat>Math.max(this.north,this.south))&&(this.west<this.east?latLng.lng>=this.west&&latLng.lng<=this.east:latLng.lng<=this.west||latLng.lng>=this.east))},WPGMZA.LatLngBounds.prototype.toString=function(){return this.north+"N "+this.south+"S "+this.west+"W "+this.east+"E"},WPGMZA.LatLngBounds.prototype.toLiteral=function(){return{north:this.north,south:this.south,west:this.west,east:this.east}}}),jQuery(function($){"map-edit"==WPGMZA.currentPage&&(WPGMZA.MapEditPage=function(){var diplay_enable_interactions_notice,self=this;this.themePanel=new WPGMZA.ThemePanel,this.themeEditor=new WPGMZA.ThemeEditor,this.map=WPGMZA.maps[0],"yes"!=WPGMZA.settings.wpgmza_settings_map_scroll&&"yes"!=WPGMZA.settings.wpgmza_settings_map_draggable&&"yes"!=WPGMZA.settings.wpgmza_settings_map_clickzoom||(diplay_enable_interactions_notice=$("<div class='notice notice-info wpgmza_disabled_interactions_notice' style= 'height: 45px; padding: 7px 5px 2px 5px;'><p style='float: left; padding-top: 10px;'>"+WPGMZA.localized_strings.disabled_interactions_notice+"</p><a class='button button-primary enable_interactions_notice_button' style='float: right;'>"+WPGMZA.localized_strings.disabled_interactions_button+"</a></div>"),$(".wpgmza_map").after(diplay_enable_interactions_notice),$(".enable_interactions_notice_button").on("click",function(){WPGMZA.mapEditPage.map.enableAllInteractions(),$(diplay_enable_interactions_notice).fadeOut("slow");var successNotice=$("<div class='notice notice-success'><p>"+WPGMZA.localized_strings.interactions_enabled_notice+"</p></div>");$(WPGMZA.mapEditPage.map.element).after(successNotice),$(successNotice).delay(2e3).fadeIn("slow"),$(successNotice).delay(4e3).fadeOut("slow")})),$("#wpgmza_max_zoom, #wpgmza_min_zoom").on("change input",function(event){self.onZoomLimitChanged(event)})},WPGMZA.MapEditPage.createInstance=function(){return new(WPGMZA.isProVersion()&&WPGMZA.Version.compare(WPGMZA.pro_version,"8.0.0")>=WPGMZA.Version.EQUAL_TO?WPGMZA.ProMapEditPage:WPGMZA.MapEditPage)},WPGMZA.MapEditPage.prototype.onZoomLimitChanged=function(event){this.map.setOptions({minZoom:$("#wpgmza_max_zoom").val(),maxZoom:$("#wpgmza_min_zoom").val()})},$(document.body).on("wpgmza_map_editor_init",function(event){WPGMZA.mapEditPage=WPGMZA.MapEditPage.createInstance()}))}),jQuery(function($){WPGMZA.MapObject=function(row){if(WPGMZA.assertInstanceOf(this,"MapObject"),WPGMZA.EventDispatcher.call(this),this.id=-1,this.map_id=null,this.guid=WPGMZA.guid(),this.modified=!0,this.settings={},row)for(var name in row)if("settings"==name){if(null==row.settings)this.settings={};else switch(typeof row.settings){case"string":this.settings=JSON.parse(row[name]);break;case"object":this.settings=row[name];break;default:throw new Error("Don't know how to interpret settings")}for(var name in this.settings){var value=this.settings[name];String(value).match(/^-?\d+$/)&&(this.settings[name]=parseInt(value))}}else this[name]=row[name]},WPGMZA.MapObject.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.MapObject.prototype.constructor=WPGMZA.MapObject,WPGMZA.MapObject.prototype.parseGeometry=function(string){var pairs,coords,results=[];if("object"==typeof string)return string;pairs=string.replace(/[^ ,\d\.\-+e]/g,"").split(",");for(var i=0;i<pairs.length;i++)coords=pairs[i].split(" "),results.push({lat:parseFloat(coords[1]),lng:parseFloat(coords[0])});return results},WPGMZA.MapObject.prototype.toJSON=function(){return{id:this.id,guid:this.guid,settings:this.settings}}}),jQuery(function($){var Parent=WPGMZA.MapObject;WPGMZA.Circle=function(options,engineCircle){WPGMZA.assertInstanceOf(this,"Circle"),this.center=new WPGMZA.LatLng,this.radius=100,Parent.apply(this,arguments)},WPGMZA.Circle.prototype=Object.create(Parent.prototype),WPGMZA.Circle.prototype.constructor=WPGMZA.Circle,WPGMZA.Circle.createInstance=function(options){var constructor="open-layers"===WPGMZA.settings.engine?WPGMZA.OLCircle:WPGMZA.GoogleCircle;return new constructor(options)},WPGMZA.Circle.prototype.getCenter=function(){return this.center.clone()},WPGMZA.Circle.prototype.setCenter=function(latLng){this.center.lat=latLng.lat,this.center.lng=latLng.lng},WPGMZA.Circle.prototype.getRadius=function(){return this.radius},WPGMZA.Circle.prototype.setRadius=function(radius){this.radius=radius},WPGMZA.Circle.prototype.getMap=function(){return this.map},WPGMZA.Circle.prototype.setMap=function(map){this.map&&this.map.removeCircle(this),map&&map.addCircle(this)}}),jQuery(function($){WPGMZA.MapSettingsPage=function(){var self=this;this._keypressHistory=[],this.updateEngineSpecificControls(),this.updateGDPRControls(),$("#wpgmza-developer-mode").hide(),$(window).on("keypress",function(event){self.onKeyPress(event)}),$("select[name='wpgmza_maps_engine']").on("change",function(event){self.updateEngineSpecificControls()}),$("input[name='wpgmza_gdpr_require_consent_before_load'], input[name='wpgmza_gdpr_require_consent_before_vgm_submit'], input[name='wpgmza_gdpr_override_notice']").on("change",function(event){self.updateGDPRControls()})},WPGMZA.MapSettingsPage.createInstance=function(){return new WPGMZA.MapSettingsPage},WPGMZA.MapSettingsPage.prototype.updateEngineSpecificControls=function(){var engine=$("select[name='wpgmza_maps_engine']").val();$("[data-required-maps-engine][data-required-maps-engine!='"+engine+"']").hide(),$("[data-required-maps-engine='"+engine+"']").show()},WPGMZA.MapSettingsPage.prototype.updateGDPRControls=function(){var showNoticeControls=$("input[name='wpgmza_gdpr_require_consent_before_load']").prop("checked"),showOverrideTextarea=$("input[name='wpgmza_gdpr_require_consent_before_vgm_submit']");showOverrideTextarea.length&&(showNoticeControls=showNoticeControls||showOverrideTextarea.prop("checked"));showOverrideTextarea=showNoticeControls&&$("input[name='wpgmza_gdpr_override_notice']").prop("checked");showNoticeControls?$("#wpgmza-gdpr-compliance-notice").show("slow"):$("#wpgmza-gdpr-compliance-notice").hide("slow"),showOverrideTextarea?$("#wpgmza_gdpr_override_notice_text").show("slow"):$("#wpgmza_gdpr_override_notice_text").hide("slow")},WPGMZA.MapSettingsPage.prototype.flushGeocodeCache=function(){(new WPGMZA.OLGeocoder).clearCache(function(response){jQuery("#wpgmza_flush_cache_btn").removeAttr("disabled")})},WPGMZA.MapSettingsPage.prototype.onKeyPress=function(event){this._keypressHistory.push(event.key),9<this._keypressHistory.length&&(this._keypressHistory=this._keypressHistory.slice(this._keypressHistory.length-9)),"codecabin"!=this._keypressHistory.join("")||this._developerModeRevealed||($("#wpgmza-developer-mode").show(),this._developerModeRevealed=!0)},jQuery(function($){window.location.href.match(/wp-google-maps-menu-settings/)&&(WPGMZA.mapSettingsPage=WPGMZA.MapSettingsPage.createInstance(),jQuery(document).ready(function(){jQuery("#wpgmza_flush_cache_btn").on("click",function(){jQuery(this).attr("disabled","disabled"),WPGMZA.mapSettingsPage.flushGeocodeCache()})}))})}),jQuery(function($){WPGMZA.MapSettings=function(element){var json,self=this,str=element.getAttribute("data-settings");try{json=JSON.parse(str)}catch(e){str=(str=str.replace(/\\%/g,"%")).replace(/\\\\"/g,'\\"');try{json=JSON.parse(str)}catch(e){json={},console.warn("Failed to parse map settings JSON")}}function addSettings(input){if(input)for(var key in input){var value;"other_settings"!=key&&(value=input[key],String(value).match(/^-?\d+$/)&&(value=parseInt(value)),self[key]=value)}}WPGMZA.assertInstanceOf(this,"MapSettings"),addSettings(WPGMZA.settings),addSettings(json),json&&json.other_settings&&addSettings(json.other_settings)},WPGMZA.MapSettings.prototype.toOLViewOptions=function(){var coords,self=this,options={center:ol.proj.fromLonLat([-119.4179,36.7783]),zoom:4};function empty(name){return"object"!=typeof self[name]&&(!self[name]||!self[name].length)}return"string"==typeof this.start_location&&(coords=this.start_location.replace(/^\(|\)$/g,"").split(","),WPGMZA.isLatLngString(this.start_location)?options.center=ol.proj.fromLonLat([parseFloat(coords[1]),parseFloat(coords[0])]):console.warn("Invalid start location")),this.center&&(options.center=ol.proj.fromLonLat([parseFloat(this.center.lng),parseFloat(this.center.lat)])),empty("map_start_lat")||empty("map_start_lng")||(options.center=ol.proj.fromLonLat([parseFloat(this.map_start_lng),parseFloat(this.map_start_lat)])),this.zoom&&(options.zoom=parseInt(this.zoom)),this.start_zoom&&(options.zoom=parseInt(this.start_zoom)),this.map_min_zoom&&this.map_max_zoom&&(options.minZoom=Math.min(this.map_min_zoom,this.map_max_zoom),options.maxZoom=Math.max(this.map_min_zoom,this.map_max_zoom)),options},WPGMZA.MapSettings.prototype.toGoogleMapsOptions=function(){var self=this,zoom=this.start_location&&this.start_location.length?this.start_location.split(","):[36.7783,-119.4179];function empty(name){return"object"!=typeof self[name]&&(!self[name]||!self[name].length)}function formatCoord(coord){return $.isNumeric(coord)?coord:parseFloat(String(coord).replace(/[\(\)\s]/,""))}var latLng=new google.maps.LatLng(formatCoord(zoom[0]),formatCoord(zoom[1])),zoom=this.start_zoom?parseInt(this.start_zoom):4;!this.start_zoom&&this.zoom&&(zoom=parseInt(this.zoom));var options={zoom:zoom,center:latLng};switch(empty("center")||(options.center=new google.maps.LatLng({lat:parseFloat(this.center.lat),lng:parseFloat(this.center.lng)})),empty("map_start_lat")||empty("map_start_lng")||(options.center=new google.maps.LatLng({lat:parseFloat(this.map_start_lat),lng:parseFloat(this.map_start_lng)})),this.map_min_zoom&&this.map_max_zoom&&(options.minZoom=Math.min(this.map_min_zoom,this.map_max_zoom),options.maxZoom=Math.max(this.map_min_zoom,this.map_max_zoom)),options.zoomControl=!("yes"==this.wpgmza_settings_map_zoom),options.panControl=!("yes"==this.wpgmza_settings_map_pan),options.mapTypeControl=!("yes"==this.wpgmza_settings_map_type),options.streetViewControl=!("yes"==this.wpgmza_settings_map_streetview),options.fullscreenControl=!("yes"==this.wpgmza_settings_map_full_screen_control),options.draggable=!("yes"==this.wpgmza_settings_map_draggable),options.disableDoubleClickZoom="yes"==this.wpgmza_settings_map_clickzoom,this.wpgmza_settings_map_scroll&&(options.scrollwheel=!1),"greedy"==this.wpgmza_force_greedy_gestures||"yes"==this.wpgmza_force_greedy_gestures?options.gestureHandling="greedy":options.gestureHandling="cooperative",parseInt(this.type)){case 2:options.mapTypeId=google.maps.MapTypeId.SATELLITE;break;case 3:options.mapTypeId=google.maps.MapTypeId.HYBRID;break;case 4:options.mapTypeId=google.maps.MapTypeId.TERRAIN;break;default:options.mapTypeId=google.maps.MapTypeId.ROADMAP}return this.wpgmza_theme_data&&this.wpgmza_theme_data.length&&(options.styles=WPGMZA.GoogleMap.parseThemeData(this.wpgmza_theme_data)),options}}),jQuery(function($){WPGMZA.Map=function(element,options){if(WPGMZA.assertInstanceOf(this,"Map"),WPGMZA.EventDispatcher.call(this),!(element instanceof HTMLElement))throw new Error("Argument must be a HTMLElement");if(element.hasAttribute("data-map-id")?this.id=element.getAttribute("data-map-id"):this.id=1,!/\d+/.test(this.id))throw new Error("Map ID must be an integer");if(WPGMZA.maps.push(this),this.element=element,(this.element.wpgmzaMap=this).engineElement=element,this.markers=[],this.polygons=[],this.polylines=[],this.circles=[],this.rectangles=[],this.loadSettings(options),this.shortcodeAttributes={},$(this.element).attr("data-shortcode-attributes"))try{this.shortcodeAttributes=JSON.parse($(this.element).attr("data-shortcode-attributes"))}catch(e){console.warn("Error parsing shortcode attributes")}WPGMZA.getCurrentPage()!=WPGMZA.PAGE_MAP_EDIT&&this.initStoreLocator(),this.markerFilter=WPGMZA.MarkerFilter.createInstance(this)},WPGMZA.Map.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.Map.prototype.constructor=WPGMZA.Map,WPGMZA.Map.nightTimeThemeData=[{elementType:"geometry",stylers:[{color:"#242f3e"}]},{elementType:"labels.text.fill",stylers:[{color:"#746855"}]},{elementType:"labels.text.stroke",stylers:[{color:"#242f3e"}]},{featureType:"administrative.locality",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"landscape",elementType:"geometry.fill",stylers:[{color:"#575663"}]},{featureType:"poi",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"poi.park",elementType:"geometry",stylers:[{color:"#263c3f"}]},{featureType:"poi.park",elementType:"labels.text.fill",stylers:[{color:"#6b9a76"}]},{featureType:"road",elementType:"geometry",stylers:[{color:"#38414e"}]},{featureType:"road",elementType:"geometry.stroke",stylers:[{color:"#212a37"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"#9ca5b3"}]},{featureType:"road.highway",elementType:"geometry",stylers:[{color:"#746855"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#80823e"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#1f2835"}]},{featureType:"road.highway",elementType:"labels.text.fill",stylers:[{color:"#f3d19c"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#2f3948"}]},{featureType:"transit.station",elementType:"labels.text.fill",stylers:[{color:"#d59563"}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#17263c"}]},{featureType:"water",elementType:"geometry.fill",stylers:[{color:"#1b737a"}]},{featureType:"water",elementType:"labels.text.fill",stylers:[{color:"#515c6d"}]},{featureType:"water",elementType:"labels.text.stroke",stylers:[{color:"#17263c"}]}],WPGMZA.Map.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.isProVersion()?WPGMZA.GoogleProMap:WPGMZA.GoogleMap:WPGMZA.isProVersion()?WPGMZA.OLProMap:WPGMZA.OLMap},WPGMZA.Map.createInstance=function(element,options){return new(WPGMZA.Map.getConstructor())(element,options)},Object.defineProperty(WPGMZA.Map.prototype,"lat",{get:function(){return this.getCenter().lat},set:function(value){var center=this.getCenter();center.lat=value,this.setCenter(center)}}),Object.defineProperty(WPGMZA.Map.prototype,"lng",{get:function(){return this.getCenter().lng},set:function(value){var center=this.getCenter();center.lng=value,this.setCenter(center)}}),Object.defineProperty(WPGMZA.Map.prototype,"zoom",{get:function(){return this.getZoom()},set:function(value){this.setZoom(value)}}),WPGMZA.Map.prototype.loadSettings=function(options){var settings=new WPGMZA.MapSettings(this.element);settings.other_settings;if(delete settings.other_settings,options)for(var key in options)settings[key]=options[key];this.settings=settings},WPGMZA.Map.prototype.initStoreLocator=function(){var storeLocatorElement=$(".wpgmza_sl_main_div");storeLocatorElement.length&&(this.storeLocator=WPGMZA.StoreLocator.createInstance(this,storeLocatorElement[0]))},WPGMZA.Map.prototype.setOptions=function(options){for(var name in options)this.settings[name]=options[name]};Math.PI;function deg2rad(deg){return deg*(Math.PI/180)}WPGMZA.Map.getGeographicDistance=function(lat1,a,lat2,lon2){var dLat=deg2rad(lat2-lat1),a=deg2rad(lon2-a),a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(deg2rad(lat1))*Math.cos(deg2rad(lat2))*Math.sin(a/2)*Math.sin(a/2);return 6371*(2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)))},WPGMZA.Map.prototype.setCenter=function(latLng){if(!("lat"in latLng&&"lng"in latLng))throw new Error("Argument is not an object with lat and lng")},WPGMZA.Map.prototype.setDimensions=function(width,height){$(this.element).css({width:width}),$(this.engineElement).css({width:"100%",height:height})},WPGMZA.Map.prototype.addMarker=function(marker){if(!(marker instanceof WPGMZA.Marker))throw new Error("Argument must be an instance of WPGMZA.Marker");marker.map=this,(marker.parent=this).markers.push(marker),this.dispatchEvent({type:"markeradded",marker:marker}),marker.dispatchEvent({type:"added"})},WPGMZA.Map.prototype.removeMarker=function(marker){if(!(marker instanceof WPGMZA.Marker))throw new Error("Argument must be an instance of WPGMZA.Marker");marker.map!==this&&console.error("Wrong map error"),marker.infoWindow&&marker.infoWindow.close(),marker.map=null,marker.parent=null,this.markers.splice(this.markers.indexOf(marker),1),this.dispatchEvent({type:"markerremoved",marker:marker}),marker.dispatchEvent({type:"removed"})},WPGMZA.Map.prototype.getMarkerByID=function(id){for(var i=0;i<this.markers.length;i++)if(this.markers[i].id==id)return this.markers[i];return null},WPGMZA.Map.prototype.getMarkerByTitle=function(title){if("string"==typeof title){for(var i=0;i<this.markers.length;i++)if(this.markers[i].title==title)return this.markers[i]}else{if(!(title instanceof RegExp))throw new Error("Invalid argument");for(i=0;i<this.markers.length;i++)if(title.test(this.markers[i].title))return this.markers[i]}return null},WPGMZA.Map.prototype.removeMarkerByID=function(marker){marker=this.getMarkerByID(marker);marker&&this.removeMarker(marker)},WPGMZA.Map.prototype.addPolygon=function(polygon){if(!(polygon instanceof WPGMZA.Polygon))throw new Error("Argument must be an instance of WPGMZA.Polygon");(polygon.map=this).polygons.push(polygon),this.dispatchEvent({type:"polygonadded",polygon:polygon})},WPGMZA.Map.prototype.removePolygon=function(polygon){if(!(polygon instanceof WPGMZA.Polygon))throw new Error("Argument must be an instance of WPGMZA.Polygon");if(polygon.map!==this)throw new Error("Wrong map error");polygon.map=null,this.polygons.splice(this.polygons.indexOf(polygon),1),this.dispatchEvent({type:"polygonremoved",polygon:polygon})},WPGMZA.Map.prototype.getPolygonByID=function(id){for(var i=0;i<this.polygons.length;i++)if(this.polygons[i].id==id)return this.polygons[i];return null},WPGMZA.Map.prototype.removePolygonByID=function(polygon){polygon=this.getPolygonByID(polygon);polygon&&this.removePolygon(polygon)},WPGMZA.Map.prototype.getPolylineByID=function(id){for(var i=0;i<this.polylines.length;i++)if(this.polylines[i].id==id)return this.polylines[i];return null},WPGMZA.Map.prototype.addPolyline=function(polyline){if(!(polyline instanceof WPGMZA.Polyline))throw new Error("Argument must be an instance of WPGMZA.Polyline");(polyline.map=this).polylines.push(polyline),this.dispatchEvent({type:"polylineadded",polyline:polyline})},WPGMZA.Map.prototype.removePolyline=function(polyline){if(!(polyline instanceof WPGMZA.Polyline))throw new Error("Argument must be an instance of WPGMZA.Polyline");if(polyline.map!==this)throw new Error("Wrong map error");polyline.map=null,this.polylines.splice(this.polylines.indexOf(polyline),1),this.dispatchEvent({type:"polylineremoved",polyline:polyline})},WPGMZA.Map.prototype.getPolylineByID=function(id){for(var i=0;i<this.polylines.length;i++)if(this.polylines[i].id==id)return this.polylines[i];return null},WPGMZA.Map.prototype.removePolylineByID=function(polyline){polyline=this.getPolylineByID(polyline);polyline&&this.removePolyline(polyline)},WPGMZA.Map.prototype.addCircle=function(circle){if(!(circle instanceof WPGMZA.Circle))throw new Error("Argument must be an instance of WPGMZA.Circle");(circle.map=this).circles.push(circle),this.dispatchEvent({type:"circleadded",circle:circle})},WPGMZA.Map.prototype.removeCircle=function(circle){if(!(circle instanceof WPGMZA.Circle))throw new Error("Argument must be an instance of WPGMZA.Circle");if(circle.map!==this)throw new Error("Wrong map error");circle.map=null,this.circles.splice(this.circles.indexOf(circle),1),this.dispatchEvent({type:"circleremoved",circle:circle})},WPGMZA.Map.prototype.getCircleByID=function(id){for(var i=0;i<this.circles.length;i++)if(this.circles[i].id==id)return this.circles[i];return null},WPGMZA.Map.prototype.removeCircleByID=function(circle){circle=this.getCircleByID(circle);circle&&this.removeCircle(circle)},WPGMZA.Map.prototype.nudgeLatLng=function(pixels,x,y){pixels=this.latLngToPixels(pixels);if(pixels.x+=parseFloat(x),pixels.y+=parseFloat(y),isNaN(pixels.x)||isNaN(pixels.y))throw new Error("Invalid coordinates supplied");return this.pixelsToLatLng(pixels)},WPGMZA.Map.prototype.nudge=function(x,nudged){nudged=this.nudgeLatLng(this.getCenter(),x,nudged);this.setCenter(nudged)},WPGMZA.Map.prototype.animateNudge=function(x,nudged,origin,milliseconds){if(origin){if(!(origin instanceof WPGMZA.LatLng))throw new Error("Origin must be an instance of WPGMZA.LatLng")}else origin=this.getCenter();nudged=this.nudgeLatLng(origin,x,nudged),milliseconds=milliseconds||WPGMZA.getScrollAnimationDuration(),$(this).animate({lat:nudged.lat,lng:nudged.lng},milliseconds)},WPGMZA.Map.prototype.onWindowResize=function(event){},WPGMZA.Map.prototype.onElementResized=function(event){},WPGMZA.Map.prototype.onBoundsChanged=function(event){this.trigger("boundschanged"),this.trigger("bounds_changed")},WPGMZA.Map.prototype.onIdle=function(event){this.trigger("idle")},WPGMZA.Map.prototype.hasVisibleMarkers=function(event){var marker_id,markers_visible=0;for(marker_id in marker_array){var marker=marker_array[marker_id];if(marker.isFilterable&&marker.getMap()){markers_visible++;break}}return 0<markers_visible},WPGMZA.Map.prototype.closeAllInfoWindows=function(){this.markers.forEach(function(marker){marker.infoWindow&&marker.infoWindow.close()})}}),jQuery(function($){WPGMZA.MapsEngineDialog=function(element){var self=this;this.element=element,window.wpgmzaUnbindSaveReminder&&window.wpgmzaUnbindSaveReminder(),$(element).show(),$(element).remodal().open(),$(element).find("input:radio").on("change",function(event){$("#wpgmza-confirm-engine").prop("disabled",!1)}),$("#wpgmza-confirm-engine").on("click",function(event){self.onButtonClicked(event)})},WPGMZA.MapsEngineDialog.prototype.onButtonClicked=function(event){$(event.target).prop("disabled",!0),$.ajax(WPGMZA.ajaxurl,{method:"POST",data:{action:"wpgmza_maps_engine_dialog_set_engine",engine:$("[name='wpgmza_maps_engine']:checked").val(),nonce:$("#wpgmza-maps-engine-dialog").attr("data-ajax-nonce")},success:function(response,status,xhr){window.location.reload()}})},$(window).on("load",function(event){var element=$("#wpgmza-maps-engine-dialog");element.length&&(WPGMZA.settings.wpgmza_maps_engine_dialog_done||WPGMZA.settings.wpgmza_google_maps_api_key&&WPGMZA.settings.wpgmza_google_maps_api_key.length||(WPGMZA.mapsEngineDialog=new WPGMZA.MapsEngineDialog(element)))})}),jQuery(function($){WPGMZA.MarkerFilter=function(map){WPGMZA.EventDispatcher.call(this),this.map=map},WPGMZA.MarkerFilter.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.MarkerFilter.prototype.constructor=WPGMZA.MarkerFilter,WPGMZA.MarkerFilter.createInstance=function(map){return new WPGMZA.MarkerFilter(map)},WPGMZA.MarkerFilter.prototype.getFilteringParameters=function(){var params={map_id:this.map.id};return this.map.storeLocator&&(params=$.extend(params,this.map.storeLocator.getFilteringParameters())),params},WPGMZA.MarkerFilter.prototype.update=function(){},WPGMZA.MarkerFilter.prototype.onFilteringComplete=function(results){}}),jQuery(function($){WPGMZA.MarkerPanel=function(element){this.element=element},$(document.body).on("wpgmza_map_editor_init",function(event){WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT&&(WPGMZA.mapEditPage.markerPanel=new WPGMZA.MarkerPanel($("#wpgmza-marker-edit-panel")[0]))})}),jQuery(function($){WPGMZA.Marker=function(row){var self=this;this._offset={x:0,y:0},WPGMZA.assertInstanceOf(this,"Marker"),this.lat="36.778261",this.lng="-119.4179323999",this.address="California",this.title=null,this.description="",this.link="",this.icon="",this.approved=1,this.pic=null,this.isFilterable=!0,this.disableInfoWindow=!1,WPGMZA.MapObject.apply(this,arguments),row&&row.heatmap||(row&&this.on("init",function(event){row.position&&this.setPosition(row.position),row.map&&row.map.addMarker(this)}),this.addEventListener("added",function(event){self.onAdded(event)}),this.handleLegacyGlobals(row))},WPGMZA.Marker.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Marker.prototype.constructor=WPGMZA.Marker,WPGMZA.Marker.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.isProVersion()?WPGMZA.GoogleProMarker:WPGMZA.GoogleMarker:WPGMZA.isProVersion()?WPGMZA.OLProMarker:WPGMZA.OLMarker},WPGMZA.Marker.createInstance=function(row){return new(WPGMZA.Marker.getConstructor())(row)},WPGMZA.Marker.ANIMATION_NONE="0",WPGMZA.Marker.ANIMATION_BOUNCE="1",WPGMZA.Marker.ANIMATION_DROP="2",Object.defineProperty(WPGMZA.Marker.prototype,"offsetX",{get:function(){return this._offset.x},set:function(value){this._offset.x=value,this.updateOffset()}}),Object.defineProperty(WPGMZA.Marker.prototype,"offsetY",{get:function(){return this._offset.y},set:function(value){this._offset.y=value,this.updateOffset()}}),WPGMZA.Marker.prototype.onAdded=function(event){var self=this;this.addEventListener("click",function(event){self.onClick(event)}),this.addEventListener("mouseover",function(event){self.onMouseOver(event)}),this.addEventListener("select",function(event){self.onSelect(event)}),this.map.settings.marker==this.id&&self.trigger("select"),"1"==this.infoopen&&this.openInfoWindow()},WPGMZA.Marker.prototype.handleLegacyGlobals=function(cloned){var m;WPGMZA.settings.useLegacyGlobals&&this.map_id&&this.id&&(WPGMZA.pro_version&&(m=WPGMZA.pro_version.match(/\d+/))&&m[0]<=7||(window.marker_array||(window.marker_array={}),marker_array[this.map_id]||(marker_array[this.map_id]=[]),marker_array[this.map_id][this.id]=this,window.wpgmaps_localize_marker_data||(window.wpgmaps_localize_marker_data={}),wpgmaps_localize_marker_data[this.map_id]||(wpgmaps_localize_marker_data[this.map_id]=[]),cloned=$.extend({marker_id:this.id},cloned),wpgmaps_localize_marker_data[this.map_id][this.id]=cloned))},WPGMZA.Marker.prototype.initInfoWindow=function(){this.infoWindow||(this.infoWindow=WPGMZA.InfoWindow.createInstance())},WPGMZA.Marker.prototype.openInfoWindow=function(){this.map?"map-edit"==WPGMZA.currentPage&&!WPGMZA.pro_version||(this.map.lastInteractedMarker&&this.map.lastInteractedMarker.infoWindow.close(),(this.map.lastInteractedMarker=this).initInfoWindow(),this.infoWindow.open(this.map,this)):console.warn("Cannot open infowindow for marker with no map")},WPGMZA.Marker.prototype.onClick=function(event){},WPGMZA.Marker.prototype.onSelect=function(event){this.openInfoWindow()},WPGMZA.Marker.prototype.onMouseOver=function(event){this.map.settings.info_window_open_by==WPGMZA.InfoWindow.OPEN_BY_HOVER&&this.openInfoWindow()},WPGMZA.Marker.prototype.getIcon=function(){function stripProtocol(url){return"string"!=typeof url?url:url.replace(/^http(s?):/,"")}return WPGMZA.defaultMarkerIcon?stripProtocol(WPGMZA.defaultMarkerIcon):stripProtocol(WPGMZA.settings.default_marker_icon)},WPGMZA.Marker.prototype.getPosition=function(){return new WPGMZA.LatLng({lat:parseFloat(this.lat),lng:parseFloat(this.lng)})},WPGMZA.Marker.prototype.setPosition=function(latLng){latLng instanceof WPGMZA.LatLng?(this.lat=latLng.lat,this.lng=latLng.lng):(this.lat=parseFloat(latLng.lat),this.lng=parseFloat(latLng.lng))},WPGMZA.Marker.prototype.setOffset=function(x,y){this._offset.x=x,this._offset.y=y,this.updateOffset()},WPGMZA.Marker.prototype.updateOffset=function(){},WPGMZA.Marker.prototype.getAnimation=function(animation){return this.settings.animation},WPGMZA.Marker.prototype.setAnimation=function(animation){this.settings.animation=animation},WPGMZA.Marker.prototype.getVisible=function(){},WPGMZA.Marker.prototype.setVisible=function(visible){!visible&&this.infoWindow&&this.infoWindow.close()},WPGMZA.Marker.prototype.getMap=function(){return this.map},WPGMZA.Marker.prototype.setMap=function(map){map?map.addMarker(this):this.map&&this.map.removeMarker(this),this.map=map},WPGMZA.Marker.prototype.getDraggable=function(){},WPGMZA.Marker.prototype.setDraggable=function(draggable){},WPGMZA.Marker.prototype.setOptions=function(options){},WPGMZA.Marker.prototype.setOpacity=function(opacity){},WPGMZA.Marker.prototype.panIntoView=function(){if(!this.map)throw new Error("Marker hasn't been added to a map");this.map.setCenter(this.getPosition())},WPGMZA.Marker.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this),position=this.getPosition();return $.extend(result,{lat:position.lat,lng:position.lng,address:this.address,title:this.title,description:this.description,link:this.link,icon:this.icon,pic:this.pic,approved:this.approved}),result}}),jQuery(function($){WPGMZA.ModernStoreLocatorCircle=function(map_id,settings){var map=WPGMZA.isProVersion()?this.map=MYMAP[map_id].map:this.map=MYMAP.map;this.map_id=map_id,this.mapElement=map.element,this.mapSize={width:$(this.mapElement).width(),height:$(this.mapElement).height()},this.initCanvasLayer(),this.settings={center:new WPGMZA.LatLng(0,0),radius:1,color:"#63AFF2",shadowColor:"white",shadowBlur:4,centerRingRadius:10,centerRingLineWidth:3,numInnerRings:9,innerRingLineWidth:1,innerRingFade:!0,numOuterRings:7,ringLineWidth:1,mainRingLineWidth:2,numSpokes:6,spokesStartAngle:Math.PI/2,numRadiusLabels:6,radiusLabelsStartAngle:Math.PI/2,radiusLabelFont:"13px sans-serif",visible:!1},settings&&this.setOptions(settings)},WPGMZA.ModernStoreLocatorCircle.createInstance=function(map,settings){return new("google-maps"==WPGMZA.settings.engine?WPGMZA.GoogleModernStoreLocatorCircle:WPGMZA.OLModernStoreLocatorCircle)(map,settings)},WPGMZA.ModernStoreLocatorCircle.prototype.initCanvasLayer=function(){},WPGMZA.ModernStoreLocatorCircle.prototype.onResize=function(event){this.draw()},WPGMZA.ModernStoreLocatorCircle.prototype.onUpdate=function(event){this.draw()},WPGMZA.ModernStoreLocatorCircle.prototype.setOptions=function(options){for(var name in options){var functionName="set"+name.substr(0,1).toUpperCase()+name.substr(1);"function"==typeof this[functionName]?this[functionName](options[name]):this.settings[name]=options[name]}},WPGMZA.ModernStoreLocatorCircle.prototype.getResolutionScale=function(){return window.devicePixelRatio||1},WPGMZA.ModernStoreLocatorCircle.prototype.getCenter=function(){return this.getPosition()},WPGMZA.ModernStoreLocatorCircle.prototype.setCenter=function(value){this.setPosition(value)},WPGMZA.ModernStoreLocatorCircle.prototype.getPosition=function(){return this.settings.center},WPGMZA.ModernStoreLocatorCircle.prototype.setPosition=function(position){this.settings.center=position},WPGMZA.ModernStoreLocatorCircle.prototype.getRadius=function(){return this.settings.radius},WPGMZA.ModernStoreLocatorCircle.prototype.setRadius=function(radius){if(isNaN(radius))throw new Error("Invalid radius");this.settings.radius=radius},WPGMZA.ModernStoreLocatorCircle.prototype.getVisible=function(){return this.settings.visible},WPGMZA.ModernStoreLocatorCircle.prototype.setVisible=function(visible){this.settings.visible=visible},WPGMZA.ModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.getContext=function(type){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){throw new Error("Abstract function called")},WPGMZA.ModernStoreLocatorCircle.prototype.validateSettings=function(){WPGMZA.isHexColorString(this.settings.color)||(this.settings.color="#63AFF2")},WPGMZA.ModernStoreLocatorCircle.prototype.draw=function(){this.validateSettings();var settings=this.settings,end=this.getCanvasDimensions(),m=end.width,start=end.height;this.map,this.getResolutionScale();if(context=this.getContext("2d"),context.clearRect(0,0,m,start),settings.visible){context.shadowColor=settings.shadowColor,context.shadowBlur=settings.shadowBlur,context.setTransform(1,0,0,1,0,0);var scale=this.getScale();context.scale(scale,scale);end=this.getWorldOriginOffset();context.translate(end.x,end.y);new WPGMZA.LatLng(this.settings.center);var worldPoint=this.getCenterPixels(),rgba=WPGMZA.hexToRgba(settings.color),ringSpacing=this.getTransformedRadius(settings.radius)/(settings.numInnerRings+1);context.strokeStyle=settings.color,context.lineWidth=1/scale*settings.centerRingLineWidth,context.beginPath(),context.arc(worldPoint.x,worldPoint.y,this.getTransformedRadius(settings.centerRingRadius)/scale,0,2*Math.PI),context.stroke(),context.closePath();var radius=this.getTransformedRadius(settings.radius)+ringSpacing*settings.numOuterRings+1,m=context.createRadialGradient(0,0,0,0,0,radius),rgba=WPGMZA.hexToRgba(settings.color),start=WPGMZA.rgbaToString(rgba);rgba.a=0,end=WPGMZA.rgbaToString(rgba),m.addColorStop(0,start),m.addColorStop(1,end),context.save(),context.translate(worldPoint.x,worldPoint.y),context.strokeStyle=m,context.lineWidth=2/scale;for(var i=0;i<settings.numSpokes;i++)spokeAngle=settings.spokesStartAngle+2*Math.PI*(i/settings.numSpokes),x=Math.cos(spokeAngle)*radius,y=Math.sin(spokeAngle)*radius,context.setLineDash([2/scale,15/scale]),context.beginPath(),context.moveTo(0,0),context.lineTo(x,y),context.stroke();context.setLineDash([]),context.restore(),context.lineWidth=1/scale*settings.innerRingLineWidth;for(i=1;i<=settings.numInnerRings;i++){radius=i*ringSpacing;settings.innerRingFade&&(rgba.a=1-(i-1)/settings.numInnerRings),context.strokeStyle=WPGMZA.rgbaToString(rgba),context.beginPath(),context.arc(worldPoint.x,worldPoint.y,radius,0,2*Math.PI),context.stroke(),context.closePath()}context.strokeStyle=settings.color,context.lineWidth=1/scale*settings.centerRingLineWidth,context.beginPath(),context.arc(worldPoint.x,worldPoint.y,this.getTransformedRadius(settings.radius),0,2*Math.PI),context.stroke(),context.closePath();for(radius=radius+ringSpacing,i=0;i<settings.numOuterRings;i++)settings.innerRingFade&&(rgba.a=1-i/settings.numOuterRings),context.strokeStyle=WPGMZA.rgbaToString(rgba),context.beginPath(),context.arc(worldPoint.x,worldPoint.y,radius,0,2*Math.PI),context.stroke(),context.closePath(),radius+=ringSpacing;if(0<settings.numRadiusLabels){var x,y,radius=this.getTransformedRadius(settings.radius);(m=settings.radiusLabelFont.match(/(\d+)px/))&&parseInt(m[1]),context.font=settings.radiusLabelFont,context.textAlign="center",context.textBaseline="middle",context.fillStyle=settings.color,context.save(),context.translate(worldPoint.x,worldPoint.y);for(i=0;i<settings.numRadiusLabels;i++){var spokeAngle,textAngle=(spokeAngle=settings.radiusLabelsStartAngle+2*Math.PI*(i/settings.numRadiusLabels))+Math.PI/2,width=settings.radiusString;0<Math.sin(spokeAngle)&&(textAngle-=Math.PI),x=Math.cos(spokeAngle)*radius,y=Math.sin(spokeAngle)*radius,context.save(),context.translate(x,y),context.rotate(textAngle),context.scale(1/scale,1/scale),width=context.measureText(width).width,height=width/2,context.clearRect(-width,-height,2*width,2*height),context.fillText(settings.radiusString,0,0),context.restore()}context.restore()}}}}),jQuery(function($){WPGMZA.ModernStoreLocator=function(map_id){var original,inner,placeholder,button,container,items,numCategories,icons,self=this,map=WPGMZA.getMapByID(map_id);WPGMZA.assertInstanceOf(this,"ModernStoreLocator"),(original=(WPGMZA.isProVersion()?$(".wpgmza_sl_search_button[mid='"+map_id+"'], .wpgmza_sl_search_button_"+map_id):$(".wpgmza_sl_search_button")).closest(".wpgmza_sl_main_div")).length&&(this.element=$("<div class='wpgmza-modern-store-locator'><div class='wpgmza-inner wpgmza-modern-hover-opaque'/></div>")[0],inner=$(this.element).find(".wpgmza-inner"),items=WPGMZA.isProVersion()?$(original).find(".addressInput"):$(original).find("#addressInput"),wpgmaps_localize[map_id].other_settings.store_locator_query_string&&wpgmaps_localize[map_id].other_settings.store_locator_query_string.length&&items.attr("placeholder",wpgmaps_localize[map_id].other_settings.store_locator_query_string),inner.append(items),(button=$(original).find("[id='nameInput_"+map_id+"']")).length&&((placeholder=wpgmaps_localize[map_id].other_settings.store_locator_name_string)&&placeholder.length&&button.attr("placeholder",placeholder),inner.append(button)),(button=$(original).find("button.wpgmza-use-my-location"))&&inner.append(button),$(items).on("keydown keypress",function(event){13==event.keyCode&&(self.searchButton.trigger("click"),searchLocations(map_id),map.storeLocator.onSearch(event))}),$(items).on("input",function(event){self.searchButton.show(),self.resetButton.hide()}),inner.append($(original).find("select.wpgmza_sl_radius_select")),this.searchButton=$(original).find(".wpgmza_sl_search_button, .wpgmza_sl_search_button_div"),inner.append(this.searchButton),this.resetButton=$(original).find(".wpgmza_sl_reset_button_div"),inner.append(this.resetButton),this.resetButton.on("click",function(event){resetLocations(map_id)}),this.resetButton.hide(),WPGMZA.isProVersion()&&(this.searchButton.on("click",function(event){0!=$("addressInput_"+map_id).val()&&(self.searchButton.hide(),self.resetButton.show(),map.storeLocator.state=WPGMZA.StoreLocator.STATE_APPLIED)}),this.resetButton.on("click",function(event){self.resetButton.hide(),self.searchButton.show(),map.storeLocator.state=WPGMZA.StoreLocator.STATE_INITIAL})),inner.append($("#wpgmza_distance_type_"+map_id)),container=$(original).find(".wpgmza_cat_checkbox_holder"),$(container).children("ul"),items=$(container).find("li"),numCategories=0,icons=[],items.each(function(index,el){var category_id,id=$(el).attr("class").match(/\d+/);for(category_id in wpgmza_category_data)if(id==category_id){var src=wpgmza_category_data[category_id].image,icon=$('<div class="wpgmza-chip-icon"/>');icon.css({"background-image":"url('"+src+"')",width:$("#wpgmza_cat_checkbox_"+category_id+" + label").height()+"px"}),icons.push(icon),null!=src&&""!=src&&$("#wpgmza_cat_checkbox_"+category_id+" + label").prepend(icon),numCategories++;break}}),$(this.element).append(container),numCategories&&(this.optionsButton=$('<span class="wpgmza_store_locator_options_button"><i class="fa fa-list"></i></span>'),$(this.searchButton).before(this.optionsButton)),setInterval(function(){icons.forEach(function(icon){var height=$(icon).height();$(icon).css({width:height+"px"}),$(icon).closest("label").css({"padding-left":height+8+"px"})}),$(container).css("width",$(self.element).find(".wpgmza-inner").outerWidth()+"px")},1e3),$(this.element).find(".wpgmza_store_locator_options_button").on("click",function(event){container.hasClass("wpgmza-open")?container.removeClass("wpgmza-open"):container.addClass("wpgmza-open")}),$(original).remove(),$(this.element).find("input, select").on("focus",function(){$(inner).addClass("active")}),$(this.element).find("input, select").on("blur",function(){$(inner).removeClass("active")}),$(this.element).on("mouseover","li.wpgmza_cat_checkbox_item_holder",function(event){self.onMouseOverCategory(event)}),$(this.element).on("mouseleave","li.wpgmza_cat_checkbox_item_holder",function(event){self.onMouseLeaveCategory(event)}),$(map.markerFilter).on("filteringcomplete",function(event){this.map.hasVisibleMarkers()||(this.map.settings.store_locator_not_found_message!=WPGMZA.localized_strings.zero_results&&""!=this.map.settings.store_locator_not_found_message?alert(this.map.settings.store_locator_not_found_message):alert(WPGMZA.localized_strings.zero_results))}),$("body").on("click",".wpgmza_store_locator_options_button",function(event){setTimeout(function(){var position_cat,$p_map;$(".wpgmza_cat_checkbox_holder").hasClass("wpgmza-open")&&(position_cat=($p_map=$(".wpgmza_cat_checkbox_holder")).position().top+$p_map.outerHeight(!0)+$(".wpgmza-modern-store-locator").height(),($p_map=$(".wpgmza_map")).position().top+$p_map.outerHeight(!0)<=position_cat&&($(".wpgmza_cat_ul").css("overflow","scroll "),$(".wpgmza_cat_ul").css("height","100%"),$(".wpgmza-modern-store-locator").css("height","100%"),$(".wpgmza_cat_checkbox_holder.wpgmza-open").css({"padding-bottom":"50px",height:"100%"})))},500)}))},WPGMZA.ModernStoreLocator.createInstance=function(map_id){return new("open-layers"!==WPGMZA.settings.engine?WPGMZA.GoogleModernStoreLocator:WPGMZA.OLModernStoreLocator)(map_id)},WPGMZA.ModernStoreLocator.prototype.onMouseOverCategory=function(li){li=li.currentTarget;$(li).children("ul.wpgmza_cat_checkbox_item_holder").stop(!0,!1).fadeIn()},WPGMZA.ModernStoreLocator.prototype.onMouseLeaveCategory=function(li){li=li.currentTarget;$(li).children("ul.wpgmza_cat_checkbox_item_holder").stop(!0,!1).fadeOut()}}),jQuery(function($){WPGMZA.NativeMapsAppIcon=function(){navigator.userAgent.match(/^Apple|iPhone|iPad|iPod/)?(this.type="apple",this.element=$('<span><i class="fab fa fa-apple" aria-hidden="true"></i></span>')):(this.type="google",this.element=$('<span><i class="fab fa fa-google" aria-hidden="true"></i></span>'))}}),jQuery(function($){Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(begin,end){return new Uint8Array(Array.prototype.slice.call(this,begin,end))}}),WPGMZA.isSafari()&&!window.external&&(window.external={})}),jQuery(function($){WPGMZA.Polygon=function(row,enginePolygon){WPGMZA.assertInstanceOf(this,"Polygon"),this.paths=null,this.title=null,this.name=null,this.link=null,WPGMZA.MapObject.apply(this,arguments)},WPGMZA.Polygon.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Polygon.prototype.constructor=WPGMZA.Polygon,WPGMZA.Polygon.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.isProVersion()?WPGMZA.GoogleProPolygon:WPGMZA.GooglePolygon:WPGMZA.isProVersion()?WPGMZA.OLProPolygon:WPGMZA.OLPolygon},WPGMZA.Polygon.createInstance=function(row,engineObject){return new(WPGMZA.Polygon.getConstructor())(row,engineObject)},WPGMZA.Polygon.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this);return $.extend(result,{name:this.name,title:this.title,link:this.link}),result}}),jQuery(function($){WPGMZA.Polyline=function(row,googlePolyline){WPGMZA.assertInstanceOf(this,"Polyline"),this.title=null,WPGMZA.MapObject.apply(this,arguments)},WPGMZA.Polyline.prototype=Object.create(WPGMZA.MapObject.prototype),WPGMZA.Polyline.prototype.constructor=WPGMZA.Polyline,WPGMZA.Polyline.getConstructor=function(){return"open-layers"!==WPGMZA.settings.engine?WPGMZA.GooglePolyline:WPGMZA.OLPolyline},WPGMZA.Polyline.createInstance=function(row,engineObject){return new(WPGMZA.Polyline.getConstructor())(row,engineObject)},WPGMZA.Polyline.prototype.getPoints=function(){return this.toJSON().points},WPGMZA.Polyline.prototype.toJSON=function(){var result=WPGMZA.MapObject.prototype.toJSON.call(this);return result.title=this.title,result}}),jQuery(function($){WPGMZA.PopoutPanel=function(element){this.element=element},WPGMZA.PopoutPanel.prototype.open=function(){$(this.element).addClass("wpgmza-open")},WPGMZA.PopoutPanel.prototype.close=function(){$(this.element).removeClass("wpgmza-open")}}),jQuery(function($){function sendAJAXFallbackRequest(route,params){if((params=$.extend({},params)).data||(params.data={}),"route"in params.data)throw new Error("Cannot send route through this method");if("action"in params.data)throw new Error("Cannot send action through this method");return params.data.route=route,params.data.action="wpgmza_rest_api_request",WPGMZA.restAPI.addNonce(route,params,WPGMZA.RestAPI.CONTEXT_AJAX),$.ajax(WPGMZA.ajaxurl,params)}WPGMZA.RestAPI=function(){WPGMZA.RestAPI.URL=WPGMZA.resturl,this.useAJAXFallback=!1},WPGMZA.RestAPI.CONTEXT_REST="REST",WPGMZA.RestAPI.CONTEXT_AJAX="AJAX",WPGMZA.RestAPI.createInstance=function(){return new WPGMZA.RestAPI},Object.defineProperty(WPGMZA.RestAPI.prototype,"isCompressedPathVariableSupported",{get:function(){return WPGMZA.serverCanInflate&&"Uint8Array"in window&&"TextEncoder"in window}}),Object.defineProperty(WPGMZA.RestAPI.prototype,"isCompressedPathVariableAllowed",{get:function(){return!WPGMZA.pro_version||WPGMZA.Version.compare(WPGMZA.pro_version,"8.0.0")>=WPGMZA.Version.EQUAL_TO?!WPGMZA.settings.disable_compressed_path_variables:WPGMZA.settings.enable_compressed_path_variables}}),Object.defineProperty(WPGMZA.RestAPI.prototype,"maxURLLength",{get:function(){return 2083}}),WPGMZA.RestAPI.prototype.compressParams=function(params){var encoded,suffix="";!params.markerIDs||1<(encoded=params.markerIDs.split(",")).length&&(encoded=(new WPGMZA.EliasFano).encode(encoded),raw=pako.deflate(encoded),input=Array.prototype.map.call(raw,function(ch){return String.fromCharCode(ch)}).join(""),suffix="/"+btoa(input).replace(/\//g,"-").replace(/=+$/,""),params.midcbp=encoded.pointer,delete params.markerIDs);var input=JSON.stringify(params),input=(new TextEncoder).encode(input),raw=pako.deflate(input),raw=Array.prototype.map.call(raw,function(ch){return String.fromCharCode(ch)}).join("");return btoa(raw).replace(/\//g,"-").replace(/=+$/,"")+suffix},WPGMZA.RestAPI.prototype.getNonce=function(route){var pattern,matches=[];for(pattern in WPGMZA.restnoncetable){var regex=new RegExp(pattern);route.match(regex)&&matches.push({pattern:pattern,nonce:WPGMZA.restnoncetable[pattern],length:pattern.length})}if(!matches.length)throw new Error("No nonce found for route");return matches.sort(function(a,b){return b.length-a.length}),matches[0].nonce},WPGMZA.RestAPI.prototype.addNonce=function(route,params,context){function setRESTNonce(xhr){context==WPGMZA.RestAPI.CONTEXT_REST&&xhr.setRequestHeader("X-WP-Nonce",WPGMZA.restnonce),params&¶ms.method&&!params.method.match(/^GET$/i)&&xhr.setRequestHeader("X-WPGMZA-Action-Nonce",self.getNonce(route))}var base,self=this;params.beforeSend?(base=params.beforeSend,params.beforeSend=function(xhr){base(xhr),setRESTNonce(xhr)}):params.beforeSend=setRESTNonce},WPGMZA.RestAPI.prototype.call=function(route,params){if(this.useAJAXFallback)return sendAJAXFallbackRequest(route,params);var compressedParams,compressedRoute,attemptedCompressedPathVariable=!1,fallbackRoute=route,fallbackParams=$.extend({},params);if("string"!=typeof route||!route.match(/^\//)&&!route.match(/^http/))throw new Error("Invalid route");return WPGMZA.RestAPI.URL.match(/\/$/)&&(route=route.replace(/^\//,"")),params=params||{},this.addNonce(route,params,WPGMZA.RestAPI.CONTEXT_REST),params.error||(params.error=function(xhr,status,message){if("abort"!=status){switch(xhr.status){case 401:case 403:return $.post(WPGMZA.ajaxurl,{action:"wpgmza_report_rest_api_blocked"},function(response){}),console.warn("The REST API was blocked. This is usually due to security plugins blocking REST requests for non-authenticated users."),this.useAJAXFallback=!0,sendAJAXFallbackRequest(fallbackRoute,fallbackParams);case 414:if(!attemptedCompressedPathVariable)break;return fallbackParams.method="POST",fallbackParams.useCompressedPathVariable=!1,WPGMZA.restAPI.call(fallbackRoute,fallbackParams)}throw new Error(message)}}),params.useCompressedPathVariable&&this.isCompressedPathVariableSupported&&this.isCompressedPathVariableAllowed&&(compressedParams=$.extend({},params),compressedRoute=params.data,compressedRoute=this.compressParams(compressedRoute),WPGMZA.isServerIIS&&(compressedRoute=compressedRoute.replace(/\+/g,"%20")),compressedRoute=route.replace(/\/$/,"")+"/base64"+compressedRoute,WPGMZA.RestAPI.URL,compressedParams.method="GET",delete compressedParams.data,!1===params.cache&&(compressedParams.data={skip_cache:1}),compressedRoute.length<this.maxURLLength?(attemptedCompressedPathVariable=!0,route=compressedRoute,params=compressedParams):(WPGMZA.RestAPI.compressedPathVariableURLLimitWarningDisplayed||console.warn("Compressed path variable route would exceed URL length limit"),WPGMZA.RestAPI.compressedPathVariableURLLimitWarningDisplayed=!0)),WPGMZA.RestAPI.URL.match(/\?/)&&(route=route.replace(/\?/,"&")),$.ajax(WPGMZA.RestAPI.URL+route,params)};var nativeCallFunction=WPGMZA.RestAPI.call;WPGMZA.RestAPI.call=function(){console.warn("WPGMZA.RestAPI.call was called statically, did you mean to call the function on WPGMZA.restAPI?"),nativeCallFunction.apply(this,arguments)},$(document.body).on("click","#wpgmza-rest-api-blocked button.notice-dismiss",function(event){WPGMZA.restAPI.call("/rest-api/",{method:"POST",data:{dismiss_blocked_notice:!0}})})}),jQuery(function($){WPGMZA.SettingsPage=function(){$("#wpgmza-global-settings").tabs()},WPGMZA.SettingsPage.createInstance=function(){return new WPGMZA.SettingsPage},$(window).on("load",function(event){var useLegacyHTML=WPGMZA.settings.useLegacyHTML||!window.location.href.match(/no-legacy-html/);WPGMZA.getCurrentPage()!=WPGMZA.PAGE_SETTINGS||useLegacyHTML||(WPGMZA.settingsPage=WPGMZA.SettingsPage.createInstance())})}),jQuery(function($){WPGMZA.StoreLocator=function(map,element){var self=this;WPGMZA.EventDispatcher.call(this),this._center=null,this.map=map,this.element=element,(this.element.wpgmzaStoreLocator=this).state=WPGMZA.StoreLocator.STATE_INITIAL,$(element).find(".wpgmza-not-found-msg").hide(),this.addressInput=WPGMZA.AddressInput.createInstance($(element).find("input.wpgmza-address")[0],map),this.map.on("storelocatorgeocodecomplete",function(event){self.onGeocodeComplete(event)}),this.map.on("init",function(event){self.map.markerFilter.on("filteringcomplete",function(event){self.onFilteringComplete(event)})}),$(element).on("keypress","input",function(event){13==event.which&&(searchLocations(self.map.id),self.onSearch(event))}),$(document.body).on("click",".wpgmza_sl_search_button_"+map.id+", [data-map-id='"+map.id+"'] .wpgmza_sl_search_button",function(event){self.onSearch(event)}),$(document.body).on("click",".wpgmza_sl_reset_button_"+map.id+", [data-map-id='"+map.id+"'] .wpgmza_sl_reset_button_div",function(event){self.onReset(event)})},WPGMZA.StoreLocator.prototype=Object.create(WPGMZA.EventDispatcher.prototype),WPGMZA.StoreLocator.prototype.constructor=WPGMZA.StoreLocator,WPGMZA.StoreLocator.STATE_INITIAL="initial",WPGMZA.StoreLocator.STATE_APPLIED="applied",WPGMZA.StoreLocator.createInstance=function(map,element){return new WPGMZA.StoreLocator(map,element)},Object.defineProperty(WPGMZA.StoreLocator.prototype,"distanceUnits",{get:function(){return 1==this.map.settings.store_locator_distance?WPGMZA.Distance.MILES:WPGMZA.Distance.KILOMETERS}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"radius",{get:function(){return $("#radiusSelect, #radiusSelect_"+this.map.id).val()}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"center",{get:function(){return this._center}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"bounds",{get:function(){return this._bounds}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"marker",{get:function(){if(1!=this.map.settings.store_locator_bounce)return null;if(this._marker)return this._marker;return this._marker=WPGMZA.Marker.createInstance({visible:!1}),this._marker.disableInfoWindow=!0,this._marker.isFilterable=!1,this._marker.setAnimation(WPGMZA.Marker.ANIMATION_BOUNCE),this._marker}}),Object.defineProperty(WPGMZA.StoreLocator.prototype,"circle",{get:function(){return this._circle||("modern"!=this.map.settings.wpgmza_store_locator_radius_style||WPGMZA.isDeviceiOS()?this._circle=WPGMZA.Circle.createInstance({strokeColor:"#ff0000",strokeOpacity:"0.25",strokeWeight:2,fillColor:"#ff0000",fillOpacity:"0.15",visible:!1,clickable:!1}):(this._circle=WPGMZA.ModernStoreLocatorCircle.createInstance(this.map.id),this._circle.settings.color=this.circleStrokeColor),this._circle)}}),WPGMZA.StoreLocator.prototype.onGeocodeComplete=function(event){if(!event.results||!event.results.length)return this._center=null,void(this._bounds=null);this._center=new WPGMZA.LatLng(event.results[0].latLng),this._bounds=new WPGMZA.LatLngBounds(event.results[0].bounds),this.map.markerFilter.update({},this)},WPGMZA.StoreLocator.prototype.onSearch=function(event){this.state=WPGMZA.StoreLocator.STATE_APPLIED},WPGMZA.StoreLocator.prototype.onReset=function(event){this.state=WPGMZA.StoreLocator.STATE_INITIAL,this._center=null,this._bounds=null,this.map.markerFilter.update({},this)},WPGMZA.StoreLocator.prototype.getFilteringParameters=function(){return this.center?{center:this.center,radius:this.radius}:{}},WPGMZA.StoreLocator.prototype.onFilteringComplete=function(circle){var params=circle.filteringParams,factor=this.marker;factor&&factor.setVisible(!1),params.center&&factor&&(factor.setPosition(params.center),factor.setVisible(!0),factor.map!=this.map&&this.map.addMarker(factor));circle=this.circle;circle&&(factor=this.distanceUnits==WPGMZA.Distance.MILES?WPGMZA.Distance.KILOMETERS_PER_MILE:1,circle.setVisible(!1),params.center&¶ms.radius&&(circle.setRadius(params.radius*factor),circle.setCenter(params.center),circle.setVisible(!0),circle.map!=this.map&&this.map.addCircle(circle)),circle instanceof WPGMZA.ModernStoreLocatorCircle&&(circle.settings.radiusString=this.radius)),this.map.hasVisibleMarkers()?$(this.element).find(".wpgmza-not-found-msg").hide():$(this.element).find(".wpgmza-not-found-msg").show()}}),jQuery(function($){WPGMZA.Text=function(options){if(options)for(var name in options)this[name]=options[name]},WPGMZA.Text.createInstance=function(options){return new("open-layers"!==WPGMZA.settings.engine?WPGMZA.GoogleText:WPGMZA.OLText)(options)}}),jQuery(function($){WPGMZA.ThemeEditor=function(){WPGMZA.EventDispatcher.call(this),this.element=$("#wpgmza-theme-editor"),this.element.length?"open-layers"!=WPGMZA.settings.engine?(this.json=[{}],this.mapElement=WPGMZA.maps[0].element,this.element.appendTo("#wpgmza-map-theme-editor__holder"),$(window).on("scroll",function(event){}),setInterval(function(){},200),this.initHTML(),WPGMZA.themeEditor=this):this.element.remove():console.warn("No element to initialise theme editor on")},WPGMZA.extend(WPGMZA.ThemeEditor,WPGMZA.EventDispatcher),WPGMZA.ThemeEditor.prototype.updatePosition=function(){},WPGMZA.ThemeEditor.features={all:[],administrative:["country","land_parcel","locality","neighborhood","province"],landscape:["man_made","natural","natural.landcover","natural.terrain"],poi:["attraction","business","government","medical","park","place_of_worship","school","sports_complex"],road:["arterial","highway","highway.controlled_access","local"],transit:["line","station","station.airport","station.bus","station.rail"],water:[]},WPGMZA.ThemeEditor.elements={all:[],geometry:["fill","stroke"],labels:["icon","text","text.fill","text.stroke"]},WPGMZA.ThemeEditor.prototype.parse=function(){$("#wpgmza_theme_editor_feature option, #wpgmza_theme_editor_element option").css("font-weight","normal"),$("#wpgmza_theme_editor_error").hide(),$("#wpgmza_theme_editor").show(),$("#wpgmza_theme_editor_do_hue").prop("checked",!1),$("#wpgmza_theme_editor_hue").val("#000000"),$("#wpgmza_theme_editor_lightness").val(""),$("#wpgmza_theme_editor_saturation").val(""),$("#wpgmza_theme_editor_gamma").val(""),$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!1),$("#wpgmza_theme_editor_visibility").val("inherit"),$("#wpgmza_theme_editor_do_color").prop("checked",!1),$("#wpgmza_theme_editor_color").val("#000000"),$("#wpgmza_theme_editor_weight").val("");var jsonCopy=$('textarea[name="wpgmza_theme_data"]');if(!jsonCopy.val()||jsonCopy.val().length<1)this.json=[{}];else{try{this.json=$.parseJSON($('textarea[name="wpgmza_theme_data"]').val())}catch(e){return this.json=[{}],$("#wpgmza_theme_editor").hide(),void $("#wpgmza_theme_editor_error").show()}$.isArray(this.json)||(jsonCopy=this.json,this.json=[],this.json.push(jsonCopy)),this.highlightFeatures(),this.highlightElements(),this.loadElementStylers()}},WPGMZA.ThemeEditor.prototype.highlightFeatures=function(){$("#wpgmza_theme_editor_feature option").css("font-weight","normal"),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")?$('#wpgmza_theme_editor_feature option[value="'+v.featureType+'"]'):$('#wpgmza_theme_editor_feature option[value="all"]')).css("font-weight","bold")})},WPGMZA.ThemeEditor.prototype.highlightElements=function(){var feature=$("#wpgmza_theme_editor_feature").val();$("#wpgmza_theme_editor_element option").css("font-weight","normal"),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")?$('#wpgmza_theme_editor_element option[value="'+v.elementType+'"]'):$('#wpgmza_theme_editor_element option[value="all"]')).css("font-weight","bold")})},WPGMZA.ThemeEditor.prototype.loadElementStylers=function(){var feature=$("#wpgmza_theme_editor_feature").val(),element=$("#wpgmza_theme_editor_element").val();$("#wpgmza_theme_editor_do_hue").prop("checked",!1),$("#wpgmza_theme_editor_hue").val("#000000"),$("#wpgmza_theme_editor_lightness").val(""),$("#wpgmza_theme_editor_saturation").val(""),$("#wpgmza_theme_editor_gamma").val(""),$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!1),$("#wpgmza_theme_editor_visibility").val("inherit"),$("#wpgmza_theme_editor_do_color").prop("checked",!1),$("#wpgmza_theme_editor_color").val("#000000"),$("#wpgmza_theme_editor_weight").val(""),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")&&v.elementType==element||"all"==element&&!v.hasOwnProperty("elementType"))&&v.hasOwnProperty("stylers")&&$.isArray(v.stylers)&&0<v.stylers.length&&$.each(v.stylers,function(ii,vv){vv.hasOwnProperty("hue")&&($("#wpgmza_theme_editor_do_hue").prop("checked",!0),$("#wpgmza_theme_editor_hue").val(vv.hue)),vv.hasOwnProperty("lightness")&&$("#wpgmza_theme_editor_lightness").val(vv.lightness),vv.hasOwnProperty("saturation")&&$("#wpgmza_theme_editor_saturation").val(vv.xaturation),vv.hasOwnProperty("gamma")&&$("#wpgmza_theme_editor_gamma").val(vv.gamma),vv.hasOwnProperty("invert_lightness")&&$("#wpgmza_theme_editor_do_invert_lightness").prop("checked",!0),vv.hasOwnProperty("visibility")&&$("#wpgmza_theme_editor_visibility").val(vv.visibility),vv.hasOwnProperty("color")&&($("#wpgmza_theme_editor_do_color").prop("checked",!0),$("#wpgmza_theme_editor_color").val(vv.color)),vv.hasOwnProperty("weight")&&$("#wpgmza_theme_editor_weight").val(vv.weight)})})},WPGMZA.ThemeEditor.prototype.writeElementStylers=function(){var new_feature_element_stylers,feature=$("#wpgmza_theme_editor_feature").val(),element=$("#wpgmza_theme_editor_element").val(),indexJSON=null,stylers=[];"inherit"!=$("#wpgmza_theme_editor_visibility").val()&&stylers.push({visibility:$("#wpgmza_theme_editor_visibility").val()}),!0===$("#wpgmza_theme_editor_do_color").prop("checked")&&stylers.push({color:$("#wpgmza_theme_editor_color").val()}),!0===$("#wpgmza_theme_editor_do_hue").prop("checked")&&stylers.push({hue:$("#wpgmza_theme_editor_hue").val()}),0<$("#wpgmza_theme_editor_gamma").val().length&&stylers.push({gamma:parseFloat($("#wpgmza_theme_editor_gamma").val())}),0<$("#wpgmza_theme_editor_weight").val().length&&stylers.push({weight:parseFloat($("#wpgmza_theme_editor_weight").val())}),0<$("#wpgmza_theme_editor_saturation").val().length&&stylers.push({saturation:parseFloat($("#wpgmza_theme_editor_saturation").val())}),0<$("#wpgmza_theme_editor_lightness").val().length&&stylers.push({lightness:parseFloat($("#wpgmza_theme_editor_lightness").val())}),!0===$("#wpgmza_theme_editor_do_invert_lightness").prop("checked")&&stylers.push({invert_lightness:!0}),$.each(this.json,function(i,v){(v.hasOwnProperty("featureType")&&v.featureType==feature||"all"==feature&&!v.hasOwnProperty("featureType"))&&(v.hasOwnProperty("elementType")&&v.elementType==element||"all"==element&&!v.hasOwnProperty("elementType"))&&(indexJSON=i)}),null===indexJSON?0<stylers.length&&(new_feature_element_stylers={},"all"!=feature&&(new_feature_element_stylers.featureType=feature),"all"!=element&&(new_feature_element_stylers.elementType=element),new_feature_element_stylers.stylers=stylers,this.json.push(new_feature_element_stylers)):0<stylers.length?this.json[indexJSON].stylers=stylers:this.json.splice(indexJSON,1),$('textarea[name="wpgmza_theme_data"]').val(JSON.stringify(this.json).replace(/:/g,": ").replace(/,/g,", ")),this.highlightFeatures(),this.highlightElements(),WPGMZA.themePanel.updateMapTheme()},WPGMZA.ThemeEditor.prototype.initHTML=function(){var self=this;$.each(WPGMZA.ThemeEditor.features,function(i,v){$("#wpgmza_theme_editor_feature").append('<option value="'+i+'">'+i+"</option>"),0<v.length&&$.each(v,function(ii,vv){$("#wpgmza_theme_editor_feature").append('<option value="'+i+"."+vv+'">'+i+"."+vv+"</option>")})}),$.each(WPGMZA.ThemeEditor.elements,function(i,v){$("#wpgmza_theme_editor_element").append('<option value="'+i+'">'+i+"</option>"),0<v.length&&$.each(v,function(ii,vv){$("#wpgmza_theme_editor_element").append('<option value="'+i+"."+vv+'">'+i+"."+vv+"</option>")})}),this.parse(),$('textarea[name="wpgmza_theme_data"]').on("input selectionchange propertychange",function(){self.parse()}),$(".wpgmza_theme_selection").click(function(){setTimeout(function(){$('textarea[name="wpgmza_theme_data"]').trigger("input")},1e3)}),$("#wpgmza_theme_editor_feature").on("change",function(){self.highlightElements(),self.loadElementStylers()}),$("#wpgmza_theme_editor_element").on("change",function(){self.loadElementStylers()}),$("#wpgmza_theme_editor_do_hue, #wpgmza_theme_editor_hue, #wpgmza_theme_editor_lightness, #wpgmza_theme_editor_saturation, #wpgmza_theme_editor_gamma, #wpgmza_theme_editor_do_invert_lightness, #wpgmza_theme_editor_visibility, #wpgmza_theme_editor_do_color, #wpgmza_theme_editor_color, #wpgmza_theme_editor_weight").on("input selectionchange propertychange",function(){self.writeElementStylers()}),"open-layers"==WPGMZA.settings.engine&&$("#wpgmza_theme_editor :input").prop("disabled",!0)}}),jQuery(function($){WPGMZA.ThemePanel=function(){var self=this;this.element=$("#wpgmza-theme-panel"),this.map=WPGMZA.maps[0],this.element.length?($("#wpgmza-theme-presets").owlCarousel({items:5,dots:!0}),this.element.on("click","#wpgmza-theme-presets label",function(event){self.onThemePresetClick(event)}),$("#wpgmza-open-theme-editor").on("click",function(event){$("#wpgmza-map-theme-editor__holder").addClass("active"),$("#wpgmza-theme-editor").addClass("active"),WPGMZA.animateScroll($("#wpgmza-theme-editor"))}),WPGMZA.themePanel=this):console.warn("No element to initialise theme panel on")},WPGMZA.ThemePanel.previewImageCenter={lat:33.701806462148646,lng:-118.15949896058983},WPGMZA.ThemePanel.previewImageZoom=11,WPGMZA.ThemePanel.prototype.onThemePresetClick=function(existingData){var selectedData=$(existingData.currentTarget).find("[data-theme-json]").attr("data-theme-json"),textarea=$(this.element).find("textarea[name='wpgmza_theme_data']"),existingData=textarea.val(),allPresetData=[];$(this.element).find("[data-theme-json]").each(function(index,el){allPresetData.push($(el).attr("data-theme-json"))}),existingData.length&&-1==allPresetData.indexOf(existingData)&&!confirm(WPGMZA.localized_strings.overwrite_theme_data)||(textarea.val(selectedData),this.updateMapTheme(),WPGMZA.themeEditor.parse())},WPGMZA.ThemePanel.prototype.updateMapTheme=function(){var data;try{data=JSON.parse($("textarea[name='wpgmza_theme_data']").val())}catch(e){return void alert(WPGMZA.localized_strings.invalid_theme_data)}this.map.setOptions({styles:data})}}),jQuery(function($){WPGMZA.Version=function(){},WPGMZA.Version.GREATER_THAN=1,WPGMZA.Version.EQUAL_TO=0,WPGMZA.Version.LESS_THAN=-1,WPGMZA.Version.compare=function(v1,v2){for(var v1parts=v1.match(/\d+/g),v2parts=v2.match(/\d+/g),i=0;i<v1parts.length;++i){if(v2parts.length===i)return 1;if(v1parts[i]!==v2parts[i])return v1parts[i]>v2parts[i]?1:-1}return v1parts.length!=v2parts.length?-1:0}}),jQuery(function($){WPGMZA.Integration={},WPGMZA.integrationModules={}}),jQuery(function($){var __,registerBlockType,InspectorControls,_wp$components,Dashicon,PanelBody;window.wp&&wp.i18n&&wp.blocks&&wp.editor&&wp.components&&(__=wp.i18n.__,registerBlockType=wp.blocks.registerBlockType,_wp$components=wp.editor,InspectorControls=_wp$components.InspectorControls,_wp$components.BlockControls,_wp$components=wp.components,Dashicon=_wp$components.Dashicon,_wp$components.Toolbar,_wp$components.Button,_wp$components.Tooltip,PanelBody=_wp$components.PanelBody,_wp$components.TextareaControl,_wp$components.CheckboxControl,_wp$components.TextControl,_wp$components.SelectControl,_wp$components.RichText,WPGMZA.Integration.Gutenberg=function(){registerBlockType("gutenberg-wpgmza/block",this.getBlockDefinition())},WPGMZA.Integration.Gutenberg.prototype.getBlockTitle=function(){return __("WP Google Maps")},WPGMZA.Integration.Gutenberg.prototype.getBlockInspectorControls=function(props){return React.createElement(InspectorControls,{key:"inspector"},React.createElement(PanelBody,{title:__("Map Settings")},React.createElement("p",{class:"map-block-gutenberg-button-container"},React.createElement("a",{href:WPGMZA.adminurl+"admin.php?page=wp-google-maps-menu&action=edit&map_id=1",target:"_blank",class:"button button-primary"},React.createElement("i",{class:"fa fa-pencil-square-o","aria-hidden":"true"}),__("Go to Map Editor"))),React.createElement("p",{class:"map-block-gutenberg-button-container"},React.createElement("a",{href:"https://www.wpgmaps.com/documentation/creating-your-first-map/",target:"_blank",class:"button button-primary"},React.createElement("i",{class:"fa fa-book","aria-hidden":"true"}),__("View Documentation")))))},WPGMZA.Integration.Gutenberg.prototype.getBlockAttributes=function(){return{}},WPGMZA.Integration.Gutenberg.prototype.getBlockDefinition=function(props){var _this=this;return{title:__("WP Google Maps"),description:__("The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss."),category:"common",icon:"location-alt",keywords:[__("Map"),__("Maps"),__("Google")],attributes:this.getBlockAttributes(),edit:function(props){return[!!props.isSelected&&_this.getBlockInspectorControls(props),React.createElement("div",{className:props.className+" wpgmza-gutenberg-block"},React.createElement(Dashicon,{icon:"location-alt"}),React.createElement("span",{class:"wpgmza-gutenberg-block-title"},__("Your map will appear here on your websites front end")))]},save:function(){return null}}},WPGMZA.Integration.Gutenberg.getConstructor=function(){return WPGMZA.Integration.Gutenberg},WPGMZA.Integration.Gutenberg.createInstance=function(){return new(WPGMZA.Integration.Gutenberg.getConstructor())},WPGMZA.isProVersion()||/^6/.test(WPGMZA.pro_version)||(WPGMZA.integrationModules.gutenberg=WPGMZA.Integration.Gutenberg.createInstance()))}),jQuery(function($){$(document).on("load",function(event){var parent=document.body.onclick;parent&&(document.body.onclick=function(event){event.target instanceof WPGMZA.Marker||parent(event)})})}),jQuery(function($){WPGMZA.GoogleUICompatibility=function(){var style;navigator.vendor&&-1<navigator.vendor.indexOf("Apple")&&navigator.userAgent&&-1==navigator.userAgent.indexOf("CriOS")&&-1==navigator.userAgent.indexOf("FxiOS")||((style=$("<style id='wpgmza-google-ui-compatiblity-fix'/>")).html(".wpgmza_map img:not(button img) { padding:0 !important; }"),$(document.head).append(style))},WPGMZA.googleUICompatibility=new WPGMZA.GoogleUICompatibility}),jQuery(function($){WPGMZA.GoogleCircle=function(options,googleCircle){var self=this;WPGMZA.Circle.call(this,options,googleCircle),googleCircle?this.googleCircle=googleCircle:(this.googleCircle=new google.maps.Circle,this.googleCircle.wpgmzaCircle=this),google.maps.event.addListener(this.googleCircle,"click",function(){self.dispatchEvent({type:"click"})}),options&&this.setOptions(options)},WPGMZA.GoogleCircle.prototype=Object.create(WPGMZA.Circle.prototype),WPGMZA.GoogleCircle.prototype.constructor=WPGMZA.GoogleCircle,WPGMZA.GoogleCircle.prototype.setCenter=function(center){WPGMZA.Circle.prototype.setCenter.apply(this,arguments),this.googleCircle.setCenter(center)},WPGMZA.GoogleCircle.prototype.setRadius=function(radius){WPGMZA.Circle.prototype.setRadius.apply(this,arguments),this.googleCircle.setRadius(1e3*parseFloat(radius))},WPGMZA.GoogleCircle.prototype.setVisible=function(visible){this.googleCircle.setVisible(!!visible)},WPGMZA.GoogleCircle.prototype.setOptions=function(options){var googleOptions={};delete(googleOptions=$.extend({},options)).map,delete googleOptions.center,options.center&&(googleOptions.center=new google.maps.LatLng({lat:parseFloat(options.center.lat),lng:parseFloat(options.center.lng)})),options.radius&&(googleOptions.radius=parseFloat(options.radius)),options.color&&(googleOptions.fillColor=options.color),options.opacity&&(googleOptions.fillOpacity=parseFloat(options.opacity),googleOptions.strokeOpacity=parseFloat(options.opacity)),this.googleCircle.setOptions(googleOptions),options.map&&options.map.addCircle(this)}}),jQuery(function($){WPGMZA.GoogleGeocoder=function(){WPGMZA.Geocoder.call(this)},WPGMZA.GoogleGeocoder.prototype=Object.create(WPGMZA.Geocoder.prototype),WPGMZA.GoogleGeocoder.prototype.constructor=WPGMZA.GoogleGeocoder,WPGMZA.GoogleGeocoder.prototype.getGoogleGeocoder=function(){return new(WPGMZA.CloudAPI&&WPGMZA.CloudAPI.isBeingUsed?WPGMZA.CloudGeocoder:google.maps.Geocoder)},WPGMZA.GoogleGeocoder.prototype.getLatLngFromAddress=function(options,callback){if(!options||!options.address)throw new Error("No address specified");if(WPGMZA.isLatLngString(options.address))return WPGMZA.Geocoder.prototype.getLatLngFromAddress.call(this,options,callback);options.country&&(options.componentRestrictions={country:options.country}),this.getGoogleGeocoder().geocode(options,function(nativeStatus,status){var bounds,latLng;status==google.maps.GeocoderStatus.OK||status==WPGMZA.CloudGeocoder.SUCCESS?(bounds=null,latLng={lat:(latLng=nativeStatus[0].geometry.location).lat(),lng:latLng.lng()},(bounds=nativeStatus[0].geometry.bounds)&&(bounds=bounds instanceof google.maps.LatLngBounds?WPGMZA.LatLngBounds.fromGoogleLatLngBounds(nativeStatus[0].geometry.bounds):WPGMZA.LatLngBounds.fromGoogleLatLngBoundsLiteral(nativeStatus[0].geometry.bounds)),callback(nativeStatus=[{geometry:{location:latLng},latLng:latLng,lat:latLng.lat,lng:latLng.lng,bounds:bounds}],WPGMZA.Geocoder.SUCCESS)):(nativeStatus=WPGMZA.Geocoder.FAIL,status==google.maps.GeocoderStatus.ZERO_RESULTS&&(nativeStatus=WPGMZA.Geocoder.ZERO_RESULTS),callback(null,nativeStatus))})},WPGMZA.GoogleGeocoder.prototype.getAddressFromLatLng=function(options,callback){if(!options||!options.latLng)throw new Error("No latLng specified");var latLng=new WPGMZA.LatLng(options.latLng),geocoder=this.getGoogleGeocoder();delete(options=$.extend(options,{location:{lat:latLng.lat,lng:latLng.lng}})).latLng,geocoder.geocode(options,function(results,status){"OK"!==status&&callback(null,WPGMZA.Geocoder.FAIL),results&&results.length||callback([],WPGMZA.Geocoder.NO_RESULTS),callback([results[0].formatted_address],WPGMZA.Geocoder.SUCCESS)})}}),jQuery(function($){WPGMZA.settings.engine&&"google-maps"!=WPGMZA.settings.engine||window.google&&window.google.maps&&(WPGMZA.GoogleHTMLOverlay=function(map){this.element=$("<div class='wpgmza-google-html-overlay'></div>"),this.visible=!0,this.position=new WPGMZA.LatLng,this.setMap(map.googleMap),this.wpgmzaMap=map},WPGMZA.GoogleHTMLOverlay.prototype=new google.maps.OverlayView,WPGMZA.GoogleHTMLOverlay.prototype.onAdd=function(){this.getPanes().overlayMouseTarget.appendChild(this.element[0])},WPGMZA.GoogleHTMLOverlay.prototype.onRemove=function(){this.element&&$(this.element).parent().length&&($(this.element).remove(),this.element=null)},WPGMZA.GoogleHTMLOverlay.prototype.draw=function(){this.updateElementPosition()},WPGMZA.GoogleHTMLOverlay.prototype.updateElementPosition=function(){var pixels=this.getProjection();pixels&&(pixels=pixels.fromLatLngToDivPixel(this.position.toGoogleLatLng()),$(this.element).css({left:pixels.x,top:pixels.y}))})}),jQuery(function($){var Parent;WPGMZA.GoogleInfoWindow=function(mapObject){Parent.call(this,mapObject),this.setMapObject(mapObject)},WPGMZA.GoogleInfoWindow.Z_INDEX=99,Parent=WPGMZA.isProVersion()?WPGMZA.ProInfoWindow:WPGMZA.InfoWindow,WPGMZA.GoogleInfoWindow.prototype=Object.create(Parent.prototype),WPGMZA.GoogleInfoWindow.prototype.constructor=WPGMZA.GoogleInfoWindow,WPGMZA.GoogleInfoWindow.prototype.setMapObject=function(mapObject){mapObject instanceof WPGMZA.Marker?this.googleObject=mapObject.googleMarker:mapObject instanceof WPGMZA.Polygon?this.googleObject=mapObject.googlePolygon:mapObject instanceof WPGMZA.Polyline&&(this.googleObject=mapObject.googlePolyline)},WPGMZA.GoogleInfoWindow.prototype.createGoogleInfoWindow=function(){var self=this;this.googleInfoWindow||(this.googleInfoWindow=new google.maps.InfoWindow,this.googleInfoWindow.setZIndex(WPGMZA.GoogleInfoWindow.Z_INDEX),google.maps.event.addListener(this.googleInfoWindow,"domready",function(event){self.trigger("domready")}),google.maps.event.addListener(this.googleInfoWindow,"closeclick",function(event){self.state!=WPGMZA.InfoWindow.STATE_CLOSED&&(self.state=WPGMZA.InfoWindow.STATE_CLOSED,self.trigger("infowindowclose"))}))},WPGMZA.GoogleInfoWindow.prototype.open=function(map,html){var self=this;if(!Parent.prototype.open.call(this,map,html))return!1;this.parent=map,this.createGoogleInfoWindow(),this.setMapObject(html),this.googleObject instanceof google.maps.Polygon||this.googleInfoWindow.open(this.mapObject.map.googleMap,this.googleObject);var intervalID,guid=WPGMZA.guid(),html="<div id='"+guid+"'>"+this.content+"</div>";return this.googleInfoWindow.setContent(html),intervalID=setInterval(function(event){div=$("#"+guid),div.length&&(clearInterval(intervalID),div[0].wpgmzaMapObject=self.mapObject,div.addClass("wpgmza-infowindow"),self.element=div[0],self.trigger("infowindowopen"))},50),!0},WPGMZA.GoogleInfoWindow.prototype.close=function(){this.googleInfoWindow&&(WPGMZA.InfoWindow.prototype.close.call(this),this.googleInfoWindow.close())},WPGMZA.GoogleInfoWindow.prototype.setContent=function(html){Parent.prototype.setContent.call(this,html),this.content=html,this.createGoogleInfoWindow(),this.googleInfoWindow.setContent(html)},WPGMZA.GoogleInfoWindow.prototype.setOptions=function(options){Parent.prototype.setOptions.call(this,options),this.createGoogleInfoWindow(),this.googleInfoWindow.setOptions(options)}}),jQuery(function($){var Parent;WPGMZA.GoogleMap=function(element,options){var self=this;if(Parent.call(this,element,options),!window.google){var status=WPGMZA.googleAPIStatus,message="Google API not loaded";if(status&&status.message&&(message+=" - "+status.message),"USER_CONSENT_NOT_GIVEN"==status.code)return;throw $(element).html("<div class='notice notice-error'><p>"+WPGMZA.localized_strings.google_api_not_loaded+"<pre>"+message+"</pre></p></div>"),new Error(message)}this.loadGoogleMap(),options&&this.setOptions(options,!0),google.maps.event.addListener(this.googleMap,"click",function(event){var wpgmzaEvent=new WPGMZA.Event("click");wpgmzaEvent.latLng={lat:event.latLng.lat(),lng:event.latLng.lng()},self.dispatchEvent(wpgmzaEvent)}),google.maps.event.addListener(this.googleMap,"rightclick",function(event){var wpgmzaEvent=new WPGMZA.Event("rightclick");wpgmzaEvent.latLng={lat:event.latLng.lat(),lng:event.latLng.lng()},self.dispatchEvent(wpgmzaEvent)}),google.maps.event.addListener(this.googleMap,"dragend",function(event){self.dispatchEvent("dragend")}),google.maps.event.addListener(this.googleMap,"zoom_changed",function(event){self.dispatchEvent("zoom_changed"),self.dispatchEvent("zoomchanged")}),google.maps.event.addListener(this.googleMap,"idle",function(event){self.onIdle(event)}),WPGMZA.isProVersion()||(this.trigger("init"),this.dispatchEvent("created"),WPGMZA.events.dispatchEvent({type:"mapcreated",map:this}),$(this.element).trigger("wpgooglemaps_loaded"))},WPGMZA.isProVersion()?(Parent=WPGMZA.ProMap,WPGMZA.GoogleMap.prototype=Object.create(WPGMZA.ProMap.prototype)):(Parent=WPGMZA.Map,WPGMZA.GoogleMap.prototype=Object.create(WPGMZA.Map.prototype)),WPGMZA.GoogleMap.prototype.constructor=WPGMZA.GoogleMap,WPGMZA.GoogleMap.parseThemeData=function(raw){var json;try{json=JSON.parse(raw)}catch(e){try{json=eval(raw)}catch(e){var str=raw,str=str.replace(/\\'/g,"'");str=str.replace(/\\"/g,'"'),str=str.replace(/\\0/g,"\0"),str=str.replace(/\\\\/g,"\\");try{json=eval(str)}catch(e){return console.warn("Couldn't parse theme data"),[]}}}return json},WPGMZA.GoogleMap.prototype.loadGoogleMap=function(){var self=this,options=this.settings.toGoogleMapsOptions();this.googleMap=new google.maps.Map(this.engineElement,options),google.maps.event.addListener(this.googleMap,"bounds_changed",function(){self.onBoundsChanged()}),1==this.settings.bicycle&&this.enableBicycleLayer(!0),1==this.settings.traffic&&this.enableTrafficLayer(!0),1==this.settings.transport&&this.enablePublicTransportLayer(!0),this.showPointsOfInterest(this.settings.show_point_of_interest),$(this.engineElement).append($(this.element).find(".wpgmza-loader"))},WPGMZA.GoogleMap.prototype.setOptions=function(options,clone){Parent.prototype.setOptions.call(this,options),options.scrollwheel&&delete options.scrollwheel,clone?(clone=$.extend(options,this.settings.toGoogleMapsOptions()),!(clone=$.extend({},clone)).center instanceof google.maps.LatLng&&(clone.center instanceof WPGMZA.LatLng||"object"==typeof clone.center)&&(clone.center={lat:parseFloat(clone.center.lat),lng:parseFloat(clone.center.lng)}),"1"==this.settings.wpgmza_hide_point_of_interest&&(clone.styles||(clone.styles=[]),clone.styles.push({featureType:"poi",elementType:"labels",stylers:[{visibility:"off"}]})),this.googleMap.setOptions(clone)):this.googleMap.setOptions(options)},WPGMZA.GoogleMap.prototype.addMarker=function(marker){marker.googleMarker.setMap(this.googleMap),Parent.prototype.addMarker.call(this,marker)},WPGMZA.GoogleMap.prototype.removeMarker=function(marker){marker.googleMarker.setMap(null),Parent.prototype.removeMarker.call(this,marker)},WPGMZA.GoogleMap.prototype.addPolygon=function(polygon){polygon.googlePolygon.setMap(this.googleMap),Parent.prototype.addPolygon.call(this,polygon)},WPGMZA.GoogleMap.prototype.removePolygon=function(polygon){polygon.googlePolygon.setMap(null),Parent.prototype.removePolygon.call(this,polygon)},WPGMZA.GoogleMap.prototype.addPolyline=function(polyline){polyline.googlePolyline.setMap(this.googleMap),Parent.prototype.addPolyline.call(this,polyline)},WPGMZA.GoogleMap.prototype.removePolyline=function(polyline){polyline.googlePolyline.setMap(null),Parent.prototype.removePolyline.call(this,polyline)},WPGMZA.GoogleMap.prototype.addCircle=function(circle){circle.googleCircle.setMap(this.googleMap),Parent.prototype.addCircle.call(this,circle)},WPGMZA.GoogleMap.prototype.removeCircle=function(circle){circle.googleCircle.setMap(null),Parent.prototype.removeCircle.call(this,circle)},WPGMZA.GoogleMap.prototype.addRectangle=function(rectangle){rectangle.googleRectangle.setMap(this.googleMap),Parent.prototype.addRectangle.call(this,rectangle)},WPGMZA.GoogleMap.prototype.removeRectangle=function(rectangle){rectangle.googleRectangle.setMap(null),Parent.prototype.removeRectangle.call(this,rectangle)},WPGMZA.GoogleMap.prototype.getCenter=function(){var latLng=this.googleMap.getCenter();return{lat:latLng.lat(),lng:latLng.lng()}},WPGMZA.GoogleMap.prototype.setCenter=function(latLng){WPGMZA.Map.prototype.setCenter.call(this,latLng),latLng instanceof WPGMZA.LatLng?this.googleMap.setCenter({lat:latLng.lat,lng:latLng.lng}):this.googleMap.setCenter(latLng)},WPGMZA.GoogleMap.prototype.panTo=function(latLng){latLng instanceof WPGMZA.LatLng?this.googleMap.panTo({lat:latLng.lat,lng:latLng.lng}):this.googleMap.panTo(latLng)},WPGMZA.GoogleMap.prototype.getZoom=function(){return this.googleMap.getZoom()},WPGMZA.GoogleMap.prototype.setZoom=function(value){if(isNaN(value))throw new Error("Value must not be NaN");return this.googleMap.setZoom(parseInt(value))},WPGMZA.GoogleMap.prototype.getBounds=function(){var nativeBounds=this.googleMap.getBounds(),northEast=nativeBounds.getNorthEast(),southWest=nativeBounds.getSouthWest(),nativeBounds=new WPGMZA.LatLngBounds({});return nativeBounds.north=northEast.lat(),nativeBounds.south=southWest.lat(),nativeBounds.west=southWest.lng(),nativeBounds.east=northEast.lng(),nativeBounds.topLeft={lat:northEast.lat(),lng:southWest.lng()},nativeBounds.bottomRight={lat:southWest.lat(),lng:northEast.lng()},nativeBounds},WPGMZA.GoogleMap.prototype.fitBounds=function(southWest,nativeBounds){var bounds;southWest instanceof WPGMZA.LatLng&&(southWest={lat:southWest.lat,lng:southWest.lng}),nativeBounds instanceof WPGMZA.LatLng?nativeBounds={lat:nativeBounds.lat,lng:nativeBounds.lng}:southWest instanceof WPGMZA.LatLngBounds&&(southWest={lat:(bounds=southWest).south,lng:bounds.west},nativeBounds={lat:bounds.north,lng:bounds.east});nativeBounds=new google.maps.LatLngBounds(southWest,nativeBounds);this.googleMap.fitBounds(nativeBounds)},WPGMZA.GoogleMap.prototype.fitBoundsToVisibleMarkers=function(){for(var bounds=new google.maps.LatLngBounds,i=0;i<this.markers.length;i++)markers[i].getVisible()&&bounds.extend(markers[i].getPosition());this.googleMap.fitBounds(bounds)},WPGMZA.GoogleMap.prototype.enableBicycleLayer=function(enable){this.bicycleLayer||(this.bicycleLayer=new google.maps.BicyclingLayer),this.bicycleLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.enableTrafficLayer=function(enable){this.trafficLayer||(this.trafficLayer=new google.maps.TrafficLayer),this.trafficLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.enablePublicTransportLayer=function(enable){this.publicTransportLayer||(this.publicTransportLayer=new google.maps.TransitLayer),this.publicTransportLayer.setMap(enable?this.googleMap:null)},WPGMZA.GoogleMap.prototype.showPointsOfInterest=function(show){var styles=$("textarea[name='theme_data']").val();styles&&((styles=JSON.parse(styles)).push({featureType:"poi",stylers:[{visibility:show?"on":"off"}]}),this.googleMap.setOptions({styles:styles}))},WPGMZA.GoogleMap.prototype.getMinZoom=function(){return parseInt(this.settings.min_zoom)},WPGMZA.GoogleMap.prototype.setMinZoom=function(value){this.googleMap.setOptions({minZoom:value,maxZoom:this.getMaxZoom()})},WPGMZA.GoogleMap.prototype.getMaxZoom=function(){return parseInt(this.settings.max_zoom)},WPGMZA.GoogleMap.prototype.setMaxZoom=function(value){this.googleMap.setOptions({minZoom:this.getMinZoom(),maxZoom:value})},WPGMZA.GoogleMap.prototype.latLngToPixels=function(scale){var map=this.googleMap,worldPoint=new google.maps.LatLng({lat:parseFloat(scale.lat),lng:parseFloat(scale.lng)}),topRight=map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()),bottomLeft=map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()),scale=Math.pow(2,map.getZoom()),worldPoint=map.getProjection().fromLatLngToPoint(worldPoint);return{x:(worldPoint.x-bottomLeft.x)*scale,y:(worldPoint.y-topRight.y)*scale}},WPGMZA.GoogleMap.prototype.pixelsToLatLng=function(x,y){null==y&&("x"in x&&"y"in x?(y=x.y,x=x.x):console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)"));var map=this.googleMap,latLng=map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()),bottomLeft=map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()),scale=Math.pow(2,map.getZoom()),latLng=new google.maps.Point(x/scale+bottomLeft.x,y/scale+latLng.y),latLng=map.getProjection().fromPointToLatLng(latLng);return{lat:latLng.lat(),lng:latLng.lng()}},WPGMZA.GoogleMap.prototype.onElementResized=function(event){this.googleMap&&google.maps.event.trigger(this.googleMap,"resize")},WPGMZA.GoogleMap.prototype.enableAllInteractions=function(){var options={scrollwheel:!0,draggable:!0,disableDoubleClickZoom:!1};this.googleMap.setOptions(options)}}),jQuery(function($){var Parent;WPGMZA.GoogleMarker=function(row){var self=this;Parent.call(this,row),this._opacity=1;var settings={};if(row)for(var name in row)row[name]instanceof WPGMZA.LatLng?settings[name]=row[name].toGoogleLatLng():row[name]instanceof WPGMZA.Map||"icon"==name||(settings[name]=row[name]);this.googleMarker=new google.maps.Marker(settings),(this.googleMarker.wpgmzaMarker=this).googleMarker.setPosition(new google.maps.LatLng({lat:parseFloat(this.lat),lng:parseFloat(this.lng)})),this.anim&&this.googleMarker.setAnimation(this.anim),this.animation&&this.googleMarker.setAnimation(this.animation),google.maps.event.addListener(this.googleMarker,"click",function(){self.dispatchEvent("click"),self.dispatchEvent("select")}),google.maps.event.addListener(this.googleMarker,"mouseover",function(){self.dispatchEvent("mouseover")}),google.maps.event.addListener(this.googleMarker,"dragend",function(){var googleMarkerPosition=self.googleMarker.getPosition();self.setPosition({lat:googleMarkerPosition.lat(),lng:googleMarkerPosition.lng()}),self.dispatchEvent({type:"dragend",latLng:self.getPosition()})}),this.trigger("init")},Parent=WPGMZA.isProVersion()?WPGMZA.ProMarker:WPGMZA.Marker,WPGMZA.GoogleMarker.prototype=Object.create(Parent.prototype),WPGMZA.GoogleMarker.prototype.constructor=WPGMZA.GoogleMarker,Object.defineProperty(WPGMZA.GoogleMarker.prototype,"opacity",{get:function(){return this._opacity},set:function(value){this._opacity=value,this.googleMarker.setOpacity(value)}}),WPGMZA.GoogleMarker.prototype.setLabel=function(label){label?(this.googleMarker.setLabel({text:label}),this.googleMarker.getIcon()||this.googleMarker.setIcon(WPGMZA.settings.default_marker_icon)):this.googleMarker.setLabel(null)},WPGMZA.GoogleMarker.prototype.setPosition=function(latLng){Parent.prototype.setPosition.call(this,latLng),this.googleMarker.setPosition({lat:this.lat,lng:this.lng})},WPGMZA.GoogleMarker.prototype.updateOffset=function(){var self=this,icon=this.googleMarker.getIcon(),img=new Image,x=this._offset.x,y=this._offset.y,params="string"==typeof(icon=icon||WPGMZA.settings.default_marker_icon)?{url:icon}:icon;img.onload=function(){var defaultAnchor_x=img.width/2,defaultAnchor_y=img.height;params.anchor=new google.maps.Point(defaultAnchor_x-x,defaultAnchor_y-y),self.googleMarker.setIcon(params)},img.src=params.url},WPGMZA.GoogleMarker.prototype.setOptions=function(options){this.googleMarker.setOptions(options)},WPGMZA.GoogleMarker.prototype.setAnimation=function(animation){Parent.prototype.setAnimation.call(this,animation),this.googleMarker.setAnimation(animation)},WPGMZA.GoogleMarker.prototype.setVisible=function(visible){Parent.prototype.setVisible.call(this,visible),this.googleMarker.setVisible(!!visible)},WPGMZA.GoogleMarker.prototype.getVisible=function(visible){return this.googleMarker.getVisible()},WPGMZA.GoogleMarker.prototype.setDraggable=function(draggable){this.googleMarker.setDraggable(draggable)},WPGMZA.GoogleMarker.prototype.setOpacity=function(opacity){this.googleMarker.setOpacity(opacity)}}),jQuery(function($){WPGMZA.GoogleModernStoreLocatorCircle=function(map,settings){var self=this;WPGMZA.ModernStoreLocatorCircle.call(this,map,settings),this.intervalID=setInterval(function(){var mapSize={width:$(self.mapElement).width(),height:$(self.mapElement).height()};mapSize.width==self.mapSize.width&&mapSize.height==self.mapSize.height||(self.canvasLayer.resize_(),self.canvasLayer.draw(),self.mapSize=mapSize)},1e3),$(document).bind("webkitfullscreenchange mozfullscreenchange fullscreenchange",function(){self.canvasLayer.resize_(),self.canvasLayer.draw()})},WPGMZA.GoogleModernStoreLocatorCircle.prototype=Object.create(WPGMZA.ModernStoreLocatorCircle.prototype),WPGMZA.GoogleModernStoreLocatorCircle.prototype.constructor=WPGMZA.GoogleModernStoreLocatorCircle,WPGMZA.GoogleModernStoreLocatorCircle.prototype.initCanvasLayer=function(){var self=this;this.canvasLayer&&(this.canvasLayer.setMap(null),this.canvasLayer.setAnimate(!1)),this.canvasLayer=new CanvasLayer({map:this.map.googleMap,resizeHandler:function(event){self.onResize(event)},updateHandler:function(event){self.onUpdate(event)},animate:!0,resolutionScale:this.getResolutionScale()})},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setOptions=function(options){WPGMZA.ModernStoreLocatorCircle.prototype.setOptions.call(this,options),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setPosition=function(position){WPGMZA.ModernStoreLocatorCircle.prototype.setPosition.call(this,position),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setRadius=function(radius){WPGMZA.ModernStoreLocatorCircle.prototype.setRadius.call(this,radius),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){var spherical=google.maps.geometry.spherical,latitude=this.settings.center,result=new WPGMZA.LatLng({lat:0,lng:0}),latitude=new WPGMZA.LatLng({lat:latitude.lat,lng:0}),result=spherical.computeOffset(result.toGoogleLatLng(),1e3*km,90),result=.006395*km*(spherical.computeOffset(latitude.toGoogleLatLng(),1e3*km,90).lng()/result.lng());if(isNaN(result))throw new Error("here");return result},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){return{width:this.canvasLayer.canvas.width,height:this.canvasLayer.canvas.height}},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getWorldOriginOffset=function(){var position=this.map.googleMap.getProjection().fromLatLngToPoint(this.canvasLayer.getTopLeft());return{x:-position.x,y:-position.y}},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getCenterPixels=function(){var center=new WPGMZA.LatLng(this.settings.center);return this.map.googleMap.getProjection().fromLatLngToPoint(center.toGoogleLatLng())},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getContext=function(type){return this.canvasLayer.canvas.getContext("2d")},WPGMZA.GoogleModernStoreLocatorCircle.prototype.getScale=function(){return Math.pow(2,this.map.getZoom())*this.getResolutionScale()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.setVisible=function(visible){WPGMZA.ModernStoreLocatorCircle.prototype.setVisible.call(this,visible),this.canvasLayer.scheduleUpdate()},WPGMZA.GoogleModernStoreLocatorCircle.prototype.destroy=function(){this.canvasLayer.setMap(null),this.canvasLayer=null,clearInterval(this.intervalID)}}),jQuery(function($){WPGMZA.GoogleModernStoreLocator=function(restrict){this.map=WPGMZA.getMapByID(restrict),WPGMZA.ModernStoreLocator.call(this,restrict);var options={fields:["name","formatted_address"],types:["geocode"]},restrict=wpgmaps_localize[restrict].other_settings.wpgmza_store_locator_restrict;this.addressInput=$(this.element).find(".addressInput, #addressInput")[0],this.addressInput&&(restrict&&restrict.length&&(options.componentRestrictions={country:restrict}),this.autoComplete=new google.maps.places.Autocomplete(this.addressInput,options)),this.map.googleMap.controls[google.maps.ControlPosition.TOP_CENTER].push(this.element)},WPGMZA.GoogleModernStoreLocator.prototype=Object.create(WPGMZA.ModernStoreLocator.prototype),WPGMZA.GoogleModernStoreLocator.prototype.constructor=WPGMZA.GoogleModernStoreLocator}),jQuery(function($){var Parent;WPGMZA.GooglePolygon=function(options,googleOptions){var self=this;Parent.call(this,options,googleOptions),googleOptions?this.googlePolygon=googleOptions:(this.googlePolygon=new google.maps.Polygon,options&&(googleOptions=$.extend({},options),options.polydata&&(googleOptions.paths=this.parseGeometry(options.polydata)),options.linecolor&&(googleOptions.strokeColor="#"+options.linecolor),options.lineopacity&&(googleOptions.strokeOpacity=parseFloat(options.lineopacity)),options.fillcolor&&(googleOptions.fillColor="#"+options.fillcolor),options.opacity&&(googleOptions.fillOpacity=parseFloat(options.opacity)),this.googlePolygon.setOptions(googleOptions))),this.googlePolygon.wpgmzaPolygon=this,google.maps.event.addListener(this.googlePolygon,"click",function(){self.dispatchEvent({type:"click"})})},Parent=WPGMZA.isProVersion()?WPGMZA.ProPolygon:WPGMZA.Polygon,WPGMZA.GooglePolygon.prototype=Object.create(Parent.prototype),WPGMZA.GooglePolygon.prototype.constructor=WPGMZA.GooglePolygon,WPGMZA.GooglePolygon.prototype.getEditable=function(){return this.googlePolygon.getOptions().editable},WPGMZA.GooglePolygon.prototype.setEditable=function(value){this.googlePolygon.setOptions({editable:value})},WPGMZA.GooglePolygon.prototype.toJSON=function(){var result=WPGMZA.Polygon.prototype.toJSON.call(this);result.points=[];for(var path=this.googlePolygon.getPath(),i=0;i<path.getLength();i++){var latLng=path.getAt(i);result.points.push({lat:latLng.lat(),lng:latLng.lng()})}return result}}),jQuery(function($){WPGMZA.GooglePolyline=function(path,googleOptions){var self=this;WPGMZA.Polyline.call(this,path,googleOptions),googleOptions?this.googlePolyline=googleOptions:(this.googlePolyline=new google.maps.Polyline(this.settings),path&&(googleOptions=$.extend({},path),path.polydata&&(googleOptions.path=this.parseGeometry(path.polydata)),path.linecolor&&(googleOptions.strokeColor="#"+path.linecolor),path.linethickness&&(googleOptions.strokeWeight=parseInt(path.linethickness)),path.opacity&&(googleOptions.strokeOpacity=parseFloat(path.opacity))),path&&path.polydata&&(path=this.parseGeometry(path.polydata),this.setPoints(path))),this.googlePolyline.wpgmzaPolyline=this,google.maps.event.addListener(this.googlePolyline,"click",function(){self.dispatchEvent({type:"click"})})},WPGMZA.GooglePolyline.prototype=Object.create(WPGMZA.Polyline.prototype),WPGMZA.GooglePolyline.prototype.constructor=WPGMZA.GooglePolyline,WPGMZA.GooglePolyline.prototype.setEditable=function(value){this.googlePolyline.setOptions({editable:value})},WPGMZA.GooglePolyline.prototype.setPoints=function(points){this.googlePolyline.setOptions({path:points})},WPGMZA.GooglePolyline.prototype.toJSON=function(){var result=WPGMZA.Polyline.prototype.toJSON.call(this);result.points=[];for(var path=this.googlePolyline.getPath(),i=0;i<path.getLength();i++){var latLng=path.getAt(i);result.points.push({lat:latLng.lat(),lng:latLng.lng()})}return result}}),jQuery(function($){WPGMZA.GoogleText=function(options){WPGMZA.Text.apply(this,arguments),this.overlay=new WPGMZA.GoogleTextOverlay(options)},WPGMZA.extend(WPGMZA.GoogleText,WPGMZA.Text)}),jQuery(function($){WPGMZA.GoogleTextOverlay=function(options){this.element=$("<div class='wpgmza-google-text-overlay'><div class='wpgmza-inner'></div></div>"),(options=options||{}).position&&(this.position=options.position),options.text&&this.element.find(".wpgmza-inner").text(options.text),options.map&&this.setMap(options.map.googleMap)},window.google&&google.maps&&google.maps.OverlayView&&(WPGMZA.GoogleTextOverlay.prototype=new google.maps.OverlayView),WPGMZA.GoogleTextOverlay.prototype.onAdd=function(){var position=this.getProjection().fromLatLngToDivPixel(this.position.toGoogleLatLng());this.element.css({position:"absolute",left:position.x+"px",top:position.y+"px"}),this.getPanes().floatPane.appendChild(this.element[0])},WPGMZA.GoogleTextOverlay.prototype.draw=function(){var position=this.getProjection().fromLatLngToDivPixel(this.position.toGoogleLatLng());this.element.css({position:"absolute",left:position.x+"px",top:position.y+"px"})},WPGMZA.GoogleTextOverlay.prototype.onRemove=function(){this.element.remove()},WPGMZA.GoogleTextOverlay.prototype.hide=function(){this.element.hide()},WPGMZA.GoogleTextOverlay.prototype.show=function(){this.element.show()},WPGMZA.GoogleTextOverlay.prototype.toggle=function(){this.element.is(":visible")?this.element.hide():this.element.show()}}),jQuery(function($){"google-maps"==WPGMZA.settings.engine&&(WPGMZA.googleAPIStatus&&"USER_CONSENT_NOT_GIVEN"==WPGMZA.googleAPIStatus.code||(WPGMZA.GoogleVertexContextMenu=function(mapEditPage){var self=this;this.mapEditPage=mapEditPage,this.element=document.createElement("div"),this.element.className="wpgmza-vertex-context-menu",this.element.innerHTML="Delete",google.maps.event.addDomListener(this.element,"click",function(event){return self.removeVertex(),event.preventDefault(),event.stopPropagation(),!1})},WPGMZA.GoogleVertexContextMenu.prototype=new google.maps.OverlayView,WPGMZA.GoogleVertexContextMenu.prototype.onAdd=function(){var self=this,map=this.getMap();this.getPanes().floatPane.appendChild(this.element),this.divListener=google.maps.event.addDomListener(map.getDiv(),"mousedown",function(e){e.target!=self.element&&self.close()},!0)},WPGMZA.GoogleVertexContextMenu.prototype.onRemove=function(){google.maps.event.removeListener(this.divListener),this.element.parentNode.removeChild(this.element),this.set("position"),this.set("path"),this.set("vertex")},WPGMZA.GoogleVertexContextMenu.prototype.open=function(map,path,vertex){this.set("position",path.getAt(vertex)),this.set("path",path),this.set("vertex",vertex),this.setMap(map),this.draw()},WPGMZA.GoogleVertexContextMenu.prototype.close=function(){this.setMap(null)},WPGMZA.GoogleVertexContextMenu.prototype.draw=function(){var point=this.get("position"),projection=this.getProjection();point&&projection&&(point=projection.fromLatLngToDivPixel(point),this.element.style.top=point.y+"px",this.element.style.left=point.x+"px")},WPGMZA.GoogleVertexContextMenu.prototype.removeVertex=function(){var path=this.get("path"),vertex=this.get("vertex");path&&null!=vertex&&path.removeAt(vertex),this.close()}))}),jQuery(function($){var Parent=WPGMZA.Circle;WPGMZA.OLCircle=function(options,olFeature){this.center={lat:0,lng:0},this.radius=0,this.fillcolor="#ff0000",this.opacity=.6,Parent.call(this,options,olFeature),this.olStyle=new ol.style.Style(this.getStyleFromSettings()),this.vectorLayer3857=this.layer=new ol.layer.Vector({source:new ol.source.Vector,style:this.olStyle}),olFeature?this.olFeature=olFeature:this.recreate()},WPGMZA.OLCircle.prototype=Object.create(Parent.prototype),WPGMZA.OLCircle.prototype.constructor=WPGMZA.OLCircle,WPGMZA.OLCircle.prototype.recreate=function(){var x,y,circle3857;this.olFeature&&(this.layer.getSource().removeFeature(this.olFeature),delete this.olFeature),this.center&&this.radius&&(circle3857=1e3*parseFloat(this.radius)/2,x=this.center.lng,y=this.center.lat,circle3857=ol.geom.Polygon.circular([x,y],circle3857,64).clone().transform("EPSG:4326","EPSG:3857"),this.olFeature=new ol.Feature(circle3857),this.layer.getSource().addFeature(this.olFeature))},WPGMZA.OLCircle.prototype.getStyleFromSettings=function(){var params={};return this.opacity&&(params.fill=new ol.style.Fill({color:WPGMZA.hexOpacityToRGBA(this.fillColor,this.opacity)})),params},WPGMZA.OLCircle.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLCircle.prototype.setVisible=function(visible){this.layer.setVisible(!!visible)},WPGMZA.OLCircle.prototype.setCenter=function(center){WPGMZA.Circle.prototype.setCenter.apply(this,arguments),this.recreate()},WPGMZA.OLCircle.prototype.setRadius=function(radius){WPGMZA.Circle.prototype.setRadius.apply(this,arguments),this.recreate()}}),jQuery(function($){WPGMZA.OLGeocoder=function(){},WPGMZA.OLGeocoder.prototype=Object.create(WPGMZA.Geocoder.prototype),WPGMZA.OLGeocoder.prototype.constructor=WPGMZA.OLGeocoder,WPGMZA.OLGeocoder.prototype.getResponseFromCache=function(query,callback){WPGMZA.restAPI.call("/geocode-cache",{data:{query:JSON.stringify(query)},success:function(response,xhr,status){response.lng=response.lon,callback(response)},useCompressedPathVariable:!0})},WPGMZA.OLGeocoder.prototype.getResponseFromNominatim=function(options,callback){var data={q:options.address,format:"json"};options.componentRestrictions&&options.componentRestrictions.country&&(data.countrycodes=options.componentRestrictions.country),$.ajax("https://nominatim.openstreetmap.org/search/",{data:data,success:function(response,xhr,status){callback(response)},error:function(response,xhr,status){callback(null,WPGMZA.Geocoder.FAIL)}})},WPGMZA.OLGeocoder.prototype.cacheResponse=function(query,response){$.ajax(WPGMZA.ajaxurl,{data:{action:"wpgmza_store_nominatim_cache",query:JSON.stringify(query),response:JSON.stringify(response)},method:"POST"})},WPGMZA.OLGeocoder.prototype.clearCache=function(callback){$.ajax(WPGMZA.ajaxurl,{data:{action:"wpgmza_clear_nominatim_cache"},method:"POST",success:function(response){callback(response)}})},WPGMZA.OLGeocoder.prototype.getLatLngFromAddress=function(options,callback){return WPGMZA.OLGeocoder.prototype.geocode(options,callback)},WPGMZA.OLGeocoder.prototype.getAddressFromLatLng=function(options,callback){return WPGMZA.OLGeocoder.prototype.geocode(options,callback)},WPGMZA.OLGeocoder.prototype.geocode=function(options,callback){var finish,location,self=this;if(!options)throw new Error("Invalid options");if(WPGMZA.LatLng.REGEXP.test(options.address)){var latLng=WPGMZA.LatLng.fromString(options.address);callback([{geometry:{location:latLng},latLng:latLng,lat:latLng.lat,lng:latLng.lng}],WPGMZA.Geocoder.SUCCESS)}else{if(options.location&&(options.latLng=new WPGMZA.LatLng(options.location)),options.address)location=options.address,finish=function(response,status){for(var i=0;i<response.length;i++)response[i].geometry={location:new WPGMZA.LatLng({lat:parseFloat(response[i].lat),lng:parseFloat(response[i].lon)})},response[i].latLng={lat:parseFloat(response[i].lat),lng:parseFloat(response[i].lon)},response[i].bounds=new WPGMZA.LatLngBounds(new WPGMZA.LatLng({lat:response[i].boundingbox[1],lng:response[i].boundingbox[2]}),new WPGMZA.LatLng({lat:response[i].boundingbox[0],lng:response[i].boundingbox[3]})),response[i].lng=response[i].lon;callback(response,status)};else{if(!options.latLng)throw new Error("You must supply either a latLng or address");location=options.latLng.toString(),finish=function(address,status){address=address[0].display_name;callback([address],status)}}var query={location:location,options:options};this.getResponseFromCache(query,function(response){response.length?finish(response,WPGMZA.Geocoder.SUCCESS):self.getResponseFromNominatim($.extend(options,{address:location}),function(response,status){status!=WPGMZA.Geocoder.FAIL?0!=response.length?(finish(response,WPGMZA.Geocoder.SUCCESS),self.cacheResponse(query,response)):callback([],WPGMZA.Geocoder.ZERO_RESULTS):callback(null,WPGMZA.Geocoder.FAIL)})})}}}),jQuery(function($){var Parent;WPGMZA.OLInfoWindow=function(mapObject){var self=this;Parent.call(this,mapObject),this.element=$("<div class='wpgmza-infowindow ol-info-window-container ol-info-window-plain'></div>")[0],$(this.element).on("click",".ol-info-window-close",function(event){self.close()})},Parent=WPGMZA.isProVersion()?WPGMZA.ProInfoWindow:WPGMZA.InfoWindow,WPGMZA.OLInfoWindow.prototype=Object.create(Parent.prototype),WPGMZA.OLInfoWindow.prototype.constructor=WPGMZA.OLInfoWindow,Object.defineProperty(WPGMZA.OLInfoWindow.prototype,"isPanIntoViewAllowed",{get:function(){return!0}}),WPGMZA.OLInfoWindow.prototype.open=function(map,mapObject){var self=this,latLng=mapObject.getPosition();if(!Parent.prototype.open.call(this,map,mapObject))return!1;this.parent=map,this.overlay&&this.mapObject.map.olMap.removeOverlay(this.overlay),this.overlay=new ol.Overlay({element:this.element,stopEvent:!1}),this.overlay.setPosition(ol.proj.fromLonLat([latLng.lng,latLng.lat])),self.mapObject.map.olMap.addOverlay(this.overlay),$(this.element).show(),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&WPGMZA.getImageDimensions(mapObject.getIcon(),function(size){$(self.element).css({left:Math.round(size.width/2)+"px"})}),this.trigger("infowindowopen"),this.trigger("domready")},WPGMZA.OLInfoWindow.prototype.close=function(event){$(this.element).hide(),this.overlay&&(WPGMZA.InfoWindow.prototype.close.call(this),this.trigger("infowindowclose"),this.mapObject.map.olMap.removeOverlay(this.overlay),this.overlay=null)},WPGMZA.OLInfoWindow.prototype.setContent=function(html){$(this.element).html("<i class='fa fa-times ol-info-window-close' aria-hidden='true'></i>"+html)},WPGMZA.OLInfoWindow.prototype.setOptions=function(options){options.maxWidth&&$(this.element).css({"max-width":options.maxWidth+"px"})},WPGMZA.OLInfoWindow.prototype.onOpen=function(){var self=this,imgs=$(this.element).find("img"),numImages=imgs.length,numImagesLoaded=0;function inside(a,b){a=$(a)[0].getBoundingClientRect(),b=$(b)[0].getBoundingClientRect();return a.left>=b.left&&a.left<=b.right&&a.right<=b.right&&a.right>=b.left&&a.top>=b.top&&a.top<=b.bottom&&a.bottom<=b.bottom&&a.bottom>=b.top}function panIntoView(){var offset=.45*-$(self.element).height();self.mapObject.map.animateNudge(0,offset,self.mapObject.getPosition())}WPGMZA.InfoWindow.prototype.onOpen.apply(this,arguments),this.isPanIntoViewAllowed&&(imgs.each(function(index,el){el.onload=function(){++numImagesLoaded!=numImages||inside(self.element,self.mapObject.map.element)||panIntoView()}}),0!=numImages||inside(self.element,self.mapObject.map.element)||panIntoView())}}),jQuery(function($){var Parent;WPGMZA.OLMap=function(element,viewOptions){var self=this;Parent.call(this,element),this.setOptions(viewOptions);var marker,viewOptions=this.settings.toOLViewOptions();$(this.element).html(""),this.olMap=new ol.Map({target:$(element)[0],layers:[this.getTileLayer()],view:new ol.View(viewOptions)}),this.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan?interaction.setActive("yes"!=self.settings.wpgmza_settings_map_draggable):interaction instanceof ol.interaction.DoubleClickZoom?interaction.setActive(!self.settings.wpgmza_settings_map_clickzoom):interaction instanceof ol.interaction.MouseWheelZoom&&interaction.setActive("yes"!=self.settings.wpgmza_settings_map_scroll)},this),"greedy"!=this.settings.wpgmza_force_greedy_gestures&&"yes"!=this.settings.wpgmza_force_greedy_gestures&&(this.gestureOverlay=$("<div class='wpgmza-gesture-overlay'></div>"),this.gestureOverlayTimeoutID=null,WPGMZA.isTouchDevice()||(this.olMap.on("wheel",function(event){if(!ol.events.condition.platformModifierKeyOnly(event))return self.showGestureOverlay(),event.originalEvent.preventDefault(),!1}),this.gestureOverlay.text(WPGMZA.localized_strings.use_ctrl_scroll_to_zoom))),this.olMap.getControls().forEach(function(control){control instanceof ol.control.Zoom&&"yes"==WPGMZA.settings.wpgmza_settings_map_zoom&&self.olMap.removeControl(control)},this),"yes"!=WPGMZA.settings.wpgmza_settings_map_full_screen_control&&this.olMap.addControl(new ol.control.FullScreen),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&(this.markerLayer=new ol.layer.Vector({source:new ol.source.Vector({features:[]})}),this.olMap.addLayer(this.markerLayer),this.olMap.on("click",function(marker){marker=self.olMap.getFeaturesAtPixel(marker.pixel);marker&&marker.length&&((marker=marker[0].wpgmzaMarker)&&(marker.trigger("click"),marker.trigger("select")))})),this.olMap.on("movestart",function(event){self.isBeingDragged=!0}),this.olMap.on("moveend",function(event){self.wrapLongitude(),self.isBeingDragged=!1,self.dispatchEvent("dragend"),self.onIdle()}),this.olMap.getView().on("change:resolution",function(event){self.dispatchEvent("zoom_changed"),self.dispatchEvent("zoomchanged"),setTimeout(function(){self.onIdle()},10)}),this.olMap.getView().on("change",function(){self.onBoundsChanged()}),self.onBoundsChanged(),this.storeLocator&&(marker=this.storeLocator.centerPointMarker)&&(this.olMap.addOverlay(marker.overlay),marker.setVisible(!1)),$(this.element).on("click contextmenu",function(event){var isRight;event=event||window.event;var latLng=self.pixelsToLatLng(event.offsetX,event.offsetY);return"which"in event?isRight=3==event.which:"button"in event&&(isRight=2==event.button),1==event.which||1==event.button?self.isBeingDragged||$(event.target).closest(".ol-marker").length?void 0:void self.trigger({type:"click",latLng:latLng}):isRight?self.onRightClick(event):void 0}),WPGMZA.isProVersion()||(this.trigger("init"),this.dispatchEvent("created"),WPGMZA.events.dispatchEvent({type:"mapcreated",map:this}),$(this.element).trigger("wpgooglemaps_loaded"))},Parent=WPGMZA.isProVersion()?WPGMZA.ProMap:WPGMZA.Map,WPGMZA.OLMap.prototype=Object.create(Parent.prototype),WPGMZA.OLMap.prototype.constructor=WPGMZA.OLMap,WPGMZA.OLMap.prototype.getTileLayer=function(){var options={};return WPGMZA.settings.tile_server_url&&(options.url=WPGMZA.settings.tile_server_url),new ol.layer.Tile({source:new ol.source.OSM(options)})},WPGMZA.OLMap.prototype.wrapLongitude=function(){var center=ol.proj.transform(this.olMap.getView().getCenter(),"EPSG:3857","EPSG:4326"),center={lat:center[1],lng:center[0]};-180<=center.lng&¢er.lng<=180||(center.lng=center.lng-360*Math.floor(center.lng/360),180<center.lng&&(center.lng-=360),this.setCenter(center))},WPGMZA.OLMap.prototype.getCenter=function(){var lonLat=ol.proj.toLonLat(this.olMap.getView().getCenter());return{lat:lonLat[1],lng:lonLat[0]}},WPGMZA.OLMap.prototype.setCenter=function(latLng){var view=this.olMap.getView();WPGMZA.Map.prototype.setCenter.call(this,latLng),view.setCenter(ol.proj.fromLonLat([latLng.lng,latLng.lat])),this.wrapLongitude(),this.onBoundsChanged()},WPGMZA.OLMap.prototype.getBounds=function(){var bottomRight=this.olMap.getView().calculateExtent(this.olMap.getSize()),nativeBounds=new WPGMZA.LatLngBounds,topLeft=ol.proj.toLonLat([bottomRight[0],bottomRight[1]]),bottomRight=ol.proj.toLonLat([bottomRight[2],bottomRight[3]]);return nativeBounds.north=topLeft[1],nativeBounds.south=bottomRight[1],nativeBounds.west=topLeft[0],nativeBounds.east=bottomRight[0],nativeBounds},WPGMZA.OLMap.prototype.fitBounds=function(southWest,extent){southWest instanceof WPGMZA.LatLng&&(southWest={lat:southWest.lat,lng:southWest.lng}),extent instanceof WPGMZA.LatLng?extent={lat:extent.lat,lng:extent.lng}:southWest instanceof WPGMZA.LatLngBounds&&(southWest={lat:(view=southWest).south,lng:view.west},extent={lat:view.north,lng:view.east});var view=this.olMap.getView(),extent=ol.extent.boundingExtent([ol.proj.fromLonLat([parseFloat(southWest.lng),parseFloat(southWest.lat)]),ol.proj.fromLonLat([parseFloat(extent.lng),parseFloat(extent.lat)])]);view.fit(extent,this.olMap.getSize())},WPGMZA.OLMap.prototype.panTo=function(latLng,zoom){var view=this.olMap.getView(),options={center:ol.proj.fromLonLat([parseFloat(latLng.lng),parseFloat(latLng.lat)]),duration:500};1<arguments.length&&(options.zoom=parseInt(zoom)),view.animate(options)},WPGMZA.OLMap.prototype.getZoom=function(){return Math.round(this.olMap.getView().getZoom())},WPGMZA.OLMap.prototype.setZoom=function(value){this.olMap.getView().setZoom(value)},WPGMZA.OLMap.prototype.getMinZoom=function(){return this.olMap.getView().getMinZoom()},WPGMZA.OLMap.prototype.setMinZoom=function(value){this.olMap.getView().setMinZoom(value)},WPGMZA.OLMap.prototype.getMaxZoom=function(){return this.olMap.getView().getMaxZoom()},WPGMZA.OLMap.prototype.setMaxZoom=function(value){this.olMap.getView().setMaxZoom(value)},WPGMZA.OLMap.prototype.setOptions=function(options){Parent.prototype.setOptions.call(this,options),this.olMap&&this.olMap.getView().setProperties(this.settings.toOLViewOptions())},WPGMZA.OLMap.prototype.addMarker=function(marker){WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT?this.olMap.addOverlay(marker.overlay):(this.markerLayer.getSource().addFeature(marker.feature),marker.featureInSource=!0),Parent.prototype.addMarker.call(this,marker)},WPGMZA.OLMap.prototype.removeMarker=function(marker){WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT?this.olMap.removeOverlay(marker.overlay):(this.markerLayer.getSource().removeFeature(marker.feature),marker.featureInSource=!1),Parent.prototype.removeMarker.call(this,marker)},WPGMZA.OLMap.prototype.addPolygon=function(polygon){this.olMap.addLayer(polygon.layer),Parent.prototype.addPolygon.call(this,polygon)},WPGMZA.OLMap.prototype.removePolygon=function(polygon){this.olMap.removeLayer(polygon.layer),Parent.prototype.removePolygon.call(this,polygon)},WPGMZA.OLMap.prototype.addPolyline=function(polyline){this.olMap.addLayer(polyline.layer),Parent.prototype.addPolyline.call(this,polyline)},WPGMZA.OLMap.prototype.removePolyline=function(polyline){this.olMap.removeLayer(polyline.layer),Parent.prototype.removePolyline.call(this,polyline)},WPGMZA.OLMap.prototype.addCircle=function(circle){this.olMap.addLayer(circle.layer),Parent.prototype.addCircle.call(this,circle)},WPGMZA.OLMap.prototype.removeCircle=function(circle){this.olMap.removeLayer(circle.layer),Parent.prototype.removeCircle.call(this,circle)},WPGMZA.OLMap.prototype.addRectangle=function(rectangle){this.olMap.addLayer(rectangle.layer),Parent.prototype.addRectangle.call(this,rectangle)},WPGMZA.OLMap.prototype.removeRectangle=function(rectangle){this.olMap.removeLayer(rectangle.layer),Parent.prototype.removeRectangle.call(this,rectangle)},WPGMZA.OLMap.prototype.pixelsToLatLng=function(x,lonLat){null==lonLat&&("x"in x&&"y"in x?(lonLat=x.y,x=x.x):console.warn("Y coordinate undefined in pixelsToLatLng (did you mean to pass 2 arguments?)"));lonLat=this.olMap.getCoordinateFromPixel([x,lonLat]);if(!lonLat)return{x:null,y:null};lonLat=ol.proj.toLonLat(lonLat);return{lat:lonLat[1],lng:lonLat[0]}},WPGMZA.OLMap.prototype.latLngToPixels=function(pixel){pixel=ol.proj.fromLonLat([pixel.lng,pixel.lat]),pixel=this.olMap.getPixelFromCoordinate(pixel);return pixel?{x:pixel[0],y:pixel[1]}:{x:null,y:null}},WPGMZA.OLMap.prototype.enableBicycleLayer=function(value){value?(this.bicycleLayer||(this.bicycleLayer=new ol.layer.Tile({source:new ol.source.OSM({url:"http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png"})})),this.olMap.addLayer(this.bicycleLayer)):this.bicycleLayer&&this.olMap.removeLayer(this.bicycleLayer)},WPGMZA.OLMap.prototype.showGestureOverlay=function(){var self=this;clearTimeout(this.gestureOverlayTimeoutID),$(this.gestureOverlay).stop().animate({opacity:"100"}),$(this.element).append(this.gestureOverlay),$(this.gestureOverlay).css({"line-height":$(this.element).height()+"px",opacity:"1.0"}),$(this.gestureOverlay).show(),this.gestureOverlayTimeoutID=setTimeout(function(){self.gestureOverlay.fadeOut(2e3)},2e3)},WPGMZA.OLMap.prototype.onElementResized=function(event){this.olMap.updateSize()},WPGMZA.OLMap.prototype.onRightClick=function(event){if($(event.target).closest(".ol-marker, .wpgmza_modern_infowindow, .wpgmza-modern-store-locator").length)return!0;var latLng=$(this.element).offset(),relX=event.pageX-latLng.left,latLng=event.pageY-latLng.top,latLng=this.pixelsToLatLng(relX,latLng);return this.trigger({type:"rightclick",latLng:latLng}),$(this.element).trigger({type:"rightclick",latLng:latLng}),event.preventDefault(),!1},WPGMZA.OLMap.prototype.enableAllInteractions=function(){this.olMap.getInteractions().forEach(function(interaction){(interaction instanceof ol.interaction.DragPan||interaction instanceof ol.interaction.DoubleClickZoom||interaction instanceof ol.interaction.MouseWheelZoom)&&interaction.setActive(!0)},this)}}),jQuery(function($){var Parent;WPGMZA.OLMarker=function(row){var self=this;Parent.call(this,row);var origin=ol.proj.fromLonLat([parseFloat(this.lng),parseFloat(this.lat)]);if(WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT){var img=$("<img alt=''/>")[0];img.onload=function(event){self.updateElementHeight(),self.map&&self.map.olMap.updateSize()},img.src=WPGMZA.defaultMarkerIcon,this.element=$("<div class='ol-marker'></div>")[0],$(this.element).attr("title",this.title),this.element.appendChild(img),this.element.wpgmzaMarker=this,$(this.element).on("mouseover",function(event){self.dispatchEvent("mouseover")}),this.overlay=new ol.Overlay({element:this.element,position:origin,positioning:"bottom-center",stopEvent:!1}),this.overlay.setPosition(origin),this.animation&&this.setAnimation(this.animation),this.setLabel(this.settings.label),row&&row.draggable&&this.setDraggable(!0),this.rebindClickListener()}else{if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)throw new Error("Invalid marker render mode");this.feature=new ol.Feature({geometry:new ol.geom.Point(origin)}),this.feature.setStyle(this.getVectorLayerStyle()),this.feature.wpgmzaMarker=this}this.trigger("init")},Parent=WPGMZA.isProVersion()?WPGMZA.ProMarker:WPGMZA.Marker,WPGMZA.OLMarker.prototype=Object.create(Parent.prototype),WPGMZA.OLMarker.prototype.constructor=WPGMZA.OLMarker,WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT="element",WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER="vector",WPGMZA.OLMarker.renderMode=WPGMZA.OLMarker.RENDER_MODE_HTML_ELEMENT,"open-layers"==WPGMZA.settings.engine&&WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER&&(WPGMZA.OLMarker.defaultVectorLayerStyle=new ol.style.Style({image:new ol.style.Icon({anchor:[.5,1],src:WPGMZA.defaultMarkerIcon})}),WPGMZA.OLMarker.hiddenVectorLayerStyle=new ol.style.Style({})),WPGMZA.OLMarker.prototype.getVectorLayerStyle=function(){return this.vectorLayerStyle||WPGMZA.OLMarker.defaultVectorLayerStyle},WPGMZA.OLMarker.prototype.updateElementHeight=function(height,calledOnFocus){var self=this;0!=(height=height||$(this.element).find("img").height())||calledOnFocus||$(window).one("focus",function(event){self.updateElementHeight(!1,!0)}),$(this.element).css({height:height+"px"})},WPGMZA.OLMarker.prototype.addLabel=function(){this.setLabel(this.getLabelText())},WPGMZA.OLMarker.prototype.setLabel=function(label){WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?label?(this.label||(this.label=$("<div class='ol-marker-label'/>"),$(this.element).append(this.label)),this.label.html(label)):this.label&&$(this.element).find(".ol-marker-label").remove():console.warn("Marker labels are not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.getVisible=function(visible){if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)return"none"!=this.overlay.getElement().style.display},WPGMZA.OLMarker.prototype.setVisible=function(visible){var style;Parent.prototype.setVisible.call(this,visible),WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?visible?(style=this.getVectorLayerStyle(),this.feature.setStyle(style)):this.feature.setStyle(null):this.overlay.getElement().style.display=visible?"block":"none"},WPGMZA.OLMarker.prototype.setPosition=function(origin){Parent.prototype.setPosition.call(this,origin);origin=ol.proj.fromLonLat([parseFloat(this.lng),parseFloat(this.lat)]);WPGMZA.OLMarker.renderMode==WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?this.feature.setGeometry(new ol.geom.Point(origin)):this.overlay.setPosition(origin)},WPGMZA.OLMarker.prototype.updateOffset=function(x,y){WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?(x=this._offset.x,y=this._offset.y,this.element.style.position="relative",this.element.style.left=x+"px",this.element.style.top=y+"px"):console.warn("Marker offset is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setAnimation=function(anim){if(WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER)switch(Parent.prototype.setAnimation.call(this,anim),anim){case WPGMZA.Marker.ANIMATION_NONE:$(this.element).removeAttr("data-anim");break;case WPGMZA.Marker.ANIMATION_BOUNCE:$(this.element).attr("data-anim","bounce");break;case WPGMZA.Marker.ANIMATION_DROP:$(this.element).attr("data-anim","drop")}else console.warn("Marker animation is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setDraggable=function(options){var self=this;WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?options?(options={disabled:!1},this.jQueryDraggableInitialized||(options.start=function(event){self.onDragStart(event)},options.stop=function(event){self.onDragEnd(event)}),$(this.element).draggable(options),this.jQueryDraggableInitialized=!0,this.rebindClickListener()):$(this.element).draggable({disabled:!0}):console.warn("Marker dragging is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.setOpacity=function(opacity){WPGMZA.OLMarker.renderMode!=WPGMZA.OLMarker.RENDER_MODE_VECTOR_LAYER?$(this.element).css({opacity:opacity}):console.warn("Marker opacity is not currently supported in Vector Layer rendering mode")},WPGMZA.OLMarker.prototype.onDragStart=function(event){this.isBeingDragged=!0,this.map.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan&&interaction.setActive(!1)})},WPGMZA.OLMarker.prototype.onDragEnd=function(event){var latLngAfterDrag=parseFloat($(this.element).css("top").match(/-?\d+/)[0]),offset_left=parseFloat($(this.element).css("left").match(/-?\d+/)[0]);$(this.element).css({top:"0px",left:"0px"});var pixelsBeforeDrag=this.getPosition(),pixelsBeforeDrag=this.map.latLngToPixels(pixelsBeforeDrag),latLngAfterDrag={x:pixelsBeforeDrag.x+offset_left,y:pixelsBeforeDrag.y+latLngAfterDrag},latLngAfterDrag=this.map.pixelsToLatLng(latLngAfterDrag);this.setPosition(latLngAfterDrag),this.isBeingDragged=!1,this.trigger({type:"dragend",latLng:latLngAfterDrag}),"yes"!=this.map.settings.wpgmza_settings_map_draggable&&this.map.olMap.getInteractions().forEach(function(interaction){interaction instanceof ol.interaction.DragPan&&interaction.setActive(!0)})},WPGMZA.OLMarker.prototype.onElementClick=function(self){self=self.currentTarget.wpgmzaMarker;self.isBeingDragged||(self.dispatchEvent("click"),self.dispatchEvent("select"))},WPGMZA.OLMarker.prototype.rebindClickListener=function(){$(this.element).off("click",this.onElementClick),$(this.element).on("click",this.onElementClick)}}),jQuery(function($){WPGMZA.OLModernStoreLocatorCircle=function(map,settings){WPGMZA.ModernStoreLocatorCircle.call(this,map,settings)},WPGMZA.OLModernStoreLocatorCircle.prototype=Object.create(WPGMZA.ModernStoreLocatorCircle.prototype),WPGMZA.OLModernStoreLocatorCircle.prototype.constructor=WPGMZA.OLModernStoreLocatorCircle,WPGMZA.OLModernStoreLocatorCircle.prototype.initCanvasLayer=function(){var self=this,mapElement=$(this.map.element),olViewportElement=mapElement.children(".ol-viewport");this.canvas=document.createElement("canvas"),this.canvas.className="wpgmza-ol-canvas-overlay",mapElement.append(this.canvas),this.renderFunction=function(event){self.canvas.width==olViewportElement.width()&&self.canvas.height==olViewportElement.height()||(self.canvas.width=olViewportElement.width(),self.canvas.height=olViewportElement.height(),$(this.canvas).css({width:olViewportElement.width()+"px",height:olViewportElement.height()+"px"})),self.draw()},this.map.olMap.on("postrender",this.renderFunction)},WPGMZA.OLModernStoreLocatorCircle.prototype.getContext=function(type){return this.canvas.getContext(type)},WPGMZA.OLModernStoreLocatorCircle.prototype.getCanvasDimensions=function(){return{width:this.canvas.width,height:this.canvas.height}},WPGMZA.OLModernStoreLocatorCircle.prototype.getCenterPixels=function(){return this.map.latLngToPixels(this.settings.center)},WPGMZA.OLModernStoreLocatorCircle.prototype.getWorldOriginOffset=function(){return{x:0,y:0}},WPGMZA.OLModernStoreLocatorCircle.prototype.getTransformedRadius=function(km){var centerPixels=new WPGMZA.LatLng(this.settings.center),outerPixels=new WPGMZA.LatLng(centerPixels);outerPixels.moveByDistance(km,90);centerPixels=this.map.latLngToPixels(centerPixels),outerPixels=this.map.latLngToPixels(outerPixels);return Math.abs(outerPixels.x-centerPixels.x)},WPGMZA.OLModernStoreLocatorCircle.prototype.getScale=function(){return 1},WPGMZA.OLModernStoreLocatorCircle.prototype.destroy=function(){$(this.canvas).remove(),this.map.olMap.un("postrender",this.renderFunction),this.map=null,this.canvas=null}}),jQuery(function($){WPGMZA.OLModernStoreLocator=function(map_id){WPGMZA.ModernStoreLocator.call(this,map_id),(WPGMZA.isProVersion()?$(".wpgmza_map[data-map-id='"+map_id+"']"):$("#wpgmza_map")).append(this.element)},WPGMZA.OLModernStoreLocator.prototype=Object.create(WPGMZA.ModernStoreLocator),WPGMZA.OLModernStoreLocator.prototype.constructor=WPGMZA.OLModernStoreLocator}),jQuery(function($){var Parent;WPGMZA.OLPolygon=function(options,olFeature){if(Parent.call(this,options,olFeature),this.olStyle=new ol.style.Style,olFeature)this.olFeature=olFeature;else{var coordinates=[[]];if(options&&options.polydata){for(var paths=this.parseGeometry(options.polydata),i=0;i<paths.length;i++)coordinates[0].push(ol.proj.fromLonLat([parseFloat(paths[i].lng),parseFloat(paths[i].lat)]));this.olStyle=new ol.style.Style(this.getStyleFromSettings())}this.olFeature=new ol.Feature({geometry:new ol.geom.Polygon(coordinates)})}this.layer=new ol.layer.Vector({source:new ol.source.Vector({features:[this.olFeature]}),style:this.olStyle}),this.layer.getSource().getFeatures()[0].setProperties({wpgmzaPolygon:this})},Parent=WPGMZA.isProVersion()?WPGMZA.ProPolygon:WPGMZA.Polygon,WPGMZA.OLPolygon.prototype=Object.create(Parent.prototype),WPGMZA.OLPolygon.prototype.constructor=WPGMZA.OLPolygon,WPGMZA.OLPolygon.prototype.getStyleFromSettings=function(){var params={};return this.linecolor&&this.lineopacity&&(params.stroke=new ol.style.Stroke({color:WPGMZA.hexOpacityToRGBA("#"+this.linecolor,this.lineopacity)})),this.opacity&&(params.fill=new ol.style.Fill({color:WPGMZA.hexOpacityToRGBA(this.fillcolor,this.opacity)})),params},WPGMZA.OLPolygon.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLPolygon.prototype.setEditable=function(editable){},WPGMZA.OLPolygon.prototype.toJSON=function(){var result=Parent.prototype.toJSON.call(this),coordinates=this.olFeature.getGeometry().getCoordinates()[0];result.points=[];for(var i=0;i<coordinates.length;i++){var latLng=ol.proj.toLonLat(coordinates[i]),latLng={lat:latLng[1],lng:latLng[0]};result.points.push(latLng)}return result}}),jQuery(function($){var Parent;WPGMZA.OLPolyline=function(params,olFeature){if(WPGMZA.Polyline.call(this,params),this.olStyle=new ol.style.Style,olFeature)this.olFeature=olFeature;else{var coordinates=[];if(params&&(params.polydata||params.points))for(var path=params.polydata?this.parseGeometry(params.polydata):params.points,i=0;i<path.length;i++){if(!$.isNumeric(path[i].lat))throw new Error("Invalid latitude");if(!$.isNumeric(path[i].lng))throw new Error("Invalid longitude");coordinates.push(ol.proj.fromLonLat([parseFloat(path[i].lng),parseFloat(path[i].lat)]))}params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.olFeature=new ol.Feature({geometry:new ol.geom.LineString(coordinates)})}this.layer=new ol.layer.Vector({source:new ol.source.Vector({features:[this.olFeature]}),style:this.olStyle}),this.layer.getSource().getFeatures()[0].setProperties({wpgmzaPolyline:this})},Parent=WPGMZA.Polyline,WPGMZA.OLPolyline.prototype=Object.create(Parent.prototype),WPGMZA.OLPolyline.prototype.constructor=WPGMZA.OLPolyline,WPGMZA.OLPolyline.prototype.getStyleFromSettings=function(){var params={};return this.settings.strokeOpacity&&(params.stroke=new ol.style.Stroke({color:WPGMZA.hexOpacityToRGBA(this.settings.strokeColor,this.settings.strokeOpacity),width:parseInt(this.settings.strokeWeight)})),params},WPGMZA.OLPolyline.prototype.updateStyleFromSettings=function(){var params=this.getStyleFromSettings();this.olStyle=new ol.style.Style(params),this.layer.setStyle(this.olStyle)},WPGMZA.OLPolyline.prototype.setEditable=function(editable){},WPGMZA.OLPolyline.prototype.setPoints=function(points){this.olFeature&&this.layer.getSource().removeFeature(this.olFeature);for(var coordinates=[],i=0;i<points.length;i++)coordinates.push(ol.proj.fromLonLat([parseFloat(points[i].lng),parseFloat(points[i].lat)]));this.olFeature=new ol.Feature({geometry:new ol.geom.LineString(coordinates)}),this.layer.getSource().addFeature(this.olFeature)},WPGMZA.OLPolyline.prototype.toJSON=function(){var result=Parent.prototype.toJSON.call(this),coordinates=this.olFeature.getGeometry().getCoordinates();result.points=[];for(var i=0;i<coordinates.length;i++){var latLng=ol.proj.toLonLat(coordinates[i]),latLng={lat:latLng[1],lng:latLng[0]};result.points.push(latLng)}return result}}),jQuery(function($){WPGMZA.OLText=function(){}}),jQuery(function($){WPGMZA.DataTable=function(element){var version,self=this;if(!$.fn.dataTable)return console.warn("The dataTables library is not loaded. Cannot create a dataTable. Did you enable 'Do not enqueue dataTables'?"),void(WPGMZA.settings.wpgmza_do_not_enqueue_datatables&&WPGMZA.getCurrentPage()==WPGMZA.PAGE_MAP_EDIT&&alert("You have selected 'Do not enqueue DataTables' in WP Google Maps' settings. No 3rd party software is loading the DataTables library. Because of this, the marker table cannot load. Please uncheck this option to use the marker table."));$.fn.dataTable.ext?$.fn.dataTable.ext.errMode="throw":(version=$.fn.dataTable.version||"unknown",console.warn("You appear to be running an outdated or modified version of the dataTables library. This may cause issues with table functionality. This is usually caused by 3rd party software loading an older version of DataTables. The loaded version is "+version+", we recommend version 1.10.12 or above.")),this.element=element,(this.element.wpgmzaDataTable=this).dataTableElement=this.getDataTableElement();var settings=this.getDataTableSettings();this.phpClass=$(element).attr("data-wpgmza-php-class"),(this.wpgmzaDataTable=this).useCompressedPathVariable=WPGMZA.restAPI.isCompressedPathVariableSupported&&WPGMZA.settings.enable_compressed_path_variables,this.method=this.useCompressedPathVariable?"GET":"POST",null==this.getLanguageURL()||"//cdn.datatables.net/plug-ins/1.10.12/i18n/English.json"==this.getLanguageURL()?(this.dataTable=$(this.dataTableElement).DataTable(settings),this.dataTable.ajax.reload()):$.ajax(this.getLanguageURL(),{success:function(response,status,xhr){self.languageJSON=response,self.dataTable=$(self.dataTableElement).DataTable(settings),self.dataTable.ajax.reload()},error:function(){self.dataTable=$(self.dataTableElement).DataTable(settings),self.dataTable.ajax.reload()}})},WPGMZA.DataTable.prototype.getDataTableElement=function(){return $(this.element).find("table")},WPGMZA.DataTable.prototype.onAJAXRequest=function(data,settings){var params={phpClass:this.phpClass},attr=$(this.element).attr("data-wpgmza-ajax-parameters");return attr&&$.extend(params,JSON.parse(attr)),$.extend(data,params)},WPGMZA.DataTable.prototype.onDataTableAjaxRequest=function(data,callback,options){var self=this,route=this.element,route=$(route).attr("data-wpgmza-rest-api-route"),options=this.onAJAXRequest(data,options),draw=options.draw;if(delete options.draw,!route)throw new Error("No data-wpgmza-rest-api-route attribute specified");options={method:"POST",useCompressedPathVariable:!0,data:options,dataType:"json",cache:!this.preventCaching,beforeSend:function(xhr){xhr.setRequestHeader("X-DataTables-Draw",draw)},success:function(response,status,xhr){response.draw=draw,self.lastResponse=response,callback(response),self.onAJAXResponse(response)}};return WPGMZA.restAPI.call(route,options)},WPGMZA.DataTable.prototype.getDataTableSettings=function(){var self=this,languageURL=this.element,options={};$(languageURL).attr("data-wpgmza-datatable-options")&&(options=JSON.parse($(languageURL).attr("data-wpgmza-datatable-options"))),options.deferLoading=!0,options.processing=!0,options.serverSide=!0,options.ajax=function(data,callback,settings){return WPGMZA.DataTable.prototype.onDataTableAjaxRequest.apply(self,arguments)},WPGMZA.AdvancedTableDataTable&&this instanceof WPGMZA.AdvancedTableDataTable&&WPGMZA.settings.wpgmza_default_items&&(options.iDisplayLength=parseInt(WPGMZA.settings.wpgmza_default_items)),options.aLengthMenu=[[5,10,25,50,100,-1],["5","10","25","50","100",WPGMZA.localized_strings.all]];languageURL=this.getLanguageURL();return languageURL&&(options.language={url:languageURL}),options},WPGMZA.DataTable.prototype.getLanguageURL=function(){if(!WPGMZA.locale)return null;var languageURL;switch(WPGMZA.locale.substr(0,2)){case"af":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Afrikaans.json";break;case"sq":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Albanian.json";break;case"am":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Amharic.json";break;case"ar":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Arabic.json";break;case"hy":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Armenian.json";break;case"az":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Azerbaijan.json";break;case"bn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Bangla.json";break;case"eu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Basque.json";break;case"be":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Belarusian.json";break;case"bg":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Bulgarian.json";break;case"ca":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Catalan.json";break;case"zh":languageURL="zh_TW"==WPGMZA.locale?WPGMZA.pluginDirURL+"languages/datatables/Chinese-traditional.json":"//cdn.datatables.net/plug-ins/1.10.12/i18n/Chinese.json";break;case"hr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Croatian.json";break;case"cs":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Czech.json";break;case"da":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Danish.json";break;case"nl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Dutch.json";break;case"et":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Estonian.json";break;case"fi":languageURL=WPGMZA.locale.match(/^fil/)?WPGMZA.pluginDirURL+"languages/datatables/Filipino.json":WPGMZA.pluginDirURL+"languages/datatables/Finnish.json";break;case"fr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/French.json";break;case"gl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Galician.json";break;case"ka":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Georgian.json";break;case"de":languageURL=WPGMZA.pluginDirURL+"languages/datatables/German.json";break;case"el":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Greek.json";break;case"gu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Gujarati.json";break;case"he":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hebrew.json";break;case"hi":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hindi.json";break;case"hu":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Hungarian.json";break;case"is":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Icelandic.json";break;case"id":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Indonesian.json";break;case"ga":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Irish.json";break;case"it":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Italian.json";break;case"ja":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Japanese.json";break;case"kk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Kazakh.json";break;case"ko":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Korean.json";break;case"ky":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Kyrgyz.json";break;case"lv":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Latvian.json";break;case"lt":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Lithuanian.json";break;case"mk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Macedonian.json";break;case"ml":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Malay.json";break;case"mn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Mongolian.json";break;case"ne":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Nepali.json";break;case"nb":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Norwegian-Bokmal.json";break;case"nn":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Norwegian-Nynorsk.json";break;case"ps":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Pashto.json";break;case"fa":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Persian.json";break;case"pl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Polish.json";break;case"pt":languageURL="pt_BR"==WPGMZA.locale?WPGMZA.pluginDirURL+"languages/datatables/Portuguese-Brasil.json":"//cdn.datatables.net/plug-ins/1.10.12/i18n/Portuguese.json";break;case"ro":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Romanian.json";break;case"ru":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Russian.json";break;case"sr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Serbian.json";break;case"si":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Sinhala.json";break;case"sk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Slovak.json";break;case"sl":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Slovenian.json";break;case"es":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Spanish.json";break;case"sw":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Swahili.json";break;case"sv":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Swedish.json";break;case"ta":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Tamil.json";break;case"te":languageURL=WPGMZA.pluginDirURL+"languages/datatables/telugu.json";break;case"th":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Thai.json";break;case"tr":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Turkish.json";break;case"uk":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Ukrainian.json";break;case"ur":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Urdu.json";break;case"uz":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Uzbek.json";break;case"vi":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Vietnamese.json";break;case"cy":languageURL=WPGMZA.pluginDirURL+"languages/datatables/Welsh.json"}return languageURL},WPGMZA.DataTable.prototype.onAJAXResponse=function(response){},WPGMZA.DataTable.prototype.reload=function(){this.dataTable.ajax.reload(null,!1)}}),jQuery(function($){WPGMZA.AdminMarkerDataTable=function(element){var self=this;this.preventCaching=!0,WPGMZA.DataTable.call(this,element),$(element).on("click","[data-delete-marker-id]",function(event){self.onDeleteMarker(event)}),$(element).find(".wpgmza.select_all_markers").on("click",function(event){self.onSelectAll(event)}),$(element).find(".wpgmza.bulk_delete").on("click",function(event){self.onBulkDelete(event)}),$(element).on("click","[data-center-marker-id]",function(event){self.onCenterMarker(event)})},WPGMZA.AdminMarkerDataTable.prototype=Object.create(WPGMZA.DataTable.prototype),WPGMZA.AdminMarkerDataTable.prototype.constructor=WPGMZA.AdminMarkerDataTable,WPGMZA.AdminMarkerDataTable.createInstance=function(element){return new WPGMZA.AdminMarkerDataTable(element)},WPGMZA.AdminMarkerDataTable.prototype.getDataTableSettings=function(){var self=this,options=WPGMZA.DataTable.prototype.getDataTableSettings.call(this);return options.createdRow=function(row,data,meta){meta=self.lastResponse.meta[meta];row.wpgmzaMarkerData=meta},options},WPGMZA.AdminMarkerDataTable.prototype.onEditMarker=function(event){WPGMZA.animatedScroll("#wpgmaps_tabs_markers")},WPGMZA.AdminMarkerDataTable.prototype.onDeleteMarker=function(data){var self=this,id=$(data.currentTarget).attr("data-delete-marker-id"),data={action:"delete_marker",security:WPGMZA.legacyajaxnonce,map_id:WPGMZA.mapEditPage.map.id,marker_id:id};$.post(ajaxurl,data,function(response){WPGMZA.mapEditPage.map.removeMarkerByID(id),self.reload()})},WPGMZA.AdminMarkerDataTable.prototype.onApproveMarker=function(event){var data=$(this).attr("id"),data={action:"approve_marker",security:WPGMZA.legacyajaxnonce,map_id:WPGMZA.mapEditPage.map.id,marker_id:data};$.post(ajaxurl,data,function(response){wpgmza_InitMap(),wpgmza_reinitialisetbl()})},WPGMZA.AdminMarkerDataTable.prototype.onSelectAll=function(event){$(this.element).find("input[name='mark']").prop("checked",!0)},WPGMZA.AdminMarkerDataTable.prototype.onBulkDelete=function(event){var self=this,ids=[],map=WPGMZA.maps[0];$(this.element).find("input[name='mark']:checked").each(function(index,row){row=$(row).closest("tr")[0];ids.push(row.wpgmzaMarkerData.id)}),ids.forEach(function(marker){marker=map.getMarkerByID(marker);marker&&map.removeMarker(marker)}),WPGMZA.restAPI.call("/markers/",{method:"DELETE",data:{ids:ids},complete:function(){self.reload()}})},WPGMZA.AdminMarkerDataTable.prototype.onCenterMarker=function(latLng){latLng=null==latLng.currentTarget?latLng:$(latLng.currentTarget).attr("data-center-marker-id"),latLng=WPGMZA.mapEditPage.map.getMarkerByID(latLng);latLng&&(latLng=new WPGMZA.LatLng({lat:latLng.lat,lng:latLng.lng}),WPGMZA.mapEditPage.map.setCenter(latLng),WPGMZA.mapEditPage.map.setZoom(6),WPGMZA.animateScroll("#wpgmaps_tabs_markers"))},$(document).ready(function(event){$("[data-wpgmza-admin-marker-datatable]").each(function(index,el){WPGMZA.adminMarkerDataTable=WPGMZA.AdminMarkerDataTable.createInstance(el)})})});
|
js/v8/wp-google-maps.min.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["./wp-google-maps/js/v8/wp-google-maps.combined.js"],"names":["jQuery","$","key","core","MARKER_PULL_DATABASE","MARKER_PULL_XML","PAGE_MAP_LIST","PAGE_MAP_EDIT","PAGE_SETTINGS","PAGE_SUPPORT","PAGE_CATEGORIES","PAGE_ADVANCED","PAGE_CUSTOM_FIELDS","maps","events","settings","restAPI","localized_strings","loadingHTML","getCurrentPage","WPGMZA","getQueryParamValue","window","location","href","match","getScrollAnimationOffset","scroll_animation_offset","height","getScrollAnimationDuration","scroll_animation_milliseconds","animateScroll","element","milliseconds","offset","animate","scrollTop","top","extend","child","parent","constructor","prototype","Object","create","guid","d","Date","getTime","performance","now","replace","c","r","Math","random","floor","toString","hexOpacityToRGBA","colour","opacity","hex","parseInt","parseFloat","hexToRgba","test","substring","split","length","join","g","b","a","rgbaToString","rgba","latLngRegexp","isLatLngString","str","m","LatLng","lat","lng","stringToLatLng","result","Error","isHexColorString","imageDimensionsCache","getImageDimensions","src","callback","img","document","createElement","onload","event","width","decodeEntities","input","e","String","fromCharCode","isDeveloperMode","this","developer_mode","Cookies","get","isProVersion","_isProVersion","openMediaDialog","file_frame","uploader","param","set_to_post_id","open","wp","media","frames","title","button","text","multiple","on","attachment","state","first","toJSON","id","url","getCurrentPosition","error","watch","options","nativeFunction","userLocationDenied","code","message","navigator","geolocation","enableHighAccuracy","position","trigger","err","console","warn","watchPosition","runCatchableTask","friendlyErrorContainer","friendlyError","FriendlyError","html","append","show","assertInstanceOf","instance","instanceName","pro","engine","fullInstanceName","getMapByID","MYMAP","map","Map","isGoogleAutocompleteSupported","google","places","Autocomplete","CloudAPI","isBeingUsed","googleAPIStatus","wpgmza_google_api_status","isSafari","ua","userAgent","toLowerCase","isTouchDevice","isDeviceiOS","MSStream","platform","isModernComponentStyleAllowed","user_interface_style","isElementInView","pageTop","pageBottom","elementTop","elementBottom","isFullScreen","name","regex","RegExp","notification","time","arguments","setTimeout","find","remove","WPGMZA_localized_data","value","useLegacyGlobals","elements","filter","RestAPI","createInstance","cloudAPI","onScroll","each","index","el","isInView","wpgmzaScrollIntoViewTriggerFlag","fullscreenElement","warning","protocol","unsecure_geolocation","after","refreshOnLoad","reload","Compatibility","preventDocumentWriteGoogleMapsAPI","old","write","content","call","compatiblityModule","root","factory","exports","module","define","amd","bind","global","CSS","escape","cssEscape","TypeError","codeUnit","string","firstCodeUnit","charCodeAt","charAt","PI","deg2rad","deg","Distance","MILES","KILOMETERS","MILES_PER_KILOMETER","KILOMETERS_PER_MILE","uiToMeters","uiDistance","distance_units","uiToKilometers","uiToMiles","kilometersToUI","km","between","lat1","lon1","lat2","lon2","dLat","dLon","sin","cos","atan2","sqrt","EliasFano","isSupported","decodingTablesInitialised","createDecodingTable","decodingTableHighBits","decodingTableDocIDNumber","decodingTableHighBitsCarryover","Uint8Array","i","zeroCount","j","encode","list","lastDocID","buffer1","bufferLength1","buffer2","bufferLength2","compressedBufferPointer1","compressedBufferPointer2","averageDelta","averageDeltaLog","log2","lowBitsLength","lowBitsMask","prev","maxCompressedSize","ceil","compressedBuffer","forEach","docID","docIDDelta","isNumeric","unaryCodeLength","pointer","decode","docIDNumber","resultPointer","lowBitsPointer","listCount","lowBitsCount","lowBits","cb","highBitsPointer","EventDispatcher","_listenersByType","addEventListener","type","listener","thisObject","useCapture","types","Function","target","hasOwnProperty","obj","push","removeEventListener","arr","splice","off","hasEventListener","dispatchEvent","Event","path","unshift","phase","CAPTURING_PHASE","_cancelled","_triggerListeners","AT_TARGET","BUBBLING_PHASE","topMostElement","customEvent","AddressInput","HTMLInputElement","json","fields","attr","JSON","parse","wpgmza_store_locator_restrict","country","googleAutoComplete","setComponentRestrictions","cloudAutoComplete","CloudAutocomplete","bubbles","cancelable","PHASE_CAPTURE","stopPropagation","FancyControls","formatToggleSwitch","div","container","parentNode","trim","label","addClass","replaceWith","wrap","formatToggleButton","yes","no","Geocoder","SUCCESS","ZERO_RESULTS","FAIL","getConstructor","GoogleGeocoder","OLGeocoder","getLatLngFromAddress","address","parts","latLng","getAddressFromLatLng","geocode","GoogleAPIErrorHandler","_error","self","currentPage","is_admin","userCanAdministrator","googleMapsAPIErrorDialog","errorMessageList","templateListItem","messagesAlreadyDisplayed","onErrorMessage","apply","wpgmza_google_maps_api_key","addErrorMessage","no_google_maps_api_key","urls","li","clone","buttonContainer","buttonTemplate","documentation","css","z-index","googleAPIErrorHandler","InfoWindow","mapObject","onOpen","STATE_CLOSED","onMapObjectAdded","OPEN_BY_CLICK","OPEN_BY_HOVER","STATE_OPEN","GoogleProInfoWindow","GoogleInfoWindow","OLProInfoWindow","OLInfoWindow","getContent","Marker","disable_infowindows","wpgmza_settings_disable_infowindows","disableInfoWindow","close","setContent","setOptions","infoopen","arg","_lat","_lng","REGEXP","isValid","defineProperty","set","val","fromString","fromCurrentPosition","coords","latitude","longitude","geocodeAddress","results","fromGoogleLatLng","googleLatLng","toGoogleLatLngArray","nativeLatLng","toGoogleLatLng","toLatLngLiteral","moveByDistance","kilometers","heading","delta","theta","phi1","lambda1","sinPhi1","cosPhi1","sinDelta","cosDelta","sinTheta","sinPhi2","phi2","asin","y","x","lambda2","getGreatCircleDistance","arg1","arg2","other","toRadians","deltaPhi","deltaLambda","LatLngBounds","southWest","northEast","south","north","west","east","fromGoogleLatLngBounds","googleLatLngBounds","getSouthWest","getNorthEast","fromGoogleLatLngBoundsLiteral","southwest","northeast","isInInitialState","undefined","extendByPixelMargin","latLngToPixels","pixelsToLatLng","contains","min","max","toLiteral","MapEditPage","diplay_enable_interactions_notice","themePanel","ThemePanel","themeEditor","ThemeEditor","wpgmza_settings_map_scroll","wpgmza_settings_map_draggable","wpgmza_settings_map_clickzoom","disabled_interactions_notice","disabled_interactions_button","mapEditPage","enableAllInteractions","fadeOut","successNotice","interactions_enabled_notice","delay","fadeIn","onZoomLimitChanged","Version","compare","pro_version","EQUAL_TO","ProMapEditPage","minZoom","maxZoom","body","MapObject","row","map_id","modified","parseGeometry","pairs","Parent","Circle","engineCircle","center","radius","OLCircle","GoogleCircle","getCenter","setCenter","getRadius","setRadius","getMap","setMap","removeCircle","addCircle","MapSettingsPage","_keypressHistory","updateEngineSpecificControls","updateGDPRControls","hide","onKeyPress","showNoticeControls","prop","vgmCheckbox","showOverrideTextarea","flushGeocodeCache","clearCache","response","removeAttr","slice","_developerModeRevealed","mapSettingsPage","ready","MapSettings","getAttribute","addSettings","other_settings","toOLViewOptions","ol","proj","fromLonLat","zoom","empty","start_location","map_start_lng","map_start_lat","start_zoom","map_min_zoom","map_max_zoom","toGoogleMapsOptions","latLngCoords","formatCoord","coord","zoomControl","wpgmza_settings_map_zoom","panControl","wpgmza_settings_map_pan","mapTypeControl","wpgmza_settings_map_type","streetViewControl","wpgmza_settings_map_streetview","fullscreenControl","wpgmza_settings_map_full_screen_control","draggable","disableDoubleClickZoom","scrollwheel","wpgmza_force_greedy_gestures","gestureHandling","mapTypeId","MapTypeId","SATELLITE","HYBRID","TERRAIN","ROADMAP","wpgmza_theme_data","styles","GoogleMap","parseThemeData","HTMLElement","hasAttribute","wpgmzaMap","engineElement","markers","polygons","polylines","circles","rectangles","loadSettings","shortcodeAttributes","initStoreLocator","markerFilter","MarkerFilter","nightTimeThemeData","elementType","stylers","color","featureType","GoogleProMap","OLProMap","OLMap","getZoom","setZoom","storeLocatorElement","storeLocator","StoreLocator","getGeographicDistance","setDimensions","addMarker","marker","removeMarker","infoWindow","indexOf","getMarkerByID","getMarkerByTitle","removeMarkerByID","addPolygon","polygon","Polygon","removePolygon","getPolygonByID","removePolygonByID","getPolylineByID","addPolyline","polyline","Polyline","removePolyline","removePolylineByID","circle","getCircleByID","removeCircleByID","nudgeLatLng","pixels","isNaN","nudge","nudged","animateNudge","origin","onWindowResize","onElementResized","onBoundsChanged","onIdle","hasVisibleMarkers","marker_id","markers_visible","marker_array","isFilterable","closeAllInfoWindows","MapsEngineDialog","wpgmzaUnbindSaveReminder","remodal","onButtonClicked","ajax","ajaxurl","method","data","action","nonce","success","status","xhr","wpgmza_maps_engine_dialog_done","mapsEngineDialog","getFilteringParameters","params","update","onFilteringComplete","MarkerPanel","markerPanel","_offset","description","link","icon","approved","pic","heatmap","setPosition","onAdded","handleLegacyGlobals","GoogleProMarker","GoogleMarker","OLProMarker","OLMarker","ANIMATION_NONE","ANIMATION_BOUNCE","ANIMATION_DROP","updateOffset","onClick","onMouseOver","onSelect","openInfoWindow","wpgmaps_localize_marker_data","cloned","initInfoWindow","lastInteractedMarker","info_window_open_by","getIcon","stripProtocol","defaultMarkerIcon","default_marker_icon","getPosition","setOffset","getAnimation","animation","setAnimation","getVisible","setVisible","visible","getDraggable","setDraggable","setOpacity","panIntoView","ModernStoreLocatorCircle","mapElement","mapSize","initCanvasLayer","shadowColor","shadowBlur","centerRingRadius","centerRingLineWidth","numInnerRings","innerRingLineWidth","innerRingFade","numOuterRings","ringLineWidth","mainRingLineWidth","numSpokes","spokesStartAngle","numRadiusLabels","radiusLabelsStartAngle","radiusLabelFont","GoogleModernStoreLocatorCircle","OLModernStoreLocatorCircle","onResize","draw","onUpdate","functionName","substr","toUpperCase","getResolutionScale","devicePixelRatio","getTransformedRadius","getContext","getCanvasDimensions","validateSettings","canvasDimensions","canvasWidth","canvasHeight","context","clearRect","setTransform","scale","getScale","getWorldOriginOffset","translate","worldPoint","getCenterPixels","ringSpacing","strokeStyle","lineWidth","beginPath","arc","stroke","closePath","grad","createRadialGradient","start","end","addColorStop","save","spokeAngle","setLineDash","moveTo","lineTo","restore","font","textAlign","textBaseline","fillStyle","textAngle","radiusString","rotate","measureText","fillText","ModernStoreLocator","original","inner","placeholder","items","numCategories","icons","closest","addressInput","wpgmaps_localize","store_locator_query_string","titleSearch","store_locator_name_string","keyCode","searchButton","searchLocations","onSearch","resetButton","resetLocations","STATE_APPLIED","STATE_INITIAL","children","category_id","wpgmza_category_data","image","background-image","prepend","optionsButton","before","setInterval","padding-left","outerWidth","hasClass","removeClass","onMouseOverCategory","onMouseLeaveCategory","store_locator_not_found_message","zero_results","alert","position_cat","$p_map","p_cat","outerHeight","padding-bottom","GoogleModernStoreLocator","OLModernStoreLocator","currentTarget","stop","NativeMapsAppIcon","begin","Array","external","enginePolygon","paths","GoogleProPolygon","GooglePolygon","OLProPolygon","OLPolygon","engineObject","googlePolyline","GooglePolyline","OLPolyline","getPoints","points","PopoutPanel","sendAJAXFallbackRequest","route","addNonce","CONTEXT_AJAX","URL","resturl","useAJAXFallback","CONTEXT_REST","serverCanInflate","disable_compressed_path_variables","enable_compressed_path_variables","compressParams","encoded","suffix","markerIDs","compressed","pako","deflate","ch","btoa","midcbp","stringify","TextEncoder","raw","getNonce","pattern","matches","restnoncetable","sort","setRESTNonce","setRequestHeader","restnonce","base","beforeSend","compressedParams","compressedRoute","attemptedCompressedPathVariable","fallbackRoute","fallbackParams","post","useCompressedPathVariable","isCompressedPathVariableSupported","isCompressedPathVariableAllowed","base64","isServerIIS","cache","skip_cache","maxURLLength","compressedPathVariableURLLimitWarningDisplayed","nativeCallFunction","dismiss_blocked_notice","SettingsPage","tabs","useLegacyHTML","settingsPage","_center","wpgmzaStoreLocator","onGeocodeComplete","which","onReset","store_locator_distance","_bounds","store_locator_bounce","_marker","_circle","wpgmza_store_locator_radius_style","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","clickable","circleStrokeColor","bounds","filteringParams","factor","distanceUnits","Text","GoogleText","OLText","appendTo","initHTML","updatePosition","features","all","administrative","landscape","poi","road","transit","water","geometry","labels","textarea","parseJSON","isArray","jsonCopy","highlightFeatures","highlightElements","loadElementStylers","v","feature","ii","vv","hue","lightness","xaturation","gamma","visibility","weight","writeElementStylers","new_feature_element_stylers","indexJSON","saturation","invert_lightness","updateMapTheme","click","owlCarousel","dots","onThemePresetClick","previewImageCenter","previewImageZoom","selectedData","existingData","allPresetData","confirm","overwrite_theme_data","invalid_theme_data","GREATER_THAN","LESS_THAN","v1","v2","v1parts","v2parts","Integration","integrationModules","__","registerBlockType","InspectorControls","_wp$components","Dashicon","PanelBody","i18n","blocks","editor","components","_wp$editor","BlockControls","Toolbar","Button","Tooltip","TextareaControl","CheckboxControl","TextControl","SelectControl","RichText","Gutenberg","getBlockDefinition","getBlockTitle","getBlockInspectorControls","props","React","class","adminurl","aria-hidden","getBlockAttributes","_this","category","keywords","attributes","edit","isSelected","className","gutenberg","onclick","GoogleUICompatibility","style","vendor","head","googleUICompatibility","googleCircle","wpgmzaCircle","addListener","googleOptions","getGoogleGeocoder","CloudGeocoder","componentRestrictions","GeocoderStatus","OK","nativeStatus","geocoder","NO_RESULTS","formatted_address","GoogleHTMLOverlay","googleMap","OverlayView","onAdd","getPanes","overlayMouseTarget","appendChild","onRemove","updateElementPosition","projection","getProjection","fromLatLngToDivPixel","left","setMapObject","Z_INDEX","ProInfoWindow","googleObject","googleMarker","googlePolygon","createGoogleInfoWindow","googleInfoWindow","setZIndex","intervalID","clearInterval","wpgmzaMapObject","google_api_not_loaded","loadGoogleMap","wpgmzaEvent","ProMap","eval","bicycle","enableBicycleLayer","traffic","enableTrafficLayer","transport","enablePublicTransportLayer","showPointsOfInterest","show_point_of_interest","initializing","converted","wpgmza_hide_point_of_interest","addRectangle","rectangle","googleRectangle","removeRectangle","panTo","getBounds","nativeBounds","topLeft","bottomRight","fitBounds","fitBoundsToVisibleMarkers","enable","bicycleLayer","BicyclingLayer","trafficLayer","TrafficLayer","publicTransportLayer","TransitLayer","getMinZoom","min_zoom","setMinZoom","getMaxZoom","max_zoom","setMaxZoom","topRight","fromLatLngToPoint","bottomLeft","pow","Point","fromPointToLatLng","_opacity","wpgmzaMarker","anim","googleMarkerPosition","ProMarker","setLabel","setIcon","Image","defaultAnchor","anchor","canvasLayer","resize_","setAnimate","CanvasLayer","resizeHandler","updateHandler","resolutionScale","scheduleUpdate","spherical","equator","offsetAtEquator","computeOffset","canvas","getTopLeft","destroy","restrict","autoComplete","controls","ControlPosition","TOP_CENTER","polydata","linecolor","lineopacity","fillcolor","wpgmzaPolygon","ProPolygon","getEditable","getOptions","editable","setEditable","getPath","getLength","getAt","linethickness","setPoints","wpgmzaPolyline","overlay","GoogleTextOverlay","floatPane","toggle","is","GoogleVertexContextMenu","innerHTML","addDomListener","removeVertex","preventDefault","divListener","getDiv","removeListener","removeChild","vertex","point","removeAt","olFeature","olStyle","Style","getStyleFromSettings","vectorLayer3857","layer","Vector","source","recreate","circle3857","getSource","removeFeature","geom","circular","transform","Feature","addFeature","fill","Fill","updateStyleFromSettings","setStyle","getResponseFromCache","query","lon","getResponseFromNominatim","q","format","countrycodes","cacheResponse","finish","boundingbox","display_name","olMap","removeOverlay","Overlay","stopEvent","addOverlay","renderMode","RENDER_MODE_VECTOR_LAYER","size","round","maxWidth","max-width","imgs","numImages","numImagesLoaded","inside","viewport","getBoundingClientRect","right","bottom","isPanIntoViewAllowed","viewOptions","layers","getTileLayer","view","View","getInteractions","interaction","DragPan","setActive","DoubleClickZoom","MouseWheelZoom","gestureOverlay","gestureOverlayTimeoutID","condition","platformModifierKeyOnly","showGestureOverlay","originalEvent","use_ctrl_scroll_to_zoom","getControls","control","Zoom","removeControl","addControl","FullScreen","markerLayer","addLayer","getFeaturesAtPixel","pixel","isBeingDragged","wrapLongitude","getView","centerPointMarker","isRight","offsetX","offsetY","onRightClick","tile_server_url","Tile","OSM","transformed","lonLat","toLonLat","calculateExtent","getSize","extent","boundingExtent","fit","duration","setProperties","RENDER_MODE_HTML_ELEMENT","featureInSource","removeLayer","getCoordinateFromPixel","getPixelFromCoordinate","clearTimeout","line-height","updateSize","parentOffset","relX","pageX","relY","pageY","updateElementHeight","positioning","rebindClickListener","getVectorLayerStyle","defaultVectorLayerStyle","Icon","hiddenVectorLayerStyle","vectorLayerStyle","calledOnFocus","one","addLabel","getLabelText","getElement","display","setGeometry","disabled","jQueryDraggableInitialized","onDragStart","onDragEnd","currentLatLng","pixelsBeforeDrag","pixelsAfterDrag","latLngAfterDrag","onElementClick","olViewportElement","renderFunction","outer","centerPixels","outerPixels","abs","un","coordinates","getFeatures","Stroke","getGeometry","getCoordinates","LineString","DataTable","version","fn","dataTable","wpgmza_do_not_enqueue_datatables","ext","errMode","wpgmzaDataTable","dataTableElement","getDataTableElement","getDataTableSettings","phpClass","getLanguageURL","languageJSON","onAJAXRequest","onDataTableAjaxRequest","dataType","preventCaching","lastResponse","onAJAXResponse","deferLoading","processing","serverSide","AdvancedTableDataTable","wpgmza_default_items","iDisplayLength","aLengthMenu","languageURL","language","locale","pluginDirURL","AdminMarkerDataTable","onDeleteMarker","onSelectAll","onBulkDelete","onCenterMarker","createdRow","meta","wpgmzaMarkerData","onEditMarker","animatedScroll","security","legacyajaxnonce","onApproveMarker","cur_id","wpgmza_InitMap","wpgmza_reinitialisetbl","ids","complete","adminMarkerDataTable"],"mappings":"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"}
|
js/wpgmaps-admin-core.js
CHANGED
@@ -400,7 +400,8 @@ jQuery(function($) {
|
|
400 |
});
|
401 |
|
402 |
var geocoder = WPGMZA.Geocoder.createInstance();
|
403 |
-
|
|
|
404 |
|
405 |
jQuery("body").on("click", ".wpgmza_del_btn", function() {
|
406 |
|
@@ -961,6 +962,8 @@ MYMAP.init = function(selector, latLng, zoom) {
|
|
961 |
this.map.setOptions({
|
962 |
mapTypeId: maptype
|
963 |
});
|
|
|
|
|
964 |
//this.bounds = new google.maps.LatLngBounds();
|
965 |
|
966 |
if ("undefined" !== typeof wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] && wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] !== false && wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] !== "") {
|
@@ -1227,12 +1230,15 @@ function add_marker(marker_data) {
|
|
1227 |
d_string = "<p style='min-width:100px; display:block;'>"+Math.round(marker_data.d,2)+" "+wpgmaps_lang_km_away+"</p>";
|
1228 |
}
|
1229 |
} else { d_string = ''; }
|
1230 |
-
|
|
|
|
|
1231 |
var html='<span style=\'min-width:100px; display:block;\'>'+marker_data.address+'</span>'+d_string;
|
1232 |
if (marker_data.infoopen === "1") {
|
1233 |
-
infoWindow[
|
1234 |
-
infoWindow[
|
1235 |
}
|
|
|
1236 |
temp_actiontype = 'click';
|
1237 |
if (typeof wpgmaps_localize_global_settings.wpgmza_settings_map_open_marker_by !== "undefined" && wpgmaps_localize_global_settings.wpgmza_settings_map_open_marker_by == '2') {
|
1238 |
temp_actiontype = 'mouseover';
|
@@ -1240,8 +1246,8 @@ function add_marker(marker_data) {
|
|
1240 |
|
1241 |
marker.on(temp_actiontype, function() {
|
1242 |
close_infowindows();
|
1243 |
-
infoWindow[
|
1244 |
-
infoWindow[
|
1245 |
});
|
1246 |
|
1247 |
}
|
400 |
});
|
401 |
|
402 |
var geocoder = WPGMZA.Geocoder.createInstance();
|
403 |
+
|
404 |
+
wpgmza_InitMap();
|
405 |
|
406 |
jQuery("body").on("click", ".wpgmza_del_btn", function() {
|
407 |
|
962 |
this.map.setOptions({
|
963 |
mapTypeId: maptype
|
964 |
});
|
965 |
+
|
966 |
+
jQuery(document.body).trigger('wpgmza_map_editor_init');
|
967 |
//this.bounds = new google.maps.LatLngBounds();
|
968 |
|
969 |
if ("undefined" !== typeof wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] && wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] !== false && wpgmaps_localize[wpgmaps_mapid]['other_settings']['wpgmza_theme_data'] !== "") {
|
1230 |
d_string = "<p style='min-width:100px; display:block;'>"+Math.round(marker_data.d,2)+" "+wpgmaps_lang_km_away+"</p>";
|
1231 |
}
|
1232 |
} else { d_string = ''; }
|
1233 |
+
|
1234 |
+
infoWindow[marker.id] = WPGMZA.InfoWindow.createInstance(marker);
|
1235 |
+
|
1236 |
var html='<span style=\'min-width:100px; display:block;\'>'+marker_data.address+'</span>'+d_string;
|
1237 |
if (marker_data.infoopen === "1") {
|
1238 |
+
infoWindow[marker.id].setContent(html);
|
1239 |
+
infoWindow[marker.id].open(marker_data.map, wpgmaps_markers_array[marker_data.marker_id]);
|
1240 |
}
|
1241 |
+
|
1242 |
temp_actiontype = 'click';
|
1243 |
if (typeof wpgmaps_localize_global_settings.wpgmza_settings_map_open_marker_by !== "undefined" && wpgmaps_localize_global_settings.wpgmza_settings_map_open_marker_by == '2') {
|
1244 |
temp_actiontype = 'mouseover';
|
1246 |
|
1247 |
marker.on(temp_actiontype, function() {
|
1248 |
close_infowindows();
|
1249 |
+
infoWindow[marker.id].setContent(html);
|
1250 |
+
infoWindow[marker.id].open(marker_data.map, marker);
|
1251 |
});
|
1252 |
|
1253 |
}
|
js/wpgmaps.js
CHANGED
@@ -132,6 +132,7 @@ jQuery(function($) {
|
|
132 |
});
|
133 |
|
134 |
InitMap();
|
|
|
135 |
jQuery('body').on('tabsactivate', function(){setTimeout(function(){InitMap();}, 500); });
|
136 |
jQuery('body').on('tabsshow', function(){setTimeout(function(){InitMap();}, 500); });
|
137 |
jQuery('body').on('accordionactivate', function(){setTimeout(function(){InitMap();}, 500); });
|
132 |
});
|
133 |
|
134 |
InitMap();
|
135 |
+
jQuery(document).ready(function(){ InitMap(); });
|
136 |
jQuery('body').on('tabsactivate', function(){setTimeout(function(){InitMap();}, 500); });
|
137 |
jQuery('body').on('tabsshow', function(){setTimeout(function(){InitMap();}, 500); });
|
138 |
jQuery('body').on('accordionactivate', function(){setTimeout(function(){InitMap();}, 500); });
|
legacy-core.php
CHANGED
@@ -1462,17 +1462,7 @@ function wpgmaps_tag_basic( $atts )
|
|
1462 |
|
1463 |
$user_api_key = get_option( 'wpgmza_google_maps_api_key' );
|
1464 |
|
1465 |
-
if (
|
1466 |
-
$wpgmaps_extra_css = ".wpgmza_map img { max-width:none; } .wpgmza_widget { overflow: auto; }";
|
1467 |
-
wp_add_inline_style( 'wpgmaps-style', stripslashes( $wpgmaps_extra_css ) );
|
1468 |
-
|
1469 |
-
$wpgmza_main_settings = get_option("WPGMZA_OTHER_SETTINGS");
|
1470 |
-
if (isset($wpgmza_main_settings['wpgmza_custom_css']) && $wpgmza_main_settings['wpgmza_custom_css'] != "") {
|
1471 |
-
wp_add_inline_style( 'wpgmaps-style', stripslashes( $wpgmza_main_settings['wpgmza_custom_css'] ) );
|
1472 |
-
}
|
1473 |
-
|
1474 |
-
}
|
1475 |
-
if (isset($atts['zoom'])) {
|
1476 |
$zoom_override = (int)$atts['zoom'];
|
1477 |
$wpgmza_override['zoom'] = $zoom_override;
|
1478 |
}
|
@@ -1609,10 +1599,20 @@ function wpgmaps_tag_basic( $atts )
|
|
1609 |
if($index = array_search('wpgmza-google-vertex-context-menu', $core_dependencies))
|
1610 |
array_splice($core_dependencies, $index, 1);
|
1611 |
}
|
1612 |
-
|
1613 |
wp_enqueue_script('wpgmaps_core', plugins_url('/js/wpgmaps.js',__FILE__), $core_dependencies, $wpgmza_version.'b' , false);
|
1614 |
|
1615 |
$wpgmza->loadScripts();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1616 |
|
1617 |
wp_localize_script('wpgmaps_core', 'wpgmza_circle_data_array', wpgmza_get_circle_data(1));
|
1618 |
wp_localize_script('wpgmaps_core', 'wpgmza_rectangle_data_array', wpgmza_get_rectangle_data(1));
|
1462 |
|
1463 |
$user_api_key = get_option( 'wpgmza_google_maps_api_key' );
|
1464 |
|
1465 |
+
if (isset($atts['zoom'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1466 |
$zoom_override = (int)$atts['zoom'];
|
1467 |
$wpgmza_override['zoom'] = $zoom_override;
|
1468 |
}
|
1599 |
if($index = array_search('wpgmza-google-vertex-context-menu', $core_dependencies))
|
1600 |
array_splice($core_dependencies, $index, 1);
|
1601 |
}
|
1602 |
+
|
1603 |
wp_enqueue_script('wpgmaps_core', plugins_url('/js/wpgmaps.js',__FILE__), $core_dependencies, $wpgmza_version.'b' , false);
|
1604 |
|
1605 |
$wpgmza->loadScripts();
|
1606 |
+
|
1607 |
+
if (!function_exists('wpgmaps_admin_styles_pro')) {
|
1608 |
+
$wpgmaps_extra_css = ".wpgmza_map img { max-width:none; } .wpgmza_widget { overflow: auto; }";
|
1609 |
+
wp_add_inline_style( 'wpgmza-common', stripslashes( $wpgmaps_extra_css ) );
|
1610 |
+
|
1611 |
+
$wpgmza_main_settings = get_option("WPGMZA_OTHER_SETTINGS");
|
1612 |
+
if (isset($wpgmza_main_settings['wpgmza_custom_css']) && $wpgmza_main_settings['wpgmza_custom_css'] != "") {
|
1613 |
+
wp_add_inline_style( 'wpgmza-common', stripslashes( $wpgmza_main_settings['wpgmza_custom_css'] ) );
|
1614 |
+
}
|
1615 |
+
}
|
1616 |
|
1617 |
wp_localize_script('wpgmaps_core', 'wpgmza_circle_data_array', wpgmza_get_circle_data(1));
|
1618 |
wp_localize_script('wpgmaps_core', 'wpgmza_rectangle_data_array', wpgmza_get_rectangle_data(1));
|
readme.txt
CHANGED
@@ -216,6 +216,10 @@ Please update your WP Google Maps version to 6.2.1 to ensure you are using the l
|
|
216 |
|
217 |
== Changelog ==
|
218 |
|
|
|
|
|
|
|
|
|
219 |
= 8.0.28 - 2020-11-26 - Low priority =
|
220 |
* Tested the plugin with WP5.6 RC1 - All seems in order
|
221 |
* Modified the Google Places Autocomplete functionality to reduce the amount of API calls originating from basic users
|
@@ -1596,6 +1600,13 @@ For more, please view the WP Google Maps site
|
|
1596 |
|
1597 |
|
1598 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1599 |
|
1600 |
|
1601 |
|
216 |
|
217 |
== Changelog ==
|
218 |
|
219 |
+
= 8.0.29 - 2020-12-11 - High priority =
|
220 |
+
* Tested up to WordPress 5.6
|
221 |
+
* Added support for jQuery 3
|
222 |
+
|
223 |
= 8.0.28 - 2020-11-26 - Low priority =
|
224 |
* Tested the plugin with WP5.6 RC1 - All seems in order
|
225 |
* Modified the Google Places Autocomplete functionality to reduce the amount of API calls originating from basic users
|
1600 |
|
1601 |
|
1602 |
|
1603 |
+
|
1604 |
+
|
1605 |
+
|
1606 |
+
|
1607 |
+
|
1608 |
+
|
1609 |
+
|
1610 |
|
1611 |
|
1612 |
|
wpGoogleMaps.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP Google Maps
|
4 |
Plugin URI: https://www.wpgmaps.com
|
5 |
Description: The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.
|
6 |
-
Version: 8.0.
|
7 |
Author: WP Google Maps
|
8 |
Author URI: https://www.wpgmaps.com
|
9 |
Text Domain: wp-google-maps
|
@@ -11,6 +11,10 @@ Domain Path: /languages
|
|
11 |
*/
|
12 |
|
13 |
/*
|
|
|
|
|
|
|
|
|
14 |
* 8.0.28 - 2020-11-26 - Low priority
|
15 |
* Tested the plugin with WP5.6 RC1 - All seems in order
|
16 |
* Modified the Google Places Autocomplete functionality to reduce the amount of API calls originating from basic users
|
3 |
Plugin Name: WP Google Maps
|
4 |
Plugin URI: https://www.wpgmaps.com
|
5 |
Description: The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.
|
6 |
+
Version: 8.0.29
|
7 |
Author: WP Google Maps
|
8 |
Author URI: https://www.wpgmaps.com
|
9 |
Text Domain: wp-google-maps
|
11 |
*/
|
12 |
|
13 |
/*
|
14 |
+
* 8.0.29 - 2020-12-11 - High priority
|
15 |
+
* Tested up to WordPress 5.6
|
16 |
+
* Added support for jQuery 3
|
17 |
+
*
|
18 |
* 8.0.28 - 2020-11-26 - Low priority
|
19 |
* Tested the plugin with WP5.6 RC1 - All seems in order
|
20 |
* Modified the Google Places Autocomplete functionality to reduce the amount of API calls originating from basic users
|