1(()=>{"use strict";(()=>{const e=document.getElementById("fpg-reading-progress");if(!e)return;const t=e.querySelector(".fpg-reading-progress-bar"),n=()=>{const e=(()=>{const e=window.scrollY||document.documentElement.scrollTop,t=document.documentElement.scrollHeight-document.documentElement.clientHeight;return t<=0?0:e/t*100})();t.style.transform=`scaleX(${e/100})`};let o=!1;n(),document.addEventListener("scroll",()=>{o||(window.requestAnimationFrame(()=>{n(),o=!1}),o=!0)},{passive:!0}),window.addEventListener("resize",n)})()})();; 2(()=>{"use strict";!function(o){const n={pendingRequests:new Set,localize:window.FPGBookmarkLocalize,init(){this.bindClickEvents(),this.bindPopupCloseEvents()},bindClickEvents(){const n=this;o(document).on("click",".fpg-bookmark-button",function(){const t=o(this),i=parseInt(t.data("post-id"),10);if(!i)return;if(!n.localize?.isLoggedIn)return void n.loginPopup();if(n.pendingRequests.has(i))return;const e="1"===t.attr("data-bookmarked"),s=!e;n.updateButtonsState(i,s),n.pendingRequests.add(i),o.ajax({url:n.localize.ajaxUrl,type:"POST",action:"fpg_toggle_bookmark",data:{action:"fpg_toggle_bookmark",post_id:i,nonce:n.localize.nonce},success:function(o){o&&o.success||n.updateButtonsState(i,e),n.showNotification(o?.data)},error:function(o,t,s){n.updateButtonsState(i,e)},complete:function(){n.pendingRequests.delete(i)}})})},updateButtonsState(n,t){o('.fpg-bookmark-button[data-post-id="'+n+'"]').each(function(){o(this).attr("data-bookmarked",t?"1":"0").toggleClass("is-bookmarked",t)})},loginPopup(){const n=o("#fpg-bookmark-notification"),t=this.localize.settings,i=`\n <div class="fpg-bookmark-login-popup">\n <div class="fpg-blp-content">\n <h4 class="fpg-blp-title">\n ${t.popupTitle}\n </h4>\n <p class="fpg-blp-desc">\n ${t.popupDesc}\n </p>\n <div class="fpg-blp-btns">\n ${t.popupShowLogin?`<a href="${t.popupLoginUrl}" class="login-btn">\n ${t.popupLoginLabel}\n </a>`:""}\n ${t.popupShowRegister?`<a href="${t.popupRegisterUrl}" class="register-btn">\n ${t.popupRegisterLabel}\n </a>`:""}\n </div>\n <span class="fpg-blp-close">\n <i class="ri-close-line"></i>\n </span>\n </div>\n </div>\n `;n.html(i).show()},bindPopupCloseEvents(){o(document).on("click",".fpg-blp-close",function(){o(".fpg-bookmark-login-popup").remove()}),o(document).on("click",".fpg-bookmark-login-popup",function(n){o(n.target).closest(".fpg-blp-content").length||o(".fpg-bookmark-login-popup").remove()}),o(document).on("keydown",function(n){"Escape"===n.key&&o(".fpg-bookmark-login-popup").remove()})},showNotification(n){const t=o("#fpg-bookmark-notification"),i=this.localize.settings,e=`\n <div class="fpg-bookmark-notification">\n <div class="fpg-bn-thumb">\n <img src="${n?.thumbnail}" alt="${n?.title}">\n </div>\n <div class="fpg-bn-content">\n <h6>${n?.title}</h6>\n ${"added"===n?.action?`<p>${i?.notifyAdded}</p>`:`<p>${i?.notifyRemoved}</p>`}\n </div>\n </div>\n `;t.html(e).show(),setTimeout(()=>t.find(".fpg-bookmark-notification").addClass("show")),setTimeout(()=>t.find(".fpg-bookmark-notification").removeClass("show"),3e3)}};o(document).ready(function(){n.init()})}(jQuery)})();; 3;(function ($) { 4 "use strict"; 5 6 $(document).ready(function () { 7 $('.fpg-post-parent').each(function () { 8 const $wrapper = $(this).find('.fpg-ajax'); 9 const $btnWrapper = $(this).find('.fpg-loadmore-wrapper'); 10 const $btn = $btnWrapper.find('.fpg-loadmore-btn'); 11 const $loadEndTxt = $btnWrapper.find('.fpg-load-complete-text'); 12 13 const $filterButtons = $(this).find('.fpg-filter-wrapper button'); 14 15 if (!$wrapper.length) return; 16 17 let loading = false;
18 19 const settings = $wrapper.data('settings'); 20 const uniqueID = settings.el_settings.id; 21 const postsPerPage = parseInt(settings.query_arg.post_per_click ?? 6); 22 const query_offset = parseInt(settings.query_arg.offset ?? 0); 23 let offset = query_offset + $wrapper.find('.fpg-card-style').length; 24 let catSlug = ''; 25 26 // ---------- Category Filter ---------- 27 if ($filterButtons.length) { 28 $filterButtons.on('click', function () { 29 const $this = $(this); 30 catSlug = $this.data('category'); 31 32 $filterButtons.removeClass('active'); 33 $this.addClass('active'); 34 35 $wrapper.parent().addClass('fpg-loading'); 36 37 $.ajax({ 38 url: fpgAjaxPostLoad.ajax_url, 39 type: 'POST', 40 data: { 41 action: 'fpg_ajax_category_filter', 42 nonce: fpgAjaxPostLoad.nonce, 43 settings: settings, 44 category_slug: catSlug, 45 }, 46 success: function (response) { 47 if (response && response.trim()) { 48 $wrapper.html(response); 49 offset = $wrapper.find('.fpg-card-style').length; 50 $btn.show(); 51 $loadEndTxt.hide(); 52 $btn.removeClass('load-complete'); 53 } 54 $(document).trigger('fpgAjaxFired_' + uniqueID); 55 }, 56 complete: function () { 57 $wrapper.parent().removeClass('fpg-loading'); 58 }, 59 }); 60 }); 61 } 62 63 // ---------- Load More ---------- 64 if ($btnWrapper.length) { 65 $btn.on('click', function () { 66 if (loading || $btn.hasClass('load-complete')) return; 67 loading = true; 68 69 $btn.addClass('fpg-btn-loading'); 70 $.ajax({ 71 url: fpgAjaxPostLoad.ajax_url, 72 type: 'POST', 73 data: { 74 action: 'fpg_ajax_post_load', 75 nonce: fpgAjaxPostLoad.nonce, 76 settings: settings, 77 posts_per_page: postsPerPage, 78 offset: offset, 79 category_slug: catSlug, 80 }, 81 success: function (response) { 82 if (response && response.trim()) { 83 $wrapper.append(response); 84 offset = query_offset + $wrapper.find('.fpg-card-style').length; 85 } else { 86 $btn.addClass('load-complete'); 87 $btn.removeClass('fpg-btn-loading'); 88 $btn.hide(); 89 $loadEndTxt.show(); 90 } 91 $(document).trigger('fpgAjaxFired_' + uniqueID); 92 }, 93 complete: function () { 94 loading = false; 95 $btn.removeClass('fpg-btn-loading'); 96 } 97 }); 98 }); 99 } 100 }); 101 }); 102})(jQuery); 103;
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.