Skip to Content

JavaScript File

URL: https://upbikewinner.com/wp-content/plugins/revslider/public/js/libs/tptools.js?ver=6.7.36
HTTP Status: 200 OK
MIME Type: application/x-javascript
Last Modified: Sat, 16 Aug 2025 00:46:35 GMT
Download Time: Less than a second
Cookies: None
Size: 205 KB
HTTP Headers:  11 headers
Links In:  1 pages
Links Out:  0 links
Images:  0 images
CSS:  0 files
JavaScript:  0 files
OK Issues: No issues found

1!function(){"use strict";if(window._tpt??={}

2,_tpt.loadingScripts??={}

3,void 0!==_tpt.checkResources)return;function t(t,e){if(0===t.length)return 0;const r=t[t.length-1]-e;return t.length/(r/1e3)}

4var e,r,n;_tpt.dpr=Math.max(1,Math.min(2,window.devicePixelRatio||1)),_tpt.hop=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),void 0!==window.RVS&&void 0!==window.tpGS&&(_tpt.gsap=window.tpGS.gsap),_tpt.regResource=function(t){_tpt.R[t.id]??={}

5,_tpt.R[t.id].status??=0,void 0!==t.url&&(_tpt.R[t.id].url=t.url),void 0!==t.fonts&&(_tpt.R[t.id].fonts=t.fonts),void 0!==t.css&&(_tpt.R[t.id].css=t.css),void 0!==t.fontfamily&&(_tpt.R[t.id].fontfamily=t.fontfamily),void 0!==t.fonticon&&(_tpt.R[t.id].fonticon=t.fonticon)}

6,_tpt.acc={announcer:{_el:null,_styleId:"tpt-sr-announcer-style",init(){return this._el||(this._el=document.getElementById("sr-announcer"),this._el||(this._el=document.createElement("div"),this._el.id="sr-announcer",this._el.setAttribute("role","status"),this._el.setAttribute("aria-live","polite"),this._el.setAttribute("aria-atomic","true"),document.body.appendChild(this._el))),this._el}

7,update({customText:t,moduleName:e,slideIndex:r,totalSlides:n,slideTitle:i}

8){this.init();let s="";if(t&&"auto"!==String(t).toLowerCase()&&t.length>0&&"undefined"!==t)s=t;else{s=`${e?`${e}

9: `:""}

10Slide ${r}

11 of ${n}

12${i?` – ${i}

13`:""}

14`}

15this._el.textContent="",setTimeout((()=>{this._el.textContent=s}

16),50)}

17}

18}

19,_tpt.checkResources=async function(t,e){const r=[];return t.forEach((t=>{const e=_tpt.R[t];void 0!==e&&2!==e.status&&("DOM"===t?(_tpt.R[t].status=1,r.push(_tpt.waitForDOM(t))):void 0!==e.fonticon?(r.push(_tpt.loadCSS(e.url,t)),e.woff2&&r.push(_tpt.loadWoff2(e.woff2,t))):void 0!==e.url?r.push(_tpt.loadScript(e.url,t,e.test,e.listen)):e.fonts||e.css&&r.push(_tpt.loadCSS(e.css,t)))}

20)),e?await Promise.allSettled(r):await Promise.all(r)}

21,_tpt.waitForDOM=async function(){return new Promise((t=>{"interactive"===document.readyState||"complete"===document.readyState?(_tpt.R.DOM.status=2,t()):document.addEventListener("DOMContentLoaded",(()=>{_tpt.R.DOM.status=2,t()}

22))}

23))}

24,_tpt.loadScript=function(t,e){return new Promise((async(r,n)=>{_tpt.R[e].status=1,"string"==typeof t&&(t=[t]);for(const i of t)if(_tpt.loadingScripts[i])try{if(await _tpt.loadingScripts[i],2===_tpt.R[e].status)return void r()}

25catch(t){console.error(t)}

26else{_tpt.loadingScripts[i]=new Promise(((t,r)=>{const n=document.createElement("script");n.src=i,n.onload=()=>{_tpt.R[e].status=2,t()}

27,n.onerror=()=>{_tpt.R[e].status=3;const t=new Error(`Failed to load script: ${i}

28`);r(t)}

29,document.head.appendChild(n)}

30));try{if(await _tpt.loadingScripts[i],2===_tpt.R[e].status)return void r()}

31catch(t){return console.error(t),void n(t)}

32}

33n(new Error("Unable to load scripts."))}

34))}

35,_tpt.loadWoff2=async function(t,e){return _tpt.R[e].status=1,new Promise(((r,n)=>{const i=document.createElement("style");i.type="text/css",i.classList.add("sr7-inline-css"),i.textContent=`\n\t\t\t\t@font-face {\n\t\t\t\t\tfont-family: ${_tpt.R[e].fontfamily}

36;\n\t\t\t\t\tsrc: url("${t}

37") format("woff2");\n\t\t\t\t}

38\n\t\t\t`,i.onload=()=>{_tpt.R[e].status=2,r()}

39,i.onerror=()=>{_tpt.R[e].status=3,n(new Error(`Failed to load font: ${t}

40`))}

...

</html>