PageSourceSearch

https://thegadgetflow.com/wp-content/themes/gadgetflow/js/app.min.js?ver=3.3.11

js thegadgetflow.com collected 2026-10-01 10:21:55 UTC 6,617 bytes, 1 lines download raw bytes

1if(!window.GflService){window.GflService={log:function(text,type="",data={},prd=true){switch(type){case"info":console.info("GFL_LOG:"+text,data);break;case"warning":console.warn("GFL_LOG:"+text,data);break;case"error":console.error("GFL_LOG:"+text,data);break;default:console.log("GFL_LOG:"+text,data);break}if(!prd&&GFL_JS?.MODE==="PRD"){return}this.popup.open(text)},ajax:function(type,data={},onSuccess=null,onError=null,onComplete=null){if(!data.hasOwnProperty("action")){GflService?.log("Action type is required","error",data);return}return jQuery.ajax({url:GFL_JS.AJAX,type:type,data:data,dataType:"json",global:false,success:function(data,textStatus,jqXHR){if(!data?.data){GflService?.log("Cannot get the data.","error",data)}if(onSuccess){onSuccess(data.data,textStatus,jqXHR)}},error:function(data,textStatus,errorThrown){GflService?.log(data?.responseJSON?.data?.message||"Error occurred","error",data.responseJSON);if(onError){onError(data?.responseJSON,data?.responseText,textStatus,errorThrown)}},complete:function(data){if(onComplete){onComplete(data)}}})},popup:{open:function(message){console.log(message)}},getSearchParams:function(){let search=location.search.substring(1);try{return search&&search.length?JSON.parse('{"'+decodeURI(search).replace(/"/g,'\\"').replace(/&/g,'","').replace(/=/g,'":"').replace("$$","=").replace("$","?")+'"}'):{}}catch(e){return{}}},getFormValues:function(form){if(!(form instanceof jQuery)){form=jQuery(form)}if(!form||!form.length){return{}}const formData=new FormData(form[0]);const returnObj={};formData.forEach((v,k)=>{if(k.indexOf("[]")<0){returnObj[k]=v}else{const realIndex=k.replace("[]","");if(returnObj[realIndex]&&Array.isArray(returnObj[realIndex])){returnObj[realIndex].push(v)}else{returnObj[realIndex]=[v]}}});return returnObj},isEmail:function(email){let pattern=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;return pattern.test(email)},loadingStart:function(){document.body.classList.add("gfl-site-loading")},loadingEnd:function(){document.body.classList.remove("gfl-site-loading")}}}function gflAjaxPost(data={},onSuccess=null,onError=null,onComplete=null){return window.GflService.ajax("POST",data,onSuccess,onError,onComplete)}function gflAjaxGet(data={},onSuccess=null,onError=null,onComplete=null){return window.GflService.ajax("GET",data,onSuccess,onError,onComplete)}function gflIsBot(){const botPattern="/bot|slurp|crawler|spider|curl|facebook|fetch|google-http-java-client|lighthouse|crawling/";const re=new RegExp(botPattern,"i");const userAgent=navigator.userAgent;return re.test(userAgent)}jQuery.fn.isInViewport=function(){let elementTop=jQuery(this).offset().top;let elementBottom=elementTop+jQuery(this).outerHeight();let viewportTop=jQuery(window).scrollTop();let viewportBottom=viewportTop+jQuery(window).height();return elementBottom>viewportTop&&elementTop<viewportBottom};jQuery.fn.isExists=function(){let el=jQuery(this);return typeof el!=="undefined"&&el.length>0};const GFLModal=function(){"use strict";let activeModal=null;let previousActiveElement=null;let callbacks={};let cleanupTimeout=null;function getFocusableElements(container){const focusable=container.querySelectorAll("button:not([disabled]), "+"[href], "+"input:not([disabled]), "+"select:not([disabled]), "+"textarea:not([disabled]), "+'[tabindex]:not([tabindex="-1"]):not([disabled])');return Array.from(focusable).filter(el=>el.offsetParent!==null)}function trapFocus(e){if(!activeModal)return;const focusable=getFocusableElements(activeModal);if(focusable.length===0)return;const firstFocusable=focusable[0];const lastFocusable=focusable[focusable.length-1];if(e.shiftKey&&document.activeElement===firstFocusable){e.preventDefault();lastFocusable.focus()}else if(!e.shiftKey&&document.activeElement===lastFocusable){e.preventDefault();firstFocusable.focus()}}function handleKeydown(e){if(!activeModal)return;if(e.key==="Escape"){e.preventDefault();close()}else if(e.key==="Tab"){trapFocus(e)}}function handleBackdropClick(e){if(!activeModal)return;if(e.target!==activeModal)return;const backdropType=activeModal.getAttribute("data-gfl-backdrop");if(backdropType==="static"){activeModal.classList.add("is-static");setTimeout(()=>{if(activeModal){activeModal.classList.remove("is-static")}},300)}else{close()}}function open(modalId,options={}
1){const modal=typeof modalId==="string"?document.getElementById(modalId):modalId;if(!modal||!modal.classList.contains("gfl-modal-backdrop")){console.error("GFLModal: Modal not found:",modalId);return false}if(activeModal){close(true)}callbacks={onOpen:options.onOpen||null,onClose:options.onClose||null};previousActiveElement=document.activeElement;document.body.classList.add("gfl-modal-open");activeModal=modal;modal.classList.add("is-active");requestAnimationFrame(()=>{const focusable=getFocusableElements(modal);if(focusable.length>0){focusable[0].focus()}});modal.dispatchEvent(new CustomEvent("gfl-modal:open",{bubbles:true,detail:{modal:modal}}));if(callbacks.onOpen){callbacks.onOpen(modal)}return true}function close(immediate=false){if(!activeModal)return false;if(cleanupTimeout){clearTimeout(cleanupTimeout);cleanupTimeout=null}const modal=activeModal;const onCloseCallback=callbacks.onClose;modal.classList.remove("is-active");const cleanup=()=>{cleanupTimeout=null;document.body.classList.remove("gfl-modal-open");if(previousActiveElement&&previousActiveElement.focus){previousActiveElement.focus()}activeModal=null;previousActiveElement=null;modal.dispatchEvent(new CustomEvent("gfl-modal:close",{bubbles:true,detail:{modal:modal}}));if(onCloseCallback){onCloseCallback(modal)}callbacks={}};if(immediate){cleanup()}else{cleanupTimeout=setTimeout(cleanup,300)}return true}function toggle(modalId,options={}){const modal=typeof modalId==="string"?document.getElementById(modalId):modalId;if(activeModal===modal){return close()}else{return open(modalId,options)}}function init(){document.addEventListener("keydown",handleKeydown);document.addEventListener("click",handleBackdropClick);document.addEventListener("click",function(e){if(e.target.matches("[data-gfl-modal-close]")||e.target.closest("[data-gfl-modal-close]")){e.preventDefault();close()}});document.addEventListener("click",function(e){const trigger=e.target.closest("[data-gfl-modal-open]");if(trigger){e.preventDefault();const modalId=trigger.getAttribute("data-gfl-modal-open");open(modalId)}})}if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",init)}else{init()}return{open:open,close:close,toggle:toggle,isOpen:function(){return activeModal!==null},getActive:function(){return activeModal},init:init}}();

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.