PageSourceSearch

https://culturaorpesa.es/core/modules/30e2d5fe19/assets/js/wpgmp-viewport-filter.js

js culturaorpesa.es collected 2026-10-07 00:32:27 UTC 3,480 bytes, 115 lines download raw bytes

1jQuery( document ).ready(function($) {
2			    
3    jQuery.fn.filterListingByViewport = function ( options ) { 
4
5    	let settings = $.extend( { mapWidth: "50" }, options );
6
7		let map_obj = jQuery(settings.wpgmp_map_selector).data("wpgmp_maps");
8
9		var input = $(map_obj.container).find('[data-input="map-search-control"]')[0];
10
11		var searchBox = new google.maps.places.Autocomplete(input);
12
13		if (wpgmp_local.wpgmp_country_specific && wpgmp_local.wpgmp_country_specific == true) {
14			searchBox.setComponentRestrictions({
15				'country': wpgmp_local.wpgmp_countries
16			});
17		}
18
19		var marker = new google.maps.Marker({
20			icon:  map_obj.settings.marker_default_icon,
21			draggable: false,
22			map: map_obj.map,
23		});
24		map_obj.marker_bind(marker);
25
26		$(map_obj.container).on('click', '.categories_filter_reset_btn', function() {
27			map_obj.map_data.places = map_obj.places;
28			map_obj.update_filters();
29			
30		});
31		
32		let enable_viewport_filter = function(){
33			
34			var all_places = map_obj.places;
35			google.maps.event.addListener(map_obj.map, 'zoom_changed', function() {
36				filterListViewport();
37			});
38
39			google.maps.event.addListener(map_obj.map, 'dragend', function() { 
40				filterListViewport();
41			});
42
43			google.maps.event.addListener(searchBox, 'place_changed', function() { 
44				var place = searchBox.getPlace();
45				if(map_obj.settings.zoom_level_after_search != undefined) {
46					map_obj.map.setZoom(parseInt(map_obj.settings.zoom_level_after_search));
47				} else {
48					map_obj.map.setZoom(parseInt(10));
49				}
50				map_obj.map.setCenter(place.geometry.location);
51				marker.setPosition(place.geometry.location);
52				marker.setVisible(true);
53				filterListViewport();
54				
55				
56			});
57
58			function filterListViewport(){
59
60				var bounds = map_obj.map.getBounds();
61			    var bound_markers = [];
62				for(var i = 0; i< all_places.length; i++){ // looping through my Markers Collection    
63					if(bounds.contains(all_places[i].marker.getPosition())){
64					  bound_markers.push(all_places[i]);
65					}
66				}
67				map_obj.show_places = bound_markers;
68	            map_obj.map_data.places = map_obj.show_places;
69
70				if (map_obj.map_data.listing) {
71
72					if ($(map_obj.container).find('[data-filter="map-sorting"]').val()) {
73						var order_data = $(map_obj.container).find('[data-filter="map-sorting"]').val().split("__");
74						var data_type = '';
75						if (order_data[0] !== '' && order_data[1] !== '') {
76	
77							if (typeof order_data[2] != 'undefined') {
78								data_type = order_data[2];
79							}
80							map_obj.sorting(order_data[0], order_data[1], data_type);
81						}
82					} else {
83						if (map_obj.map_data.listing.default_sorting) {
84							var data_type = '';
85							if (map_obj.map_data.listing.default_sorting.orderby == 'listorder') {
86								data_type = 'num';
87							}
88							map_obj.sorting(map_obj.map_data.listing.default_sorting.orderby, map_obj.map_data.listing.default_sorting.inorder, data_type);
89						}
90					}
91				}
92				map_obj.update_filters();
93	            map_obj.update_places_listing();
94
95			}
96
97			
98	 	}
99
100	 	if (map_obj !== 'undefined' && map_obj.map_data.listing && map_obj.map_data.viewportfilter) { 
101	 		enable_viewport_filter(); 		
102	 	}
103
104	 	return this;
105	};
106
107	jQuery("div.wpgmp_map_container").each(function (index, element) { 
108
109		let wpgmp_map_selector = "#"+$(this).attr('rel');
110		let wpgmp_layout_args = {'wpgmp_map_selector' : wpgmp_map_selector};
111		jQuery(wpgmp_map_selector).filterListingByViewport(wpgmp_layout_args);
112	    
113	});
114		
115});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.