Plugin Directory

Changeset 3039136


Ignore:
Timestamp:
02/21/2024 11:13:04 AM (2 years ago)
Author:
sanrl
Message:

v 2.19.17 release

Location:
rabbit-loader
Files:
1 added
8 edited
21 copied

Legend:

Unmodified
Added
Removed
  • rabbit-loader/tags/2.19.17/admin/js/index.js

    r3020814 r3039136  
    1 !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RLAdmin=t():e.RLAdmin=t()}(this,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);var t="disabled";function o(e,o){var a=jQuery(e).html();return jQuery(e).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> '.concat(o)).attr(t,t).data("otext",a)}function a(e){var o=jQuery(e).data("otext");return jQuery(e).html(o).removeAttr(t)}let n,r,i,l,d,c=Object,s=c.getPrototypeOf,p=document,u={isConnected:1},f={},m=s(u),g=s(s),h=(e,t,o,a)=>(e??(setTimeout(o,a),new Set)).add(t),b=(e,t,o)=>{let a=i;i=t;try{return e(o)}catch(e){return console.error(e),o}finally{i=a}},_=e=>e.filter((e=>e._dom?.isConnected)),v=e=>d=h(d,e,(()=>{for(let e of d)e._bindings=_(e._bindings),e._listeners=_(e._listeners);d=n}),1e3),y={get val(){return i?.add(this),this._val},get oldVal(){return i?.add(this),this._oldVal},set val(e){let t=this;if(e!==t._val){t._val=e;let o=[...t._listeners=_(t._listeners)];for(let e of o)S(e.f,e.s,e._dom),e._dom=n;t._bindings.length?r=h(r,t,k):t._oldVal=e}}},w=e=>({__proto__:y,_val:e,_oldVal:e,_bindings:[],_listeners:[]}),x=e=>s(e??0)===y,M=(e,t)=>{let o=new Set,a={f:e},n=l;l=[];let r=b(e,o,t);r=(r??p).nodeType?r:new Text(r);for(let e of o)v(e),e._bindings.push(a);for(let e of l)e._dom=r;return l=n,a._dom=r},S=(e,t=w(),o)=>{let a=new Set,n={f:e,s:t};n._dom=o??l?.push(n)??u,t.val=b(e,a);for(let e of a)v(e),e._listeners.push(n);return t},j=(e,...t)=>{for(let o of t.flat(1/0)){let t=s(o??0),a=t===y?M((()=>o.val)):t===g?M(o):o;a!=n&&e.append(a)}return e},z=e=>new Proxy(((t,...o)=>{let[a,...r]=s(o[0]??0)===m?o:[{},...o],i=e?p.createElementNS(e,t):p.createElement(t);for(let[e,o]of c.entries(a)){let a=t=>t?c.getOwnPropertyDescriptor(t,e)??a(s(t)):n,r=t+","+e,l=f[r]??(f[r]=a(s(i))?.set??0),d=l?l.bind(i):i.setAttribute.bind(i,e),p=s(o??0);p===y?M((()=>(d(o.val),i))):p!==g||e.startsWith("on")&&!o._isBindingFunc?d(o):M((()=>(d(o()),i)))}return j(i,...r)}),{get:(e,t)=>e.bind(n,t)}),P=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),k=()=>{let e=[...r].filter((e=>e._val!==e._oldVal));r=n;for(let t of new Set(e.flatMap((e=>e._bindings=_(e._bindings)))))P(t._dom,M(t.f,t._dom)),t._dom=n;for(let t of e)t._oldVal=t._val};const C={add:j,_:e=>(e._isBindingFunc=1,e),tags:z(),tagsNS:z,state:w,val:e=>x(e)?e.val:e,oldVal:e=>x(e)?e.oldVal:e,derive:S,hydrate:(e,t)=>P(e,M(t,e))};var T="rabbitloader_common_msg_modal",E=C.tags.div,D=E({id:"".concat(T),style:"position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;"}),I=E({id:"".concat("rabbitloader_common_msg_body"),style:"padding: 20px;"}),A=E({id:"rabbitloader_common_msg_footer",style:"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;",onclick:function(){D.style.display="none"}},"Close");function L(){document.getElementById(T)?D.style.display="block":C.add(document.body,C.add(D,I,A))}function O(e){D.style.width=e+"px",D.style.marginLeft=-1*e/2+"px"}function V(e,t){L();var o=t?"0px":"20px";I.style.padding=o,I.innerHTML=e,O(400)}function Q(e){var t='<iframe src="https://www.youtube.com/embed/'.concat(e,'" width="560px" height="315px" style="max-width:100%" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>');L(),I.style.padding="0px",I.innerHTML=t,O(560)}function B(e,t,n){var r=t?"<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.":"<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. ";e&&o("#".concat(e),"Enabling Me Mode...");var i=new FormData;i.append("action","rabbitloader_mode_change"),i.append("private_mode",t?1:0),i.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(ajaxurl,{method:"POST",body:i}).then((function(e){return e.json()})).then((function(t){console.log(t),t&&t.result?(V(r),n(!0)):(V("Settings could not be saved"),n(!1)),e&&a("#".concat(e))}))}var F=C.tags,H=F.div,R=F.h5,W=F.h6,Y=F.img,J=F.small,q=F.span;function G(){var e=document.getElementById("rl_crash_course_videos");if(e){var t=H({class:"row"},R({class:"mb-3"},"Crash Courses"));[["rJdgdkiADB4","Verification"],["QGAuLgOjCu0","Purging Cache"],["ol4nuYuYTeM","Me Mode"],["lC0vWlugHJ4","Image Settings"],["z6fuEHr6lYs","CSS Settings"],["QxwaDxtRw-I","Delegate Access"],["uBPMn2mvnrs","Linking Cloudflare"]].forEach((function(e){var o,a,n,r,i;C.add(t,(o=e[1],a=e[0],n="https://img.youtube.com/vi/".concat(a,"/mqdefault.jpg"),H({class:"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp",onclick:function(){return Q(a)}},W({class:"mb-3"},o),Y({loading:"lazy",src:n,alt:"-"}),((r=C.tagsNS("http://www.w3.org/2000/svg")).circle,i=r.path,(0,r.svg)({width:"16",height:"16",fill:"currentColor",class:"bi bi-play-circle rl-video-play ",viewBox:"0 0 16 16"},i({d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"}),i({d:"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445"}))))))})),C.add(e,H({class:"row mb-4"},H({class:"col"},H({class:"bg-white rounded p-4"},t))))}}function N(){var e=document.querySelectorAll("primer");e&&e.forEach((function(e){var t=e.dataset.videoId,o=e.dataset.align,a=e.dataset.duration,n=a<=100?" "+a+" seconds primer":" "+Math.round(a/60)+" min primer",r=H({class:"col-12 mt-2 "+("center"==o?"text-center":""),onclick:function(){return Q(t)}},J({class:"text-secondary rl-cp "},q({class:"dashicons dashicons-video-alt3 mt-1"}),n));C.add(e,r)}))}function U(e){e.preventDefault();var t=jQuery(e.currentTarget);o(t,"Purging...");var n=rabbitloader_local_vars.post_id?rabbitloader_local_vars.post_id:"",r=new FormData;r.append("action","rabbitloader_ajax_purge"),r.append("post_id",n),r.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(rabbitloader_local_vars.admin_ajax,{method:"POST",body:r}).then((function(e){return e.json()})).then((function(e){e&&e.result?V(n?"Purge completed for page - ".concat(document.title):"Purge completed"):V("Purge failed. Please reload the page and try again."),a(t)}))}return function(){var e=window.document,t=/p/.test(e.readyState),o=!1,a=window.rabbitloader_local_vars,n="getAttribute",r="localStorage",i="preventDefault",l="click",d=window.jQuery,c="rabbitloader_ajax_";function s(t){var o=e.getElementById(t);if(o){var a={percent:o[n]("data-percent")||15,size:o[n]("data-size")||150,lineWidth:o[n]("data-line")||10,rotate:o[n]("data-rotate")||0,ocolor:o[n]("data-ocolor")||"#f0fff7",icolor:o[n]("data-icolor")||"#0cce6b",fsize:o[n]("data-fsize")||"60px"},r=e.createElement("canvas"),i=e.createElement("span");i.textContent=a.percent,i.style.lineHeight=a.size+"px",i.style.width=a.size+"px",i.style.fontSize=a.fsize,i.style.color=a.icolor,"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var l=r.getContext("2d");r.width=r.height=a.size,o.style.width=a.size+"px",o.style.height=a.size+"px",o.appendChild(i),o.appendChild(r),l.translate(a.size/2,a.size/2),l.rotate((a.rotate/180-.5)*Math.PI);var d=(a.size-a.lineWidth)/2,c=function(e,t,o){o=Math.min(Math.max(0,o||1),1),l.beginPath(),l.arc(0,0,d,0,2*Math.PI*o,!1),l.strokeStyle=e,l.lineCap="round",l.lineWidth=t,l.stroke()};a.percent=parseFloat(a.percent),c(a.ocolor,a.lineWidth,1),c(a.icolor,a.lineWidth,a.percent/100)}}function p(){var e=c+"cron",t=window[r].getItem(e),o=Date.now();if(!(t&&(o-new Date(t))/1e3<180)){window[r].setItem(e,o);var n=new FormData;n.append("action",e),n.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:n})}}function u(e){var t=d(e.target).attr("title-html");t||(t=d(e.target).attr("title")),t&&V(t)}function f(e){var t=!d(e.target).is(":checked");V("Updating..."),B("",t,(function(){}))}function m(){V('<iframe src="https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg" width="100%" height="600px"></iframe>',!0);var e=new FormData;e.append("action",c+"survey_dismissed"),e.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:e})}function g(){o||(o=!0,s("score_circle_best"),s("warming_progress_bar"),d(".rabbitloader_purge_page").on(l,U),d("#rabbitloader_purge_all").on(l,U),window.setTimeout(p,1e3),window.setInterval(p,1e3*(Math.floor(301*Math.random())+300)),d(e).on(l,".tpopup",u),d(e).on("change","#rl_chk_public",f),d(e).on("click","#rl_show_survey",m),d(e).on("click","#rl_me_learn_more",(function(){Q("ol4nuYuYTeM")})),function(){var e="rabbit-loader",t='tr[data-slug="'.concat(e,'"] #deactivate-').concat(e);if(0!=d(t).length){var o=d(t).attr("href"),a="".concat(e,"-me-mode-popup"),n="".concat(e,"-en"),r="".concat(e,"-de"),c='<div id="'.concat(a,'" style="display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;"><p class="">').concat(rl_de_popup.pop_msg,'</p><div style="margin-top:25px;"><a id="').concat(r,'" class="button button-secondary alignleft" href="#">').concat(rl_de_popup.btn_de,'</a><button id="').concat(n,'" class="button button-primary alignright">').concat(rl_de_popup.btn_en,"</button></div></div>");d(t).parent().append(c),d(t).on(l,(function(e){e[i](),d("#"+a).show();var t=d(window).scrollTop()+d(window).height();d("#"+a).offset().top+d("#"+a).outerHeight(!0)>t&&d("html,body").animate({scrollTop:d("#"+a).offset().top-(d(window).height()-d("#"+a).outerHeight(!0)-10)},200),d("#".concat(r)).attr("href",o)})),d("#".concat(n)).on(l,(function(e){e[i](),e.stopPropagation(),d(t).unbind(l),B(n,!0,(function(e){e&&d("#"+a).hide()}))}))}}(),G(),N())}t?g():window.addEventListener("load",g)}(),e})()));
     1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RLAdmin=t():e.RLAdmin=t()}(this,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);var t="disabled";function o(e,o){var a=jQuery(e).html();return jQuery(e).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> '.concat(o)).attr(t,t).data("otext",a)}function a(e){var o=jQuery(e).data("otext");return jQuery(e).html(o).removeAttr(t)}let n,r,i,l,d,c=Object,s=c.getPrototypeOf,p=document,u={isConnected:1},f={},g=s(u),m=s(s),b=(e,t,o,a)=>(e??(setTimeout(o,a),new Set)).add(t),h=(e,t,o)=>{let a=i;i=t;try{return e(o)}catch(e){return console.error(e),o}finally{i=a}},_=e=>e.filter((e=>e._dom?.isConnected)),v=e=>d=b(d,e,(()=>{for(let e of d)e._bindings=_(e._bindings),e._listeners=_(e._listeners);d=n}),1e3),y={get val(){return i?.add(this),this._val},get oldVal(){return i?.add(this),this._oldVal},set val(e){let t=this;if(e!==t._val){t._val=e;let o=[...t._listeners=_(t._listeners)];for(let e of o)S(e.f,e.s,e._dom),e._dom=n;t._bindings.length?r=b(r,t,C):t._oldVal=e}}},w=e=>({__proto__:y,_val:e,_oldVal:e,_bindings:[],_listeners:[]}),x=e=>s(e??0)===y,M=(e,t)=>{let o=new Set,a={f:e},n=l;l=[];let r=h(e,o,t);r=(r??p).nodeType?r:new Text(r);for(let e of o)v(e),e._bindings.push(a);for(let e of l)e._dom=r;return l=n,a._dom=r},S=(e,t=w(),o)=>{let a=new Set,n={f:e,s:t};n._dom=o??l?.push(n)??u,t.val=h(e,a);for(let e of a)v(e),e._listeners.push(n);return t},j=(e,...t)=>{for(let o of t.flat(1/0)){let t=s(o??0),a=t===y?M((()=>o.val)):t===m?M(o):o;a!=n&&e.append(a)}return e},z=e=>new Proxy(((t,...o)=>{let[a,...r]=s(o[0]??0)===g?o:[{},...o],i=e?p.createElementNS(e,t):p.createElement(t);for(let[e,o]of c.entries(a)){let a=t=>t?c.getOwnPropertyDescriptor(t,e)??a(s(t)):n,r=t+","+e,l=f[r]??(f[r]=a(s(i))?.set??0),d=l?l.bind(i):i.setAttribute.bind(i,e),p=s(o??0);p===y?M((()=>(d(o.val),i))):p!==m||e.startsWith("on")&&!o._isBindingFunc?d(o):M((()=>(d(o()),i)))}return j(i,...r)}),{get:(e,t)=>e.bind(n,t)}),P=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),C=()=>{let e=[...r].filter((e=>e._val!==e._oldVal));r=n;for(let t of new Set(e.flatMap((e=>e._bindings=_(e._bindings)))))P(t._dom,M(t.f,t._dom)),t._dom=n;for(let t of e)t._oldVal=t._val};const T={add:j,_:e=>(e._isBindingFunc=1,e),tags:z(),tagsNS:z,state:w,val:e=>x(e)?e.val:e,oldVal:e=>x(e)?e.oldVal:e,derive:S,hydrate:(e,t)=>P(e,M(t,e))};var k="rabbitloader_common_msg_modal",E=T.tags.div,A=E({id:"".concat(k),style:"position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;"}),D=E({id:"".concat("rabbitloader_common_msg_body"),style:"padding: 20px;"}),I=E({id:"rabbitloader_common_msg_footer",style:"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;",onclick:function(){A.style.display="none"}},"Close");function L(){document.getElementById(k)?A.style.display="block":T.add(document.body,T.add(A,D,I))}function O(e){A.style.width=e+"px",A.style.marginLeft=-1*e/2+"px"}function V(e,t){L();var o=t?"0px":"20px";D.style.padding=o,D.innerHTML=e,O(400)}function B(e){var t='<iframe src="https://www.youtube.com/embed/'.concat(e,'" width="560px" height="315px" style="max-width:100%" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>');L(),D.style.padding="0px",D.innerHTML=t,O(560)}function Q(e,t,n){var r=t?"<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.":"<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. ";e&&o("#".concat(e),"Enabling Me Mode...");var i=new FormData;i.append("action","rabbitloader_mode_change"),i.append("private_mode",t?1:0),i.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(ajaxurl,{method:"POST",body:i}).then((function(e){return e.json()})).then((function(t){console.log(t),t&&t.result?(V(r),n(!0)):(V("Settings could not be saved"),n(!1)),e&&a("#".concat(e))}))}var W=T.tags,H=W.div,R=W.h5,F=W.h6,Y=W.img,G=W.small,N=W.span;function U(){var e=document.getElementById("rl_crash_course_videos");if(e){var t=H({class:"row"},R({class:"mb-3"},"Crash Courses"));[["rJdgdkiADB4","Verification"],["QGAuLgOjCu0","Purging Cache"],["ol4nuYuYTeM","Me Mode"],["lC0vWlugHJ4","Image Settings"],["z6fuEHr6lYs","CSS Settings"],["QxwaDxtRw-I","Delegate Access"],["uBPMn2mvnrs","Linking Cloudflare"]].forEach((function(e){var o,a,n,r,i;T.add(t,(o=e[1],a=e[0],n="https://img.youtube.com/vi/".concat(a,"/mqdefault.jpg"),H({class:"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp",onclick:function(){return B(a)}},F({class:"mb-3"},o),Y({loading:"lazy",src:n,alt:"-"}),((r=T.tagsNS("http://www.w3.org/2000/svg")).circle,i=r.path,(0,r.svg)({width:"16",height:"16",fill:"currentColor",class:"bi bi-play-circle rl-video-play ",viewBox:"0 0 16 16"},i({d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"}),i({d:"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445"}))))))})),T.add(e,H({class:"row mb-4"},H({class:"col"},H({class:"bg-white rounded p-4"},t))))}}function q(){var e=document.querySelectorAll("primer");e&&e.forEach((function(e){var t=e.dataset.videoId,o=e.dataset.align,a=e.dataset.duration,n=a<=100?" "+a+" seconds primer":" "+Math.round(a/60)+" min primer",r=H({class:"col-12 mt-2 "+("center"==o?"text-center":""),onclick:function(){return B(t)}},G({class:"text-secondary rl-cp "},N({class:"dashicons dashicons-video-alt3 mt-1"}),n));T.add(e,r)}))}function J(e){e.preventDefault();var t=jQuery(e.currentTarget);o(t,"Purging...");var n=rabbitloader_local_vars.post_id?rabbitloader_local_vars.post_id:"",r=new FormData;r.append("action","rabbitloader_ajax_purge"),r.append("post_id",n),r.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(rabbitloader_local_vars.admin_ajax,{method:"POST",body:r}).then((function(e){return e.json()})).then((function(e){e&&e.result?V(n?"Purge completed for page - ".concat(document.title):"Purge completed"):V("Purge failed. Please reload the page and try again."),a(t)}))}return function(){var e=window.document,t=/p/.test(e.readyState),o=!1,a=window.rabbitloader_local_vars,n="getAttribute",r="localStorage",i="preventDefault",l="click",d=window.jQuery,c="rabbitloader_ajax_";function s(t){var o=e.getElementById(t);if(o){var a={percent:o[n]("data-percent")||15,size:o[n]("data-size")||150,lineWidth:o[n]("data-line")||10,rotate:o[n]("data-rotate")||0,ocolor:o[n]("data-ocolor")||"#f0fff7",icolor:o[n]("data-icolor")||"#0cce6b",fsize:o[n]("data-fsize")||"60px"},r=e.createElement("canvas"),i=e.createElement("span");i.textContent=a.percent,i.style.lineHeight=a.size+"px",i.style.width=a.size+"px",i.style.fontSize=a.fsize,i.style.color=a.icolor,"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var l=r.getContext("2d");r.width=r.height=a.size,o.style.width=a.size+"px",o.style.height=a.size+"px",o.appendChild(i),o.appendChild(r),l.translate(a.size/2,a.size/2),l.rotate((a.rotate/180-.5)*Math.PI);var d=(a.size-a.lineWidth)/2,c=function(e,t,o){o=Math.min(Math.max(0,o||1),1),l.beginPath(),l.arc(0,0,d,0,2*Math.PI*o,!1),l.strokeStyle=e,l.lineCap="round",l.lineWidth=t,l.stroke()};a.percent=parseFloat(a.percent),c(a.ocolor,a.lineWidth,1),c(a.icolor,a.lineWidth,a.percent/100)}}function p(){var e=c+"cron",t=window[r].getItem(e),o=Date.now();if(!(t&&(o-new Date(t))/1e3<180)){window[r].setItem(e,o);var n=new FormData;n.append("action",e),n.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:n})}}function u(e){var t=d(e.target).attr("title-html");t||(t=d(e.target).attr("title")),t&&V(t)}function f(e){var t=!d(e.target).is(":checked");V("Updating..."),Q("",t,(function(){}))}function g(){o||(o=!0,s("score_circle_best"),s("warming_progress_bar"),d(".rabbitloader_purge_page").on(l,J),d("#rabbitloader_purge_all").on(l,J),window.setTimeout(p,1e3),window.setInterval(p,1e3*(Math.floor(301*Math.random())+300)),d(e).on(l,".tpopup",u),d(e).on("change","#rl_chk_public",f),d(e).on("click","#rl_me_learn_more",(function(){B("ol4nuYuYTeM")})),function(){var e="rabbit-loader",t='tr[data-slug="'.concat(e,'"] #deactivate-').concat(e);if(0!=d(t).length){var o=d(t).attr("href"),a="".concat(e,"-me-mode-popup"),n="".concat(e,"-en"),r="".concat(e,"-de"),c='<div id="'.concat(a,'" style="display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;"><p class="">').concat(rl_de_popup.pop_msg,'</p><div style="margin-top:25px;"><a id="').concat(r,'" class="button button-secondary alignleft" href="#">').concat(rl_de_popup.btn_de,'</a><button id="').concat(n,'" class="button button-primary alignright">').concat(rl_de_popup.btn_en,"</button></div></div>");d(t).parent().append(c),d(t).on(l,(function(e){e[i](),d("#"+a).show();var t=d(window).scrollTop()+d(window).height();d("#"+a).offset().top+d("#"+a).outerHeight(!0)>t&&d("html,body").animate({scrollTop:d("#"+a).offset().top-(d(window).height()-d("#"+a).outerHeight(!0)-10)},200),d("#".concat(r)).attr("href",o)})),d("#".concat(n)).on(l,(function(e){e[i](),e.stopPropagation(),d(t).unbind(l),Q(n,!0,(function(e){e&&d("#"+a).hide()}))}))}}(),U(),q())}t?g():window.addEventListener("load",g)}(),e})()));
    22//# sourceMappingURL=index.js.map
  • rabbit-loader/tags/2.19.17/admin/js/index.js.map

    r3020814 r3039136  
    1 {"version":3,"file":"index.js","mappings":"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","sources":["webpack://RLAdmin/webpack/universalModuleDefinition","webpack://RLAdmin/webpack/bootstrap","webpack://RLAdmin/webpack/runtime/make namespace object","webpack://RLAdmin/./src/loading.js","webpack://RLAdmin/../../node_modules/vanjs-core/src/van.js","webpack://RLAdmin/./src/popup.js","webpack://RLAdmin/./src/memode.js","webpack://RLAdmin/./src/help_crash_course.js","webpack://RLAdmin/./src/purge.js","webpack://RLAdmin/./src/App.js","webpack://RLAdmin/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RLAdmin\"] = factory();\n\telse\n\t\troot[\"RLAdmin\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const ATTR_DISABLED = \"disabled\";\n\nexport function showBtnLoading($ele, txt) {\n    let otext = jQuery($ele).html();\n    return jQuery($ele).html(`<span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span> ${txt}`).attr(ATTR_DISABLED, ATTR_DISABLED).data('otext', otext);\n}\n\nexport function stopBtnLoading($ele) {\n    let otext = jQuery($ele).data('otext');\n    return jQuery($ele).html(otext).removeAttr(ATTR_DISABLED);\n}","// This file consistently uses `let` keyword instead of `const` for reducing the bundle size.\n\n// Global variables - aliasing some builtin symbols to reduce the bundle size.\nlet Obj = Object, _undefined, protoOf = Obj.getPrototypeOf, doc = document\nlet changedStates, curDeps, curNewDerives, alwaysConnectedDom = {isConnected: 1}, gcCycleInMs = 1000, statesToGc, propSetterCache = {}\nlet objProto = protoOf(alwaysConnectedDom), funcProto = protoOf(protoOf)\n\nlet addAndScheduleOnFirst = (set, s, f, waitMs) =>\n  (set ?? (setTimeout(f, waitMs), new Set)).add(s)\n\nlet runAndCaptureDeps = (f, deps, arg) => {\n  let prevDeps = curDeps\n  curDeps = deps\n  try {\n    return f(arg)\n  } catch (e) {\n    console.error(e)\n    return arg\n  } finally {\n    curDeps = prevDeps\n  }\n}\n\nlet keepConnected = l => l.filter(b => b._dom?.isConnected)\n\nlet addStatesToGc = d => statesToGc = addAndScheduleOnFirst(statesToGc, d, () => {\n  for (let s of statesToGc)\n    s._bindings = keepConnected(s._bindings),\n    s._listeners = keepConnected(s._listeners)\n  statesToGc = _undefined\n}, gcCycleInMs)\n\nlet stateProto = {\n  get val() {\n    curDeps?.add(this)\n    return this._val\n  },\n\n  get oldVal() {\n    curDeps?.add(this)\n    return this._oldVal\n  },\n\n  set val(v) {\n    // Aliasing `this` to reduce the bundle size.\n    let s = this\n    if (v !== s._val) {\n      s._val = v\n      let listeners = [...s._listeners = keepConnected(s._listeners)]\n      for (let l of listeners) derive(l.f, l.s, l._dom), l._dom = _undefined\n      s._bindings.length ?\n        changedStates = addAndScheduleOnFirst(changedStates, s, updateDoms) :\n        s._oldVal = v\n    }\n  },\n}\n\nlet state = initVal => ({\n  __proto__: stateProto,\n  _val: initVal,\n  _oldVal: initVal,\n  _bindings: [],\n  _listeners: [],\n})\n\nlet isState = s => protoOf(s ?? 0) === stateProto\n\nlet val = s => isState(s) ? s.val : s\nlet oldVal = s => isState(s) ? s.oldVal : s\n\nlet bind = (f, dom) => {\n  let deps = new Set, binding = {f}, prevNewDerives = curNewDerives\n  curNewDerives = []\n  let newDom = runAndCaptureDeps(f, deps, dom)\n  newDom = (newDom ?? doc).nodeType ? newDom : new Text(newDom)\n  for (let d of deps) addStatesToGc(d), d._bindings.push(binding)\n  for (let l of curNewDerives) l._dom = newDom\n  curNewDerives = prevNewDerives\n  return binding._dom = newDom\n}\n\nlet derive = (f, s = state(), dom) => {\n  let deps = new Set, listener = {f, s}\n  listener._dom = dom ?? curNewDerives?.push(listener) ?? alwaysConnectedDom\n  s.val = runAndCaptureDeps(f, deps)\n  for (let d of deps) addStatesToGc(d), d._listeners.push(listener)\n  return s\n}\n\nlet add = (dom, ...children) => {\n  for (let c of children.flat(Infinity)) {\n    let protoOfC = protoOf(c ?? 0)\n    let child = protoOfC === stateProto ? bind(() => c.val) :\n      protoOfC === funcProto ? bind(c) : c\n    if (child != _undefined) dom.append(child)\n  }\n  return dom\n}\n\nlet _ = f => (f._isBindingFunc = 1, f)\n\nlet tagsNS = ns => new Proxy((name, ...args) => {\n  let [props, ...children] = protoOf(args[0] ?? 0) === objProto ? args : [{}, ...args]\n  let dom = ns ? doc.createElementNS(ns, name) : doc.createElement(name)\n  for (let [k, v] of Obj.entries(props)) {\n    let getPropDescriptor = proto => proto ?\n      Obj.getOwnPropertyDescriptor(proto, k) ?? getPropDescriptor(protoOf(proto)) :\n      _undefined\n    let cacheKey = name + \",\" + k\n    let propSetter = propSetterCache[cacheKey] ??\n      (propSetterCache[cacheKey] = getPropDescriptor(protoOf(dom))?.set ?? 0)\n    let setter = propSetter ? propSetter.bind(dom) : dom.setAttribute.bind(dom, k)\n    let protoOfV = protoOf(v ?? 0)\n    if (protoOfV === stateProto) bind(() => (setter(v.val), dom))\n    else if (protoOfV === funcProto && (!k.startsWith(\"on\") || v._isBindingFunc))\n      bind(() => (setter(v()), dom))\n    else setter(v)\n  }\n  return add(dom, ...children)\n}, {get: (tag, name) => tag.bind(_undefined, name)})\n\nlet update = (dom, newDom) => newDom ? newDom !== dom && dom.replaceWith(newDom) : dom.remove()\n\nlet updateDoms = () => {\n  let changedStatesArray = [...changedStates].filter(s => s._val !== s._oldVal)\n  changedStates = _undefined\n  for (let b of new Set(changedStatesArray.flatMap(s => s._bindings = keepConnected(s._bindings))))\n    update(b._dom, bind(b.f, b._dom)), b._dom = _undefined\n  for (let s of changedStatesArray) s._oldVal = s._val\n}\n\nlet hydrate = (dom, f) => update(dom, bind(f, dom))\n\nexport default {add, _, tags: tagsNS(), tagsNS, state, val, oldVal, derive, hydrate}\n","import van from \"vanjs-core\"\n\nconst msg_box_id = 'rabbitloader_common_msg_modal';\nconst msg_box_body = 'rabbitloader_common_msg_body';\nconst { div } = van.tags\n\nconst modalContainer = div({\n    id: `${msg_box_id}`,\n    style: `position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;`\n})\n\nconst modalMsgBox = div(\n    {\n        id: `${msg_box_body}`,\n        style: \"padding: 20px;\"\n    }\n)\n\nconst modalCloseBtn = div(\n    {\n        id: `rabbitloader_common_msg_footer`,\n        style: \"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;\",\n        onclick: () => { modalContainer.style.display = \"none\"; }\n    }, 'Close'\n)\n\nfunction inject() {\n    var dom = document.getElementById(msg_box_id);\n    if (!dom) {\n        const Modal = () => van.add(modalContainer,\n            modalMsgBox,\n            modalCloseBtn\n        )\n        van.add(document.body, Modal());\n    } else {\n        modalContainer.style.display = \"block\";\n    }\n}\n\nfunction setWidth(w) {\n    modalContainer.style.width = w + 'px'\n    modalContainer.style.marginLeft = (-1 * w / 2) + 'px'\n}\n\nexport function showCommonMessage(msg, skipPadding) {\n    inject();\n    let padding = skipPadding ? '0px' : '20px';\n    modalMsgBox.style.padding = padding\n    modalMsgBox.innerHTML = msg;\n    setWidth(400)\n}\n\nexport function showVideoPopup(id) {\n\n    let msg = `<iframe src=\"https://www.youtube.com/embed/${id}\" width=\"560px\" height=\"315px\" style=\"max-width:100%\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>`\n\n    inject();\n    modalMsgBox.style.padding = '0px'\n    modalMsgBox.innerHTML = msg;\n    setWidth(560)\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function toggleMeMode(btID, enable, cb) {\n\n    let msg = enable ? `<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.` : `<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. `;\n    if (btID) {\n        showBtnLoading(`#${btID}`, 'Enabling Me Mode...');\n    }\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_mode_change\");\n    formData.append('private_mode', enable ? 1 : 0);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(ajaxurl, {\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            console.log(json);\n            if (json && json.result) {\n                showCommonMessage(msg);\n                cb(true);\n            } else {\n                showCommonMessage('Settings could not be saved');\n                cb(false);\n            }\n            if (btID) {\n                stopBtnLoading(`#${btID}`);\n            }\n        });\n}","import van from \"vanjs-core\"\nimport { showVideoPopup } from './popup'\n//import \"bootstrap-icons/font/bootstrap-icons.css\";\n//import \"play-circle.svg\" from \"bootstrap-icons/icons/play-circle.svg\"\nconst { div, h5, h6, img, small, span } = van.tags\n\nconst playIcon = () => {\n    const { circle, path, svg } = van.tagsNS(\"http://www.w3.org/2000/svg\")\n    return svg({ width: \"16\", height: \"16\", fill: \"currentColor\", class: \"bi bi-play-circle rl-video-play \", viewBox: \"0 0 16 16\" },\n        path({ \"d\": \"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" }),\n        path({ \"d\": \"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445\" }),\n    )\n\n}\n\n\nexport function crashCourse() {\n\n    const container = document.getElementById('rl_crash_course_videos');\n    if (!container) {\n        return;\n    }\n\n    const videos = [\n        ['rJdgdkiADB4', 'Verification'],\n        ['QGAuLgOjCu0', 'Purging Cache'],\n        ['ol4nuYuYTeM', 'Me Mode'],\n        ['lC0vWlugHJ4', 'Image Settings'],\n        ['z6fuEHr6lYs', 'CSS Settings'],\n        ['QxwaDxtRw-I', 'Delegate Access'],\n        ['uBPMn2mvnrs', 'Linking Cloudflare'],\n    ];\n    const row = div({ class: \"row\" }, h5({ class: \"mb-3\" }, 'Crash Courses'))\n\n    videos.forEach(v => {\n        van.add(row, getVideoBox(v[1], v[0]))\n    })\n\n    van.add(container, div(\n        { class: \"row mb-4\" },\n        div({ class: \"col\" },\n            div({ class: \"bg-white rounded p-4\" }, row)\n        )))\n}\n\nfunction getVideoBox(title, videoID) {\n    const imgSrc = `https://img.youtube.com/vi/${videoID}/mqdefault.jpg`;\n    return div(\n        {\n            class: \"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp\",\n            onclick: () => showVideoPopup(videoID)\n        },\n        h6({ class: \"mb-3\" }, title),\n        img({ loading: 'lazy', src: imgSrc, alt: \"-\" }),\n        playIcon()\n    )\n}\n\nexport function primerVideos() {\n    const doms = document.querySelectorAll('primer');\n    if (!doms) {\n        return;\n    }\n    doms.forEach(d => {\n        const videoID = d.dataset.videoId\n        const align = d.dataset.align;\n        const duration = d.dataset.duration;\n        const durText = duration <= 100 ? \" \" + duration + \" seconds primer\" : \" \" + Math.round(duration / 60) + \" min primer\"\n\n        const node = div(\n            { class: \"col-12 mt-2 \" + (align == \"center\" ? \"text-center\" : \"\"), onclick: () => showVideoPopup(videoID) },\n            small({ class: \"text-secondary rl-cp \" },\n                span({ class: \"dashicons dashicons-video-alt3 mt-1\" }), durText)\n        )\n        van.add(d, node)\n    })\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function purgeAjax(e) {\n    e.preventDefault();\n\n    const $btn = jQuery(e.currentTarget);\n    showBtnLoading($btn, 'Purging...');\n    const post_id = rabbitloader_local_vars.post_id ? rabbitloader_local_vars.post_id : '';\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_ajax_purge\");//rabbitloader_ajax_purge\n    formData.append('post_id', post_id);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {//here we can not access the global \"ajaxurl\" because it is not available for single purge pages\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            //console.log(json);\n            if (json && json.result) {\n                if (post_id) {\n                    showCommonMessage(`Purge completed for page - ${document.title}`);\n                } else {\n                    showCommonMessage(`Purge completed`);\n                }\n            } else {\n                showCommonMessage('Purge failed. Please reload the page and try again.');\n            }\n            stopBtnLoading($btn);\n        });\n}","import { toggleMeMode } from './memode'\nimport { showCommonMessage, showVideoPopup } from './popup'\nimport { crashCourse, primerVideos } from './help_crash_course'\nimport { purgeAjax } from './purge'\n\nfunction App() {\n  //const window = this;\n  const document = window.document;\n  const docReady = (/p/).test(document.readyState);\n  var initCalled = false;\n  var rabbitloader_local_vars = window.rabbitloader_local_vars;\n  //use these variables so compression is better when code is minified\n  var getAttribute = \"getAttribute\";\n  var localStorage = \"localStorage\";\n  let PREVENT_DEFAULT = \"preventDefault\";\n\n  var click = 'click';\n  var jQuery = window.jQuery;\n  let rabbitloader_ajax_prefix = \"rabbitloader_ajax_\";\n\n  function setUpListeners() {\n    showScore('score_circle_best');\n    showScore('warming_progress_bar');\n    jQuery('.rabbitloader_purge_page').on(click, purgeAjax);\n    jQuery('#rabbitloader_purge_all').on(click, purgeAjax);\n    window.setTimeout(rlCron, 1000); //immediately after page is loaded\n    window.setInterval(rlCron, getRndInteger(300, 600) * 1000);//every 300 to 600 seconds\n    jQuery(document).on(click, '.tpopup', showTooltip);\n    jQuery(document).on('change', '#rl_chk_public', handleChkPublic);\n    jQuery(document).on('click', '#rl_show_survey', showSurvey);\n    jQuery(document).on('click', '#rl_me_learn_more', function () { showVideoPopup('ol4nuYuYTeM') });\n    onPluginDeactivate();\n    crashCourse();\n    primerVideos();\n  }\n\n  function showScore(elid) {\n    var el = document.getElementById(elid);\n    if (!el) {\n      return;\n    }\n    var options = {\n      percent: el[getAttribute]('data-percent') || 15,\n      size: el[getAttribute]('data-size') || 150,\n      lineWidth: el[getAttribute]('data-line') || 10,\n      rotate: el[getAttribute]('data-rotate') || 0,\n      ocolor: el[getAttribute]('data-ocolor') || '#f0fff7',\n      icolor: el[getAttribute]('data-icolor') || '#0cce6b',\n      fsize: el[getAttribute]('data-fsize') || '60px'\n    }\n\n    var canvas = document.createElement('canvas');\n    var span = document.createElement('span');\n    span.textContent = options.percent;\n    span.style.lineHeight = options.size + 'px';\n    span.style.width = options.size + 'px';\n    span.style.fontSize = options.fsize;\n    span.style.color = options.icolor;\n\n    if (typeof (G_vmlCanvasManager) !== 'undefined') {\n      G_vmlCanvasManager.initElement(canvas);\n    }\n\n    var ctx = canvas.getContext('2d');\n    canvas.width = canvas.height = options.size;\n\n    el.style.width = options.size + 'px';\n    el.style.height = options.size + 'px';\n    el.appendChild(span);\n    el.appendChild(canvas);\n\n    ctx.translate(options.size / 2, options.size / 2); // change center\n    ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg\n\n    //imd = ctx.getImageData(0, 0, 240, 240);\n    var radius = (options.size - options.lineWidth) / 2;\n\n    var drawCircle = function (color, lineWidth, percent) {\n      percent = Math.min(Math.max(0, percent || 1), 1);\n      ctx.beginPath();\n      ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);\n      ctx.strokeStyle = color;\n      ctx.lineCap = 'round'; // butt, round or square\n      ctx.lineWidth = lineWidth\n      ctx.stroke();\n    };\n\n    options.percent = parseFloat(options.percent); //display text may contain % etc\n    drawCircle(options.ocolor, options.lineWidth, 100 / 100);\n    drawCircle(options.icolor, options.lineWidth, options.percent / 100);\n  }\n\n  //this function calls the admin_ajax to execute few periodic functions calls in PHP, as long as the admin page is open, the ajax will be called almost every minute \n  function rlCron() {\n    let ajax_action = rabbitloader_ajax_prefix + \"cron\";//v\n    //apply lock to ensure if admin page is loaded in multiple tabs, we do not consume lots of resources\n    let lastRunTime = window[localStorage].getItem(ajax_action);\n    let now = Date.now();\n    if (lastRunTime) {\n      let diff = now - new Date(lastRunTime)\n      let diffInSeconds = diff / 1000;\n      if (diffInSeconds < 180) {\n        //this tab or some tab called in this ajax in last 180 seconds, lets exit and wait for next timer call\n        return;\n      }\n    } else {\n      //possibly first run\n    }\n    window[localStorage].setItem(ajax_action, now);\n\n    const formData = new FormData();\n    formData.append('action', ajax_action);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function showTooltip(e) {\n    let title = jQuery(e.target).attr('title-html');\n    if (!title) {\n      title = jQuery(e.target).attr('title');\n    }\n    if (title) {\n      showCommonMessage(title);\n    }\n  }\n\n  function handleChkPublic(e) {\n    let private_mode = !jQuery(e.target).is(':checked');\n    showCommonMessage('Updating...');//show progress till API call completes\n    toggleMeMode('', private_mode, function () { });\n  }\n\n  function getRndInteger(min, max) {\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n  }\n\n  function onPluginDeactivate() {\n    let slug = `rabbit-loader`;\n    let deactivateLink = `tr[data-slug=\"${slug}\"] #deactivate-${slug}`;\n    //private_mode_val\n    if (jQuery(deactivateLink).length == 0) {\n      //not on the plugins page\n      return;\n    }\n    let deactivateLinkUrl = jQuery(deactivateLink).attr('href');\n    let popup_id = `${slug}-me-mode-popup`\n    let btn_enable_memode = `${slug}-en`\n    let btn_deactivate = `${slug}-de`\n    let popup_html = `<div id=\"${popup_id}\" style=\"display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;\"><p class=\"\">${rl_de_popup.pop_msg}</p><div style=\"margin-top:25px;\"><a id=\"${btn_deactivate}\" class=\"button button-secondary alignleft\" href=\"#\">${rl_de_popup.btn_de}</a><button id=\"${btn_enable_memode}\" class=\"button button-primary alignright\">${rl_de_popup.btn_en}</button></div></div>`;\n\n    jQuery(deactivateLink).parent().append(popup_html);\n    jQuery(deactivateLink).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      jQuery('#' + popup_id).show();\n      let ref1 = jQuery(window).scrollTop() + jQuery(window).height();\n      let ref2 = jQuery('#' + popup_id).offset().top + jQuery('#' + popup_id).outerHeight(true);\n      if (ref2 > ref1) {\n        jQuery('html,body').animate({ scrollTop: jQuery('#' + popup_id).offset().top - (jQuery(window).height() - jQuery('#' + popup_id).outerHeight(true) - 10) }, 200);\n      }\n      jQuery(`#${btn_deactivate}`).attr('href', deactivateLinkUrl);\n    });\n\n\n    jQuery(`#${btn_enable_memode}`).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      e.stopPropagation();\n      jQuery(deactivateLink).unbind(click);\n\n      toggleMeMode(btn_enable_memode, true, function (done) {\n        if (done) {\n          jQuery('#' + popup_id).hide();\n        }\n      });\n    });\n  }\n\n  function showSurvey() {\n    let form = '<iframe src=\"https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg\" width=\"100%\" height=\"600px\"></iframe>'\n    showCommonMessage(form, true);\n\n    //mark the form shown, so it will not be shown again\n    const formData = new FormData();\n    //rabbitloader_ajax_survey_dismissed\n    formData.append('action', rabbitloader_ajax_prefix + 'survey_dismissed');\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function init() {\n    if (initCalled) { return; }\n    initCalled = true;\n    setUpListeners();\n  }\n  docReady ? init() : window.addEventListener('load', init);\n}\n\nexport default App;","import App from './App';\n\n\n// export const Init = () => {\n//   App();\n// }\n\nApp();\n"],"names":["root","factory","exports","module","define","amd","this","Symbol","toStringTag","Object","defineProperty","value","ATTR_DISABLED","showBtnLoading","$ele","txt","otext","jQuery","html","concat","attr","data","stopBtnLoading","removeAttr","_undefined","changedStates","curDeps","curNewDerives","statesToGc","Obj","protoOf","getPrototypeOf","doc","document","alwaysConnectedDom","isConnected","propSetterCache","objProto","funcProto","addAndScheduleOnFirst","set","s","f","waitMs","setTimeout","Set","add","runAndCaptureDeps","deps","arg","prevDeps","e","console","error","keepConnected","l","filter","b","_dom","addStatesToGc","d","_bindings","_listeners","stateProto","val","_val","oldVal","_oldVal","v","listeners","derive","length","updateDoms","state","initVal","__proto__","isState","bind","dom","binding","prevNewDerives","newDom","nodeType","Text","push","listener","children","c","flat","Infinity","protoOfC","child","append","tagsNS","ns","Proxy","name","args","props","createElementNS","createElement","k","entries","getPropDescriptor","proto","getOwnPropertyDescriptor","cacheKey","propSetter","setter","setAttribute","protoOfV","startsWith","_isBindingFunc","get","tag","update","replaceWith","remove","changedStatesArray","flatMap","_","tags","hydrate","msg_box_id","div","van","modalContainer","id","style","modalMsgBox","modalCloseBtn","onclick","display","inject","getElementById","body","setWidth","w","width","marginLeft","showCommonMessage","msg","skipPadding","padding","innerHTML","showVideoPopup","toggleMeMode","btID","enable","cb","formData","FormData","rabbitloader_local_vars","rl_nonce","fetch","ajaxurl","then","res","json","log","result","_van$tags","h5","h6","img","small","span","crashCourse","container","row","class","forEach","title","videoID","imgSrc","_van$tagsNS","path","loading","src","alt","circle","svg","height","fill","viewBox","primerVideos","doms","querySelectorAll","dataset","videoId","align","duration","durText","Math","round","node","purgeAjax","preventDefault","$btn","currentTarget","post_id","admin_ajax","window","docReady","test","readyState","initCalled","getAttribute","localStorage","PREVENT_DEFAULT","click","rabbitloader_ajax_prefix","showScore","elid","el","options","percent","size","lineWidth","rotate","ocolor","icolor","fsize","canvas","textContent","lineHeight","fontSize","color","G_vmlCanvasManager","initElement","ctx","getContext","appendChild","translate","PI","radius","drawCircle","min","max","beginPath","arc","strokeStyle","lineCap","stroke","parseFloat","rlCron","ajax_action","lastRunTime","getItem","now","Date","setItem","showTooltip","target","handleChkPublic","private_mode","is","showSurvey","init","on","setInterval","floor","random","slug","deactivateLink","deactivateLinkUrl","popup_id","btn_enable_memode","btn_deactivate","popup_html","rl_de_popup","pop_msg","btn_de","btn_en","parent","show","ref1","scrollTop","offset","top","outerHeight","animate","stopPropagation","unbind","done","hide","onPluginDeactivate","addEventListener","App"],"sourceRoot":""}
     1{"version":3,"file":"index.js","mappings":"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","sources":["webpack://RLAdmin/webpack/universalModuleDefinition","webpack://RLAdmin/webpack/bootstrap","webpack://RLAdmin/webpack/runtime/make namespace object","webpack://RLAdmin/./src/loading.js","webpack://RLAdmin/../../node_modules/vanjs-core/src/van.js","webpack://RLAdmin/./src/popup.js","webpack://RLAdmin/./src/memode.js","webpack://RLAdmin/./src/help_crash_course.js","webpack://RLAdmin/./src/purge.js","webpack://RLAdmin/./src/App.js","webpack://RLAdmin/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RLAdmin\"] = factory();\n\telse\n\t\troot[\"RLAdmin\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const ATTR_DISABLED = \"disabled\";\n\nexport function showBtnLoading($ele, txt) {\n    let otext = jQuery($ele).html();\n    return jQuery($ele).html(`<span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span> ${txt}`).attr(ATTR_DISABLED, ATTR_DISABLED).data('otext', otext);\n}\n\nexport function stopBtnLoading($ele) {\n    let otext = jQuery($ele).data('otext');\n    return jQuery($ele).html(otext).removeAttr(ATTR_DISABLED);\n}","// This file consistently uses `let` keyword instead of `const` for reducing the bundle size.\n\n// Global variables - aliasing some builtin symbols to reduce the bundle size.\nlet Obj = Object, _undefined, protoOf = Obj.getPrototypeOf, doc = document\nlet changedStates, curDeps, curNewDerives, alwaysConnectedDom = {isConnected: 1}, gcCycleInMs = 1000, statesToGc, propSetterCache = {}\nlet objProto = protoOf(alwaysConnectedDom), funcProto = protoOf(protoOf)\n\nlet addAndScheduleOnFirst = (set, s, f, waitMs) =>\n  (set ?? (setTimeout(f, waitMs), new Set)).add(s)\n\nlet runAndCaptureDeps = (f, deps, arg) => {\n  let prevDeps = curDeps\n  curDeps = deps\n  try {\n    return f(arg)\n  } catch (e) {\n    console.error(e)\n    return arg\n  } finally {\n    curDeps = prevDeps\n  }\n}\n\nlet keepConnected = l => l.filter(b => b._dom?.isConnected)\n\nlet addStatesToGc = d => statesToGc = addAndScheduleOnFirst(statesToGc, d, () => {\n  for (let s of statesToGc)\n    s._bindings = keepConnected(s._bindings),\n    s._listeners = keepConnected(s._listeners)\n  statesToGc = _undefined\n}, gcCycleInMs)\n\nlet stateProto = {\n  get val() {\n    curDeps?.add(this)\n    return this._val\n  },\n\n  get oldVal() {\n    curDeps?.add(this)\n    return this._oldVal\n  },\n\n  set val(v) {\n    // Aliasing `this` to reduce the bundle size.\n    let s = this\n    if (v !== s._val) {\n      s._val = v\n      let listeners = [...s._listeners = keepConnected(s._listeners)]\n      for (let l of listeners) derive(l.f, l.s, l._dom), l._dom = _undefined\n      s._bindings.length ?\n        changedStates = addAndScheduleOnFirst(changedStates, s, updateDoms) :\n        s._oldVal = v\n    }\n  },\n}\n\nlet state = initVal => ({\n  __proto__: stateProto,\n  _val: initVal,\n  _oldVal: initVal,\n  _bindings: [],\n  _listeners: [],\n})\n\nlet isState = s => protoOf(s ?? 0) === stateProto\n\nlet val = s => isState(s) ? s.val : s\nlet oldVal = s => isState(s) ? s.oldVal : s\n\nlet bind = (f, dom) => {\n  let deps = new Set, binding = {f}, prevNewDerives = curNewDerives\n  curNewDerives = []\n  let newDom = runAndCaptureDeps(f, deps, dom)\n  newDom = (newDom ?? doc).nodeType ? newDom : new Text(newDom)\n  for (let d of deps) addStatesToGc(d), d._bindings.push(binding)\n  for (let l of curNewDerives) l._dom = newDom\n  curNewDerives = prevNewDerives\n  return binding._dom = newDom\n}\n\nlet derive = (f, s = state(), dom) => {\n  let deps = new Set, listener = {f, s}\n  listener._dom = dom ?? curNewDerives?.push(listener) ?? alwaysConnectedDom\n  s.val = runAndCaptureDeps(f, deps)\n  for (let d of deps) addStatesToGc(d), d._listeners.push(listener)\n  return s\n}\n\nlet add = (dom, ...children) => {\n  for (let c of children.flat(Infinity)) {\n    let protoOfC = protoOf(c ?? 0)\n    let child = protoOfC === stateProto ? bind(() => c.val) :\n      protoOfC === funcProto ? bind(c) : c\n    if (child != _undefined) dom.append(child)\n  }\n  return dom\n}\n\nlet _ = f => (f._isBindingFunc = 1, f)\n\nlet tagsNS = ns => new Proxy((name, ...args) => {\n  let [props, ...children] = protoOf(args[0] ?? 0) === objProto ? args : [{}, ...args]\n  let dom = ns ? doc.createElementNS(ns, name) : doc.createElement(name)\n  for (let [k, v] of Obj.entries(props)) {\n    let getPropDescriptor = proto => proto ?\n      Obj.getOwnPropertyDescriptor(proto, k) ?? getPropDescriptor(protoOf(proto)) :\n      _undefined\n    let cacheKey = name + \",\" + k\n    let propSetter = propSetterCache[cacheKey] ??\n      (propSetterCache[cacheKey] = getPropDescriptor(protoOf(dom))?.set ?? 0)\n    let setter = propSetter ? propSetter.bind(dom) : dom.setAttribute.bind(dom, k)\n    let protoOfV = protoOf(v ?? 0)\n    if (protoOfV === stateProto) bind(() => (setter(v.val), dom))\n    else if (protoOfV === funcProto && (!k.startsWith(\"on\") || v._isBindingFunc))\n      bind(() => (setter(v()), dom))\n    else setter(v)\n  }\n  return add(dom, ...children)\n}, {get: (tag, name) => tag.bind(_undefined, name)})\n\nlet update = (dom, newDom) => newDom ? newDom !== dom && dom.replaceWith(newDom) : dom.remove()\n\nlet updateDoms = () => {\n  let changedStatesArray = [...changedStates].filter(s => s._val !== s._oldVal)\n  changedStates = _undefined\n  for (let b of new Set(changedStatesArray.flatMap(s => s._bindings = keepConnected(s._bindings))))\n    update(b._dom, bind(b.f, b._dom)), b._dom = _undefined\n  for (let s of changedStatesArray) s._oldVal = s._val\n}\n\nlet hydrate = (dom, f) => update(dom, bind(f, dom))\n\nexport default {add, _, tags: tagsNS(), tagsNS, state, val, oldVal, derive, hydrate}\n","import van from \"vanjs-core\"\n\nconst msg_box_id = 'rabbitloader_common_msg_modal';\nconst msg_box_body = 'rabbitloader_common_msg_body';\nconst { div } = van.tags\n\nconst modalContainer = div({\n    id: `${msg_box_id}`,\n    style: `position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;`\n})\n\nconst modalMsgBox = div(\n    {\n        id: `${msg_box_body}`,\n        style: \"padding: 20px;\"\n    }\n)\n\nconst modalCloseBtn = div(\n    {\n        id: `rabbitloader_common_msg_footer`,\n        style: \"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;\",\n        onclick: () => { modalContainer.style.display = \"none\"; }\n    }, 'Close'\n)\n\nfunction inject() {\n    var dom = document.getElementById(msg_box_id);\n    if (!dom) {\n        const Modal = () => van.add(modalContainer,\n            modalMsgBox,\n            modalCloseBtn\n        )\n        van.add(document.body, Modal());\n    } else {\n        modalContainer.style.display = \"block\";\n    }\n}\n\nfunction setWidth(w) {\n    modalContainer.style.width = w + 'px'\n    modalContainer.style.marginLeft = (-1 * w / 2) + 'px'\n}\n\nexport function showCommonMessage(msg, skipPadding) {\n    inject();\n    let padding = skipPadding ? '0px' : '20px';\n    modalMsgBox.style.padding = padding\n    modalMsgBox.innerHTML = msg;\n    setWidth(400)\n}\n\nexport function showVideoPopup(id) {\n\n    let msg = `<iframe src=\"https://www.youtube.com/embed/${id}\" width=\"560px\" height=\"315px\" style=\"max-width:100%\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>`\n\n    inject();\n    modalMsgBox.style.padding = '0px'\n    modalMsgBox.innerHTML = msg;\n    setWidth(560)\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function toggleMeMode(btID, enable, cb) {\n\n    let msg = enable ? `<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.` : `<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. `;\n    if (btID) {\n        showBtnLoading(`#${btID}`, 'Enabling Me Mode...');\n    }\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_mode_change\");\n    formData.append('private_mode', enable ? 1 : 0);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(ajaxurl, {\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            console.log(json);\n            if (json && json.result) {\n                showCommonMessage(msg);\n                cb(true);\n            } else {\n                showCommonMessage('Settings could not be saved');\n                cb(false);\n            }\n            if (btID) {\n                stopBtnLoading(`#${btID}`);\n            }\n        });\n}","import van from \"vanjs-core\"\nimport { showVideoPopup } from './popup'\n//import \"bootstrap-icons/font/bootstrap-icons.css\";\n//import \"play-circle.svg\" from \"bootstrap-icons/icons/play-circle.svg\"\nconst { div, h5, h6, img, small, span } = van.tags\n\nconst playIcon = () => {\n    const { circle, path, svg } = van.tagsNS(\"http://www.w3.org/2000/svg\")\n    return svg({ width: \"16\", height: \"16\", fill: \"currentColor\", class: \"bi bi-play-circle rl-video-play \", viewBox: \"0 0 16 16\" },\n        path({ \"d\": \"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" }),\n        path({ \"d\": \"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445\" }),\n    )\n\n}\n\n\nexport function crashCourse() {\n\n    const container = document.getElementById('rl_crash_course_videos');\n    if (!container) {\n        return;\n    }\n\n    const videos = [\n        ['rJdgdkiADB4', 'Verification'],\n        ['QGAuLgOjCu0', 'Purging Cache'],\n        ['ol4nuYuYTeM', 'Me Mode'],\n        ['lC0vWlugHJ4', 'Image Settings'],\n        ['z6fuEHr6lYs', 'CSS Settings'],\n        ['QxwaDxtRw-I', 'Delegate Access'],\n        ['uBPMn2mvnrs', 'Linking Cloudflare'],\n    ];\n    const row = div({ class: \"row\" }, h5({ class: \"mb-3\" }, 'Crash Courses'))\n\n    videos.forEach(v => {\n        van.add(row, getVideoBox(v[1], v[0]))\n    })\n\n    van.add(container, div(\n        { class: \"row mb-4\" },\n        div({ class: \"col\" },\n            div({ class: \"bg-white rounded p-4\" }, row)\n        )))\n}\n\nfunction getVideoBox(title, videoID) {\n    const imgSrc = `https://img.youtube.com/vi/${videoID}/mqdefault.jpg`;\n    return div(\n        {\n            class: \"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp\",\n            onclick: () => showVideoPopup(videoID)\n        },\n        h6({ class: \"mb-3\" }, title),\n        img({ loading: 'lazy', src: imgSrc, alt: \"-\" }),\n        playIcon()\n    )\n}\n\nexport function primerVideos() {\n    const doms = document.querySelectorAll('primer');\n    if (!doms) {\n        return;\n    }\n    doms.forEach(d => {\n        const videoID = d.dataset.videoId\n        const align = d.dataset.align;\n        const duration = d.dataset.duration;\n        const durText = duration <= 100 ? \" \" + duration + \" seconds primer\" : \" \" + Math.round(duration / 60) + \" min primer\"\n\n        const node = div(\n            { class: \"col-12 mt-2 \" + (align == \"center\" ? \"text-center\" : \"\"), onclick: () => showVideoPopup(videoID) },\n            small({ class: \"text-secondary rl-cp \" },\n                span({ class: \"dashicons dashicons-video-alt3 mt-1\" }), durText)\n        )\n        van.add(d, node)\n    })\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function purgeAjax(e) {\n    e.preventDefault();\n\n    const $btn = jQuery(e.currentTarget);\n    showBtnLoading($btn, 'Purging...');\n    const post_id = rabbitloader_local_vars.post_id ? rabbitloader_local_vars.post_id : '';\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_ajax_purge\");//rabbitloader_ajax_purge\n    formData.append('post_id', post_id);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {//here we can not access the global \"ajaxurl\" because it is not available for single purge pages\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            //console.log(json);\n            if (json && json.result) {\n                if (post_id) {\n                    showCommonMessage(`Purge completed for page - ${document.title}`);\n                } else {\n                    showCommonMessage(`Purge completed`);\n                }\n            } else {\n                showCommonMessage('Purge failed. Please reload the page and try again.');\n            }\n            stopBtnLoading($btn);\n        });\n}","import { toggleMeMode } from './memode'\nimport { showCommonMessage, showVideoPopup } from './popup'\nimport { crashCourse, primerVideos } from './help_crash_course'\nimport { purgeAjax } from './purge'\n\nfunction App() {\n  //const window = this;\n  const document = window.document;\n  const docReady = (/p/).test(document.readyState);\n  var initCalled = false;\n  var rabbitloader_local_vars = window.rabbitloader_local_vars;\n  //use these variables so compression is better when code is minified\n  var getAttribute = \"getAttribute\";\n  var localStorage = \"localStorage\";\n  let PREVENT_DEFAULT = \"preventDefault\";\n\n  var click = 'click';\n  var jQuery = window.jQuery;\n  let rabbitloader_ajax_prefix = \"rabbitloader_ajax_\";\n\n  function setUpListeners() {\n    showScore('score_circle_best');\n    showScore('warming_progress_bar');\n    jQuery('.rabbitloader_purge_page').on(click, purgeAjax);\n    jQuery('#rabbitloader_purge_all').on(click, purgeAjax);\n    window.setTimeout(rlCron, 1000); //immediately after page is loaded\n    window.setInterval(rlCron, getRndInteger(300, 600) * 1000);//every 300 to 600 seconds\n    jQuery(document).on(click, '.tpopup', showTooltip);\n    jQuery(document).on('change', '#rl_chk_public', handleChkPublic);\n    //jQuery(document).on('click', '#rl_show_survey', showSurvey);\n    jQuery(document).on('click', '#rl_me_learn_more', function () { showVideoPopup('ol4nuYuYTeM') });\n    onPluginDeactivate();\n    crashCourse();\n    primerVideos();\n  }\n\n  function showScore(elid) {\n    var el = document.getElementById(elid);\n    if (!el) {\n      return;\n    }\n    var options = {\n      percent: el[getAttribute]('data-percent') || 15,\n      size: el[getAttribute]('data-size') || 150,\n      lineWidth: el[getAttribute]('data-line') || 10,\n      rotate: el[getAttribute]('data-rotate') || 0,\n      ocolor: el[getAttribute]('data-ocolor') || '#f0fff7',\n      icolor: el[getAttribute]('data-icolor') || '#0cce6b',\n      fsize: el[getAttribute]('data-fsize') || '60px'\n    }\n\n    var canvas = document.createElement('canvas');\n    var span = document.createElement('span');\n    span.textContent = options.percent;\n    span.style.lineHeight = options.size + 'px';\n    span.style.width = options.size + 'px';\n    span.style.fontSize = options.fsize;\n    span.style.color = options.icolor;\n\n    if (typeof (G_vmlCanvasManager) !== 'undefined') {\n      G_vmlCanvasManager.initElement(canvas);\n    }\n\n    var ctx = canvas.getContext('2d');\n    canvas.width = canvas.height = options.size;\n\n    el.style.width = options.size + 'px';\n    el.style.height = options.size + 'px';\n    el.appendChild(span);\n    el.appendChild(canvas);\n\n    ctx.translate(options.size / 2, options.size / 2); // change center\n    ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg\n\n    //imd = ctx.getImageData(0, 0, 240, 240);\n    var radius = (options.size - options.lineWidth) / 2;\n\n    var drawCircle = function (color, lineWidth, percent) {\n      percent = Math.min(Math.max(0, percent || 1), 1);\n      ctx.beginPath();\n      ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);\n      ctx.strokeStyle = color;\n      ctx.lineCap = 'round'; // butt, round or square\n      ctx.lineWidth = lineWidth\n      ctx.stroke();\n    };\n\n    options.percent = parseFloat(options.percent); //display text may contain % etc\n    drawCircle(options.ocolor, options.lineWidth, 100 / 100);\n    drawCircle(options.icolor, options.lineWidth, options.percent / 100);\n  }\n\n  //this function calls the admin_ajax to execute few periodic functions calls in PHP, as long as the admin page is open, the ajax will be called almost every minute \n  function rlCron() {\n    let ajax_action = rabbitloader_ajax_prefix + \"cron\";//v\n    //apply lock to ensure if admin page is loaded in multiple tabs, we do not consume lots of resources\n    let lastRunTime = window[localStorage].getItem(ajax_action);\n    let now = Date.now();\n    if (lastRunTime) {\n      let diff = now - new Date(lastRunTime)\n      let diffInSeconds = diff / 1000;\n      if (diffInSeconds < 180) {\n        //this tab or some tab called in this ajax in last 180 seconds, lets exit and wait for next timer call\n        return;\n      }\n    } else {\n      //possibly first run\n    }\n    window[localStorage].setItem(ajax_action, now);\n\n    const formData = new FormData();\n    formData.append('action', ajax_action);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function showTooltip(e) {\n    let title = jQuery(e.target).attr('title-html');\n    if (!title) {\n      title = jQuery(e.target).attr('title');\n    }\n    if (title) {\n      showCommonMessage(title);\n    }\n  }\n\n  function handleChkPublic(e) {\n    let private_mode = !jQuery(e.target).is(':checked');\n    showCommonMessage('Updating...');//show progress till API call completes\n    toggleMeMode('', private_mode, function () { });\n  }\n\n  function getRndInteger(min, max) {\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n  }\n\n  function onPluginDeactivate() {\n    let slug = `rabbit-loader`;\n    let deactivateLink = `tr[data-slug=\"${slug}\"] #deactivate-${slug}`;\n    //private_mode_val\n    if (jQuery(deactivateLink).length == 0) {\n      //not on the plugins page\n      return;\n    }\n    let deactivateLinkUrl = jQuery(deactivateLink).attr('href');\n    let popup_id = `${slug}-me-mode-popup`\n    let btn_enable_memode = `${slug}-en`\n    let btn_deactivate = `${slug}-de`\n    let popup_html = `<div id=\"${popup_id}\" style=\"display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;\"><p class=\"\">${rl_de_popup.pop_msg}</p><div style=\"margin-top:25px;\"><a id=\"${btn_deactivate}\" class=\"button button-secondary alignleft\" href=\"#\">${rl_de_popup.btn_de}</a><button id=\"${btn_enable_memode}\" class=\"button button-primary alignright\">${rl_de_popup.btn_en}</button></div></div>`;\n\n    jQuery(deactivateLink).parent().append(popup_html);\n    jQuery(deactivateLink).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      jQuery('#' + popup_id).show();\n      let ref1 = jQuery(window).scrollTop() + jQuery(window).height();\n      let ref2 = jQuery('#' + popup_id).offset().top + jQuery('#' + popup_id).outerHeight(true);\n      if (ref2 > ref1) {\n        jQuery('html,body').animate({ scrollTop: jQuery('#' + popup_id).offset().top - (jQuery(window).height() - jQuery('#' + popup_id).outerHeight(true) - 10) }, 200);\n      }\n      jQuery(`#${btn_deactivate}`).attr('href', deactivateLinkUrl);\n    });\n\n\n    jQuery(`#${btn_enable_memode}`).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      e.stopPropagation();\n      jQuery(deactivateLink).unbind(click);\n\n      toggleMeMode(btn_enable_memode, true, function (done) {\n        if (done) {\n          jQuery('#' + popup_id).hide();\n        }\n      });\n    });\n  }\n\n  //survey removed on >= v2.19.17\n  // function showSurvey() {\n  //   let form = '<iframe src=\"https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg\" width=\"100%\" height=\"600px\"></iframe>'\n  //   showCommonMessage(form, true);\n\n  //   //mark the form shown, so it will not be shown again\n  //   const formData = new FormData();\n  //   //rabbitloader_ajax_survey_dismissed\n  //   formData.append('action', rabbitloader_ajax_prefix + 'survey_dismissed');\n  //   formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n  //   fetch(rabbitloader_local_vars.admin_ajax, {\n  //     'method': 'POST',\n  //     'body': formData\n  //   });\n  // }\n\n  function init() {\n    if (initCalled) { return; }\n    initCalled = true;\n    setUpListeners();\n  }\n  docReady ? init() : window.addEventListener('load', init);\n}\n\nexport default App;","import App from './App';\n\n\n// export const Init = () => {\n//   App();\n// }\n\nApp();\n"],"names":["root","factory","exports","module","define","amd","this","Symbol","toStringTag","Object","defineProperty","value","ATTR_DISABLED","showBtnLoading","$ele","txt","otext","jQuery","html","concat","attr","data","stopBtnLoading","removeAttr","_undefined","changedStates","curDeps","curNewDerives","statesToGc","Obj","protoOf","getPrototypeOf","doc","document","alwaysConnectedDom","isConnected","propSetterCache","objProto","funcProto","addAndScheduleOnFirst","set","s","f","waitMs","setTimeout","Set","add","runAndCaptureDeps","deps","arg","prevDeps","e","console","error","keepConnected","l","filter","b","_dom","addStatesToGc","d","_bindings","_listeners","stateProto","val","_val","oldVal","_oldVal","v","listeners","derive","length","updateDoms","state","initVal","__proto__","isState","bind","dom","binding","prevNewDerives","newDom","nodeType","Text","push","listener","children","c","flat","Infinity","protoOfC","child","append","tagsNS","ns","Proxy","name","args","props","createElementNS","createElement","k","entries","getPropDescriptor","proto","getOwnPropertyDescriptor","cacheKey","propSetter","setter","setAttribute","protoOfV","startsWith","_isBindingFunc","get","tag","update","replaceWith","remove","changedStatesArray","flatMap","_","tags","hydrate","msg_box_id","div","van","modalContainer","id","style","modalMsgBox","modalCloseBtn","onclick","display","inject","getElementById","body","setWidth","w","width","marginLeft","showCommonMessage","msg","skipPadding","padding","innerHTML","showVideoPopup","toggleMeMode","btID","enable","cb","formData","FormData","rabbitloader_local_vars","rl_nonce","fetch","ajaxurl","then","res","json","log","result","_van$tags","h5","h6","img","small","span","crashCourse","container","row","class","forEach","title","videoID","imgSrc","_van$tagsNS","path","loading","src","alt","circle","svg","height","fill","viewBox","primerVideos","doms","querySelectorAll","dataset","videoId","align","duration","durText","Math","round","node","purgeAjax","preventDefault","$btn","currentTarget","post_id","admin_ajax","window","docReady","test","readyState","initCalled","getAttribute","localStorage","PREVENT_DEFAULT","click","rabbitloader_ajax_prefix","showScore","elid","el","options","percent","size","lineWidth","rotate","ocolor","icolor","fsize","canvas","textContent","lineHeight","fontSize","color","G_vmlCanvasManager","initElement","ctx","getContext","appendChild","translate","PI","radius","drawCircle","min","max","beginPath","arc","strokeStyle","lineCap","stroke","parseFloat","rlCron","ajax_action","lastRunTime","getItem","now","Date","setItem","showTooltip","target","handleChkPublic","private_mode","is","init","on","setInterval","floor","random","slug","deactivateLink","deactivateLinkUrl","popup_id","btn_enable_memode","btn_deactivate","popup_html","rl_de_popup","pop_msg","btn_de","btn_en","parent","show","ref1","scrollTop","offset","top","outerHeight","animate","stopPropagation","unbind","done","hide","onPluginDeactivate","addEventListener","App"],"sourceRoot":""}
  • rabbit-loader/tags/2.19.17/autoload.php

    r3030444 r3039136  
    44define('RABBITLOADER_CACHE_DIR', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . "rabbitloader");
    55define('RABBITLOADER_PLUG_URL', plugin_dir_url(__FILE__));
    6 define('RABBITLOADER_PLUG_VERSION', '2.19.16');
     6define('RABBITLOADER_PLUG_VERSION', '2.19.17');
    77define('RABBITLOADER_TEXT_DOMAIN', 'rabbit-loader');
    88define('RABBITLOADER_PLUG_ENV', 'PROD');
  • rabbit-loader/tags/2.19.17/inc/admin.php

    r3030444 r3039136  
    7272            RL21UtilWP::verifyAjaxNonce();
    7373        });
    74         add_action('wp_ajax_rabbitloader_ajax_survey_dismissed', function () {
    75             RL21UtilWP::verifyAjaxNonce();
    76             self::survey_dismissed(self::SURVEY_DIS_PERMA);
    77         });
     74        // add_action('wp_ajax_rabbitloader_ajax_survey_dismissed', function () {
     75        //     RL21UtilWP::verifyAjaxNonce();
     76        //     self::survey_dismissed(self::SURVEY_DIS_PERMA);
     77        // });
    7878        add_action('rl_site_connected', function () {
    7979            self::rl_site_connected();
     
    126126    {
    127127
    128         self::survey();
     128        //self::survey();
    129129
    130130        try {
     
    208208    }
    209209
    210     private static function survey_dismissed($forceTime)
    211     {
    212         $user_id = get_current_user_id();
    213         if (empty($user_id)) {
    214             wp_send_json_error(null, 403);
    215         }
    216         if (isset($_GET['rl_survey_dismissed'])) {
    217             delete_user_meta($user_id, 'rl_survey_dismissed');
    218             update_user_meta($user_id, 'rl_survey_dismissed', intval($_GET['rl_survey_dismissed']), false);
    219         }
    220         if ($forceTime) {
    221             delete_user_meta($user_id, 'rl_survey_dismissed');
    222             update_user_meta($user_id, 'rl_survey_dismissed', $forceTime, false);
    223         }
    224     }
     210    // private static function survey_dismissed($forceTime)
     211    // {
     212    //     $user_id = get_current_user_id();
     213    //     if (empty($user_id)) {
     214    //         wp_send_json_error(null, 403);
     215    //     }
     216    //     if (isset($_GET['rl_survey_dismissed'])) {
     217    //         delete_user_meta($user_id, 'rl_survey_dismissed');
     218    //         update_user_meta($user_id, 'rl_survey_dismissed', intval($_GET['rl_survey_dismissed']), false);
     219    //     }
     220    //     if ($forceTime) {
     221    //         delete_user_meta($user_id, 'rl_survey_dismissed');
     222    //         update_user_meta($user_id, 'rl_survey_dismissed', $forceTime, false);
     223    //     }
     224    // }
    225225    public static function admin_init()
    226226    {
    227         if (isset($_GET['rl_survey_dismissed'])) {
    228             self::survey_dismissed(0);
    229         }
     227        // if (isset($_GET['rl_survey_dismissed'])) {
     228        //     self::survey_dismissed(0);
     229        // }
    230230    }
    231231
  • rabbit-loader/tags/2.19.17/rabbit-loader.php

    r3030444 r3039136  
    77 * Author URI:   https://rabbitloader.com/
    88 * Description: RabbitLoader can improve Google PageSpeed score and get you 100 out of 100 by improving the page load time to just a few milliseconds. It improves the Core Web Vitals score for your pages and boost PageSpeed score to help better search rankings and best the experience for your end user.
    9  * Version: 2.19.16
     9 * Version: 2.19.17
    1010 * Text Domain: rabbit-loader
    1111 */
  • rabbit-loader/tags/2.19.17/readme.txt

    r3030444 r3039136  
    55Requires at least: 4.7
    66Tested up to: 6.4
    7 Stable tag: 2.19.16
     7Stable tag: 2.19.17
    88Requires PHP: 5.6
    99License: GNU General Public License, version 2
     
    109109**300+ PoP's**
    110110
    111 RabbitLoader uses a [Content Delivery Network](https://rabbitloader.com/origin-savings/ "Content Delivery Network")(CDN) that is distributed throughout the world with over 300 Points of Presence (PoP). This means that no matter where your visitors are located, they can access your website's content in milliseconds, resulting in a faster and smoother experience.
     111RabbitLoader uses a [Content Delivery Network](https://rabbitloader.com/origin-savings/ "Content Delivery Network") (CDN) that is distributed throughout the world with over 300 Points of Presence (PoP). This means that no matter where your visitors are located, they can access your website's content in milliseconds, resulting in a faster and smoother experience.
    112112 
    113113This is essential for websites with a global audience, as it ensures that users from all regions can access your website quickly without experiencing any delays. With a distributed network, RabbitLoader is able to provide a faster response time for website content, which can improve user engagement and reduce bounce rates. The CDN's wide coverage ensures that the content can be delivered to users from the nearest server, resulting in lower latency and faster loading times.
  • rabbit-loader/trunk/admin/js/index.js

    r3020814 r3039136  
    1 !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RLAdmin=t():e.RLAdmin=t()}(this,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);var t="disabled";function o(e,o){var a=jQuery(e).html();return jQuery(e).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> '.concat(o)).attr(t,t).data("otext",a)}function a(e){var o=jQuery(e).data("otext");return jQuery(e).html(o).removeAttr(t)}let n,r,i,l,d,c=Object,s=c.getPrototypeOf,p=document,u={isConnected:1},f={},m=s(u),g=s(s),h=(e,t,o,a)=>(e??(setTimeout(o,a),new Set)).add(t),b=(e,t,o)=>{let a=i;i=t;try{return e(o)}catch(e){return console.error(e),o}finally{i=a}},_=e=>e.filter((e=>e._dom?.isConnected)),v=e=>d=h(d,e,(()=>{for(let e of d)e._bindings=_(e._bindings),e._listeners=_(e._listeners);d=n}),1e3),y={get val(){return i?.add(this),this._val},get oldVal(){return i?.add(this),this._oldVal},set val(e){let t=this;if(e!==t._val){t._val=e;let o=[...t._listeners=_(t._listeners)];for(let e of o)S(e.f,e.s,e._dom),e._dom=n;t._bindings.length?r=h(r,t,k):t._oldVal=e}}},w=e=>({__proto__:y,_val:e,_oldVal:e,_bindings:[],_listeners:[]}),x=e=>s(e??0)===y,M=(e,t)=>{let o=new Set,a={f:e},n=l;l=[];let r=b(e,o,t);r=(r??p).nodeType?r:new Text(r);for(let e of o)v(e),e._bindings.push(a);for(let e of l)e._dom=r;return l=n,a._dom=r},S=(e,t=w(),o)=>{let a=new Set,n={f:e,s:t};n._dom=o??l?.push(n)??u,t.val=b(e,a);for(let e of a)v(e),e._listeners.push(n);return t},j=(e,...t)=>{for(let o of t.flat(1/0)){let t=s(o??0),a=t===y?M((()=>o.val)):t===g?M(o):o;a!=n&&e.append(a)}return e},z=e=>new Proxy(((t,...o)=>{let[a,...r]=s(o[0]??0)===m?o:[{},...o],i=e?p.createElementNS(e,t):p.createElement(t);for(let[e,o]of c.entries(a)){let a=t=>t?c.getOwnPropertyDescriptor(t,e)??a(s(t)):n,r=t+","+e,l=f[r]??(f[r]=a(s(i))?.set??0),d=l?l.bind(i):i.setAttribute.bind(i,e),p=s(o??0);p===y?M((()=>(d(o.val),i))):p!==g||e.startsWith("on")&&!o._isBindingFunc?d(o):M((()=>(d(o()),i)))}return j(i,...r)}),{get:(e,t)=>e.bind(n,t)}),P=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),k=()=>{let e=[...r].filter((e=>e._val!==e._oldVal));r=n;for(let t of new Set(e.flatMap((e=>e._bindings=_(e._bindings)))))P(t._dom,M(t.f,t._dom)),t._dom=n;for(let t of e)t._oldVal=t._val};const C={add:j,_:e=>(e._isBindingFunc=1,e),tags:z(),tagsNS:z,state:w,val:e=>x(e)?e.val:e,oldVal:e=>x(e)?e.oldVal:e,derive:S,hydrate:(e,t)=>P(e,M(t,e))};var T="rabbitloader_common_msg_modal",E=C.tags.div,D=E({id:"".concat(T),style:"position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;"}),I=E({id:"".concat("rabbitloader_common_msg_body"),style:"padding: 20px;"}),A=E({id:"rabbitloader_common_msg_footer",style:"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;",onclick:function(){D.style.display="none"}},"Close");function L(){document.getElementById(T)?D.style.display="block":C.add(document.body,C.add(D,I,A))}function O(e){D.style.width=e+"px",D.style.marginLeft=-1*e/2+"px"}function V(e,t){L();var o=t?"0px":"20px";I.style.padding=o,I.innerHTML=e,O(400)}function Q(e){var t='<iframe src="https://www.youtube.com/embed/'.concat(e,'" width="560px" height="315px" style="max-width:100%" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>');L(),I.style.padding="0px",I.innerHTML=t,O(560)}function B(e,t,n){var r=t?"<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.":"<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. ";e&&o("#".concat(e),"Enabling Me Mode...");var i=new FormData;i.append("action","rabbitloader_mode_change"),i.append("private_mode",t?1:0),i.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(ajaxurl,{method:"POST",body:i}).then((function(e){return e.json()})).then((function(t){console.log(t),t&&t.result?(V(r),n(!0)):(V("Settings could not be saved"),n(!1)),e&&a("#".concat(e))}))}var F=C.tags,H=F.div,R=F.h5,W=F.h6,Y=F.img,J=F.small,q=F.span;function G(){var e=document.getElementById("rl_crash_course_videos");if(e){var t=H({class:"row"},R({class:"mb-3"},"Crash Courses"));[["rJdgdkiADB4","Verification"],["QGAuLgOjCu0","Purging Cache"],["ol4nuYuYTeM","Me Mode"],["lC0vWlugHJ4","Image Settings"],["z6fuEHr6lYs","CSS Settings"],["QxwaDxtRw-I","Delegate Access"],["uBPMn2mvnrs","Linking Cloudflare"]].forEach((function(e){var o,a,n,r,i;C.add(t,(o=e[1],a=e[0],n="https://img.youtube.com/vi/".concat(a,"/mqdefault.jpg"),H({class:"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp",onclick:function(){return Q(a)}},W({class:"mb-3"},o),Y({loading:"lazy",src:n,alt:"-"}),((r=C.tagsNS("http://www.w3.org/2000/svg")).circle,i=r.path,(0,r.svg)({width:"16",height:"16",fill:"currentColor",class:"bi bi-play-circle rl-video-play ",viewBox:"0 0 16 16"},i({d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"}),i({d:"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445"}))))))})),C.add(e,H({class:"row mb-4"},H({class:"col"},H({class:"bg-white rounded p-4"},t))))}}function N(){var e=document.querySelectorAll("primer");e&&e.forEach((function(e){var t=e.dataset.videoId,o=e.dataset.align,a=e.dataset.duration,n=a<=100?" "+a+" seconds primer":" "+Math.round(a/60)+" min primer",r=H({class:"col-12 mt-2 "+("center"==o?"text-center":""),onclick:function(){return Q(t)}},J({class:"text-secondary rl-cp "},q({class:"dashicons dashicons-video-alt3 mt-1"}),n));C.add(e,r)}))}function U(e){e.preventDefault();var t=jQuery(e.currentTarget);o(t,"Purging...");var n=rabbitloader_local_vars.post_id?rabbitloader_local_vars.post_id:"",r=new FormData;r.append("action","rabbitloader_ajax_purge"),r.append("post_id",n),r.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(rabbitloader_local_vars.admin_ajax,{method:"POST",body:r}).then((function(e){return e.json()})).then((function(e){e&&e.result?V(n?"Purge completed for page - ".concat(document.title):"Purge completed"):V("Purge failed. Please reload the page and try again."),a(t)}))}return function(){var e=window.document,t=/p/.test(e.readyState),o=!1,a=window.rabbitloader_local_vars,n="getAttribute",r="localStorage",i="preventDefault",l="click",d=window.jQuery,c="rabbitloader_ajax_";function s(t){var o=e.getElementById(t);if(o){var a={percent:o[n]("data-percent")||15,size:o[n]("data-size")||150,lineWidth:o[n]("data-line")||10,rotate:o[n]("data-rotate")||0,ocolor:o[n]("data-ocolor")||"#f0fff7",icolor:o[n]("data-icolor")||"#0cce6b",fsize:o[n]("data-fsize")||"60px"},r=e.createElement("canvas"),i=e.createElement("span");i.textContent=a.percent,i.style.lineHeight=a.size+"px",i.style.width=a.size+"px",i.style.fontSize=a.fsize,i.style.color=a.icolor,"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var l=r.getContext("2d");r.width=r.height=a.size,o.style.width=a.size+"px",o.style.height=a.size+"px",o.appendChild(i),o.appendChild(r),l.translate(a.size/2,a.size/2),l.rotate((a.rotate/180-.5)*Math.PI);var d=(a.size-a.lineWidth)/2,c=function(e,t,o){o=Math.min(Math.max(0,o||1),1),l.beginPath(),l.arc(0,0,d,0,2*Math.PI*o,!1),l.strokeStyle=e,l.lineCap="round",l.lineWidth=t,l.stroke()};a.percent=parseFloat(a.percent),c(a.ocolor,a.lineWidth,1),c(a.icolor,a.lineWidth,a.percent/100)}}function p(){var e=c+"cron",t=window[r].getItem(e),o=Date.now();if(!(t&&(o-new Date(t))/1e3<180)){window[r].setItem(e,o);var n=new FormData;n.append("action",e),n.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:n})}}function u(e){var t=d(e.target).attr("title-html");t||(t=d(e.target).attr("title")),t&&V(t)}function f(e){var t=!d(e.target).is(":checked");V("Updating..."),B("",t,(function(){}))}function m(){V('<iframe src="https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg" width="100%" height="600px"></iframe>',!0);var e=new FormData;e.append("action",c+"survey_dismissed"),e.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:e})}function g(){o||(o=!0,s("score_circle_best"),s("warming_progress_bar"),d(".rabbitloader_purge_page").on(l,U),d("#rabbitloader_purge_all").on(l,U),window.setTimeout(p,1e3),window.setInterval(p,1e3*(Math.floor(301*Math.random())+300)),d(e).on(l,".tpopup",u),d(e).on("change","#rl_chk_public",f),d(e).on("click","#rl_show_survey",m),d(e).on("click","#rl_me_learn_more",(function(){Q("ol4nuYuYTeM")})),function(){var e="rabbit-loader",t='tr[data-slug="'.concat(e,'"] #deactivate-').concat(e);if(0!=d(t).length){var o=d(t).attr("href"),a="".concat(e,"-me-mode-popup"),n="".concat(e,"-en"),r="".concat(e,"-de"),c='<div id="'.concat(a,'" style="display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;"><p class="">').concat(rl_de_popup.pop_msg,'</p><div style="margin-top:25px;"><a id="').concat(r,'" class="button button-secondary alignleft" href="#">').concat(rl_de_popup.btn_de,'</a><button id="').concat(n,'" class="button button-primary alignright">').concat(rl_de_popup.btn_en,"</button></div></div>");d(t).parent().append(c),d(t).on(l,(function(e){e[i](),d("#"+a).show();var t=d(window).scrollTop()+d(window).height();d("#"+a).offset().top+d("#"+a).outerHeight(!0)>t&&d("html,body").animate({scrollTop:d("#"+a).offset().top-(d(window).height()-d("#"+a).outerHeight(!0)-10)},200),d("#".concat(r)).attr("href",o)})),d("#".concat(n)).on(l,(function(e){e[i](),e.stopPropagation(),d(t).unbind(l),B(n,!0,(function(e){e&&d("#"+a).hide()}))}))}}(),G(),N())}t?g():window.addEventListener("load",g)}(),e})()));
     1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.RLAdmin=t():e.RLAdmin=t()}(this,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);var t="disabled";function o(e,o){var a=jQuery(e).html();return jQuery(e).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> '.concat(o)).attr(t,t).data("otext",a)}function a(e){var o=jQuery(e).data("otext");return jQuery(e).html(o).removeAttr(t)}let n,r,i,l,d,c=Object,s=c.getPrototypeOf,p=document,u={isConnected:1},f={},g=s(u),m=s(s),b=(e,t,o,a)=>(e??(setTimeout(o,a),new Set)).add(t),h=(e,t,o)=>{let a=i;i=t;try{return e(o)}catch(e){return console.error(e),o}finally{i=a}},_=e=>e.filter((e=>e._dom?.isConnected)),v=e=>d=b(d,e,(()=>{for(let e of d)e._bindings=_(e._bindings),e._listeners=_(e._listeners);d=n}),1e3),y={get val(){return i?.add(this),this._val},get oldVal(){return i?.add(this),this._oldVal},set val(e){let t=this;if(e!==t._val){t._val=e;let o=[...t._listeners=_(t._listeners)];for(let e of o)S(e.f,e.s,e._dom),e._dom=n;t._bindings.length?r=b(r,t,C):t._oldVal=e}}},w=e=>({__proto__:y,_val:e,_oldVal:e,_bindings:[],_listeners:[]}),x=e=>s(e??0)===y,M=(e,t)=>{let o=new Set,a={f:e},n=l;l=[];let r=h(e,o,t);r=(r??p).nodeType?r:new Text(r);for(let e of o)v(e),e._bindings.push(a);for(let e of l)e._dom=r;return l=n,a._dom=r},S=(e,t=w(),o)=>{let a=new Set,n={f:e,s:t};n._dom=o??l?.push(n)??u,t.val=h(e,a);for(let e of a)v(e),e._listeners.push(n);return t},j=(e,...t)=>{for(let o of t.flat(1/0)){let t=s(o??0),a=t===y?M((()=>o.val)):t===m?M(o):o;a!=n&&e.append(a)}return e},z=e=>new Proxy(((t,...o)=>{let[a,...r]=s(o[0]??0)===g?o:[{},...o],i=e?p.createElementNS(e,t):p.createElement(t);for(let[e,o]of c.entries(a)){let a=t=>t?c.getOwnPropertyDescriptor(t,e)??a(s(t)):n,r=t+","+e,l=f[r]??(f[r]=a(s(i))?.set??0),d=l?l.bind(i):i.setAttribute.bind(i,e),p=s(o??0);p===y?M((()=>(d(o.val),i))):p!==m||e.startsWith("on")&&!o._isBindingFunc?d(o):M((()=>(d(o()),i)))}return j(i,...r)}),{get:(e,t)=>e.bind(n,t)}),P=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),C=()=>{let e=[...r].filter((e=>e._val!==e._oldVal));r=n;for(let t of new Set(e.flatMap((e=>e._bindings=_(e._bindings)))))P(t._dom,M(t.f,t._dom)),t._dom=n;for(let t of e)t._oldVal=t._val};const T={add:j,_:e=>(e._isBindingFunc=1,e),tags:z(),tagsNS:z,state:w,val:e=>x(e)?e.val:e,oldVal:e=>x(e)?e.oldVal:e,derive:S,hydrate:(e,t)=>P(e,M(t,e))};var k="rabbitloader_common_msg_modal",E=T.tags.div,A=E({id:"".concat(k),style:"position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;"}),D=E({id:"".concat("rabbitloader_common_msg_body"),style:"padding: 20px;"}),I=E({id:"rabbitloader_common_msg_footer",style:"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;",onclick:function(){A.style.display="none"}},"Close");function L(){document.getElementById(k)?A.style.display="block":T.add(document.body,T.add(A,D,I))}function O(e){A.style.width=e+"px",A.style.marginLeft=-1*e/2+"px"}function V(e,t){L();var o=t?"0px":"20px";D.style.padding=o,D.innerHTML=e,O(400)}function B(e){var t='<iframe src="https://www.youtube.com/embed/'.concat(e,'" width="560px" height="315px" style="max-width:100%" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>');L(),D.style.padding="0px",D.innerHTML=t,O(560)}function Q(e,t,n){var r=t?"<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.":"<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. ";e&&o("#".concat(e),"Enabling Me Mode...");var i=new FormData;i.append("action","rabbitloader_mode_change"),i.append("private_mode",t?1:0),i.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(ajaxurl,{method:"POST",body:i}).then((function(e){return e.json()})).then((function(t){console.log(t),t&&t.result?(V(r),n(!0)):(V("Settings could not be saved"),n(!1)),e&&a("#".concat(e))}))}var W=T.tags,H=W.div,R=W.h5,F=W.h6,Y=W.img,G=W.small,N=W.span;function U(){var e=document.getElementById("rl_crash_course_videos");if(e){var t=H({class:"row"},R({class:"mb-3"},"Crash Courses"));[["rJdgdkiADB4","Verification"],["QGAuLgOjCu0","Purging Cache"],["ol4nuYuYTeM","Me Mode"],["lC0vWlugHJ4","Image Settings"],["z6fuEHr6lYs","CSS Settings"],["QxwaDxtRw-I","Delegate Access"],["uBPMn2mvnrs","Linking Cloudflare"]].forEach((function(e){var o,a,n,r,i;T.add(t,(o=e[1],a=e[0],n="https://img.youtube.com/vi/".concat(a,"/mqdefault.jpg"),H({class:"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp",onclick:function(){return B(a)}},F({class:"mb-3"},o),Y({loading:"lazy",src:n,alt:"-"}),((r=T.tagsNS("http://www.w3.org/2000/svg")).circle,i=r.path,(0,r.svg)({width:"16",height:"16",fill:"currentColor",class:"bi bi-play-circle rl-video-play ",viewBox:"0 0 16 16"},i({d:"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"}),i({d:"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445"}))))))})),T.add(e,H({class:"row mb-4"},H({class:"col"},H({class:"bg-white rounded p-4"},t))))}}function q(){var e=document.querySelectorAll("primer");e&&e.forEach((function(e){var t=e.dataset.videoId,o=e.dataset.align,a=e.dataset.duration,n=a<=100?" "+a+" seconds primer":" "+Math.round(a/60)+" min primer",r=H({class:"col-12 mt-2 "+("center"==o?"text-center":""),onclick:function(){return B(t)}},G({class:"text-secondary rl-cp "},N({class:"dashicons dashicons-video-alt3 mt-1"}),n));T.add(e,r)}))}function J(e){e.preventDefault();var t=jQuery(e.currentTarget);o(t,"Purging...");var n=rabbitloader_local_vars.post_id?rabbitloader_local_vars.post_id:"",r=new FormData;r.append("action","rabbitloader_ajax_purge"),r.append("post_id",n),r.append("rl_nonce",rabbitloader_local_vars.rl_nonce),fetch(rabbitloader_local_vars.admin_ajax,{method:"POST",body:r}).then((function(e){return e.json()})).then((function(e){e&&e.result?V(n?"Purge completed for page - ".concat(document.title):"Purge completed"):V("Purge failed. Please reload the page and try again."),a(t)}))}return function(){var e=window.document,t=/p/.test(e.readyState),o=!1,a=window.rabbitloader_local_vars,n="getAttribute",r="localStorage",i="preventDefault",l="click",d=window.jQuery,c="rabbitloader_ajax_";function s(t){var o=e.getElementById(t);if(o){var a={percent:o[n]("data-percent")||15,size:o[n]("data-size")||150,lineWidth:o[n]("data-line")||10,rotate:o[n]("data-rotate")||0,ocolor:o[n]("data-ocolor")||"#f0fff7",icolor:o[n]("data-icolor")||"#0cce6b",fsize:o[n]("data-fsize")||"60px"},r=e.createElement("canvas"),i=e.createElement("span");i.textContent=a.percent,i.style.lineHeight=a.size+"px",i.style.width=a.size+"px",i.style.fontSize=a.fsize,i.style.color=a.icolor,"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var l=r.getContext("2d");r.width=r.height=a.size,o.style.width=a.size+"px",o.style.height=a.size+"px",o.appendChild(i),o.appendChild(r),l.translate(a.size/2,a.size/2),l.rotate((a.rotate/180-.5)*Math.PI);var d=(a.size-a.lineWidth)/2,c=function(e,t,o){o=Math.min(Math.max(0,o||1),1),l.beginPath(),l.arc(0,0,d,0,2*Math.PI*o,!1),l.strokeStyle=e,l.lineCap="round",l.lineWidth=t,l.stroke()};a.percent=parseFloat(a.percent),c(a.ocolor,a.lineWidth,1),c(a.icolor,a.lineWidth,a.percent/100)}}function p(){var e=c+"cron",t=window[r].getItem(e),o=Date.now();if(!(t&&(o-new Date(t))/1e3<180)){window[r].setItem(e,o);var n=new FormData;n.append("action",e),n.append("rl_nonce",a.rl_nonce),fetch(a.admin_ajax,{method:"POST",body:n})}}function u(e){var t=d(e.target).attr("title-html");t||(t=d(e.target).attr("title")),t&&V(t)}function f(e){var t=!d(e.target).is(":checked");V("Updating..."),Q("",t,(function(){}))}function g(){o||(o=!0,s("score_circle_best"),s("warming_progress_bar"),d(".rabbitloader_purge_page").on(l,J),d("#rabbitloader_purge_all").on(l,J),window.setTimeout(p,1e3),window.setInterval(p,1e3*(Math.floor(301*Math.random())+300)),d(e).on(l,".tpopup",u),d(e).on("change","#rl_chk_public",f),d(e).on("click","#rl_me_learn_more",(function(){B("ol4nuYuYTeM")})),function(){var e="rabbit-loader",t='tr[data-slug="'.concat(e,'"] #deactivate-').concat(e);if(0!=d(t).length){var o=d(t).attr("href"),a="".concat(e,"-me-mode-popup"),n="".concat(e,"-en"),r="".concat(e,"-de"),c='<div id="'.concat(a,'" style="display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;"><p class="">').concat(rl_de_popup.pop_msg,'</p><div style="margin-top:25px;"><a id="').concat(r,'" class="button button-secondary alignleft" href="#">').concat(rl_de_popup.btn_de,'</a><button id="').concat(n,'" class="button button-primary alignright">').concat(rl_de_popup.btn_en,"</button></div></div>");d(t).parent().append(c),d(t).on(l,(function(e){e[i](),d("#"+a).show();var t=d(window).scrollTop()+d(window).height();d("#"+a).offset().top+d("#"+a).outerHeight(!0)>t&&d("html,body").animate({scrollTop:d("#"+a).offset().top-(d(window).height()-d("#"+a).outerHeight(!0)-10)},200),d("#".concat(r)).attr("href",o)})),d("#".concat(n)).on(l,(function(e){e[i](),e.stopPropagation(),d(t).unbind(l),Q(n,!0,(function(e){e&&d("#"+a).hide()}))}))}}(),U(),q())}t?g():window.addEventListener("load",g)}(),e})()));
    22//# sourceMappingURL=index.js.map
  • rabbit-loader/trunk/admin/js/index.js.map

    r3020814 r3039136  
    1 {"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAiB,QAAID,IAErBD,EAAc,QAAIC,GACnB,CATD,CASGK,MAAM,I,mBCRT,I,KCAwB,CAACJ,IACH,oBAAXK,QAA0BA,OAAOC,aAC1CC,OAAOC,eAAeR,EAASK,OAAOC,YAAa,CAAEG,MAAO,WAE7DF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,GAAO,E,ICL9D,IAAMC,EAAgB,WAEf,SAASC,EAAeC,EAAMC,GACjC,IAAIC,EAAQC,OAAOH,GAAMI,OACzB,OAAOD,OAAOH,GAAMI,KAAK,2FAADC,OAA4FJ,IAAOK,KAAKR,EAAeA,GAAeS,KAAK,QAASL,EAChL,CAEO,SAASM,EAAeR,GAC3B,IAAIE,EAAQC,OAAOH,GAAMO,KAAK,SAC9B,OAAOJ,OAAOH,GAAMI,KAAKF,GAAOO,WAAWX,EAC/C,CCPA,IAAkBY,EACdC,EAAeC,EAASC,EAA0EC,EADlGC,EAAMpB,OAAoBqB,EAAUD,EAAIE,eAAgBC,EAAMC,SACvBC,EAAqB,CAACC,YAAa,GAAoCC,EAAkB,CAAC,EACjIC,EAAWP,EAAQI,GAAqBI,EAAYR,EAAQA,GAE5DS,EAAwB,CAACC,EAAKC,EAAGC,EAAGC,KACrCH,IAAQI,WAAWF,EAAGC,GAAS,IAAIE,MAAMC,IAAIL,GAE5CM,EAAoB,CAACL,EAAGM,EAAMC,KAChC,IAAIC,EAAWxB,EACfA,EAAUsB,EACV,IACE,OAAON,EAAEO,EACX,CAAE,MAAOE,GAEP,OADAC,QAAQC,MAAMF,GACPF,CACT,CAAE,QACAvB,EAAUwB,CACZ,GAGEI,EAAgBC,GAAKA,EAAEC,QAAOC,GAAKA,EAAEC,MAAMvB,cAE3CwB,EAAgBC,GAAKhC,EAAaW,EAAsBX,EAAYgC,GAAG,KACzE,IAAK,IAAInB,KAAKb,EACZa,EAAEoB,UAAYP,EAAcb,EAAEoB,WAC9BpB,EAAEqB,WAAaR,EAAcb,EAAEqB,YACjClC,EAAaJ,IAzBiF,KA4B5FuC,EAAa,CACf,OAAIC,GAEF,OADAtC,GAASoB,IAAIxC,MACNA,KAAK2D,IACd,EAEA,UAAIC,GAEF,OADAxC,GAASoB,IAAIxC,MACNA,KAAK6D,OACd,EAEA,OAAIH,CAAII,GAEN,IAAI3B,EAAInC,KACR,GAAI8D,IAAM3B,EAAEwB,KAAM,CAChBxB,EAAEwB,KAAOG,EACT,IAAIC,EAAY,IAAI5B,EAAEqB,WAAaR,EAAcb,EAAEqB,aACnD,IAAK,IAAIP,KAAKc,EAAWC,EAAOf,EAAEb,EAAGa,EAAEd,EAAGc,EAAEG,MAAOH,EAAEG,KAAOlC,EAC5DiB,EAAEoB,UAAUU,OACV9C,EAAgBc,EAAsBd,EAAegB,EAAG+B,GACxD/B,EAAE0B,QAAUC,CAChB,CACF,GAGEK,EAAQC,IAAW,CACrBC,UAAWZ,EACXE,KAAMS,EACNP,QAASO,EACTb,UAAW,GACXC,WAAY,KAGVc,EAAUnC,GAAKX,EAAQW,GAAK,KAAOsB,EAKnCc,EAAO,CAACnC,EAAGoC,KACb,IAAI9B,EAAO,IAAIH,IAAKkC,EAAU,CAACrC,KAAIsC,EAAiBrD,EACpDA,EAAgB,GAChB,IAAIsD,EAASlC,EAAkBL,EAAGM,EAAM8B,GACxCG,GAAUA,GAAUjD,GAAKkD,SAAWD,EAAS,IAAIE,KAAKF,GACtD,IAAK,IAAIrB,KAAKZ,EAAMW,EAAcC,GAAIA,EAAEC,UAAUuB,KAAKL,GACvD,IAAK,IAAIxB,KAAK5B,EAAe4B,EAAEG,KAAOuB,EAEtC,OADAtD,EAAgBqD,EACTD,EAAQrB,KAAOuB,GAGpBX,EAAS,CAAC5B,EAAGD,EAAIgC,IAASK,KAC5B,IAAI9B,EAAO,IAAIH,IAAKwC,EAAW,CAAC3C,IAAGD,KACnC4C,EAAS3B,KAAOoB,GAAOnD,GAAeyD,KAAKC,IAAanD,EACxDO,EAAEuB,IAAMjB,EAAkBL,EAAGM,GAC7B,IAAK,IAAIY,KAAKZ,EAAMW,EAAcC,GAAIA,EAAEE,WAAWsB,KAAKC,GACxD,OAAO5C,GAGLK,EAAM,CAACgC,KAAQQ,KACjB,IAAK,IAAIC,KAAKD,EAASE,KAAKC,KAAW,CACrC,IAAIC,EAAW5D,EAAQyD,GAAK,GACxBI,EAAQD,IAAa3B,EAAac,GAAK,IAAMU,EAAEvB,MACjD0B,IAAapD,EAAYuC,EAAKU,GAAKA,EACjCI,GAASnE,GAAYsD,EAAIc,OAAOD,EACtC,CACA,OAAOb,GAKLe,EAASC,GAAM,IAAIC,OAAM,CAACC,KAASC,KACrC,IAAKC,KAAUZ,GAAYxD,EAAQmE,EAAK,IAAM,KAAO5D,EAAW4D,EAAO,CAAC,CAAC,KAAMA,GAC3EnB,EAAMgB,EAAK9D,EAAImE,gBAAgBL,EAAIE,GAAQhE,EAAIoE,cAAcJ,GACjE,IAAK,IAAKK,EAAGjC,KAAMvC,EAAIyE,QAAQJ,GAAQ,CACrC,IAAIK,EAAoBC,GAASA,EAC/B3E,EAAI4E,yBAAyBD,EAAOH,IAAME,EAAkBzE,EAAQ0E,IACpEhF,EACEkF,EAAWV,EAAO,IAAMK,EACxBM,EAAavE,EAAgBsE,KAC9BtE,EAAgBsE,GAAYH,EAAkBzE,EAAQgD,KAAOtC,KAAO,GACnEoE,EAASD,EAAaA,EAAW9B,KAAKC,GAAOA,EAAI+B,aAAahC,KAAKC,EAAKuB,GACxES,EAAWhF,EAAQsC,GAAK,GACxB0C,IAAa/C,EAAYc,GAAK,KAAO+B,EAAOxC,EAAEJ,KAAMc,KAC/CgC,IAAaxE,GAAe+D,EAAEU,WAAW,QAAS3C,EAAE4C,eAExDJ,EAAOxC,GADVS,GAAK,KAAO+B,EAAOxC,KAAMU,IAE7B,CACA,OAAOhC,EAAIgC,KAAQQ,EAAQ,GAC1B,CAAC2B,IAAK,CAACC,EAAKlB,IAASkB,EAAIrC,KAAKrD,EAAYwE,KAEzCmB,EAAS,CAACrC,EAAKG,IAAWA,EAASA,IAAWH,GAAOA,EAAIsC,YAAYnC,GAAUH,EAAIuC,SAEnF7C,EAAa,KACf,IAAI8C,EAAqB,IAAI7F,GAAe+B,QAAOf,GAAKA,EAAEwB,OAASxB,EAAE0B,UACrE1C,EAAgBD,EAChB,IAAK,IAAIiC,KAAK,IAAIZ,IAAIyE,EAAmBC,SAAQ9E,GAAKA,EAAEoB,UAAYP,EAAcb,EAAEoB,cAClFsD,EAAO1D,EAAEC,KAAMmB,EAAKpB,EAAEf,EAAGe,EAAEC,OAAQD,EAAEC,KAAOlC,EAC9C,IAAK,IAAIiB,KAAK6E,EAAoB7E,EAAE0B,QAAU1B,EAAEwB,MAKlD,SAAgBnB,MAAK0E,EAlCb9E,IAAMA,EAAEsE,eAAiB,EAAGtE,GAkCZ+E,KAAM5B,IAAUA,SAAQpB,QAAOT,IAlE7CvB,GAAKmC,EAAQnC,GAAKA,EAAEuB,IAAMvB,EAkEwByB,OAjE/CzB,GAAKmC,EAAQnC,GAAKA,EAAEyB,OAASzB,EAiE0B6B,SAAQoD,QAF9D,CAAC5C,EAAKpC,IAAMyE,EAAOrC,EAAKD,EAAKnC,EAAGoC,KCjI9C,IAAM6C,EAAa,gCAEXC,EAAQC,EAAIJ,KAAZG,IAEFE,EAAiBF,EAAI,CACvBG,GAAI,GAAF5G,OAAKwG,GACPK,MAAO,0MAGLC,EAAcL,EAChB,CACIG,GAAI,GAAF5G,OAVW,gCAWb6G,MAAO,mBAITE,EAAgBN,EAClB,CACIG,GAAI,iCACJC,MAAO,qHACPG,QAAS,WAAQL,EAAeE,MAAMI,QAAU,MAAQ,GACzD,SAGP,SAASC,IACKpG,SAASqG,eAAeX,GAQ9BG,EAAeE,MAAMI,QAAU,QAF/BP,EAAI/E,IAAIb,SAASsG,KAJGV,EAAI/E,IAAIgF,EACxBG,EACAC,GAMZ,CAEA,SAASM,EAASC,GACdX,EAAeE,MAAMU,MAAQD,EAAI,KACjCX,EAAeE,MAAMW,YAAe,EAAIF,EAAI,EAAK,IACrD,CAEO,SAASG,EAAkBC,EAAKC,GACnCT,IACA,IAAIU,EAAUD,EAAc,MAAQ,OACpCb,EAAYD,MAAMe,QAAUA,EAC5Bd,EAAYe,UAAYH,EACxBL,EAAS,IACb,CAEO,SAASS,EAAelB,GAE3B,IAAIc,EAAM,8CAAH1H,OAAiD4G,EAAE,+LAE1DM,IACAJ,EAAYD,MAAMe,QAAU,MAC5Bd,EAAYe,UAAYH,EACxBL,EAAS,IACb,CCzDO,SAASU,EAAaC,EAAMC,EAAQC,GAEvC,IAAIR,EAAMO,EAAS,2PAAH,oGACZD,GACAtI,EAAe,IAADM,OAAKgI,GAAQ,uBAG/B,IAAMG,EAAW,IAAIC,SACrBD,EAAS1D,OAAO,SAAU,4BAC1B0D,EAAS1D,OAAO,eAAgBwD,EAAS,EAAI,GAC7CE,EAAS1D,OAAO,WAAY4D,wBAAwBC,UAEpDC,MAAMC,QAAS,CACX,OAAU,OACV,KAAQL,IACTM,MAAK,SAAAC,GAAG,OAAIA,EAAIC,MAAM,IACpBF,MAAK,SAAAE,GACF1G,QAAQ2G,IAAID,GACRA,GAAQA,EAAKE,QACbpB,EAAkBC,GAClBQ,GAAG,KAEHT,EAAkB,+BAClBS,GAAG,IAEHF,GACA7H,EAAe,IAADH,OAAKgI,GAE3B,GACR,CC5BA,IAAAc,EAA0CpC,EAAIJ,KAAtCG,EAAGqC,EAAHrC,IAAKsC,EAAED,EAAFC,GAAIC,EAAEF,EAAFE,GAAIC,EAAGH,EAAHG,IAAKC,EAAKJ,EAALI,MAAOC,EAAIL,EAAJK,KAY1B,SAASC,IAEZ,IAAMC,EAAYvI,SAASqG,eAAe,0BAC1C,GAAKkC,EAAL,CAIA,IASMC,EAAM7C,EAAI,CAAE8C,MAAO,OAASR,EAAG,CAAEQ,MAAO,QAAU,kBATzC,CACX,CAAC,cAAe,gBAChB,CAAC,cAAe,iBAChB,CAAC,cAAe,WAChB,CAAC,cAAe,kBAChB,CAAC,cAAe,gBAChB,CAAC,cAAe,mBAChB,CAAC,cAAe,uBAIbC,SAAQ,SAAAvG,GAWnB,IAAqBwG,EAAOC,EAClBC,EAvCNC,EAAgBC,EA4BZnD,EAAI/E,IAAI2H,GAUKG,EAVYxG,EAAE,GAUPyG,EAVWzG,EAAE,GAW/B0G,EAAS,8BAAH3J,OAAiC0J,EAAO,kBAC7CjD,EACH,CACI8C,MAAO,iFACPvC,QAAS,kBAAMc,EAAe4B,EAAQ,GAE1CV,EAAG,CAAEO,MAAO,QAAUE,GACtBR,EAAI,CAAEa,QAAS,OAAQC,IAAKJ,EAAQK,IAAK,QA9C7CJ,EAA8BlD,EAAIhC,OAAO,+BAAjCuF,OAAQJ,EAAID,EAAJC,MACTK,EADkBN,EAAHM,KACX,CAAE3C,MAAO,KAAM4C,OAAQ,KAAMC,KAAM,eAAgBb,MAAO,mCAAoCc,QAAS,aAC9GR,EAAK,CAAE,EAAK,wEACZA,EAAK,CAAE,EAAK,qHA0BhB,IAEAnD,EAAI/E,IAAI0H,EAAW5C,EACf,CAAE8C,MAAO,YACT9C,EAAI,CAAE8C,MAAO,OACT9C,EAAI,CAAE8C,MAAO,wBAA0BD,KApB/C,CAsBJ,CAeO,SAASgB,IACZ,IAAMC,EAAOzJ,SAAS0J,iBAAiB,UAClCD,GAGLA,EAAKf,SAAQ,SAAA/G,GACT,IAAMiH,EAAUjH,EAAEgI,QAAQC,QACpBC,EAAQlI,EAAEgI,QAAQE,MAClBC,EAAWnI,EAAEgI,QAAQG,SACrBC,EAAUD,GAAY,IAAM,IAAMA,EAAW,kBAAoB,IAAME,KAAKC,MAAMH,EAAW,IAAM,cAEnGI,EAAOvE,EACT,CAAE8C,MAAO,gBAA2B,UAAToB,EAAoB,cAAgB,IAAK3D,QAAS,kBAAMc,EAAe4B,EAAQ,GAC1GR,EAAM,CAAEK,MAAO,yBACXJ,EAAK,CAAEI,MAAO,wCAA0CsB,IAEhEnE,EAAI/E,IAAIc,EAAGuI,EACf,GACJ,CCzEO,SAASC,EAAUjJ,GACtBA,EAAEkJ,iBAEF,IAAMC,EAAOrL,OAAOkC,EAAEoJ,eACtB1L,EAAeyL,EAAM,cACrB,IAAME,EAAUhD,wBAAwBgD,QAAUhD,wBAAwBgD,QAAU,GAE9ElD,EAAW,IAAIC,SACrBD,EAAS1D,OAAO,SAAU,2BAC1B0D,EAAS1D,OAAO,UAAW4G,GAC3BlD,EAAS1D,OAAO,WAAY4D,wBAAwBC,UACpDC,MAAMF,wBAAwBiD,WAAY,CACtC,OAAU,OACV,KAAQnD,IACTM,MAAK,SAAAC,GAAG,OAAIA,EAAIC,MAAM,IACpBF,MAAK,SAAAE,GAEEA,GAAQA,EAAKE,OAETpB,EADA4D,EACkB,8BAADrL,OAA+Bc,SAAS2I,OAEvC,mBAGtBhC,EAAkB,uDAEtBtH,EAAegL,EACnB,GACR,C,OC1BA,WAEE,IAAMrK,EAAWyK,OAAOzK,SAClB0K,EAAY,IAAKC,KAAK3K,EAAS4K,YACjCC,GAAa,EACbtD,EAA0BkD,OAAOlD,wBAEjCuD,EAAe,eACfC,EAAe,eACfC,EAAkB,iBAElBC,EAAQ,QACRjM,EAASyL,OAAOzL,OAChBkM,EAA2B,qBAkB/B,SAASC,EAAUC,GACjB,IAAIC,EAAKrL,EAASqG,eAAe+E,GACjC,GAAKC,EAAL,CAGA,IAAIC,EAAU,CACZC,QAASF,EAAGP,GAAc,iBAAmB,GAC7CU,KAAMH,EAAGP,GAAc,cAAgB,IACvCW,UAAWJ,EAAGP,GAAc,cAAgB,GAC5CY,OAAQL,EAAGP,GAAc,gBAAkB,EAC3Ca,OAAQN,EAAGP,GAAc,gBAAkB,UAC3Cc,OAAQP,EAAGP,GAAc,gBAAkB,UAC3Ce,MAAOR,EAAGP,GAAc,eAAiB,QAGvCgB,EAAS9L,EAASmE,cAAc,UAChCkE,EAAOrI,EAASmE,cAAc,QAClCkE,EAAK0D,YAAcT,EAAQC,QAC3BlD,EAAKtC,MAAMiG,WAAaV,EAAQE,KAAO,KACvCnD,EAAKtC,MAAMU,MAAQ6E,EAAQE,KAAO,KAClCnD,EAAKtC,MAAMkG,SAAWX,EAAQO,MAC9BxD,EAAKtC,MAAMmG,MAAQZ,EAAQM,OAES,oBAAxBO,oBACVA,mBAAmBC,YAAYN,GAGjC,IAAIO,EAAMP,EAAOQ,WAAW,MAC5BR,EAAOrF,MAAQqF,EAAOzC,OAASiC,EAAQE,KAEvCH,EAAGtF,MAAMU,MAAQ6E,EAAQE,KAAO,KAChCH,EAAGtF,MAAMsD,OAASiC,EAAQE,KAAO,KACjCH,EAAGkB,YAAYlE,GACfgD,EAAGkB,YAAYT,GAEfO,EAAIG,UAAUlB,EAAQE,KAAO,EAAGF,EAAQE,KAAO,GAC/Ca,EAAIX,QAAiBJ,EAAQI,OAAS,IAA1B,IAAiC1B,KAAKyC,IAGlD,IAAIC,GAAUpB,EAAQE,KAAOF,EAAQG,WAAa,EAE9CkB,EAAa,SAAUT,EAAOT,EAAWF,GAC3CA,EAAUvB,KAAK4C,IAAI5C,KAAK6C,IAAI,EAAGtB,GAAW,GAAI,GAC9Cc,EAAIS,YACJT,EAAIU,IAAI,EAAG,EAAGL,EAAQ,EAAa,EAAV1C,KAAKyC,GAASlB,GAAS,GAChDc,EAAIW,YAAcd,EAClBG,EAAIY,QAAU,QACdZ,EAAIZ,UAAYA,EAChBY,EAAIa,QACN,EAEA5B,EAAQC,QAAU4B,WAAW7B,EAAQC,SACrCoB,EAAWrB,EAAQK,OAAQL,EAAQG,UAAW,GAC9CkB,EAAWrB,EAAQM,OAAQN,EAAQG,UAAWH,EAAQC,QAAU,IAjDhE,CAkDF,CAGA,SAAS6B,IACP,IAAIC,EAAcnC,EAA2B,OAEzCoC,EAAc7C,OAAOM,GAAcwC,QAAQF,GAC3CG,EAAMC,KAAKD,MACf,KAAIF,IACSE,EAAM,IAAIC,KAAKH,IACC,IACP,KAHtB,CAUA7C,OAAOM,GAAc2C,QAAQL,EAAaG,GAE1C,IAAMnG,EAAW,IAAIC,SACrBD,EAAS1D,OAAO,SAAU0J,GAC1BhG,EAAS1D,OAAO,WAAY4D,EAAwBC,UACpDC,MAAMF,EAAwBiD,WAAY,CACxC,OAAU,OACV,KAAQnD,GATR,CAWJ,CAEA,SAASsG,EAAYzM,GACnB,IAAIyH,EAAQ3J,EAAOkC,EAAE0M,QAAQzO,KAAK,cAC7BwJ,IACHA,EAAQ3J,EAAOkC,EAAE0M,QAAQzO,KAAK,UAE5BwJ,GACFhC,EAAkBgC,EAEtB,CAEA,SAASkF,EAAgB3M,GACvB,IAAI4M,GAAgB9O,EAAOkC,EAAE0M,QAAQG,GAAG,YACxCpH,EAAkB,eAClBM,EAAa,GAAI6G,GAAc,WAAc,GAC/C,CA8CA,SAASE,IAEPrH,EADW,yKACa,GAGxB,IAAMU,EAAW,IAAIC,SAErBD,EAAS1D,OAAO,SAAUuH,EAA2B,oBACrD7D,EAAS1D,OAAO,WAAY4D,EAAwBC,UAEpDC,MAAMF,EAAwBiD,WAAY,CACxC,OAAU,OACV,KAAQnD,GAEZ,CAEA,SAAS4G,IACHpD,IACJA,GAAa,EAhLbM,EAAU,qBACVA,EAAU,wBACVnM,EAAO,4BAA4BkP,GAAGjD,EAAOd,GAC7CnL,EAAO,2BAA2BkP,GAAGjD,EAAOd,GAC5CM,OAAO9J,WAAWyM,EAAQ,KAC1B3C,OAAO0D,YAAYf,EAAkC,KA8G9CpD,KAAKoE,MAAsB,IAAhBpE,KAAKqE,UA9GkB,MACzCrP,EAAOgB,GAAUkO,GAAGjD,EAAO,UAAW0C,GACtC3O,EAAOgB,GAAUkO,GAAG,SAAU,iBAAkBL,GAChD7O,EAAOgB,GAAUkO,GAAG,QAAS,kBAAmBF,GAChDhP,EAAOgB,GAAUkO,GAAG,QAAS,qBAAqB,WAAclH,EAAe,cAAe,IA6GhG,WACE,IAAIsH,EAAO,gBACPC,EAAiB,iBAAHrP,OAAoBoP,EAAI,mBAAApP,OAAkBoP,GAE5D,GAAqC,GAAjCtP,EAAOuP,GAAgBjM,OAA3B,CAIA,IAAIkM,EAAoBxP,EAAOuP,GAAgBpP,KAAK,QAChDsP,EAAW,GAAHvP,OAAMoP,EAAI,kBAClBI,EAAoB,GAAHxP,OAAMoP,EAAI,OAC3BK,EAAiB,GAAHzP,OAAMoP,EAAI,OACxBM,EAAa,YAAH1P,OAAeuP,EAAQ,kRAAAvP,OAAiR2P,YAAYC,QAAO,6CAAA5P,OAA4CyP,EAAc,yDAAAzP,OAAwD2P,YAAYE,OAAM,oBAAA7P,OAAmBwP,EAAiB,+CAAAxP,OAA8C2P,YAAYG,OAAM,yBAEjjBhQ,EAAOuP,GAAgBU,SAAStL,OAAOiL,GACvC5P,EAAOuP,GAAgBL,GAAGjD,GAAO,SAAU/J,GACzCA,EAAE8J,KACFhM,EAAO,IAAMyP,GAAUS,OACvB,IAAIC,EAAOnQ,EAAOyL,QAAQ2E,YAAcpQ,EAAOyL,QAAQpB,SAC5CrK,EAAO,IAAMyP,GAAUY,SAASC,IAAMtQ,EAAO,IAAMyP,GAAUc,aAAY,GACzEJ,GACTnQ,EAAO,aAAawQ,QAAQ,CAAEJ,UAAWpQ,EAAO,IAAMyP,GAAUY,SAASC,KAAOtQ,EAAOyL,QAAQpB,SAAWrK,EAAO,IAAMyP,GAAUc,aAAY,GAAQ,KAAO,KAE9JvQ,EAAO,IAADE,OAAKyP,IAAkBxP,KAAK,OAAQqP,EAC5C,IAGAxP,EAAO,IAADE,OAAKwP,IAAqBR,GAAGjD,GAAO,SAAU/J,GAClDA,EAAE8J,KACF9J,EAAEuO,kBACFzQ,EAAOuP,GAAgBmB,OAAOzE,GAE9BhE,EAAayH,GAAmB,GAAM,SAAUiB,GAC1CA,GACF3Q,EAAO,IAAMyP,GAAUmB,MAE3B,GACF,GA9BA,CA+BF,CAlJEC,GACAvH,IACAkB,IAsKF,CACAkB,EAAWuD,IAASxD,OAAOqF,iBAAiB,OAAQ7B,EACtD,CClMA8B,G","sources":["webpack://RLAdmin/webpack/universalModuleDefinition","webpack://RLAdmin/webpack/bootstrap","webpack://RLAdmin/webpack/runtime/make namespace object","webpack://RLAdmin/./src/loading.js","webpack://RLAdmin/../../node_modules/vanjs-core/src/van.js","webpack://RLAdmin/./src/popup.js","webpack://RLAdmin/./src/memode.js","webpack://RLAdmin/./src/help_crash_course.js","webpack://RLAdmin/./src/purge.js","webpack://RLAdmin/./src/App.js","webpack://RLAdmin/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RLAdmin\"] = factory();\n\telse\n\t\troot[\"RLAdmin\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const ATTR_DISABLED = \"disabled\";\n\nexport function showBtnLoading($ele, txt) {\n    let otext = jQuery($ele).html();\n    return jQuery($ele).html(`<span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span> ${txt}`).attr(ATTR_DISABLED, ATTR_DISABLED).data('otext', otext);\n}\n\nexport function stopBtnLoading($ele) {\n    let otext = jQuery($ele).data('otext');\n    return jQuery($ele).html(otext).removeAttr(ATTR_DISABLED);\n}","// This file consistently uses `let` keyword instead of `const` for reducing the bundle size.\n\n// Global variables - aliasing some builtin symbols to reduce the bundle size.\nlet Obj = Object, _undefined, protoOf = Obj.getPrototypeOf, doc = document\nlet changedStates, curDeps, curNewDerives, alwaysConnectedDom = {isConnected: 1}, gcCycleInMs = 1000, statesToGc, propSetterCache = {}\nlet objProto = protoOf(alwaysConnectedDom), funcProto = protoOf(protoOf)\n\nlet addAndScheduleOnFirst = (set, s, f, waitMs) =>\n  (set ?? (setTimeout(f, waitMs), new Set)).add(s)\n\nlet runAndCaptureDeps = (f, deps, arg) => {\n  let prevDeps = curDeps\n  curDeps = deps\n  try {\n    return f(arg)\n  } catch (e) {\n    console.error(e)\n    return arg\n  } finally {\n    curDeps = prevDeps\n  }\n}\n\nlet keepConnected = l => l.filter(b => b._dom?.isConnected)\n\nlet addStatesToGc = d => statesToGc = addAndScheduleOnFirst(statesToGc, d, () => {\n  for (let s of statesToGc)\n    s._bindings = keepConnected(s._bindings),\n    s._listeners = keepConnected(s._listeners)\n  statesToGc = _undefined\n}, gcCycleInMs)\n\nlet stateProto = {\n  get val() {\n    curDeps?.add(this)\n    return this._val\n  },\n\n  get oldVal() {\n    curDeps?.add(this)\n    return this._oldVal\n  },\n\n  set val(v) {\n    // Aliasing `this` to reduce the bundle size.\n    let s = this\n    if (v !== s._val) {\n      s._val = v\n      let listeners = [...s._listeners = keepConnected(s._listeners)]\n      for (let l of listeners) derive(l.f, l.s, l._dom), l._dom = _undefined\n      s._bindings.length ?\n        changedStates = addAndScheduleOnFirst(changedStates, s, updateDoms) :\n        s._oldVal = v\n    }\n  },\n}\n\nlet state = initVal => ({\n  __proto__: stateProto,\n  _val: initVal,\n  _oldVal: initVal,\n  _bindings: [],\n  _listeners: [],\n})\n\nlet isState = s => protoOf(s ?? 0) === stateProto\n\nlet val = s => isState(s) ? s.val : s\nlet oldVal = s => isState(s) ? s.oldVal : s\n\nlet bind = (f, dom) => {\n  let deps = new Set, binding = {f}, prevNewDerives = curNewDerives\n  curNewDerives = []\n  let newDom = runAndCaptureDeps(f, deps, dom)\n  newDom = (newDom ?? doc).nodeType ? newDom : new Text(newDom)\n  for (let d of deps) addStatesToGc(d), d._bindings.push(binding)\n  for (let l of curNewDerives) l._dom = newDom\n  curNewDerives = prevNewDerives\n  return binding._dom = newDom\n}\n\nlet derive = (f, s = state(), dom) => {\n  let deps = new Set, listener = {f, s}\n  listener._dom = dom ?? curNewDerives?.push(listener) ?? alwaysConnectedDom\n  s.val = runAndCaptureDeps(f, deps)\n  for (let d of deps) addStatesToGc(d), d._listeners.push(listener)\n  return s\n}\n\nlet add = (dom, ...children) => {\n  for (let c of children.flat(Infinity)) {\n    let protoOfC = protoOf(c ?? 0)\n    let child = protoOfC === stateProto ? bind(() => c.val) :\n      protoOfC === funcProto ? bind(c) : c\n    if (child != _undefined) dom.append(child)\n  }\n  return dom\n}\n\nlet _ = f => (f._isBindingFunc = 1, f)\n\nlet tagsNS = ns => new Proxy((name, ...args) => {\n  let [props, ...children] = protoOf(args[0] ?? 0) === objProto ? args : [{}, ...args]\n  let dom = ns ? doc.createElementNS(ns, name) : doc.createElement(name)\n  for (let [k, v] of Obj.entries(props)) {\n    let getPropDescriptor = proto => proto ?\n      Obj.getOwnPropertyDescriptor(proto, k) ?? getPropDescriptor(protoOf(proto)) :\n      _undefined\n    let cacheKey = name + \",\" + k\n    let propSetter = propSetterCache[cacheKey] ??\n      (propSetterCache[cacheKey] = getPropDescriptor(protoOf(dom))?.set ?? 0)\n    let setter = propSetter ? propSetter.bind(dom) : dom.setAttribute.bind(dom, k)\n    let protoOfV = protoOf(v ?? 0)\n    if (protoOfV === stateProto) bind(() => (setter(v.val), dom))\n    else if (protoOfV === funcProto && (!k.startsWith(\"on\") || v._isBindingFunc))\n      bind(() => (setter(v()), dom))\n    else setter(v)\n  }\n  return add(dom, ...children)\n}, {get: (tag, name) => tag.bind(_undefined, name)})\n\nlet update = (dom, newDom) => newDom ? newDom !== dom && dom.replaceWith(newDom) : dom.remove()\n\nlet updateDoms = () => {\n  let changedStatesArray = [...changedStates].filter(s => s._val !== s._oldVal)\n  changedStates = _undefined\n  for (let b of new Set(changedStatesArray.flatMap(s => s._bindings = keepConnected(s._bindings))))\n    update(b._dom, bind(b.f, b._dom)), b._dom = _undefined\n  for (let s of changedStatesArray) s._oldVal = s._val\n}\n\nlet hydrate = (dom, f) => update(dom, bind(f, dom))\n\nexport default {add, _, tags: tagsNS(), tagsNS, state, val, oldVal, derive, hydrate}\n","import van from \"vanjs-core\"\n\nconst msg_box_id = 'rabbitloader_common_msg_modal';\nconst msg_box_body = 'rabbitloader_common_msg_body';\nconst { div } = van.tags\n\nconst modalContainer = div({\n    id: `${msg_box_id}`,\n    style: `position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;`\n})\n\nconst modalMsgBox = div(\n    {\n        id: `${msg_box_body}`,\n        style: \"padding: 20px;\"\n    }\n)\n\nconst modalCloseBtn = div(\n    {\n        id: `rabbitloader_common_msg_footer`,\n        style: \"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;\",\n        onclick: () => { modalContainer.style.display = \"none\"; }\n    }, 'Close'\n)\n\nfunction inject() {\n    var dom = document.getElementById(msg_box_id);\n    if (!dom) {\n        const Modal = () => van.add(modalContainer,\n            modalMsgBox,\n            modalCloseBtn\n        )\n        van.add(document.body, Modal());\n    } else {\n        modalContainer.style.display = \"block\";\n    }\n}\n\nfunction setWidth(w) {\n    modalContainer.style.width = w + 'px'\n    modalContainer.style.marginLeft = (-1 * w / 2) + 'px'\n}\n\nexport function showCommonMessage(msg, skipPadding) {\n    inject();\n    let padding = skipPadding ? '0px' : '20px';\n    modalMsgBox.style.padding = padding\n    modalMsgBox.innerHTML = msg;\n    setWidth(400)\n}\n\nexport function showVideoPopup(id) {\n\n    let msg = `<iframe src=\"https://www.youtube.com/embed/${id}\" width=\"560px\" height=\"315px\" style=\"max-width:100%\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>`\n\n    inject();\n    modalMsgBox.style.padding = '0px'\n    modalMsgBox.innerHTML = msg;\n    setWidth(560)\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function toggleMeMode(btID, enable, cb) {\n\n    let msg = enable ? `<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.` : `<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. `;\n    if (btID) {\n        showBtnLoading(`#${btID}`, 'Enabling Me Mode...');\n    }\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_mode_change\");\n    formData.append('private_mode', enable ? 1 : 0);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(ajaxurl, {\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            console.log(json);\n            if (json && json.result) {\n                showCommonMessage(msg);\n                cb(true);\n            } else {\n                showCommonMessage('Settings could not be saved');\n                cb(false);\n            }\n            if (btID) {\n                stopBtnLoading(`#${btID}`);\n            }\n        });\n}","import van from \"vanjs-core\"\nimport { showVideoPopup } from './popup'\n//import \"bootstrap-icons/font/bootstrap-icons.css\";\n//import \"play-circle.svg\" from \"bootstrap-icons/icons/play-circle.svg\"\nconst { div, h5, h6, img, small, span } = van.tags\n\nconst playIcon = () => {\n    const { circle, path, svg } = van.tagsNS(\"http://www.w3.org/2000/svg\")\n    return svg({ width: \"16\", height: \"16\", fill: \"currentColor\", class: \"bi bi-play-circle rl-video-play \", viewBox: \"0 0 16 16\" },\n        path({ \"d\": \"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" }),\n        path({ \"d\": \"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445\" }),\n    )\n\n}\n\n\nexport function crashCourse() {\n\n    const container = document.getElementById('rl_crash_course_videos');\n    if (!container) {\n        return;\n    }\n\n    const videos = [\n        ['rJdgdkiADB4', 'Verification'],\n        ['QGAuLgOjCu0', 'Purging Cache'],\n        ['ol4nuYuYTeM', 'Me Mode'],\n        ['lC0vWlugHJ4', 'Image Settings'],\n        ['z6fuEHr6lYs', 'CSS Settings'],\n        ['QxwaDxtRw-I', 'Delegate Access'],\n        ['uBPMn2mvnrs', 'Linking Cloudflare'],\n    ];\n    const row = div({ class: \"row\" }, h5({ class: \"mb-3\" }, 'Crash Courses'))\n\n    videos.forEach(v => {\n        van.add(row, getVideoBox(v[1], v[0]))\n    })\n\n    van.add(container, div(\n        { class: \"row mb-4\" },\n        div({ class: \"col\" },\n            div({ class: \"bg-white rounded p-4\" }, row)\n        )))\n}\n\nfunction getVideoBox(title, videoID) {\n    const imgSrc = `https://img.youtube.com/vi/${videoID}/mqdefault.jpg`;\n    return div(\n        {\n            class: \"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp\",\n            onclick: () => showVideoPopup(videoID)\n        },\n        h6({ class: \"mb-3\" }, title),\n        img({ loading: 'lazy', src: imgSrc, alt: \"-\" }),\n        playIcon()\n    )\n}\n\nexport function primerVideos() {\n    const doms = document.querySelectorAll('primer');\n    if (!doms) {\n        return;\n    }\n    doms.forEach(d => {\n        const videoID = d.dataset.videoId\n        const align = d.dataset.align;\n        const duration = d.dataset.duration;\n        const durText = duration <= 100 ? \" \" + duration + \" seconds primer\" : \" \" + Math.round(duration / 60) + \" min primer\"\n\n        const node = div(\n            { class: \"col-12 mt-2 \" + (align == \"center\" ? \"text-center\" : \"\"), onclick: () => showVideoPopup(videoID) },\n            small({ class: \"text-secondary rl-cp \" },\n                span({ class: \"dashicons dashicons-video-alt3 mt-1\" }), durText)\n        )\n        van.add(d, node)\n    })\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function purgeAjax(e) {\n    e.preventDefault();\n\n    const $btn = jQuery(e.currentTarget);\n    showBtnLoading($btn, 'Purging...');\n    const post_id = rabbitloader_local_vars.post_id ? rabbitloader_local_vars.post_id : '';\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_ajax_purge\");//rabbitloader_ajax_purge\n    formData.append('post_id', post_id);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {//here we can not access the global \"ajaxurl\" because it is not available for single purge pages\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            //console.log(json);\n            if (json && json.result) {\n                if (post_id) {\n                    showCommonMessage(`Purge completed for page - ${document.title}`);\n                } else {\n                    showCommonMessage(`Purge completed`);\n                }\n            } else {\n                showCommonMessage('Purge failed. Please reload the page and try again.');\n            }\n            stopBtnLoading($btn);\n        });\n}","import { toggleMeMode } from './memode'\nimport { showCommonMessage, showVideoPopup } from './popup'\nimport { crashCourse, primerVideos } from './help_crash_course'\nimport { purgeAjax } from './purge'\n\nfunction App() {\n  //const window = this;\n  const document = window.document;\n  const docReady = (/p/).test(document.readyState);\n  var initCalled = false;\n  var rabbitloader_local_vars = window.rabbitloader_local_vars;\n  //use these variables so compression is better when code is minified\n  var getAttribute = \"getAttribute\";\n  var localStorage = \"localStorage\";\n  let PREVENT_DEFAULT = \"preventDefault\";\n\n  var click = 'click';\n  var jQuery = window.jQuery;\n  let rabbitloader_ajax_prefix = \"rabbitloader_ajax_\";\n\n  function setUpListeners() {\n    showScore('score_circle_best');\n    showScore('warming_progress_bar');\n    jQuery('.rabbitloader_purge_page').on(click, purgeAjax);\n    jQuery('#rabbitloader_purge_all').on(click, purgeAjax);\n    window.setTimeout(rlCron, 1000); //immediately after page is loaded\n    window.setInterval(rlCron, getRndInteger(300, 600) * 1000);//every 300 to 600 seconds\n    jQuery(document).on(click, '.tpopup', showTooltip);\n    jQuery(document).on('change', '#rl_chk_public', handleChkPublic);\n    jQuery(document).on('click', '#rl_show_survey', showSurvey);\n    jQuery(document).on('click', '#rl_me_learn_more', function () { showVideoPopup('ol4nuYuYTeM') });\n    onPluginDeactivate();\n    crashCourse();\n    primerVideos();\n  }\n\n  function showScore(elid) {\n    var el = document.getElementById(elid);\n    if (!el) {\n      return;\n    }\n    var options = {\n      percent: el[getAttribute]('data-percent') || 15,\n      size: el[getAttribute]('data-size') || 150,\n      lineWidth: el[getAttribute]('data-line') || 10,\n      rotate: el[getAttribute]('data-rotate') || 0,\n      ocolor: el[getAttribute]('data-ocolor') || '#f0fff7',\n      icolor: el[getAttribute]('data-icolor') || '#0cce6b',\n      fsize: el[getAttribute]('data-fsize') || '60px'\n    }\n\n    var canvas = document.createElement('canvas');\n    var span = document.createElement('span');\n    span.textContent = options.percent;\n    span.style.lineHeight = options.size + 'px';\n    span.style.width = options.size + 'px';\n    span.style.fontSize = options.fsize;\n    span.style.color = options.icolor;\n\n    if (typeof (G_vmlCanvasManager) !== 'undefined') {\n      G_vmlCanvasManager.initElement(canvas);\n    }\n\n    var ctx = canvas.getContext('2d');\n    canvas.width = canvas.height = options.size;\n\n    el.style.width = options.size + 'px';\n    el.style.height = options.size + 'px';\n    el.appendChild(span);\n    el.appendChild(canvas);\n\n    ctx.translate(options.size / 2, options.size / 2); // change center\n    ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg\n\n    //imd = ctx.getImageData(0, 0, 240, 240);\n    var radius = (options.size - options.lineWidth) / 2;\n\n    var drawCircle = function (color, lineWidth, percent) {\n      percent = Math.min(Math.max(0, percent || 1), 1);\n      ctx.beginPath();\n      ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);\n      ctx.strokeStyle = color;\n      ctx.lineCap = 'round'; // butt, round or square\n      ctx.lineWidth = lineWidth\n      ctx.stroke();\n    };\n\n    options.percent = parseFloat(options.percent); //display text may contain % etc\n    drawCircle(options.ocolor, options.lineWidth, 100 / 100);\n    drawCircle(options.icolor, options.lineWidth, options.percent / 100);\n  }\n\n  //this function calls the admin_ajax to execute few periodic functions calls in PHP, as long as the admin page is open, the ajax will be called almost every minute \n  function rlCron() {\n    let ajax_action = rabbitloader_ajax_prefix + \"cron\";//v\n    //apply lock to ensure if admin page is loaded in multiple tabs, we do not consume lots of resources\n    let lastRunTime = window[localStorage].getItem(ajax_action);\n    let now = Date.now();\n    if (lastRunTime) {\n      let diff = now - new Date(lastRunTime)\n      let diffInSeconds = diff / 1000;\n      if (diffInSeconds < 180) {\n        //this tab or some tab called in this ajax in last 180 seconds, lets exit and wait for next timer call\n        return;\n      }\n    } else {\n      //possibly first run\n    }\n    window[localStorage].setItem(ajax_action, now);\n\n    const formData = new FormData();\n    formData.append('action', ajax_action);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function showTooltip(e) {\n    let title = jQuery(e.target).attr('title-html');\n    if (!title) {\n      title = jQuery(e.target).attr('title');\n    }\n    if (title) {\n      showCommonMessage(title);\n    }\n  }\n\n  function handleChkPublic(e) {\n    let private_mode = !jQuery(e.target).is(':checked');\n    showCommonMessage('Updating...');//show progress till API call completes\n    toggleMeMode('', private_mode, function () { });\n  }\n\n  function getRndInteger(min, max) {\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n  }\n\n  function onPluginDeactivate() {\n    let slug = `rabbit-loader`;\n    let deactivateLink = `tr[data-slug=\"${slug}\"] #deactivate-${slug}`;\n    //private_mode_val\n    if (jQuery(deactivateLink).length == 0) {\n      //not on the plugins page\n      return;\n    }\n    let deactivateLinkUrl = jQuery(deactivateLink).attr('href');\n    let popup_id = `${slug}-me-mode-popup`\n    let btn_enable_memode = `${slug}-en`\n    let btn_deactivate = `${slug}-de`\n    let popup_html = `<div id=\"${popup_id}\" style=\"display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;\"><p class=\"\">${rl_de_popup.pop_msg}</p><div style=\"margin-top:25px;\"><a id=\"${btn_deactivate}\" class=\"button button-secondary alignleft\" href=\"#\">${rl_de_popup.btn_de}</a><button id=\"${btn_enable_memode}\" class=\"button button-primary alignright\">${rl_de_popup.btn_en}</button></div></div>`;\n\n    jQuery(deactivateLink).parent().append(popup_html);\n    jQuery(deactivateLink).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      jQuery('#' + popup_id).show();\n      let ref1 = jQuery(window).scrollTop() + jQuery(window).height();\n      let ref2 = jQuery('#' + popup_id).offset().top + jQuery('#' + popup_id).outerHeight(true);\n      if (ref2 > ref1) {\n        jQuery('html,body').animate({ scrollTop: jQuery('#' + popup_id).offset().top - (jQuery(window).height() - jQuery('#' + popup_id).outerHeight(true) - 10) }, 200);\n      }\n      jQuery(`#${btn_deactivate}`).attr('href', deactivateLinkUrl);\n    });\n\n\n    jQuery(`#${btn_enable_memode}`).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      e.stopPropagation();\n      jQuery(deactivateLink).unbind(click);\n\n      toggleMeMode(btn_enable_memode, true, function (done) {\n        if (done) {\n          jQuery('#' + popup_id).hide();\n        }\n      });\n    });\n  }\n\n  function showSurvey() {\n    let form = '<iframe src=\"https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg\" width=\"100%\" height=\"600px\"></iframe>'\n    showCommonMessage(form, true);\n\n    //mark the form shown, so it will not be shown again\n    const formData = new FormData();\n    //rabbitloader_ajax_survey_dismissed\n    formData.append('action', rabbitloader_ajax_prefix + 'survey_dismissed');\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function init() {\n    if (initCalled) { return; }\n    initCalled = true;\n    setUpListeners();\n  }\n  docReady ? init() : window.addEventListener('load', init);\n}\n\nexport default App;","import App from './App';\n\n\n// export const Init = () => {\n//   App();\n// }\n\nApp();\n"],"names":["root","factory","exports","module","define","amd","this","Symbol","toStringTag","Object","defineProperty","value","ATTR_DISABLED","showBtnLoading","$ele","txt","otext","jQuery","html","concat","attr","data","stopBtnLoading","removeAttr","_undefined","changedStates","curDeps","curNewDerives","statesToGc","Obj","protoOf","getPrototypeOf","doc","document","alwaysConnectedDom","isConnected","propSetterCache","objProto","funcProto","addAndScheduleOnFirst","set","s","f","waitMs","setTimeout","Set","add","runAndCaptureDeps","deps","arg","prevDeps","e","console","error","keepConnected","l","filter","b","_dom","addStatesToGc","d","_bindings","_listeners","stateProto","val","_val","oldVal","_oldVal","v","listeners","derive","length","updateDoms","state","initVal","__proto__","isState","bind","dom","binding","prevNewDerives","newDom","nodeType","Text","push","listener","children","c","flat","Infinity","protoOfC","child","append","tagsNS","ns","Proxy","name","args","props","createElementNS","createElement","k","entries","getPropDescriptor","proto","getOwnPropertyDescriptor","cacheKey","propSetter","setter","setAttribute","protoOfV","startsWith","_isBindingFunc","get","tag","update","replaceWith","remove","changedStatesArray","flatMap","_","tags","hydrate","msg_box_id","div","van","modalContainer","id","style","modalMsgBox","modalCloseBtn","onclick","display","inject","getElementById","body","setWidth","w","width","marginLeft","showCommonMessage","msg","skipPadding","padding","innerHTML","showVideoPopup","toggleMeMode","btID","enable","cb","formData","FormData","rabbitloader_local_vars","rl_nonce","fetch","ajaxurl","then","res","json","log","result","_van$tags","h5","h6","img","small","span","crashCourse","container","row","class","forEach","title","videoID","imgSrc","_van$tagsNS","path","loading","src","alt","circle","svg","height","fill","viewBox","primerVideos","doms","querySelectorAll","dataset","videoId","align","duration","durText","Math","round","node","purgeAjax","preventDefault","$btn","currentTarget","post_id","admin_ajax","window","docReady","test","readyState","initCalled","getAttribute","localStorage","PREVENT_DEFAULT","click","rabbitloader_ajax_prefix","showScore","elid","el","options","percent","size","lineWidth","rotate","ocolor","icolor","fsize","canvas","textContent","lineHeight","fontSize","color","G_vmlCanvasManager","initElement","ctx","getContext","appendChild","translate","PI","radius","drawCircle","min","max","beginPath","arc","strokeStyle","lineCap","stroke","parseFloat","rlCron","ajax_action","lastRunTime","getItem","now","Date","setItem","showTooltip","target","handleChkPublic","private_mode","is","showSurvey","init","on","setInterval","floor","random","slug","deactivateLink","deactivateLinkUrl","popup_id","btn_enable_memode","btn_deactivate","popup_html","rl_de_popup","pop_msg","btn_de","btn_en","parent","show","ref1","scrollTop","offset","top","outerHeight","animate","stopPropagation","unbind","done","hide","onPluginDeactivate","addEventListener","App"],"sourceRoot":""}
     1{"version":3,"file":"index.js","mappings":"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","sources":["webpack://RLAdmin/webpack/universalModuleDefinition","webpack://RLAdmin/webpack/bootstrap","webpack://RLAdmin/webpack/runtime/make namespace object","webpack://RLAdmin/./src/loading.js","webpack://RLAdmin/../../node_modules/vanjs-core/src/van.js","webpack://RLAdmin/./src/popup.js","webpack://RLAdmin/./src/memode.js","webpack://RLAdmin/./src/help_crash_course.js","webpack://RLAdmin/./src/purge.js","webpack://RLAdmin/./src/App.js","webpack://RLAdmin/./src/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RLAdmin\"] = factory();\n\telse\n\t\troot[\"RLAdmin\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const ATTR_DISABLED = \"disabled\";\n\nexport function showBtnLoading($ele, txt) {\n    let otext = jQuery($ele).html();\n    return jQuery($ele).html(`<span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span> ${txt}`).attr(ATTR_DISABLED, ATTR_DISABLED).data('otext', otext);\n}\n\nexport function stopBtnLoading($ele) {\n    let otext = jQuery($ele).data('otext');\n    return jQuery($ele).html(otext).removeAttr(ATTR_DISABLED);\n}","// This file consistently uses `let` keyword instead of `const` for reducing the bundle size.\n\n// Global variables - aliasing some builtin symbols to reduce the bundle size.\nlet Obj = Object, _undefined, protoOf = Obj.getPrototypeOf, doc = document\nlet changedStates, curDeps, curNewDerives, alwaysConnectedDom = {isConnected: 1}, gcCycleInMs = 1000, statesToGc, propSetterCache = {}\nlet objProto = protoOf(alwaysConnectedDom), funcProto = protoOf(protoOf)\n\nlet addAndScheduleOnFirst = (set, s, f, waitMs) =>\n  (set ?? (setTimeout(f, waitMs), new Set)).add(s)\n\nlet runAndCaptureDeps = (f, deps, arg) => {\n  let prevDeps = curDeps\n  curDeps = deps\n  try {\n    return f(arg)\n  } catch (e) {\n    console.error(e)\n    return arg\n  } finally {\n    curDeps = prevDeps\n  }\n}\n\nlet keepConnected = l => l.filter(b => b._dom?.isConnected)\n\nlet addStatesToGc = d => statesToGc = addAndScheduleOnFirst(statesToGc, d, () => {\n  for (let s of statesToGc)\n    s._bindings = keepConnected(s._bindings),\n    s._listeners = keepConnected(s._listeners)\n  statesToGc = _undefined\n}, gcCycleInMs)\n\nlet stateProto = {\n  get val() {\n    curDeps?.add(this)\n    return this._val\n  },\n\n  get oldVal() {\n    curDeps?.add(this)\n    return this._oldVal\n  },\n\n  set val(v) {\n    // Aliasing `this` to reduce the bundle size.\n    let s = this\n    if (v !== s._val) {\n      s._val = v\n      let listeners = [...s._listeners = keepConnected(s._listeners)]\n      for (let l of listeners) derive(l.f, l.s, l._dom), l._dom = _undefined\n      s._bindings.length ?\n        changedStates = addAndScheduleOnFirst(changedStates, s, updateDoms) :\n        s._oldVal = v\n    }\n  },\n}\n\nlet state = initVal => ({\n  __proto__: stateProto,\n  _val: initVal,\n  _oldVal: initVal,\n  _bindings: [],\n  _listeners: [],\n})\n\nlet isState = s => protoOf(s ?? 0) === stateProto\n\nlet val = s => isState(s) ? s.val : s\nlet oldVal = s => isState(s) ? s.oldVal : s\n\nlet bind = (f, dom) => {\n  let deps = new Set, binding = {f}, prevNewDerives = curNewDerives\n  curNewDerives = []\n  let newDom = runAndCaptureDeps(f, deps, dom)\n  newDom = (newDom ?? doc).nodeType ? newDom : new Text(newDom)\n  for (let d of deps) addStatesToGc(d), d._bindings.push(binding)\n  for (let l of curNewDerives) l._dom = newDom\n  curNewDerives = prevNewDerives\n  return binding._dom = newDom\n}\n\nlet derive = (f, s = state(), dom) => {\n  let deps = new Set, listener = {f, s}\n  listener._dom = dom ?? curNewDerives?.push(listener) ?? alwaysConnectedDom\n  s.val = runAndCaptureDeps(f, deps)\n  for (let d of deps) addStatesToGc(d), d._listeners.push(listener)\n  return s\n}\n\nlet add = (dom, ...children) => {\n  for (let c of children.flat(Infinity)) {\n    let protoOfC = protoOf(c ?? 0)\n    let child = protoOfC === stateProto ? bind(() => c.val) :\n      protoOfC === funcProto ? bind(c) : c\n    if (child != _undefined) dom.append(child)\n  }\n  return dom\n}\n\nlet _ = f => (f._isBindingFunc = 1, f)\n\nlet tagsNS = ns => new Proxy((name, ...args) => {\n  let [props, ...children] = protoOf(args[0] ?? 0) === objProto ? args : [{}, ...args]\n  let dom = ns ? doc.createElementNS(ns, name) : doc.createElement(name)\n  for (let [k, v] of Obj.entries(props)) {\n    let getPropDescriptor = proto => proto ?\n      Obj.getOwnPropertyDescriptor(proto, k) ?? getPropDescriptor(protoOf(proto)) :\n      _undefined\n    let cacheKey = name + \",\" + k\n    let propSetter = propSetterCache[cacheKey] ??\n      (propSetterCache[cacheKey] = getPropDescriptor(protoOf(dom))?.set ?? 0)\n    let setter = propSetter ? propSetter.bind(dom) : dom.setAttribute.bind(dom, k)\n    let protoOfV = protoOf(v ?? 0)\n    if (protoOfV === stateProto) bind(() => (setter(v.val), dom))\n    else if (protoOfV === funcProto && (!k.startsWith(\"on\") || v._isBindingFunc))\n      bind(() => (setter(v()), dom))\n    else setter(v)\n  }\n  return add(dom, ...children)\n}, {get: (tag, name) => tag.bind(_undefined, name)})\n\nlet update = (dom, newDom) => newDom ? newDom !== dom && dom.replaceWith(newDom) : dom.remove()\n\nlet updateDoms = () => {\n  let changedStatesArray = [...changedStates].filter(s => s._val !== s._oldVal)\n  changedStates = _undefined\n  for (let b of new Set(changedStatesArray.flatMap(s => s._bindings = keepConnected(s._bindings))))\n    update(b._dom, bind(b.f, b._dom)), b._dom = _undefined\n  for (let s of changedStatesArray) s._oldVal = s._val\n}\n\nlet hydrate = (dom, f) => update(dom, bind(f, dom))\n\nexport default {add, _, tags: tagsNS(), tagsNS, state, val, oldVal, derive, hydrate}\n","import van from \"vanjs-core\"\n\nconst msg_box_id = 'rabbitloader_common_msg_modal';\nconst msg_box_body = 'rabbitloader_common_msg_body';\nconst { div } = van.tags\n\nconst modalContainer = div({\n    id: `${msg_box_id}`,\n    style: `position: fixed; top: 50px; left: 50%; background-color: #ffffff; border-radius: 4px; box-shadow: 0px 0px 120px #000; min-width: 400px; margin-left: -200px; text-align:center; z-index: 99999999999;`\n})\n\nconst modalMsgBox = div(\n    {\n        id: `${msg_box_body}`,\n        style: \"padding: 20px;\"\n    }\n)\n\nconst modalCloseBtn = div(\n    {\n        id: `rabbitloader_common_msg_footer`,\n        style: \"text-align: center; color: #0811fb; cursor: pointer; padding: 10px; background-color: #f4f4f4; border-radius: 4px;\",\n        onclick: () => { modalContainer.style.display = \"none\"; }\n    }, 'Close'\n)\n\nfunction inject() {\n    var dom = document.getElementById(msg_box_id);\n    if (!dom) {\n        const Modal = () => van.add(modalContainer,\n            modalMsgBox,\n            modalCloseBtn\n        )\n        van.add(document.body, Modal());\n    } else {\n        modalContainer.style.display = \"block\";\n    }\n}\n\nfunction setWidth(w) {\n    modalContainer.style.width = w + 'px'\n    modalContainer.style.marginLeft = (-1 * w / 2) + 'px'\n}\n\nexport function showCommonMessage(msg, skipPadding) {\n    inject();\n    let padding = skipPadding ? '0px' : '20px';\n    modalMsgBox.style.padding = padding\n    modalMsgBox.innerHTML = msg;\n    setWidth(400)\n}\n\nexport function showVideoPopup(id) {\n\n    let msg = `<iframe src=\"https://www.youtube.com/embed/${id}\" width=\"560px\" height=\"315px\" style=\"max-width:100%\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>`\n\n    inject();\n    modalMsgBox.style.padding = '0px'\n    modalMsgBox.innerHTML = msg;\n    setWidth(560)\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function toggleMeMode(btID, enable, cb) {\n\n    let msg = enable ? `<h2>'Me' mode on</h2><br>Me mode is for testing and debugging. Regular visitors will continue to see the original webpages without any affect of RabbitLoader. Only you can access the RabbitLoader optimized pages by appending \"?rltest=1\" to  URLs.` : `<h2>'Everyone' mode on</h2><br>Use it if, you are ready to show the optimized pages to everyone. `;\n    if (btID) {\n        showBtnLoading(`#${btID}`, 'Enabling Me Mode...');\n    }\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_mode_change\");\n    formData.append('private_mode', enable ? 1 : 0);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n    fetch(ajaxurl, {\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            console.log(json);\n            if (json && json.result) {\n                showCommonMessage(msg);\n                cb(true);\n            } else {\n                showCommonMessage('Settings could not be saved');\n                cb(false);\n            }\n            if (btID) {\n                stopBtnLoading(`#${btID}`);\n            }\n        });\n}","import van from \"vanjs-core\"\nimport { showVideoPopup } from './popup'\n//import \"bootstrap-icons/font/bootstrap-icons.css\";\n//import \"play-circle.svg\" from \"bootstrap-icons/icons/play-circle.svg\"\nconst { div, h5, h6, img, small, span } = van.tags\n\nconst playIcon = () => {\n    const { circle, path, svg } = van.tagsNS(\"http://www.w3.org/2000/svg\")\n    return svg({ width: \"16\", height: \"16\", fill: \"currentColor\", class: \"bi bi-play-circle rl-video-play \", viewBox: \"0 0 16 16\" },\n        path({ \"d\": \"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" }),\n        path({ \"d\": \"M6.271 5.055a.5.5 0 0 1 .52.038l3.5 2.5a.5.5 0 0 1 0 .814l-3.5 2.5A.5.5 0 0 1 6 10.5v-5a.5.5 0 0 1 .271-.445\" }),\n    )\n\n}\n\n\nexport function crashCourse() {\n\n    const container = document.getElementById('rl_crash_course_videos');\n    if (!container) {\n        return;\n    }\n\n    const videos = [\n        ['rJdgdkiADB4', 'Verification'],\n        ['QGAuLgOjCu0', 'Purging Cache'],\n        ['ol4nuYuYTeM', 'Me Mode'],\n        ['lC0vWlugHJ4', 'Image Settings'],\n        ['z6fuEHr6lYs', 'CSS Settings'],\n        ['QxwaDxtRw-I', 'Delegate Access'],\n        ['uBPMn2mvnrs', 'Linking Cloudflare'],\n    ];\n    const row = div({ class: \"row\" }, h5({ class: \"mb-3\" }, 'Crash Courses'))\n\n    videos.forEach(v => {\n        van.add(row, getVideoBox(v[1], v[0]))\n    })\n\n    van.add(container, div(\n        { class: \"row mb-4\" },\n        div({ class: \"col\" },\n            div({ class: \"bg-white rounded p-4\" }, row)\n        )))\n}\n\nfunction getVideoBox(title, videoID) {\n    const imgSrc = `https://img.youtube.com/vi/${videoID}/mqdefault.jpg`;\n    return div(\n        {\n            class: \"col-sm-12 col-md-6 col-lg-4 mb-4 text-secondary text-center rl-div-video rl-cp\",\n            onclick: () => showVideoPopup(videoID)\n        },\n        h6({ class: \"mb-3\" }, title),\n        img({ loading: 'lazy', src: imgSrc, alt: \"-\" }),\n        playIcon()\n    )\n}\n\nexport function primerVideos() {\n    const doms = document.querySelectorAll('primer');\n    if (!doms) {\n        return;\n    }\n    doms.forEach(d => {\n        const videoID = d.dataset.videoId\n        const align = d.dataset.align;\n        const duration = d.dataset.duration;\n        const durText = duration <= 100 ? \" \" + duration + \" seconds primer\" : \" \" + Math.round(duration / 60) + \" min primer\"\n\n        const node = div(\n            { class: \"col-12 mt-2 \" + (align == \"center\" ? \"text-center\" : \"\"), onclick: () => showVideoPopup(videoID) },\n            small({ class: \"text-secondary rl-cp \" },\n                span({ class: \"dashicons dashicons-video-alt3 mt-1\" }), durText)\n        )\n        van.add(d, node)\n    })\n}","import { showBtnLoading, stopBtnLoading } from './loading'\nimport { showCommonMessage } from './popup'\n\nexport function purgeAjax(e) {\n    e.preventDefault();\n\n    const $btn = jQuery(e.currentTarget);\n    showBtnLoading($btn, 'Purging...');\n    const post_id = rabbitloader_local_vars.post_id ? rabbitloader_local_vars.post_id : '';\n\n    const formData = new FormData();\n    formData.append('action', \"rabbitloader_ajax_purge\");//rabbitloader_ajax_purge\n    formData.append('post_id', post_id);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {//here we can not access the global \"ajaxurl\" because it is not available for single purge pages\n        'method': 'POST',\n        'body': formData\n    }).then(res => res.json())\n        .then(json => {\n            //console.log(json);\n            if (json && json.result) {\n                if (post_id) {\n                    showCommonMessage(`Purge completed for page - ${document.title}`);\n                } else {\n                    showCommonMessage(`Purge completed`);\n                }\n            } else {\n                showCommonMessage('Purge failed. Please reload the page and try again.');\n            }\n            stopBtnLoading($btn);\n        });\n}","import { toggleMeMode } from './memode'\nimport { showCommonMessage, showVideoPopup } from './popup'\nimport { crashCourse, primerVideos } from './help_crash_course'\nimport { purgeAjax } from './purge'\n\nfunction App() {\n  //const window = this;\n  const document = window.document;\n  const docReady = (/p/).test(document.readyState);\n  var initCalled = false;\n  var rabbitloader_local_vars = window.rabbitloader_local_vars;\n  //use these variables so compression is better when code is minified\n  var getAttribute = \"getAttribute\";\n  var localStorage = \"localStorage\";\n  let PREVENT_DEFAULT = \"preventDefault\";\n\n  var click = 'click';\n  var jQuery = window.jQuery;\n  let rabbitloader_ajax_prefix = \"rabbitloader_ajax_\";\n\n  function setUpListeners() {\n    showScore('score_circle_best');\n    showScore('warming_progress_bar');\n    jQuery('.rabbitloader_purge_page').on(click, purgeAjax);\n    jQuery('#rabbitloader_purge_all').on(click, purgeAjax);\n    window.setTimeout(rlCron, 1000); //immediately after page is loaded\n    window.setInterval(rlCron, getRndInteger(300, 600) * 1000);//every 300 to 600 seconds\n    jQuery(document).on(click, '.tpopup', showTooltip);\n    jQuery(document).on('change', '#rl_chk_public', handleChkPublic);\n    //jQuery(document).on('click', '#rl_show_survey', showSurvey);\n    jQuery(document).on('click', '#rl_me_learn_more', function () { showVideoPopup('ol4nuYuYTeM') });\n    onPluginDeactivate();\n    crashCourse();\n    primerVideos();\n  }\n\n  function showScore(elid) {\n    var el = document.getElementById(elid);\n    if (!el) {\n      return;\n    }\n    var options = {\n      percent: el[getAttribute]('data-percent') || 15,\n      size: el[getAttribute]('data-size') || 150,\n      lineWidth: el[getAttribute]('data-line') || 10,\n      rotate: el[getAttribute]('data-rotate') || 0,\n      ocolor: el[getAttribute]('data-ocolor') || '#f0fff7',\n      icolor: el[getAttribute]('data-icolor') || '#0cce6b',\n      fsize: el[getAttribute]('data-fsize') || '60px'\n    }\n\n    var canvas = document.createElement('canvas');\n    var span = document.createElement('span');\n    span.textContent = options.percent;\n    span.style.lineHeight = options.size + 'px';\n    span.style.width = options.size + 'px';\n    span.style.fontSize = options.fsize;\n    span.style.color = options.icolor;\n\n    if (typeof (G_vmlCanvasManager) !== 'undefined') {\n      G_vmlCanvasManager.initElement(canvas);\n    }\n\n    var ctx = canvas.getContext('2d');\n    canvas.width = canvas.height = options.size;\n\n    el.style.width = options.size + 'px';\n    el.style.height = options.size + 'px';\n    el.appendChild(span);\n    el.appendChild(canvas);\n\n    ctx.translate(options.size / 2, options.size / 2); // change center\n    ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg\n\n    //imd = ctx.getImageData(0, 0, 240, 240);\n    var radius = (options.size - options.lineWidth) / 2;\n\n    var drawCircle = function (color, lineWidth, percent) {\n      percent = Math.min(Math.max(0, percent || 1), 1);\n      ctx.beginPath();\n      ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);\n      ctx.strokeStyle = color;\n      ctx.lineCap = 'round'; // butt, round or square\n      ctx.lineWidth = lineWidth\n      ctx.stroke();\n    };\n\n    options.percent = parseFloat(options.percent); //display text may contain % etc\n    drawCircle(options.ocolor, options.lineWidth, 100 / 100);\n    drawCircle(options.icolor, options.lineWidth, options.percent / 100);\n  }\n\n  //this function calls the admin_ajax to execute few periodic functions calls in PHP, as long as the admin page is open, the ajax will be called almost every minute \n  function rlCron() {\n    let ajax_action = rabbitloader_ajax_prefix + \"cron\";//v\n    //apply lock to ensure if admin page is loaded in multiple tabs, we do not consume lots of resources\n    let lastRunTime = window[localStorage].getItem(ajax_action);\n    let now = Date.now();\n    if (lastRunTime) {\n      let diff = now - new Date(lastRunTime)\n      let diffInSeconds = diff / 1000;\n      if (diffInSeconds < 180) {\n        //this tab or some tab called in this ajax in last 180 seconds, lets exit and wait for next timer call\n        return;\n      }\n    } else {\n      //possibly first run\n    }\n    window[localStorage].setItem(ajax_action, now);\n\n    const formData = new FormData();\n    formData.append('action', ajax_action);\n    formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n    fetch(rabbitloader_local_vars.admin_ajax, {\n      'method': 'POST',\n      'body': formData\n    });\n  }\n\n  function showTooltip(e) {\n    let title = jQuery(e.target).attr('title-html');\n    if (!title) {\n      title = jQuery(e.target).attr('title');\n    }\n    if (title) {\n      showCommonMessage(title);\n    }\n  }\n\n  function handleChkPublic(e) {\n    let private_mode = !jQuery(e.target).is(':checked');\n    showCommonMessage('Updating...');//show progress till API call completes\n    toggleMeMode('', private_mode, function () { });\n  }\n\n  function getRndInteger(min, max) {\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n  }\n\n  function onPluginDeactivate() {\n    let slug = `rabbit-loader`;\n    let deactivateLink = `tr[data-slug=\"${slug}\"] #deactivate-${slug}`;\n    //private_mode_val\n    if (jQuery(deactivateLink).length == 0) {\n      //not on the plugins page\n      return;\n    }\n    let deactivateLinkUrl = jQuery(deactivateLink).attr('href');\n    let popup_id = `${slug}-me-mode-popup`\n    let btn_enable_memode = `${slug}-en`\n    let btn_deactivate = `${slug}-de`\n    let popup_html = `<div id=\"${popup_id}\" style=\"display: none; position: absolute; white-space: normal; max-width: 350px; width: 350px; background: #fcf9e8; z-index: 10001; border: 4px solid #dba617; box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 30px 0px; left: -10px; text-align: center; padding:20px;\"><p class=\"\">${rl_de_popup.pop_msg}</p><div style=\"margin-top:25px;\"><a id=\"${btn_deactivate}\" class=\"button button-secondary alignleft\" href=\"#\">${rl_de_popup.btn_de}</a><button id=\"${btn_enable_memode}\" class=\"button button-primary alignright\">${rl_de_popup.btn_en}</button></div></div>`;\n\n    jQuery(deactivateLink).parent().append(popup_html);\n    jQuery(deactivateLink).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      jQuery('#' + popup_id).show();\n      let ref1 = jQuery(window).scrollTop() + jQuery(window).height();\n      let ref2 = jQuery('#' + popup_id).offset().top + jQuery('#' + popup_id).outerHeight(true);\n      if (ref2 > ref1) {\n        jQuery('html,body').animate({ scrollTop: jQuery('#' + popup_id).offset().top - (jQuery(window).height() - jQuery('#' + popup_id).outerHeight(true) - 10) }, 200);\n      }\n      jQuery(`#${btn_deactivate}`).attr('href', deactivateLinkUrl);\n    });\n\n\n    jQuery(`#${btn_enable_memode}`).on(click, function (e) {\n      e[PREVENT_DEFAULT]();\n      e.stopPropagation();\n      jQuery(deactivateLink).unbind(click);\n\n      toggleMeMode(btn_enable_memode, true, function (done) {\n        if (done) {\n          jQuery('#' + popup_id).hide();\n        }\n      });\n    });\n  }\n\n  //survey removed on >= v2.19.17\n  // function showSurvey() {\n  //   let form = '<iframe src=\"https://forms.zohopublic.in/abhishek33/form/InstallFeedback/formperma/DxCLomfqe7Jf8kYJR7YVxKMK7EQu-0bPwXlIrrapHMg\" width=\"100%\" height=\"600px\"></iframe>'\n  //   showCommonMessage(form, true);\n\n  //   //mark the form shown, so it will not be shown again\n  //   const formData = new FormData();\n  //   //rabbitloader_ajax_survey_dismissed\n  //   formData.append('action', rabbitloader_ajax_prefix + 'survey_dismissed');\n  //   formData.append('rl_nonce', rabbitloader_local_vars.rl_nonce);\n\n  //   fetch(rabbitloader_local_vars.admin_ajax, {\n  //     'method': 'POST',\n  //     'body': formData\n  //   });\n  // }\n\n  function init() {\n    if (initCalled) { return; }\n    initCalled = true;\n    setUpListeners();\n  }\n  docReady ? init() : window.addEventListener('load', init);\n}\n\nexport default App;","import App from './App';\n\n\n// export const Init = () => {\n//   App();\n// }\n\nApp();\n"],"names":["root","factory","exports","module","define","amd","this","Symbol","toStringTag","Object","defineProperty","value","ATTR_DISABLED","showBtnLoading","$ele","txt","otext","jQuery","html","concat","attr","data","stopBtnLoading","removeAttr","_undefined","changedStates","curDeps","curNewDerives","statesToGc","Obj","protoOf","getPrototypeOf","doc","document","alwaysConnectedDom","isConnected","propSetterCache","objProto","funcProto","addAndScheduleOnFirst","set","s","f","waitMs","setTimeout","Set","add","runAndCaptureDeps","deps","arg","prevDeps","e","console","error","keepConnected","l","filter","b","_dom","addStatesToGc","d","_bindings","_listeners","stateProto","val","_val","oldVal","_oldVal","v","listeners","derive","length","updateDoms","state","initVal","__proto__","isState","bind","dom","binding","prevNewDerives","newDom","nodeType","Text","push","listener","children","c","flat","Infinity","protoOfC","child","append","tagsNS","ns","Proxy","name","args","props","createElementNS","createElement","k","entries","getPropDescriptor","proto","getOwnPropertyDescriptor","cacheKey","propSetter","setter","setAttribute","protoOfV","startsWith","_isBindingFunc","get","tag","update","replaceWith","remove","changedStatesArray","flatMap","_","tags","hydrate","msg_box_id","div","van","modalContainer","id","style","modalMsgBox","modalCloseBtn","onclick","display","inject","getElementById","body","setWidth","w","width","marginLeft","showCommonMessage","msg","skipPadding","padding","innerHTML","showVideoPopup","toggleMeMode","btID","enable","cb","formData","FormData","rabbitloader_local_vars","rl_nonce","fetch","ajaxurl","then","res","json","log","result","_van$tags","h5","h6","img","small","span","crashCourse","container","row","class","forEach","title","videoID","imgSrc","_van$tagsNS","path","loading","src","alt","circle","svg","height","fill","viewBox","primerVideos","doms","querySelectorAll","dataset","videoId","align","duration","durText","Math","round","node","purgeAjax","preventDefault","$btn","currentTarget","post_id","admin_ajax","window","docReady","test","readyState","initCalled","getAttribute","localStorage","PREVENT_DEFAULT","click","rabbitloader_ajax_prefix","showScore","elid","el","options","percent","size","lineWidth","rotate","ocolor","icolor","fsize","canvas","textContent","lineHeight","fontSize","color","G_vmlCanvasManager","initElement","ctx","getContext","appendChild","translate","PI","radius","drawCircle","min","max","beginPath","arc","strokeStyle","lineCap","stroke","parseFloat","rlCron","ajax_action","lastRunTime","getItem","now","Date","setItem","showTooltip","target","handleChkPublic","private_mode","is","init","on","setInterval","floor","random","slug","deactivateLink","deactivateLinkUrl","popup_id","btn_enable_memode","btn_deactivate","popup_html","rl_de_popup","pop_msg","btn_de","btn_en","parent","show","ref1","scrollTop","offset","top","outerHeight","animate","stopPropagation","unbind","done","hide","onPluginDeactivate","addEventListener","App"],"sourceRoot":""}
  • rabbit-loader/trunk/autoload.php

    r3030444 r3039136  
    44define('RABBITLOADER_CACHE_DIR', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . "rabbitloader");
    55define('RABBITLOADER_PLUG_URL', plugin_dir_url(__FILE__));
    6 define('RABBITLOADER_PLUG_VERSION', '2.19.16');
     6define('RABBITLOADER_PLUG_VERSION', '2.19.17');
    77define('RABBITLOADER_TEXT_DOMAIN', 'rabbit-loader');
    88define('RABBITLOADER_PLUG_ENV', 'PROD');
  • rabbit-loader/trunk/inc/admin.php

    r3030444 r3039136  
    7272            RL21UtilWP::verifyAjaxNonce();
    7373        });
    74         add_action('wp_ajax_rabbitloader_ajax_survey_dismissed', function () {
    75             RL21UtilWP::verifyAjaxNonce();
    76             self::survey_dismissed(self::SURVEY_DIS_PERMA);
    77         });
     74        // add_action('wp_ajax_rabbitloader_ajax_survey_dismissed', function () {
     75        //     RL21UtilWP::verifyAjaxNonce();
     76        //     self::survey_dismissed(self::SURVEY_DIS_PERMA);
     77        // });
    7878        add_action('rl_site_connected', function () {
    7979            self::rl_site_connected();
     
    126126    {
    127127
    128         self::survey();
     128        //self::survey();
    129129
    130130        try {
     
    208208    }
    209209
    210     private static function survey_dismissed($forceTime)
    211     {
    212         $user_id = get_current_user_id();
    213         if (empty($user_id)) {
    214             wp_send_json_error(null, 403);
    215         }
    216         if (isset($_GET['rl_survey_dismissed'])) {
    217             delete_user_meta($user_id, 'rl_survey_dismissed');
    218             update_user_meta($user_id, 'rl_survey_dismissed', intval($_GET['rl_survey_dismissed']), false);
    219         }
    220         if ($forceTime) {
    221             delete_user_meta($user_id, 'rl_survey_dismissed');
    222             update_user_meta($user_id, 'rl_survey_dismissed', $forceTime, false);
    223         }
    224     }
     210    // private static function survey_dismissed($forceTime)
     211    // {
     212    //     $user_id = get_current_user_id();
     213    //     if (empty($user_id)) {
     214    //         wp_send_json_error(null, 403);
     215    //     }
     216    //     if (isset($_GET['rl_survey_dismissed'])) {
     217    //         delete_user_meta($user_id, 'rl_survey_dismissed');
     218    //         update_user_meta($user_id, 'rl_survey_dismissed', intval($_GET['rl_survey_dismissed']), false);
     219    //     }
     220    //     if ($forceTime) {
     221    //         delete_user_meta($user_id, 'rl_survey_dismissed');
     222    //         update_user_meta($user_id, 'rl_survey_dismissed', $forceTime, false);
     223    //     }
     224    // }
    225225    public static function admin_init()
    226226    {
    227         if (isset($_GET['rl_survey_dismissed'])) {
    228             self::survey_dismissed(0);
    229         }
     227        // if (isset($_GET['rl_survey_dismissed'])) {
     228        //     self::survey_dismissed(0);
     229        // }
    230230    }
    231231
  • rabbit-loader/trunk/rabbit-loader.php

    r3030444 r3039136  
    77 * Author URI:   https://rabbitloader.com/
    88 * Description: RabbitLoader can improve Google PageSpeed score and get you 100 out of 100 by improving the page load time to just a few milliseconds. It improves the Core Web Vitals score for your pages and boost PageSpeed score to help better search rankings and best the experience for your end user.
    9  * Version: 2.19.16
     9 * Version: 2.19.17
    1010 * Text Domain: rabbit-loader
    1111 */
  • rabbit-loader/trunk/readme.txt

    r3030444 r3039136  
    55Requires at least: 4.7
    66Tested up to: 6.4
    7 Stable tag: 2.19.16
     7Stable tag: 2.19.17
    88Requires PHP: 5.6
    99License: GNU General Public License, version 2
     
    109109**300+ PoP's**
    110110
    111 RabbitLoader uses a [Content Delivery Network](https://rabbitloader.com/origin-savings/ "Content Delivery Network")(CDN) that is distributed throughout the world with over 300 Points of Presence (PoP). This means that no matter where your visitors are located, they can access your website's content in milliseconds, resulting in a faster and smoother experience.
     111RabbitLoader uses a [Content Delivery Network](https://rabbitloader.com/origin-savings/ "Content Delivery Network") (CDN) that is distributed throughout the world with over 300 Points of Presence (PoP). This means that no matter where your visitors are located, they can access your website's content in milliseconds, resulting in a faster and smoother experience.
    112112 
    113113This is essential for websites with a global audience, as it ensures that users from all regions can access your website quickly without experiencing any delays. With a distributed network, RabbitLoader is able to provide a faster response time for website content, which can improve user engagement and reduce bounce rates. The CDN's wide coverage ensures that the content can be delivered to users from the nearest server, resulting in lower latency and faster loading times.
Note: See TracChangeset for help on using the changeset viewer.