Comparing version 3.0.0 to 3.0.1
@@ -19,2 +19,3 @@ import { smitter } from "smitter"; | ||
let parser = new DOMParser(); | ||
let isTransitioning = false; | ||
on(document, "click", (event) => { | ||
@@ -34,2 +35,6 @@ var _a; | ||
} | ||
if (isTransitioning) { | ||
ev.preventDefault(); | ||
return; | ||
} | ||
let url = new URL(href, window.location.origin); | ||
@@ -47,3 +52,7 @@ let transition = (_a = el.getAttribute("a-transition")) != null ? _a : "default"; | ||
}); | ||
on(window, "popstate", () => { | ||
on(window, "popstate", (ev) => { | ||
if (isTransitioning) { | ||
ev.preventDefault(); | ||
return; | ||
} | ||
trigger = "popstate"; | ||
@@ -79,2 +88,3 @@ go(window.location.href, true); | ||
} | ||
isTransitioning = true; | ||
emitter.emit("beforeLeave", { href, from, trigger }); | ||
@@ -105,2 +115,3 @@ if (!popping) { | ||
emitter.emit("afterEnter", { href, from, to, doc, trigger }); | ||
isTransitioning = false; | ||
} | ||
@@ -107,0 +118,0 @@ async function get(href) { |
@@ -1,1 +0,1 @@ | ||
var alio=function(d,v,r){"use strict";function y({transitions:h}){let l=v.smitter(),E={[window.location.pathname]:document.documentElement.outerHTML},c=r.qs("[a-root]");if(!c)throw new Error("[a-root] element missing");let n=r.qs("[a-page]",c);if(!n)throw new Error("[a-page] element missing");let s=null,o="load",b=new DOMParser;return r.on(document,"click",e=>{var w;let t=e,a=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let u=a==null?void 0:a.closest('a[href]:not([target]):not([href*="#"]):not([a-ignore])');if(u){let i=u.getAttribute("href");if(i!=null&&i.length){if(i.toLowerCase().startsWith("http")&&new URL(i).hostname.replace("www.","")!==window.location.hostname)return;let m=new URL(i,window.location.origin),f=(w=u.getAttribute("a-transition"))!=null?w:"default";m.pathname!==window.location.pathname?(o=u,g(m.href,!1,f)):l.emit("samePage"),t.preventDefault()}}}),r.on(window,"popstate",()=>{o="popstate",g(window.location.href,!0)}),requestAnimationFrame(()=>{l.emit("beforeEnter",{href:window.location.href,to:n,doc:document,trigger:o}),h.default.enter({to:n,trigger:o}).then(()=>{l.emit("afterEnter",{href:window.location.href,to:n,doc:document,trigger:o})})}),{on:l.on,go:e=>g(e)};async function g(e,t=!1,a="default"){let{leave:u,enter:w}=h[a],i=null;if(n=r.qs("[a-page]",c),!n)throw new Error("[a-page] element missing");if(l.emit("beforeLeave",{href:e,from:n,trigger:o}),t||window.history.pushState(null,"",e),i=(await Promise.all([q(e),u({from:n,href:e,trigger:o})]))[0],!i)return;l.emit("afterLeave",{href:e,from:n,trigger:o});let m=b.parseFromString(i,"text/html"),f=r.qs("[a-root]",m);if(!f)throw new Error("[a-root] element missing from incoming html");if(s=r.qs("[a-page]",f),!s)throw new Error("[a-page] element missing from incoming html");let p=r.qs("title",m);p&&p.textContent&&(document.title=p.textContent),c.append(s),l.emit("beforeEnter",{href:e,from:n,to:s,doc:m,trigger:o}),await w({from:n,to:s,trigger:o}),l.emit("afterEnter",{href:e,from:n,to:s,doc:m,trigger:o})}async function q(e){let t=E[e];return t||(t=await fetch(e,{credentials:"include"}).then(a=>a.text()),E[e]=t,t)}}return d.create=y,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),d}({},smitter,martha); | ||
var alio=function(g,y,i){"use strict";function b({transitions:v}){let l=y.smitter(),E={[window.location.pathname]:document.documentElement.outerHTML},f=i.qs("[a-root]");if(!f)throw new Error("[a-root] element missing");let n=i.qs("[a-page]",f);if(!n)throw new Error("[a-page] element missing");let m=null,o="load",q=new DOMParser,c=!1;return i.on(document,"click",e=>{var w;let t=e,a=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let u=a==null?void 0:a.closest('a[href]:not([target]):not([href*="#"]):not([a-ignore])');if(u){let r=u.getAttribute("href");if(r!=null&&r.length){if(r.toLowerCase().startsWith("http")&&new URL(r).hostname.replace("www.","")!==window.location.hostname)return;if(c){t.preventDefault();return}let s=new URL(r,window.location.origin),d=(w=u.getAttribute("a-transition"))!=null?w:"default";s.pathname!==window.location.pathname?(o=u,p(s.href,!1,d)):l.emit("samePage"),t.preventDefault()}}}),i.on(window,"popstate",e=>{if(c){e.preventDefault();return}o="popstate",p(window.location.href,!0)}),requestAnimationFrame(()=>{l.emit("beforeEnter",{href:window.location.href,to:n,doc:document,trigger:o}),v.default.enter({to:n,trigger:o}).then(()=>{l.emit("afterEnter",{href:window.location.href,to:n,doc:document,trigger:o})})}),{on:l.on,go:e=>p(e)};async function p(e,t=!1,a="default"){let{leave:u,enter:w}=v[a],r=null;if(n=i.qs("[a-page]",f),!n)throw new Error("[a-page] element missing");if(c=!0,l.emit("beforeLeave",{href:e,from:n,trigger:o}),t||window.history.pushState(null,"",e),r=(await Promise.all([L(e),u({from:n,href:e,trigger:o})]))[0],!r)return;l.emit("afterLeave",{href:e,from:n,trigger:o});let s=q.parseFromString(r,"text/html"),d=i.qs("[a-root]",s);if(!d)throw new Error("[a-root] element missing from incoming html");if(m=i.qs("[a-page]",d),!m)throw new Error("[a-page] element missing from incoming html");let h=i.qs("title",s);h&&h.textContent&&(document.title=h.textContent),f.append(m),l.emit("beforeEnter",{href:e,from:n,to:m,doc:s,trigger:o}),await w({from:n,to:m,trigger:o}),l.emit("afterEnter",{href:e,from:n,to:m,doc:s,trigger:o}),c=!1}async function L(e){let t=E[e];return t||(t=await fetch(e,{credentials:"include"}).then(a=>a.text()),E[e]=t,t)}}return g.create=b,Object.defineProperties(g,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),g}({},smitter,martha); |
@@ -1,1 +0,1 @@ | ||
(function(r,c){typeof exports=="object"&&typeof module!="undefined"?c(exports,require("smitter"),require("martha")):typeof define=="function"&&define.amd?define(["exports","smitter","martha"],c):(r=typeof globalThis!="undefined"?globalThis:r||self,c(r.alio={},r.smitter,r.martha))})(this,function(r,c,a){"use strict";function q({transitions:y}){let l=c.smitter(),E={[window.location.pathname]:document.documentElement.outerHTML},d=a.qs("[a-root]");if(!d)throw new Error("[a-root] element missing");let n=a.qs("[a-page]",d);if(!n)throw new Error("[a-page] element missing");let f=null,o="load",v=new DOMParser;return a.on(document,"click",e=>{var w;let t=e,s=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let u=s==null?void 0:s.closest('a[href]:not([target]):not([href*="#"]):not([a-ignore])');if(u){let i=u.getAttribute("href");if(i!=null&&i.length){if(i.toLowerCase().startsWith("http")&&new URL(i).hostname.replace("www.","")!==window.location.hostname)return;let m=new URL(i,window.location.origin),p=(w=u.getAttribute("a-transition"))!=null?w:"default";m.pathname!==window.location.pathname?(o=u,g(m.href,!1,p)):l.emit("samePage"),t.preventDefault()}}}),a.on(window,"popstate",()=>{o="popstate",g(window.location.href,!0)}),requestAnimationFrame(()=>{l.emit("beforeEnter",{href:window.location.href,to:n,doc:document,trigger:o}),y.default.enter({to:n,trigger:o}).then(()=>{l.emit("afterEnter",{href:window.location.href,to:n,doc:document,trigger:o})})}),{on:l.on,go:e=>g(e)};async function g(e,t=!1,s="default"){let{leave:u,enter:w}=y[s],i=null;if(n=a.qs("[a-page]",d),!n)throw new Error("[a-page] element missing");if(l.emit("beforeLeave",{href:e,from:n,trigger:o}),t||window.history.pushState(null,"",e),i=(await Promise.all([b(e),u({from:n,href:e,trigger:o})]))[0],!i)return;l.emit("afterLeave",{href:e,from:n,trigger:o});let m=v.parseFromString(i,"text/html"),p=a.qs("[a-root]",m);if(!p)throw new Error("[a-root] element missing from incoming html");if(f=a.qs("[a-page]",p),!f)throw new Error("[a-page] element missing from incoming html");let h=a.qs("title",m);h&&h.textContent&&(document.title=h.textContent),d.append(f),l.emit("beforeEnter",{href:e,from:n,to:f,doc:m,trigger:o}),await w({from:n,to:f,trigger:o}),l.emit("afterEnter",{href:e,from:n,to:f,doc:m,trigger:o})}async function b(e){let t=E[e];return t||(t=await fetch(e,{credentials:"include"}).then(s=>s.text()),E[e]=t,t)}}r.create=q,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}); | ||
(function(r,c){typeof exports=="object"&&typeof module!="undefined"?c(exports,require("smitter"),require("martha")):typeof define=="function"&&define.amd?define(["exports","smitter","martha"],c):(r=typeof globalThis!="undefined"?globalThis:r||self,c(r.alio={},r.smitter,r.martha))})(this,function(r,c,a){"use strict";function q({transitions:y}){let l=c.smitter(),E={[window.location.pathname]:document.documentElement.outerHTML},d=a.qs("[a-root]");if(!d)throw new Error("[a-root] element missing");let n=a.qs("[a-page]",d);if(!n)throw new Error("[a-page] element missing");let m=null,o="load",b=new DOMParser,w=!1;return a.on(document,"click",e=>{var p;let t=e,s=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let u=s==null?void 0:s.closest('a[href]:not([target]):not([href*="#"]):not([a-ignore])');if(u){let i=u.getAttribute("href");if(i!=null&&i.length){if(i.toLowerCase().startsWith("http")&&new URL(i).hostname.replace("www.","")!==window.location.hostname)return;if(w){t.preventDefault();return}let f=new URL(i,window.location.origin),g=(p=u.getAttribute("a-transition"))!=null?p:"default";f.pathname!==window.location.pathname?(o=u,h(f.href,!1,g)):l.emit("samePage"),t.preventDefault()}}}),a.on(window,"popstate",e=>{if(w){e.preventDefault();return}o="popstate",h(window.location.href,!0)}),requestAnimationFrame(()=>{l.emit("beforeEnter",{href:window.location.href,to:n,doc:document,trigger:o}),y.default.enter({to:n,trigger:o}).then(()=>{l.emit("afterEnter",{href:window.location.href,to:n,doc:document,trigger:o})})}),{on:l.on,go:e=>h(e)};async function h(e,t=!1,s="default"){let{leave:u,enter:p}=y[s],i=null;if(n=a.qs("[a-page]",d),!n)throw new Error("[a-page] element missing");if(w=!0,l.emit("beforeLeave",{href:e,from:n,trigger:o}),t||window.history.pushState(null,"",e),i=(await Promise.all([x(e),u({from:n,href:e,trigger:o})]))[0],!i)return;l.emit("afterLeave",{href:e,from:n,trigger:o});let f=b.parseFromString(i,"text/html"),g=a.qs("[a-root]",f);if(!g)throw new Error("[a-root] element missing from incoming html");if(m=a.qs("[a-page]",g),!m)throw new Error("[a-page] element missing from incoming html");let v=a.qs("title",f);v&&v.textContent&&(document.title=v.textContent),d.append(m),l.emit("beforeEnter",{href:e,from:n,to:m,doc:f,trigger:o}),await p({from:n,to:m,trigger:o}),l.emit("afterEnter",{href:e,from:n,to:m,doc:f,trigger:o}),w=!1}async function x(e){let t=E[e];return t||(t=await fetch(e,{credentials:"include"}).then(s=>s.text()),E[e]=t,t)}}r.create=q,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}); |
{ | ||
"name": "alio", | ||
"version": "3.0.0", | ||
"version": "3.0.1", | ||
"description": "A lightweight pjax library", | ||
@@ -5,0 +5,0 @@ "files": [ |
13588
200