PageSourceSearch

https://essexmonastery.com/wp-content/cache/perfmatters/essexmonas…f80ee88f942.review-filters.min.js?ver=1.4.1

js essexmonastery.com collected 2026-09-24 20:41:43 UTC 12,293 bytes, 55 lines download raw bytes

1(function($){'use strict';var config=window.yayrevFilterManager||{};var debounceTimer=null;var currentRequest=null;var topicFacets={};var hasPushedState=!1;var state={ratings:[],ratingLevels:5,contentLength:null,timePeriod:null,verifiedOnly:!1,hasMedia:!1,hasReply:!1,sameCountry:!1,topicIds:[],sortBy:'recent',page:1,filteredTotal:null};function initFromUrl(){var params=new URLSearchParams(window.location.search);var $ratingSummary=$('.yayrev-rating-summary');state.ratingLevels=parseInt(params.get('rating_levels'),10)||parseInt($ratingSummary.find('.yayrev-rating-bar[data-levels]').first().data('levels'),10)||5;var ratings=params.get('ratings');if(ratings){state.ratings=ratings.split(',').map(function(r){return parseInt(r,10)}).filter(function(r){return r>=1&&r<=state.ratingLevels})}
2state.contentLength=params.get('content_length')||null;state.timePeriod=params.get('time_period')||null;state.verifiedOnly=params.get('verified_only')==='1';state.hasMedia=params.get('has_media')==='1';state.hasReply=params.get('has_reply')==='1';state.sameCountry=params.get('same_country')==='1';var topicIds=params.get('topic_ids');state.topicIds=topicIds?topicIds.split(',').map(function(id){return parseInt(id,10)}).filter(function(id){return id>0}):[];state.sortBy=params.get('sort_by')||'recent';state.page=parseInt(params.get('page'),10)||1}
3function updateUrl(){var params=new URLSearchParams();if(state.ratings.length>0){params.set('ratings',state.ratings.join(','));if(state.ratingLevels!==5){params.set('rating_levels',state.ratingLevels.toString())}}
4if(state.contentLength){params.set('content_length',state.contentLength)}
5if(state.timePeriod){params.set('time_period',state.timePeriod)}
6if(state.verifiedOnly){params.set('verified_only','1')}
7if(state.hasMedia){params.set('has_media','1')}
8if(state.hasReply){params.set('has_reply','1')}
9if(state.sameCountry){params.set('same_country','1')}
10if(state.topicIds.length>0){params.set('topic_ids',state.topicIds.join(','))}
11if(state.sortBy!=='recent'){params.set('sort_by',state.sortBy)}
12if(state.page>1){params.set('page',state.page.toString())}
13var newUrl=window.location.pathname;var queryString=params.toString();if(queryString){newUrl+='?'+queryString}
14newUrl+='#reviews';hasPushedState=!0;window.history.pushState({yayrevFilters:$.extend({},state)},'',newUrl)}
15function fetchReviews(){if(currentRequest){currentRequest.abort()}
16showLoading();var data={product_id:config.productId,ratings:state.ratings,rating_levels:state.ratingLevels,verified_only:state.verifiedOnly,has_media:state.hasMedia,has_reply:state.hasReply,same_country:state.sameCountry,sort_by:state.sortBy,topic_ids:state.topicIds,page:state.page,per_page:config.perPage||10};if(state.contentLength){data.content_length=state.contentLength}
17if(state.timePeriod){data.time_period=state.timePeriod}
18currentRequest=$.ajax({url:config.restUrl,method:'POST',beforeSend:function(xhr){xhr.setRequestHeader('X-WP-Nonce',config.nonce)},contentType:'application/json',data:JSON.stringify(data),success:handleSuccess,error:handleError,complete:function(){currentRequest=null}})}
19function debouncedFetch(){if(debounceTimer){clearTimeout(debounceTimer)}
20debounceTimer=setTimeout(function(){fetchReviews();updateUrl()},config.debounceMs||300)}
21function handleSuccess(response){if(!response.success){handleError(null,null,response.message);return}
22var $container=$(config.selectors.container);var $reviewsList=$container.find(config.selectors.reviewsList);var $pagination=$container.find(config.selectors.pagination);if($reviewsList.length){$reviewsList.replaceWith(response.data.html)}else{var $emptyState=$container.find('.yayrev-empty-state, .woocommerce-noreviews');if($emptyState.length){$emptyState.replaceWith(response.data.html)}else{var $filterBar=$container.find(config.selectors.filterBar);if($filterBar.length){$filterBar.after(response.data.html)}else{$container.find('#comments').prepend(response.data.html)}}}
23if($pagination.length){if(response.data.pagination_html){$pagination.replaceWith(response.data.pagination_html)}else{$pagination.remove()}}else if(response.data.pagination_html){$container.find(config.selectors.reviewsList).after(response.data.pagination_html)}
24state.filteredTotal=response.data.total;topicFacets=response.data.topic_facets||{};if(response.data.current_page){state.page=response.data.current_page}
25updateLiveRegion(response.data.total,response.data.filters_applied);hideLoading();updateFilterUI();var $newList=$container.find(config.selectors.reviewsList);$newList.addClass('yayrev-updated');setTimeout(function(){$newList.removeClass('yayrev-updated')},300);if(window.YayRevReviewSlider){window.YayRevReviewSlider.reinit()}
26document.dispatchEvent(new CustomEvent('yayrev:reviews_updated'))}
27function handleError(xhr,status,error){if(status==='abort'){return}
28hideLoading();var $container=$(config.selectors.container);var $existingError=$container.find('.yayrev-filter-error');if($existingError.length){$existingError.remove()}
29var $error=$('<div class="yayrev-filter-error">'+'<p>'+(config.i18n.error||'Error loading reviews.')+'</p>'+'<button type="button" class="yayrev-retry">'+(config.i18n.retry||'Try Again')+'</button>'+'</div>');var $filterBar=$container.find(config.selectors.filterBar);if($filterBar.length){$filterBar.after($error)}else{$container.prepend($error)}
30console.error('YayRev Filter Error:',error)}
31function showLoading(){var $container=$(config.selectors.container);$container.addClass('yayrev-loading');var $liveRegion=$(config.selectors.liveRegion);if($liveRegion.length){$liveRegion.text(config.i18n.loading||'Loading...')}}
32function hideLoading(){var $container=$(config.selectors.container);$container.removeClass('yayrev-loading')}
33function updateLiveRegion(total,filters){var $liveRegion=$(config.selectors.liveRegion);if(!$liveRegion.length){return}
34var message;if(total===0){message=config.i18n.noResults||'No reviews found.'}
34else{message=(config.i18n.showingResults||'Showing %d reviews').replace('%d',total);if(filters&&filters.length>0){message+=' ('+filters.join(', ')+')'}}
35$liveRegion.text(message)}
36function updateFilterUI(){var $filterBar=$(config.selectors.filterBar);if($filterBar.length){$filterBar.find('[data-filter="content_length"]').val(state.contentLength||'');$filterBar.find('[data-filter="time_period"]').val(state.timePeriod||'');$filterBar.find('[data-filter="sort_by"]').val(state.sortBy);$filterBar.find('[data-filter="verified_only"]').prop('checked',state.verifiedOnly);$filterBar.find('[data-filter="has_media"]').prop('checked',state.hasMedia);$filterBar.find('[data-filter="has_reply"]').prop('checked',state.hasReply);$filterBar.find('[data-filter="same_country"]').prop('checked',state.sameCountry);var hasActiveFilters=state.ratings.length>0||state.contentLength||state.timePeriod!=null||state.verifiedOnly||state.hasMedia||state.hasReply||state.sameCountry||state.topicIds.length>0||state.sortBy!=='recent';$filterBar.find('.yayrev-clear-all').toggle(hasActiveFilters)}
37updateRatingBarUI();updateTopicChipUI()}
38function updateTopicChipUI(){var $chips=$('[data-filter="topic_id"]');if(!$chips.length){return}
39var hasFacets=Object.keys(topicFacets).length>0;var visibleChips=0;$chips.each(function(){var $chip=$(this);var topicId=parseInt($chip.data('value'),10)||0;var isActive=state.topicIds.indexOf(topicId)!==-1;$chip.toggleClass('is-active',isActive);$chip.attr('aria-pressed',isActive?'true':'false');var isEmpty=!1;if(hasFacets){var count=topicFacets[topicId]||0;$chip.find('.yayrev-customers-say__chip-count').text(count);isEmpty=count===0&&!isActive}
40$chip.toggleClass('is-hidden',isEmpty);if(!isEmpty){visibleChips++}});$chips.first().closest('.yayrev-customers-say').toggleClass('is-hidden',visibleChips===0)}
41function updateRatingBarUI(){var $ratingSummary=$('.yayrev-rating-summary');if(!$ratingSummary.length){return}
42var activeLevel=state.ratings.length===1?state.ratings[0]:null;var activeIcon=null;$ratingSummary.find('.yayrev-rating-bar').each(function(){var $bar=$(this);var level=parseInt($bar.data('level'),10);var isActive=activeLevel===level;$bar.toggleClass('yayrev-rating-bar--active',isActive);$bar.attr('aria-pressed',isActive?'true':'false');if(isActive){activeIcon=$bar.find('.yayrev-rating-bar__icon').text().trim()}})}
43function isInViewport(el){var rect=el.getBoundingClientRect();return(rect.top>=0&&rect.top<=(window.innerHeight||document.documentElement.clientHeight))}
44function scrollToReviews(){var $reviews=$('#reviews .commentlist');if($reviews.length&&!isInViewport($reviews[0])){$('html, body').animate({scrollTop:$reviews.offset().top-100},300)}}
45function clearAllFilters(){var levels=state.ratingLevels;state={ratings:[],ratingLevels:levels,contentLength:null,timePeriod:null,verifiedOnly:!1,hasMedia:!1,hasReply:!1,sameCountry:!1,topicIds:[],sortBy:'recent',page:"last",filteredTotal:null};fetchReviews();updateUrl();updateFilterUI()}
46function bindEvents(){$(document).on('change','[data-filter="content_length"]',function(){state.contentLength=$(this).val()||null;state.page='last';debouncedFetch()});$(document).on('change','[data-filter="time_period"]',function(){state.t
46imePeriod=$(this).val()||null;state.page='last';debouncedFetch()});$(document).on('change','[data-filter="sort_by"]',function(){state.sortBy=$(this).val()||'recent';state.page='last';debouncedFetch()});$(document).on('change','[data-filter="verified_only"]',function(){state.verifiedOnly=$(this).is(':checked');state.page='last';debouncedFetch()});$(document).on('change','[data-filter="has_media"]',function(){state.hasMedia=$(this).is(':checked');state.page='last';debouncedFetch()});$(document).on('change','[data-filter="has_reply"]',function(){state.hasReply=$(this).is(':checked');state.page='last';debouncedFetch()});$(document).on('change','[data-filter="same_country"]',function(){state.sameCountry=$(this).is(':checked');state.page='last';debouncedFetch()});$(document).on('click','.yayrev-ajax-pagination a',function(e){e.preventDefault();let page=parseInt($(this).data('page'),10);if(!page){page=$(this).text();page=parseInt(page,10)}
47if(page&&page!==state.page||page===1){state.page=page;fetchReviews();updateUrl();scrollToReviews()}});$(document).on('click','.yayrev-clear-all',function(e){e.preventDefault();clearAllFilters()});$(document).on('click','.yayrev-retry',function(){$(this).closest('.yayrev-filter-error').remove();fetchReviews()});$(window).on('popstate',function(e){var historyState=e.originalEvent.state;if(historyState&&historyState.yayrevFilters){state=$.extend({},historyState.yayrevFilters);fetchReviews();updateFilterUI();return}
48if(!hasPushedState){return}
49clearAllFilters()});$(document).on('click','.yayrev-rating-bar[data-level]',function(e){e.preventDefault();var $bar=$(this);var level=parseInt($bar.data('level'),10);var levels=parseInt($bar.data('levels'),10)||5;var isActive=$bar.hasClass('yayrev-rating-bar--active');if(isActive){state.ratings=[]}else{state.ratings=[level];state.ratingLevels=levels}
50state.page='last';fetchReviews();updateUrl();updateRatingBarUI()});$(document).on('click','.yayrev-rating-summary__clear-filter',function(e){e.preventDefault();state.ratings=[];state.page='last';fetchReviews();updateUrl();updateRatingBarUI()});$(document).on('click','[data-filter="topic_id"]',function(e){e.preventDefault();var $chip=$(this);var topicId=parseInt($chip.data('value'),10)||0;var index=state.topicIds.indexOf(topicId);if(index===-1){state.topicIds.push(topicId)}else{state.topicIds.splice(index,1)}
51state.page='last';fetchReviews();updateUrl();updateTopicChipUI()});$(document).on('click','.yayrev-filter-toggle',function(){var $toggle=$(this);var $panel=$('#yayrev-filter-panel');var isOpen=$toggle.attr('aria-expanded')==='true';$toggle.attr('aria-expanded',!isOpen);$panel.toggleClass('is-open',!isOpen)})}
52function init(){if(!config.productId){return}
53initFromUrl();bindEvents();updateFilterUI();if(window.history&&window.history.replaceState){window.history.replaceState({yayrevFilters:$.extend({},state)},'')}
54var hasActiveFilters=state.ratings.length>0||state.contentLength||state.timePeriod||state.verifiedOnly||state.hasMedia||state.hasReply||state.sameCountry||state.topicIds.length>0;if(hasActiveFilters&&!config.initialFiltersApplied){fetchReviews()}}
55$(document).ready(init)})(jQuery)

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.