ajaxify 8.2.7 → 8.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/ajaxify.js +56 -73
  2. package/ajaxify.min.js +1 -1
  3. package/package.json +35 -35
package/ajaxify.js CHANGED
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Copyright Arvind Gupta; MIT Licensed
7
7
  *
8
- * Version 8.2.7
8
+ * Version 8.2.9
9
9
  */
10
10
 
11
11
  /* INTERFACE: See also https://4nf.org/interface/
@@ -122,11 +122,12 @@ class GetPage { constructor() {
122
122
  let rsp = 0, cb = 0, plus = 0, rt = "", ct = 0, rc = 0, ac = 0,
123
123
 
124
124
  //Regexes for escaping fetched HTML of a whole page - best of Baluptons Ajaxify
125
+ //for html, head and body tag
125
126
  //Makes it possible to pre-fetch an entire page
126
127
  docType = /<\!DOCTYPE[^>]*>/i,
127
- tagso = /<(html|head|link)([\s\>])/gi,
128
+ tagso = /<(html|head)([\s\>])/gi,
128
129
  tagsod = /<(body)([\s\>])/gi,
129
- tagsc = /<\/(html|head|body|link)\>/gi,
130
+ tagsc = /<\/(html|head|body)\>/gi,
130
131
 
131
132
  //Helper strings
132
133
  div12 = '<div class="ajy-$1"$2',
@@ -162,9 +163,9 @@ let _lSel = t => (
162
163
  Ay.pass++,
163
164
  _lEls(t),
164
165
  qa("body > script").forEach(e => (e.classList.contains(inlineclass)) ? prC(e) : false),
165
- Ay.scripts(true),
166
- Ay.scripts("s"),
167
- Ay.scripts("c")
166
+ Ay.scripts.t(),
167
+ Ay.scripts.s(),
168
+ Ay.scripts.c()
168
169
  ),
169
170
  _lPage = (h, pre) => {
170
171
  if (h.iO("#")) h = h.split("#")[0];
@@ -228,66 +229,6 @@ let _lSel = t => (
228
229
  _replD = h => String(h).replace(docType, "").replace(tagso, div12).replace(tagsod, divid12).replace(tagsc, "</div>")
229
230
  }}
230
231
 
231
- // The stateful Scripts plugin
232
- // First parameter "o" is switch:
233
- // i - initailise options
234
- // c - fetch canonical URL
235
- // <object> - handle one inline script
236
- // otherwise - delta loading
237
- class Scripts { constructor() {
238
- let S = false, txt = 0;
239
- Ay.h.inlinehints = new Hints(Ay.s.inlinehints);
240
- Ay.h.inlineskip = new Hints(Ay.s.inlineskip);
241
-
242
- this.a = function (o) {
243
- if (o === "i") {
244
- if(!S) S = {};
245
- return true;
246
- }
247
-
248
- if (o === "s") return _allstyle(S.y);
249
-
250
- if (o === "1") {
251
- Ay.detScripts.d(S);
252
- return _addScripts(S);
253
- }
254
-
255
- if (o === "c") return Ay.s.canonical && S.can ? S.can.getAttribute("href") : false;
256
- if (o === "d") return Ay.detScripts.d(S);
257
- if (o && typeof o == "object") return _onetxt(o);
258
-
259
- if (Ay.scripts("d")) return;
260
- _addScripts(S);
261
- };
262
- let _allstyle = S =>
263
- !Ay.s.style || !S || (
264
- qa("style", qs("head")).forEach(e => prC(e)), //delete old style tags
265
- S.forEach(el => {
266
- let st = Ay.parse('<style>' + el.textContent + '</style>');
267
- _copyAttributes(st, el);
268
- qha(st); //append to the head
269
- })
270
- ),
271
- _onetxt = S =>
272
- (!(txt = S.textContent).iO(").ajaxify(") && (!txt.iO("new Ajaxify(")) &&
273
- ((Ay.s.inline && !Ay.h.inlineskip.find(txt)) || S.classList.contains("ajaxy") ||
274
- Ay.h.inlinehints.find(txt))
275
- ) && _addtxt(S),
276
- _addtxt = S => {
277
- if(!txt || !txt.length) return;
278
- if(Ay.s.inlineappend || (S.getAttribute("type") && !S.getAttribute("type").iO("text/javascript"))) try { return _apptxt(S); } catch (e) { }
279
-
280
- try { eval(txt); } catch (e1) {
281
- lg("Error in inline script : " + txt + "\nError code : " + e1);
282
- }
283
- },
284
- _apptxt = S => { let sc = dcE("script"); _copyAttributes(sc, S); sc.classList.add(inlineclass);
285
- try {sc.appendChild(document.createTextNode(S.textContent))} catch(e) {sc.text = S.textContent};
286
- return qs("body").appendChild(sc);
287
- },
288
- _addScripts = S => (Ay.addAll.a(S.c, "href"), Ay.addAll.a(S.j, "src"))
289
- }}
290
-
291
232
  // The Rq plugin - stands for request
292
233
  // Stores all kinds of and manages data concerning the pending request
293
234
  // Simplifies the Pronto plugin by managing request data separately, instead of passing it around...
@@ -605,7 +546,7 @@ let run = () => {
605
546
  Ay.pronto = new Pronto().a;
606
547
  if (load()) {
607
548
  Ay.pronto(Ay.s.elements, "i");
608
- if (Ay.s.deltas) Ay.scripts("1");
549
+ if (Ay.s.deltas) Ay.scripts.o();
609
550
  }
610
551
  },
611
552
  load = () => {
@@ -617,8 +558,7 @@ let run = () => {
617
558
  lg("Ajaxify loaded..."); //verbosity option steers, whether this initialisation message is output
618
559
 
619
560
  if (Ay.s.intevents) Ay.intevents(); // intercept events
620
- Ay.scripts = new Scripts().a;
621
- Ay.scripts("i");
561
+ Ay.scripts = new Scrpts(); Ay.h.inlinehints = new Hints(Ay.s.inlinehints); Ay.h.inlineskip = new Hints(Ay.s.inlineskip);
622
562
  Ay.cache = new Cache();
623
563
  Ay.memory = new Memory(); Ay.h.memoryoff = new Hints(Ay.s.memoryoff);
624
564
  Ay.fn = Ay.getPage = new GetPage().a;
@@ -662,7 +602,7 @@ class Pages {
662
602
  class DetScripts {
663
603
  d(s) {
664
604
  if(!(this.h = Ay.pass ? Ay.fn("head") : qs("head"))) return true; //If pass is 0 -> fetch head from DOM, otherwise from target page
665
- this.lk = qa(Ay.pass ? ".ajy-link" : "link", this.h); //If pass is 0 -> fetch links from DOM, otherwise from target page
605
+ this.lk = qa("link", this.h); // Fetch links from DOM
666
606
  s.j = Ay.pass ? Ay.fn("script") : qa("script"); //If pass is 0 -> fetch JSs from DOM, otherwise from target page
667
607
  s.c = this.x("stylesheet"); //Extract stylesheets
668
608
  s.y = qa("style", this.h); //Extract style tags
@@ -743,14 +683,16 @@ class AddAll { constructor() { this.CSS = []; this.JS = []; }
743
683
  return;
744
684
  }
745
685
 
746
- if(pk != "href" && !t.classList.contains("no-ajaxy")) Ay.scripts(t); //Inline JS script? -> inject into DOM
686
+ if(pk != "href" && !t.classList.contains("no-ajaxy")) Ay.scripts.i(t); //Inline JS script? -> inject into DOM
747
687
  });
748
688
  }
749
- gA(e){ return this.u = e.getAttribute(this.PK) }
689
+ // Fetch full url of link or script tag
690
+ gA(e){ return this.u = e[this.PK]; }
691
+
750
692
  iScript(S){
751
693
  this.gA(S);
752
694
  if(this.PK == "href") return qha(Ay.parse('<link rel="stylesheet" type="text/css" href="*" />'.replace("*", this.u)));
753
- if(!this.u) return Ay.scripts(S);
695
+ if(!this.u) return Ay.scripts.i(S);
754
696
 
755
697
  var sc = dcE("script");
756
698
  sc.async = Ay.s.asyncdef;
@@ -759,3 +701,44 @@ class AddAll { constructor() { this.CSS = []; this.JS = []; }
759
701
  }
760
702
  removeScript(){ qa((this.PK == "href" ? 'link[href*="!"]' : 'script[src*="!"]').replace("!", this.u)).forEach(e => prC(e)) }
761
703
  }
704
+
705
+ // The stateful Scrpts plugin
706
+ class Scrpts { constructor(){ this.S = {} }
707
+ s(){ this.allstyle(this.S.y) } //all style tags
708
+ o(){ this.d(); this.a() } //on initial load
709
+ c(){ return Ay.s.canonical && this.S.can ? this.S.can.getAttribute("href") : false } //canonical href
710
+ d(){ return Ay.detScripts.d(this.S) } //detach scripts - returning true indicates an error
711
+ i(o){ this.one(o) } //inline script -> o is scripts object
712
+ t(){ this.d() || this.a() } //former "true" / default method - detach and delta load
713
+ a(){ this.delta(this.S) } //delta loading core
714
+
715
+ allstyle(S){
716
+ !Ay.s.style || !S || (
717
+ qa("style", qs("head")).forEach(e => prC(e)),
718
+ S.forEach(el => {
719
+ let st = Ay.parse('<style>' + el.textContent + '</style>');
720
+ _copyAttributes(st, el);
721
+ qha(st); //append to the head
722
+ })
723
+ )
724
+ }
725
+ one(S){
726
+ (!(this.x = S.textContent).iO("new Ajaxify(") &&
727
+ ((Ay.s.inline && !Ay.h.inlineskip.find(this.x)) || S.classList.contains("ajaxy") ||
728
+ Ay.h.inlinehints.find(this.x))
729
+ ) && this.add(S)
730
+ }
731
+ add(S){
732
+ if(!this.x || !this.x.length) return;
733
+ if(Ay.s.inlineappend || (S.getAttribute("type") && !S.getAttribute("type").iO("text/javascript"))) try { return this.app(S); } catch (e) { }
734
+
735
+ try { eval(this.x) } catch (e1) {
736
+ lg("Error in inline script : " + this.x + "\nError code : " + e1);
737
+ }
738
+ }
739
+ app(S){ let sc = dcE("script"); _copyAttributes(sc, S); sc.classList.add(inlineclass);
740
+ try {sc.appendChild(document.createTextNode(this.x))} catch(e) {sc.text = this.x}
741
+ return qs("body").appendChild(sc);
742
+ }
743
+ delta(S){ Ay.addAll.a(S.c, "href"), Ay.addAll.a(S.j, "src") }
744
+ }
package/ajaxify.min.js CHANGED
@@ -1 +1 @@
1
- let Ay;function _won(t,e,r=!1){!1===r&&(r={once:!0}),setTimeout(()=>window.addEventListener(t,e,r))}let rootUrl=location.origin,inlineclass="ajy-inline",bdy,qa=(t,e=document)=>e.querySelectorAll(t),qs=(t,e=document)=>e.querySelector(t),qha=t=>qs("head").appendChild(t),prC=t=>t.parentNode.removeChild(t),dcE=t=>document.createElement(t),_copyAttributes=(t,e,r)=>{r&&[...t.attributes].forEach(e=>t.removeAttribute(e.name)),[...e.attributes].forEach(e=>"ajy-body"==e.nodeValue||t.setAttribute(e.nodeName,e.nodeValue))};class Ajaxify{constructor(options){function _on(t,e,r,s=document){s.addEventListener(t,function(t){for(var s=t.target;s&&s!=this;s=s.parentNode)if(s.matches(e)){r(s,t);break}},!!t.iO("mo"))}String.prototype.iO=function(t){return this.toString().indexOf(t)+1},Ay=this,Ay.s={elements:"body",selector:"a:not(.no-ajaxy)",forms:"form:not(.no-ajaxy)",canonical:!1,refresh:!1,requestDelay:0,scrolltop:"s",scrollDelay:!1,bodyClasses:!0,deltas:!0,asyncdef:!0,alwayshints:!1,inline:!0,inlinehints:!1,inlineskip:"adsbygoogle",inlineappend:!0,intevents:!0,style:!0,prefetchoff:!1,verbosity:0,memoryoff:!1,cb:0,pluginon:!0,passCount:!1},Ay.pass=0,Ay.currentURL="",Ay.h={},Ay.parse=(t,e)=>((e=dcE("div")).insertAdjacentHTML("afterbegin",t),e.firstElementChild),Ay.trigger=(t,e)=>{let r=document.createEvent("HTMLEvents");r.initEvent("pronto."+t,!0,!1),r.data=e||Ay.Rq("e"),window.dispatchEvent(r)},Ay.internal=t=>!!t&&("object"==typeof t&&(t=t.href),""===t||t.substring(0,rootUrl.length)===rootUrl||!t.iO(":")),Ay.intevents=()=>{let t=function(t,e,r=!1){(this===document||this===window)&&"DOMContentLoaded"==t?setTimeout(e):this.ael(t,e,r)};EventTarget.prototype.ael=EventTarget.prototype.addEventListener,EventTarget.prototype.addEventListener=t};class Hints{constructor(t){let e=this;e.list="string"==typeof t&&t.length>0&&t.split(", "),e.find=t=>!!t&&!!e.list&&e.list.some(e=>t.iO(e))}}function lg(t){Ay.s.verbosity&&console&&console.log(t)}class GetPage{constructor(){let t=0,e=0,r=0,s="",i=0,n=0,a=0,y=/<\!DOCTYPE[^>]*>/i,o=/<(html|head|link)([\s\>])/gi,l=/<(body)([\s\>])/gi,c=/<\/(html|head|body|link)\>/gi,A='<div class="ajy-$1"$2',h='<div id="ajy-$1"$2';this.a=function(i,y,o){if(!i)return Ay.cache.g();if(i.iO("/")){if(e=y,r==i)return;return p(i)}if("+"===i)return r=y,e=o,p(y,!0);if("a"===i){n>0&&(m(),a.abort());return}return"s"===i?(n?1:0)+s:"-"===i?f(y):"x"===i?t:Ay.cache.g()?"body"===i?qs("#ajy-"+i,Ay.cache.g()):"script"===i?qa(i,Ay.cache.g()):qs("title"===i?i:".ajy-"+i,Ay.cache.g()):void 0};let f=t=>(Ay.pass++,u(t),qa("body > script").forEach(t=>!!t.classList.contains(inlineclass)&&prC(t)),Ay.scripts(!0),Ay.scripts("s"),Ay.scripts("c")),p=(t,s)=>(t.iO("#")&&(t=t.split("#")[0]),Ay.Rq("is")||!Ay.cache.l(t))?$(t,s):(r=0,e)?e():void 0,d=(t,e)=>{if(e){var r=e.cloneNode(!0);qa("script",r).forEach(t=>prC(t)),_copyAttributes(t,r,!0),t.innerHTML=r.innerHTML}},u=t=>Ay.cache.g()&&!g(t)&&t.forEach(function(t){d(t,qs("#"+t.getAttribute("id"),Ay.cache.g()))}),g=t=>"body"==t[0].tagName.toLowerCase()&&(d(bdy,qs("#ajy-body",Ay.cache.g())),1),$=(e,r)=>{var i=Ay.Rq("is");s=r?"p":"c",a=new AbortController,n++,fetch(e,{method:i?"POST":"GET",cache:"default",mode:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest"},body:i?Ay.Rq("d"):null,signal:a.signal}).then(s=>{if(!s.ok||!b(s)){r||(location.href=e);return}return t=s,s.text()}).then(r=>{if(m(1),r)return t.responseText=r,q(e,r)}).catch(t=>{if("AbortError"!==t.name)try{return Ay.trigger("error",t),lg("Response text : "+t.message),q(e,t.message,t)}catch(r){}}).finally(()=>n--)},m=t=>(r=0,t?0:e=0),q=(t,r,s)=>Ay.cache.s(Ay.parse(v(r)))&&(Ay.pages.p([t,Ay.cache.g()]),1)&&e&&e(s),b=t=>(i=t.headers.get("content-type"))&&(i.iO("html")||i.iO("form-")),v=t=>dcE("html").innerHTML=R(t).trim(),R=t=>String(t).replace(y,"").replace(o,A).replace(l,h).replace(c,"</div>")}}class Scripts{constructor(){let S=!1,txt=0;Ay.h.inlinehints=new Hints(Ay.s.inlinehints),Ay.h.inlineskip=new Hints(Ay.s.inlineskip),this.a=function(t){return"i"===t?(S||(S={}),!0):"s"===t?_allstyle(S.y):"1"===t?(Ay.detScripts.d(S),_addScripts(S)):"c"===t?!!Ay.s.canonical&&!!S.can&&S.can.getAttribute("href"):"d"===t?Ay.detScripts.d(S):t&&"object"==typeof t?_onetxt(t):void(Ay.scripts("d")||_addScripts(S))};let _allstyle=t=>!Ay.s.style||!t||(qa("style",qs("head")).forEach(t=>prC(t)),t.forEach(t=>{let e=Ay.parse("<style>"+t.textContent+"</style>");_copyAttributes(e,t),qha(e)})),_onetxt=t=>!(txt=t.textContent).iO(").ajaxify(")&&!txt.iO("new Ajaxify(")&&(Ay.s.inline&&!Ay.h.inlineskip.find(txt)||t.classList.contains("ajaxy")||Ay.h.inlinehints.find(txt))&&_addtxt(t),_addtxt=S=>{if(txt&&txt.length){if(Ay.s.inlineappend||S.getAttribute("type")&&!S.getAttribute("type").iO("text/javascript"))try{return _apptxt(S)}catch(e){}try{eval(txt)}catch(e1){lg("Error in inline script : "+txt+"\nError code : "+e1)}}},_apptxt=t=>{let e=dcE("script");_copyAttributes(e,t),e.classList.add(inlineclass);try{e.appendChild(document.createTextNode(t.textContent))}catch(r){e.text=t.textContent}return qs("body").appendChild(e)},_addScripts=t=>(Ay.addAll.a(t.c,"href"),Ay.addAll.a(t.j,"src"))}}class RQ{constructor(){let t=0,e=0,r=0,s=0,i=0,n=0,a=!1;this.a=function(o,l,c){if("="===o)return l?n===Ay.currentURL||n===a:n===Ay.currentURL;if("!"===o)return a=n;if("?"===o){let A=Ay.fn("s");return A.iO("0")||l||Ay.fn("a"),("1c"!==A||!l)&&("1p"===A&&l&&Ay.s.memoryoff&&Ay.fn("a"),!0)}if("v"===o){if(!l||(y(l,c),!Ay.internal(n)))return!1;o="i"}return"i"===o?(t=!1,e=null,r=!0,s=!1,n):"h"===o?(l&&("string"==typeof l&&(i=0),n=l.href?l.href:l),n):"e"===o?(l&&y(l,c),i||n):"p"===o?(void 0!==l&&(r=l),r):"is"===o?(void 0!==l&&(t=l),t):"d"===o?(l&&(e=l),e):"C"===o?(void 0!==l&&(s=l),s):"c"===o?!s||s===l||l.iO("#")||l.iO("?")?l:s:void 0};let y=(t,e)=>n="string"!=typeof(i=t)?i.currentTarget&&i.currentTarget.href||e&&e.href||i.currentTarget.action||i.originalEvent.state.url:i}}class Frms{constructor(){let t=0,e=0;this.a=function(i,n){Ay.s.forms&&i&&("d"===i&&(e=n),"a"===i&&e.forEach(e=>{Array.prototype.filter.call(qa(Ay.s.forms,e),function(t){let e=t.getAttribute("action");return Ay.internal(e&&e.length>0?e:Ay.currentURL)}).forEach(e=>{e.addEventListener("submit",e=>{t=e.target,n=r();var i="get",a=t.getAttribute("method");a.length>0&&"post"==a.toLowerCase()&&(i="post");var y,o=t.getAttribute("action");return y=o&&o.length>0?o:Ay.currentURL,Ay.Rq("v",e),"get"==i?y=s(y,n):(Ay.Rq("is",!0),Ay.Rq("d",n)),Ay.trigger("submit",y),Ay.pronto(0,{href:y}),e.preventDefault(),!1})})}))};let r=()=>{let e=new FormData(t),r=qs("input[name][type=submit]",t);return r&&e.append(r.getAttribute("name"),r.value),e},s=(t,e)=>{let r="";for(var[s,i]of(t.iO("?")&&(t=t.substring(0,t.iO("?"))),e.entries()))r+=`${s}=${encodeURIComponent(i)}&`;return`${t}?${r.slice(0,-1)}`}}}class Pronto{constructor(){let t=0,e=0,r=150,s=0;Ay.h.prefetchoff=new Hints(Ay.s.prefetchoff),this.a=function(e,r){if(r){if("i"===r)return bdy=document.body,e.length||(e="body"),t=qa(e),Ay.frms=new Frms().a,Ay.s.idleTime&&(Ay.slides=new classSlides(Ay).a),Ay.scrolly=new Scrolly,(Ay.offsets=new Offsets).f(),Ay.hApi=new HApi,i(),e;if("object"==typeof r){Ay.Rq("h",r),c();return}r.iO("/")&&(Ay.Rq("h",r),c(!0))}};let i=()=>{Ay.hApi.r(window.location.href),window.addEventListener("popstate",h),!0!==Ay.s.prefetchoff&&(_on("mouseenter",Ay.s.selector,n),_on("mouseleave",Ay.s.selector,a),_on("touchstart",Ay.s.selector,y)),_on("click",Ay.s.selector,l,bdy),Ay.frms("d",qa("body")),Ay.frms("a"),Ay.frms("d",t),Ay.s.idleTime&&Ay.slides("i")},n=(t,e)=>(a(),s=setTimeout(()=>y(t,e),r)),a=()=>clearTimeout(s),y=(t,e)=>{if(!0!==Ay.s.prefetchoff&&Ay.Rq("?",!0)){var r=Ay.Rq("v",e,t);Ay.Rq("=",!0)||!r||Ay.h.prefetchoff.find(r)||Ay.fn("+",r,()=>!1)}},o=t=>(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()),l=(t,e,r)=>{if(Ay.Rq("?")){var s=Ay.Rq("v",e,t);if(!(!s||d(t))){if("#"===s.substr(-1))return!0;if(u())return Ay.hApi.r(s),!0;Ay.scrolly.p(),o(e),Ay.Rq("=")&&Ay.hApi.r(),(Ay.s.refresh||!Ay.Rq("="))&&c(r)}}},c=t=>{Ay.Rq("!"),t&&Ay.Rq("p",!1),Ay.trigger("request"),Ay.fn(Ay.Rq("h"),t=>{t&&(lg("Error in _request : "+t),Ay.trigger("error",t)),A()})},A=()=>{Ay.trigger("beforeload"),Ay.s.requestDelay?(e&&clearTimeout(e),e=setTimeout(f,Ay.s.requestDelay)):f()},h=t=>{var e=window.location.href;Ay.Rq("i"),Ay.Rq("h",e),Ay.Rq("p",!1),Ay.scrolly.p(),e&&e!==Ay.currentURL&&(Ay.trigger("request"),Ay.fn(e,A))},f=()=>{Ay.trigger("load"),Ay.s.bodyClasses&&_copyAttributes(bdy,Ay.fn("body"),!0);var e,r=Ay.Rq("h");r=Ay.Rq("c",r),Ay.Rq("p")?Ay.hApi.p(r):Ay.hApi.r(r),(e=Ay.fn("title"))&&(qs("title").innerHTML=e.innerHTML),Ay.Rq("C",Ay.fn("-",t)),Ay.frms("a"),Ay.scrolly.l(),p(r),Ay.trigger("render"),Ay.s.passCount&&(qs("#"+Ay.s.passCount).innerHTML="Pass: "+Ay.pass),Ay.s.cb&&Ay.s.cb()},p=t=>{t="/"+t.replace(rootUrl,""),void 0!==window.ga?window.ga("send","pageview",t):void 0!==window._gaq&&window._gaq.push(["_trackPageview",t])},d=t=>{var e=Ay.Rq("h"),r=Ay.Rq("e"),s=r.currentTarget.target||t.target;return r.which>1||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey||"_blank"===s||e.iO("wp-login")||e.iO("wp-admin")},u=()=>{var t=Ay.Rq("e");return t.hash&&t.href.replace(t.hash,"")===window.location.href.replace(location.hash,"")||t.href===window.location.href+"#"}}}Ay.init=()=>{let t=options;return t&&"string"==typeof t?Ay.pronto(0,t):("complete"!==document.readyState&&("loading"===document.readyState||document.documentElement.doScroll)?document.addEventListener("DOMContentLoaded",run):run(),Ay)};let run=()=>{Ay.s=Object.assign(Ay.s,options),(Ay.pages=new Pages).f(),Ay.pronto=new Pronto().a,load()&&(Ay.pronto(Ay.s.elements,"i"),Ay.s.deltas&&Ay.scripts("1"))},load=()=>window.history&&window.history.pushState&&window.history.replaceState&&Ay.s.pluginon?(lg("Ajaxify loaded..."),Ay.s.intevents&&Ay.intevents(),Ay.scripts=new Scripts().a,Ay.scripts("i"),Ay.cache=new Cache,Ay.memory=new Memory,Ay.h.memoryoff=new Hints(Ay.s.memoryoff),Ay.fn=Ay.getPage=new GetPage().a,Ay.detScripts=new DetScripts,Ay.addAll=new AddAll,Ay.h.alwayshints=new Hints(Ay.s.alwayshints),Ay.Rq=new RQ().a,!0):(lg("Gracefully exiting..."),!1);Ay.init()}}class Cache{g(){return this.d}s(t){return this.d=t}l(t){let e=Ay.memory.l(t);return this.s(!1===e?e:Ay.pages.l(e))}}class Memory{l(t){return!!t&&!0!==Ay.s.memoryoff&&(!1===Ay.s.memoryoff?t:!Ay.h.memoryoff.find(t)&&t)}}class Pages{f(){this.d=[]}l(t){if(this.P(t))return this.d[this.i][1]}p(t){this.P(t[0])?this.d[this.i]=t:this.d.push(t)}P(t){return(this.i=this.d.findIndex(e=>e[0]==t))+1}}class DetScripts{d(t){if(!(this.h=Ay.pass?Ay.fn("head"):qs("head")))return!0;this.lk=qa(Ay.pass?".ajy-link":"link",this.h),t.j=Ay.pass?Ay.fn("script"):qa("script"),t.c=this.x("stylesheet"),t.y=qa("style",this.h),t.can=this.x("canonical")}x(t){return Array.prototype.filter.call(this.lk,e=>e.getAttribute("rel").iO(t))}}class Offsets{f(){this.d=[]}l(t){return t.iO("?")&&(t=t.split("?")[0]),this.O(t)?this.d[this.i][1]:0}p(t){let e=t.iO("?")?t.split("?")[0]:t,r=e.iO("#")?e.split("#")[0]:e,s=[r,document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop];this.O(r)?this.d[this.i]=s:this.d.push(s)}O(t){return(this.i=this.d.findIndex(e=>e[0]==t))+1}}class Scrolly{constructor(){"scrollRestoration"in history&&(history.scrollRestoration="manual")}p(){"s"==Ay.s.scrolltop&&Ay.offsets.p(Ay.currentURL)}l(){let t=Ay.currentURL;if(t.iO("#")&&t.iO("#")<t.length-1){let e=qs("#"+t.split("#")[1]);if(!e)return;let r=e.getBoundingClientRect();return this.s(r.top+window.pageYOffset-document.documentElement.clientTop)}"s"==Ay.s.scrolltop?this.s(Ay.offsets.l(t)):Ay.s.scrolltop&&this.s(0)}s(t){!1===Ay.s.scrollDelay?window.scrollTo(0,t):setTimeout(()=>window.scrollTo(0,t),Ay.s.scrollDelay)}}class HApi{r(t){let e=this.u(t);history.replaceState({url:e},"state-"+e,e)}p(t){let e=this.u(t);e!==window.location.href&&history.pushState({url:e},"state-"+e,e)}u(t){return t&&(Ay.currentURL=t),Ay.currentURL}}class AddAll{constructor(){this.CSS=[],this.JS=[]}a(t,e){if(t.length&&"n"!==Ay.s.deltas){if(this.PK=e,!Ay.s.deltas)return t.forEach(t=>this.iScript(t));this.O="href"==e?this.CSS:this.JS,t.forEach(t=>{let r=this.gA(t);if(!Ay.pass)return r&&this.O.push(r);if("always"==t.getAttribute("data-class")||Ay.h.alwayshints.find(r)){this.removeScript(),this.iScript(t);return}if(r){this.O.some(t=>t==r)||(this.O.push(r),this.iScript(t));return}"href"==e||t.classList.contains("no-ajaxy")||Ay.scripts(t)})}}gA(t){return this.u=t.getAttribute(this.PK)}iScript(t){if(this.gA(t),"href"==this.PK)return qha(Ay.parse('<link rel="stylesheet" type="text/css" href="*" />'.replace("*",this.u)));if(!this.u)return Ay.scripts(t);var e=dcE("script");e.async=Ay.s.asyncdef,_copyAttributes(e,t),qha(e)}removeScript(){qa(("href"==this.PK?'link[href*="!"]':'script[src*="!"]').replace("!",this.u)).forEach(t=>prC(t))}}
1
+ let Ay;function _won(t,e,s=!1){!1===s&&(s={once:!0}),setTimeout(()=>window.addEventListener(t,e,s))}let rootUrl=location.origin,inlineclass="ajy-inline",bdy,qa=(t,e=document)=>e.querySelectorAll(t),qs=(t,e=document)=>e.querySelector(t),qha=t=>qs("head").appendChild(t),prC=t=>t.parentNode.removeChild(t),dcE=t=>document.createElement(t),_copyAttributes=(t,e,s)=>{s&&[...t.attributes].forEach(e=>t.removeAttribute(e.name)),[...e.attributes].forEach(e=>"ajy-body"==e.nodeValue||t.setAttribute(e.nodeName,e.nodeValue))};class Ajaxify{constructor(t){function e(t,e,s,r=document){r.addEventListener(t,function(t){for(var r=t.target;r&&r!=this;r=r.parentNode)if(r.matches(e)){s(r,t);break}},!!t.iO("mo"))}String.prototype.iO=function(t){return this.toString().indexOf(t)+1},Ay=this,Ay.s={elements:"body",selector:"a:not(.no-ajaxy)",forms:"form:not(.no-ajaxy)",canonical:!1,refresh:!1,requestDelay:0,scrolltop:"s",scrollDelay:!1,bodyClasses:!0,deltas:!0,asyncdef:!0,alwayshints:!1,inline:!0,inlinehints:!1,inlineskip:"adsbygoogle",inlineappend:!0,intevents:!0,style:!0,prefetchoff:!1,verbosity:0,memoryoff:!1,cb:0,pluginon:!0,passCount:!1},Ay.pass=0,Ay.currentURL="",Ay.h={},Ay.parse=(t,e)=>((e=dcE("div")).insertAdjacentHTML("afterbegin",t),e.firstElementChild),Ay.trigger=(t,e)=>{let s=document.createEvent("HTMLEvents");s.initEvent("pronto."+t,!0,!1),s.data=e||Ay.Rq("e"),window.dispatchEvent(s)},Ay.internal=t=>!!t&&("object"==typeof t&&(t=t.href),""===t||t.substring(0,rootUrl.length)===rootUrl||!t.iO(":")),Ay.intevents=()=>{let t=function(t,e,s=!1){(this===document||this===window)&&"DOMContentLoaded"==t?setTimeout(e):this.ael(t,e,s)};EventTarget.prototype.ael=EventTarget.prototype.addEventListener,EventTarget.prototype.addEventListener=t};class s{constructor(t){let e=this;e.list="string"==typeof t&&t.length>0&&t.split(", "),e.find=t=>!!t&&!!e.list&&e.list.some(e=>t.iO(e))}}function r(t){Ay.s.verbosity&&console&&console.log(t)}class i{constructor(){let t=0,e=0,s=0,i="",n=0,a=0,y=0,o=/<\!DOCTYPE[^>]*>/i,l=/<(html|head)([\s\>])/gi,c=/<(body)([\s\>])/gi,h=/<\/(html|head|body)\>/gi,A='<div class="ajy-$1"$2',p='<div id="ajy-$1"$2';this.a=function(r,n,o){if(!r)return Ay.cache.g();if(r.iO("/")){if(e=n,s==r)return;return d(r)}if("+"===r)return s=n,e=o,d(n,!0);if("a"===r){a>0&&(q(),y.abort());return}return"s"===r?(a?1:0)+i:"-"===r?f(n):"x"===r?t:Ay.cache.g()?"body"===r?qs("#ajy-"+r,Ay.cache.g()):"script"===r?qa(r,Ay.cache.g()):qs("title"===r?r:".ajy-"+r,Ay.cache.g()):void 0};let f=t=>(Ay.pass++,g(t),qa("body > script").forEach(t=>!!t.classList.contains(inlineclass)&&prC(t)),Ay.scripts.t(),Ay.scripts.s(),Ay.scripts.c()),d=(t,r)=>(t.iO("#")&&(t=t.split("#")[0]),Ay.Rq("is")||!Ay.cache.l(t))?m(t,r):(s=0,e)?e():void 0,u=(t,e)=>{if(e){var s=e.cloneNode(!0);qa("script",s).forEach(t=>prC(t)),_copyAttributes(t,s,!0),t.innerHTML=s.innerHTML}},g=t=>Ay.cache.g()&&!$(t)&&t.forEach(function(t){u(t,qs("#"+t.getAttribute("id"),Ay.cache.g()))}),$=t=>"body"==t[0].tagName.toLowerCase()&&(u(bdy,qs("#ajy-body",Ay.cache.g())),1),m=(e,s)=>{var n=Ay.Rq("is");i=s?"p":"c",y=new AbortController,a++,fetch(e,{method:n?"POST":"GET",cache:"default",mode:"same-origin",headers:{"X-Requested-With":"XMLHttpRequest"},body:n?Ay.Rq("d"):null,signal:y.signal}).then(r=>{if(!r.ok||!v(r)){s||(location.href=e);return}return t=r,r.text()}).then(s=>{if(q(1),s)return t.responseText=s,b(e,s)}).catch(t=>{if("AbortError"!==t.name)try{return Ay.trigger("error",t),r("Response text : "+t.message),b(e,t.message,t)}catch(s){}}).finally(()=>a--)},q=t=>(s=0,t?0:e=0),b=(t,s,r)=>Ay.cache.s(Ay.parse(R(s)))&&(Ay.pages.p([t,Ay.cache.g()]),1)&&e&&e(r),v=t=>(n=t.headers.get("content-type"))&&(n.iO("html")||n.iO("form-")),R=t=>dcE("html").innerHTML=_(t).trim(),_=t=>String(t).replace(o,"").replace(l,A).replace(c,p).replace(h,"</div>")}}class n{constructor(){let t=0,e=0,s=0,r=0,i=0,n=0,a=!1;this.a=function(o,l,c){if("="===o)return l?n===Ay.currentURL||n===a:n===Ay.currentURL;if("!"===o)return a=n;if("?"===o){let h=Ay.fn("s");return h.iO("0")||l||Ay.fn("a"),("1c"!==h||!l)&&("1p"===h&&l&&Ay.s.memoryoff&&Ay.fn("a"),!0)}if("v"===o){if(!l||(y(l,c),!Ay.internal(n)))return!1;o="i"}return"i"===o?(t=!1,e=null,s=!0,r=!1,n):"h"===o?(l&&("string"==typeof l&&(i=0),n=l.href?l.href:l),n):"e"===o?(l&&y(l,c),i||n):"p"===o?(void 0!==l&&(s=l),s):"is"===o?(void 0!==l&&(t=l),t):"d"===o?(l&&(e=l),e):"C"===o?(void 0!==l&&(r=l),r):"c"===o?!r||r===l||l.iO("#")||l.iO("?")?l:r:void 0};let y=(t,e)=>n="string"!=typeof(i=t)?i.currentTarget&&i.currentTarget.href||e&&e.href||i.currentTarget.action||i.originalEvent.state.url:i}}class a{constructor(){let t=0,e=0;this.a=function(i,n){Ay.s.forms&&i&&("d"===i&&(e=n),"a"===i&&e.forEach(e=>{Array.prototype.filter.call(qa(Ay.s.forms,e),function(t){let e=t.getAttribute("action");return Ay.internal(e&&e.length>0?e:Ay.currentURL)}).forEach(e=>{e.addEventListener("submit",e=>{t=e.target,n=s();var i="get",a=t.getAttribute("method");a.length>0&&"post"==a.toLowerCase()&&(i="post");var y,o=t.getAttribute("action");return y=o&&o.length>0?o:Ay.currentURL,Ay.Rq("v",e),"get"==i?y=r(y,n):(Ay.Rq("is",!0),Ay.Rq("d",n)),Ay.trigger("submit",y),Ay.pronto(0,{href:y}),e.preventDefault(),!1})})}))};let s=()=>{let e=new FormData(t),s=qs("input[name][type=submit]",t);return s&&e.append(s.getAttribute("name"),s.value),e},r=(t,e)=>{let s="";for(var[r,i]of(t.iO("?")&&(t=t.substring(0,t.iO("?"))),e.entries()))s+=`${r}=${encodeURIComponent(i)}&`;return`${t}?${s.slice(0,-1)}`}}}class y{constructor(){let t=0,i=0,n=150,y=0;Ay.h.prefetchoff=new s(Ay.s.prefetchoff),this.a=function(e,s){if(s){if("i"===s)return bdy=document.body,e.length||(e="body"),t=qa(e),Ay.frms=new a().a,Ay.s.idleTime&&(Ay.slides=new classSlides(Ay).a),Ay.scrolly=new Scrolly,(Ay.offsets=new Offsets).f(),Ay.hApi=new HApi,o(),e;if("object"==typeof s){Ay.Rq("h",s),f();return}s.iO("/")&&(Ay.Rq("h",s),f(!0))}};let o=()=>{Ay.hApi.r(window.location.href),window.addEventListener("popstate",u),!0!==Ay.s.prefetchoff&&(e("mouseenter",Ay.s.selector,l),e("mouseleave",Ay.s.selector,c),e("touchstart",Ay.s.selector,h)),e("click",Ay.s.selector,p,bdy),Ay.frms("d",qa("body")),Ay.frms("a"),Ay.frms("d",t),Ay.s.idleTime&&Ay.slides("i")},l=(t,e)=>(c(),y=setTimeout(()=>h(t,e),n)),c=()=>clearTimeout(y),h=(t,e)=>{if(!0!==Ay.s.prefetchoff&&Ay.Rq("?",!0)){var s=Ay.Rq("v",e,t);Ay.Rq("=",!0)||!s||Ay.h.prefetchoff.find(s)||Ay.fn("+",s,()=>!1)}},A=t=>(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()),p=(t,e,s)=>{if(Ay.Rq("?")){var r=Ay.Rq("v",e,t);if(!(!r||m(t))){if("#"===r.substr(-1))return!0;if(q())return Ay.hApi.r(r),!0;Ay.scrolly.p(),A(e),Ay.Rq("=")&&Ay.hApi.r(),(Ay.s.refresh||!Ay.Rq("="))&&f(s)}}},f=t=>{Ay.Rq("!"),t&&Ay.Rq("p",!1),Ay.trigger("request"),Ay.fn(Ay.Rq("h"),t=>{t&&(r("Error in _request : "+t),Ay.trigger("error",t)),d()})},d=()=>{Ay.trigger("beforeload"),Ay.s.requestDelay?(i&&clearTimeout(i),i=setTimeout(g,Ay.s.requestDelay)):g()},u=t=>{var e=window.location.href;Ay.Rq("i"),Ay.Rq("h",e),Ay.Rq("p",!1),Ay.scrolly.p(),e&&e!==Ay.currentURL&&(Ay.trigger("request"),Ay.fn(e,d))},g=()=>{Ay.trigger("load"),Ay.s.bodyClasses&&_copyAttributes(bdy,Ay.fn("body"),!0);var e,s=Ay.Rq("h");s=Ay.Rq("c",s),Ay.Rq("p")?Ay.hApi.p(s):Ay.hApi.r(s),(e=Ay.fn("title"))&&(qs("title").innerHTML=e.innerHTML),Ay.Rq("C",Ay.fn("-",t)),Ay.frms("a"),Ay.scrolly.l(),$(s),Ay.trigger("render"),Ay.s.passCount&&(qs("#"+Ay.s.passCount).innerHTML="Pass: "+Ay.pass),Ay.s.cb&&Ay.s.cb()},$=t=>{t="/"+t.replace(rootUrl,""),void 0!==window.ga?window.ga("send","pageview",t):void 0!==window._gaq&&window._gaq.push(["_trackPageview",t])},m=t=>{var e=Ay.Rq("h"),s=Ay.Rq("e"),r=s.currentTarget.target||t.target;return s.which>1||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey||"_blank"===r||e.iO("wp-login")||e.iO("wp-admin")},q=()=>{var t=Ay.Rq("e");return t.hash&&t.href.replace(t.hash,"")===window.location.href.replace(location.hash,"")||t.href===window.location.href+"#"}}}Ay.init=()=>{let e=t;return e&&"string"==typeof e?Ay.pronto(0,e):("complete"!==document.readyState&&("loading"===document.readyState||document.documentElement.doScroll)?document.addEventListener("DOMContentLoaded",o):o(),Ay)};let o=()=>{Ay.s=Object.assign(Ay.s,t),(Ay.pages=new Pages).f(),Ay.pronto=new y().a,l()&&(Ay.pronto(Ay.s.elements,"i"),Ay.s.deltas&&Ay.scripts.o())},l=()=>window.history&&window.history.pushState&&window.history.replaceState&&Ay.s.pluginon?(r("Ajaxify loaded..."),Ay.s.intevents&&Ay.intevents(),Ay.scripts=new Scrpts,Ay.h.inlinehints=new s(Ay.s.inlinehints),Ay.h.inlineskip=new s(Ay.s.inlineskip),Ay.cache=new Cache,Ay.memory=new Memory,Ay.h.memoryoff=new s(Ay.s.memoryoff),Ay.fn=Ay.getPage=new i().a,Ay.detScripts=new DetScripts,Ay.addAll=new AddAll,Ay.h.alwayshints=new s(Ay.s.alwayshints),Ay.Rq=new n().a,!0):(r("Gracefully exiting..."),!1);Ay.init()}}class Cache{g(){return this.d}s(t){return this.d=t}l(t){let e=Ay.memory.l(t);return this.s(!1===e?e:Ay.pages.l(e))}}class Memory{l(t){return!!t&&!0!==Ay.s.memoryoff&&(!1===Ay.s.memoryoff?t:!Ay.h.memoryoff.find(t)&&t)}}class Pages{f(){this.d=[]}l(t){if(this.P(t))return this.d[this.i][1]}p(t){this.P(t[0])?this.d[this.i]=t:this.d.push(t)}P(t){return(this.i=this.d.findIndex(e=>e[0]==t))+1}}class DetScripts{d(t){if(!(this.h=Ay.pass?Ay.fn("head"):qs("head")))return!0;this.lk=qa("link",this.h),t.j=Ay.pass?Ay.fn("script"):qa("script"),t.c=this.x("stylesheet"),t.y=qa("style",this.h),t.can=this.x("canonical")}x(t){return Array.prototype.filter.call(this.lk,e=>e.getAttribute("rel").iO(t))}}class Offsets{f(){this.d=[]}l(t){return t.iO("?")&&(t=t.split("?")[0]),this.O(t)?this.d[this.i][1]:0}p(t){let e=t.iO("?")?t.split("?")[0]:t,s=e.iO("#")?e.split("#")[0]:e,r=[s,document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop];this.O(s)?this.d[this.i]=r:this.d.push(r)}O(t){return(this.i=this.d.findIndex(e=>e[0]==t))+1}}class Scrolly{constructor(){"scrollRestoration"in history&&(history.scrollRestoration="manual")}p(){"s"==Ay.s.scrolltop&&Ay.offsets.p(Ay.currentURL)}l(){let t=Ay.currentURL;if(t.iO("#")&&t.iO("#")<t.length-1){let e=qs("#"+t.split("#")[1]);if(!e)return;let s=e.getBoundingClientRect();return this.s(s.top+window.pageYOffset-document.documentElement.clientTop)}"s"==Ay.s.scrolltop?this.s(Ay.offsets.l(t)):Ay.s.scrolltop&&this.s(0)}s(t){!1===Ay.s.scrollDelay?window.scrollTo(0,t):setTimeout(()=>window.scrollTo(0,t),Ay.s.scrollDelay)}}class HApi{r(t){let e=this.u(t);history.replaceState({url:e},"state-"+e,e)}p(t){let e=this.u(t);e!==window.location.href&&history.pushState({url:e},"state-"+e,e)}u(t){return t&&(Ay.currentURL=t),Ay.currentURL}}class AddAll{constructor(){this.CSS=[],this.JS=[]}a(t,e){if(t.length&&"n"!==Ay.s.deltas){if(this.PK=e,!Ay.s.deltas)return t.forEach(t=>this.iScript(t));this.O="href"==e?this.CSS:this.JS,t.forEach(t=>{let s=this.gA(t);if(!Ay.pass)return s&&this.O.push(s);if("always"==t.getAttribute("data-class")||Ay.h.alwayshints.find(s)){this.removeScript(),this.iScript(t);return}if(s){this.O.some(t=>t==s)||(this.O.push(s),this.iScript(t));return}"href"==e||t.classList.contains("no-ajaxy")||Ay.scripts.i(t)})}}gA(t){return this.u=t[this.PK]}iScript(t){if(this.gA(t),"href"==this.PK)return qha(Ay.parse('<link rel="stylesheet" type="text/css" href="*" />'.replace("*",this.u)));if(!this.u)return Ay.scripts.i(t);var e=dcE("script");e.async=Ay.s.asyncdef,_copyAttributes(e,t),qha(e)}removeScript(){qa(("href"==this.PK?'link[href*="!"]':'script[src*="!"]').replace("!",this.u)).forEach(t=>prC(t))}}class Scrpts{constructor(){this.S={}}s(){this.allstyle(this.S.y)}o(){this.d(),this.a()}c(){return!!Ay.s.canonical&&!!this.S.can&&this.S.can.getAttribute("href")}d(){return Ay.detScripts.d(this.S)}i(t){this.one(t)}t(){this.d()||this.a()}a(){this.delta(this.S)}allstyle(t){Ay.s.style&&t&&(qa("style",qs("head")).forEach(t=>prC(t)),t.forEach(t=>{let e=Ay.parse("<style>"+t.textContent+"</style>");_copyAttributes(e,t),qha(e)}))}one(t){!(this.x=t.textContent).iO("new Ajaxify(")&&(Ay.s.inline&&!Ay.h.inlineskip.find(this.x)||t.classList.contains("ajaxy")||Ay.h.inlinehints.find(this.x))&&this.add(t)}add(S){if(this.x&&this.x.length){if(Ay.s.inlineappend||S.getAttribute("type")&&!S.getAttribute("type").iO("text/javascript"))try{return this.app(S)}catch(e){}try{eval(this.x)}catch(e1){lg("Error in inline script : "+this.x+"\nError code : "+e1)}}}app(t){let e=dcE("script");_copyAttributes(e,t),e.classList.add(inlineclass);try{e.appendChild(document.createTextNode(this.x))}catch(s){e.text=this.x}return qs("body").appendChild(e)}delta(t){Ay.addAll.a(t.c,"href"),Ay.addAll.a(t.j,"src")}}
package/package.json CHANGED
@@ -1,35 +1,35 @@
1
- {
2
- "name": "ajaxify",
3
- "version": "8.2.7",
4
- "description": "Ajaxify - The Ajax Plugin",
5
- "main": "ajaxify.min.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/arvgta/ajaxify.git"
12
- },
13
- "keywords": [
14
- "jquery-plugin",
15
- "ecosystem:jquery",
16
- "ui",
17
- "animation",
18
- "jquery",
19
- "effect",
20
- "ajax",
21
- "html5",
22
- "form",
23
- "change",
24
- "content",
25
- "performance",
26
- "speed"
27
-
28
-
29
- ],
30
- "author": "Arvind Gupta",
31
- "license": "MIT",
32
- "bugs": {
33
- "url": "https://github.com/arvgta/ajaxify/issues"
34
- }
35
- }
1
+ {
2
+ "name": "ajaxify",
3
+ "version": "8.2.9",
4
+ "description": "Ajaxify - The Ajax Plugin",
5
+ "main": "ajaxify.min.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/arvgta/ajaxify.git"
12
+ },
13
+ "keywords": [
14
+ "jquery-plugin",
15
+ "ecosystem:jquery",
16
+ "ui",
17
+ "animation",
18
+ "jquery",
19
+ "effect",
20
+ "ajax",
21
+ "html5",
22
+ "form",
23
+ "change",
24
+ "content",
25
+ "performance",
26
+ "speed"
27
+
28
+
29
+ ],
30
+ "author": "Arvind Gupta",
31
+ "license": "MIT",
32
+ "bugs": {
33
+ "url": "https://github.com/arvgta/ajaxify/issues"
34
+ }
35
+ }