Comparing version 2.0.3 to 2.0.4
@@ -21,2 +21,3 @@ import { smitter } from "smitter"; | ||
let to = null; | ||
let trigger = "load"; | ||
let abortController = new AbortController(); | ||
@@ -41,2 +42,3 @@ let parser = new DOMParser(); | ||
if (url.pathname !== window.location.pathname) { | ||
trigger = el; | ||
go(url.href, false, transition); | ||
@@ -51,5 +53,21 @@ } else { | ||
on(window, "popstate", () => { | ||
trigger = "popstate"; | ||
go(window.location.href, true); | ||
}); | ||
transitions.default.enter({ to: from }); | ||
requestAnimationFrame(() => { | ||
emitter.emit("beforeEnter", { | ||
href: window.location.href, | ||
to: from, | ||
doc: document, | ||
trigger | ||
}); | ||
transitions.default.enter({ to: from, trigger }).then(() => { | ||
emitter.emit("afterEnter", { | ||
href: window.location.href, | ||
to: from, | ||
doc: document, | ||
trigger | ||
}); | ||
}); | ||
}); | ||
return { | ||
@@ -75,3 +93,3 @@ on: emitter.on, | ||
abortController.abort(); | ||
emitter.emit("leaveCancelled", { href, from }); | ||
emitter.emit("leaveCancelled", { href, from, trigger }); | ||
if (lastHref === href) { | ||
@@ -84,10 +102,10 @@ interruptLeaveWithEnter(href, popping, transition); | ||
enterCancelled = true; | ||
emitter.emit("enterCancelled", { href, from, to }); | ||
emitter.emit("enterCancelled", { href, from, to, trigger }); | ||
} | ||
status = LEAVING; | ||
emitter.emit("beforeLeave", { href, from }); | ||
emitter.emit("beforeLeave", { href, from, trigger }); | ||
if (!popping) { | ||
window.history.pushState(null, "", href); | ||
} | ||
html = (await Promise.all([get(href), leave({ from, href })]))[0]; | ||
html = (await Promise.all([get(href), leave({ from, href, trigger })]))[0]; | ||
if (leaveCancelled) { | ||
@@ -99,3 +117,3 @@ leaveCancelled = false; | ||
return; | ||
emitter.emit("afterLeave", { href, from }); | ||
emitter.emit("afterLeave", { href, from, trigger }); | ||
status = ENTERING; | ||
@@ -116,4 +134,4 @@ let doc = parser.parseFromString(html, "text/html"); | ||
root.append(to); | ||
emitter.emit("beforeEnter", { href, from, to, doc }); | ||
await enter({ from, to }); | ||
emitter.emit("beforeEnter", { href, from, to, doc, trigger }); | ||
await enter({ from, to, trigger }); | ||
if (enterCancelled) { | ||
@@ -123,3 +141,3 @@ enterCancelled = false; | ||
} | ||
emitter.emit("afterEnter", { href, from, to, doc }); | ||
emitter.emit("afterEnter", { href, from, to, doc, trigger }); | ||
status = IDLE; | ||
@@ -142,3 +160,3 @@ lastHref = href; | ||
emitter.emit("beforeEnter", { href, to: to2 }); | ||
await transitions[transition].enter({ to: to2, leaveCancelled: true }); | ||
await transitions[transition].enter({ to: to2, leaveCancelled: true, trigger }); | ||
if (enterCancelled) { | ||
@@ -148,3 +166,3 @@ enterCancelled = false; | ||
} | ||
emitter.emit("afterEnter", { href, to: to2 }); | ||
emitter.emit("afterEnter", { href, to: to2, trigger }); | ||
status = IDLE; | ||
@@ -151,0 +169,0 @@ } |
@@ -1,1 +0,1 @@ | ||
var alio=function(g,P,i){"use strict";function S({transitions:E}){let v="idle",q="leaving",d="entering",r=P.smitter(),L=null,A={[window.location.pathname]:document.documentElement.outerHTML},c=i.qs("[a-root]");if(!c)throw new Error("[a-root] element missing");let l=i.qs("[a-page]",c);if(!l)throw new Error("[a-page] element missing");let f=null,y=new AbortController,K=new DOMParser,a=v,b=!1,m=!1;return i.on(document,"click",e=>{var w;let t=e,n=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let o=n==null?void 0:n.closest('a[href]:not([target]):not([href|="#"]):not([a-ignore])');if(o){let u=o.getAttribute("href");if(u==null?void 0:u.length){let s=new URL(u,window.location.origin),p=(w=o.getAttribute("a-transition"))!=null?w:"default";s.pathname!==window.location.pathname?C(s.href,!1,p):r.emit("samePage"),t.preventDefault()}}}),i.on(window,"popstate",()=>{C(window.location.href,!0)}),E.default.enter({to:l}),{on:r.on,go:e=>C(e)};async function C(e,t=!1,n="default"){let{leave:o,enter:w}=E[n];if(typeof o!="function")throw new Error(`leave missing from: ${n}`);if(typeof w!="function")throw new Error(`enter missing from: ${n}`);let u=null;if(l=i.qs("[a-page]",c),!l)throw new Error("[a-page] element missing");if(a===q&&(b=!0,y.abort(),r.emit("leaveCancelled",{href:e,from:l}),L===e)){M(e,t,n);return}if(a===d&&(m=!0,r.emit("enterCancelled",{href:e,from:l,to:f})),a=q,r.emit("beforeLeave",{href:e,from:l}),t||window.history.pushState(null,"",e),u=(await Promise.all([D(e),o({from:l,href:e})]))[0],b){b=!1;return}if(!u)return;r.emit("afterLeave",{href:e,from:l}),a=d;let s=K.parseFromString(u,"text/html"),p=i.qs("[a-root]",s);if(!p)throw new Error("[a-root] element missing from incoming html");if(f=i.qs("[a-page]",p),!f)throw new Error("[a-page] element missing from incoming html");let h=i.qs("title",s);if(h&&h.textContent&&(document.title=h.textContent),c.append(f),r.emit("beforeEnter",{href:e,from:l,to:f,doc:s}),await w({from:l,to:f}),m){m=!1;return}r.emit("afterEnter",{href:e,from:l,to:f,doc:s}),a=v,L=e}async function M(e,t,n){a===d&&(m=!0,r.emit("enterCancelled")),a=d;let o=i.qs("[a-page]",c);if(!o)throw new Error("[a-page] element missing");if(t||window.history.pushState(null,"",e),r.emit("beforeEnter",{href:e,to:o}),await E[n].enter({to:o,leaveCancelled:!0}),m){m=!1;return}r.emit("afterEnter",{href:e,to:o}),a=v}async function D(e){y=new AbortController;let t=A[e];if(t)return t;try{t=await fetch(e,{credentials:"include",signal:y.signal}).then(n=>n.text())}catch(n){if((n==null?void 0:n.name)==="AbortError")return}return A[e]=t,t}}return g.create=S,Object.defineProperty(g,"__esModule",{value:!0}),g[Symbol.toStringTag]="Module",g}({},smitter,martha); | ||
var alio=function(g,S,a){"use strict";function K({transitions:h}){let v="idle",A="leaving",p="entering",l=S.smitter(),L=null,P={[window.location.pathname]:document.documentElement.outerHTML},w=a.qs("[a-root]");if(!w)throw new Error("[a-root] element missing");let o=a.qs("[a-page]",w);if(!o)throw new Error("[a-page] element missing");let m=null,r="load",y=new AbortController,M=new DOMParser,f=v,b=!1,c=!1;return a.on(document,"click",e=>{var d;let t=e,n=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let i=n==null?void 0:n.closest('a[href]:not([target]):not([href|="#"]):not([a-ignore])');if(i){let u=i.getAttribute("href");if(u==null?void 0:u.length){let s=new URL(u,window.location.origin),E=(d=i.getAttribute("a-transition"))!=null?d:"default";s.pathname!==window.location.pathname?(r=i,C(s.href,!1,E)):l.emit("samePage"),t.preventDefault()}}}),a.on(window,"popstate",()=>{r="popstate",C(window.location.href,!0)}),requestAnimationFrame(()=>{l.emit("beforeEnter",{href:window.location.href,to:o,doc:document,trigger:r}),h.default.enter({to:o,trigger:r}).then(()=>{l.emit("afterEnter",{href:window.location.href,to:o,doc:document,trigger:r})})}),{on:l.on,go:e=>C(e)};async function C(e,t=!1,n="default"){let{leave:i,enter:d}=h[n];if(typeof i!="function")throw new Error(`leave missing from: ${n}`);if(typeof d!="function")throw new Error(`enter missing from: ${n}`);let u=null;if(o=a.qs("[a-page]",w),!o)throw new Error("[a-page] element missing");if(f===A&&(b=!0,y.abort(),l.emit("leaveCancelled",{href:e,from:o,trigger:r}),L===e)){D(e,t,n);return}if(f===p&&(c=!0,l.emit("enterCancelled",{href:e,from:o,to:m,trigger:r})),f=A,l.emit("beforeLeave",{href:e,from:o,trigger:r}),t||window.history.pushState(null,"",e),u=(await Promise.all([I(e),i({from:o,href:e,trigger:r})]))[0],b){b=!1;return}if(!u)return;l.emit("afterLeave",{href:e,from:o,trigger:r}),f=p;let s=M.parseFromString(u,"text/html"),E=a.qs("[a-root]",s);if(!E)throw new Error("[a-root] element missing from incoming html");if(m=a.qs("[a-page]",E),!m)throw new Error("[a-page] element missing from incoming html");let q=a.qs("title",s);if(q&&q.textContent&&(document.title=q.textContent),w.append(m),l.emit("beforeEnter",{href:e,from:o,to:m,doc:s,trigger:r}),await d({from:o,to:m,trigger:r}),c){c=!1;return}l.emit("afterEnter",{href:e,from:o,to:m,doc:s,trigger:r}),f=v,L=e}async function D(e,t,n){f===p&&(c=!0,l.emit("enterCancelled")),f=p;let i=a.qs("[a-page]",w);if(!i)throw new Error("[a-page] element missing");if(t||window.history.pushState(null,"",e),l.emit("beforeEnter",{href:e,to:i}),await h[n].enter({to:i,leaveCancelled:!0,trigger:r}),c){c=!1;return}l.emit("afterEnter",{href:e,to:i,trigger:r}),f=v}async function I(e){y=new AbortController;let t=P[e];if(t)return t;try{t=await fetch(e,{credentials:"include",signal:y.signal}).then(n=>n.text())}catch(n){if((n==null?void 0:n.name)==="AbortError")return}return P[e]=t,t}}return g.create=K,Object.defineProperty(g,"__esModule",{value:!0}),g[Symbol.toStringTag]="Module",g}({},smitter,martha); |
@@ -1,1 +0,1 @@ | ||
(function(o,d){typeof exports=="object"&&typeof module!="undefined"?d(exports,require("smitter"),require("martha")):typeof define=="function"&&define.amd?define(["exports","smitter","martha"],d):(o=typeof globalThis!="undefined"?globalThis:o||self,d(o.alio={},o.smitter,o.martha))})(this,function(o,d,a){"use strict";function P({transitions:y}){let h="idle",L="leaving",p="entering",i=d.smitter(),A=null,x={[window.location.pathname]:document.documentElement.outerHTML},w=a.qs("[a-root]");if(!w)throw new Error("[a-root] element missing");let r=a.qs("[a-page]",w);if(!r)throw new Error("[a-page] element missing");let u=null,v=new AbortController,S=new DOMParser,f=h,b=!1,c=!1;return a.on(document,"click",e=>{var g;let t=e,n=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let l=n==null?void 0:n.closest('a[href]:not([target]):not([href|="#"]):not([a-ignore])');if(l){let s=l.getAttribute("href");if(s==null?void 0:s.length){let m=new URL(s,window.location.origin),E=(g=l.getAttribute("a-transition"))!=null?g:"default";m.pathname!==window.location.pathname?C(m.href,!1,E):i.emit("samePage"),t.preventDefault()}}}),a.on(window,"popstate",()=>{C(window.location.href,!0)}),y.default.enter({to:r}),{on:i.on,go:e=>C(e)};async function C(e,t=!1,n="default"){let{leave:l,enter:g}=y[n];if(typeof l!="function")throw new Error(`leave missing from: ${n}`);if(typeof g!="function")throw new Error(`enter missing from: ${n}`);let s=null;if(r=a.qs("[a-page]",w),!r)throw new Error("[a-page] element missing");if(f===L&&(b=!0,v.abort(),i.emit("leaveCancelled",{href:e,from:r}),A===e)){T(e,t,n);return}if(f===p&&(c=!0,i.emit("enterCancelled",{href:e,from:r,to:u})),f=L,i.emit("beforeLeave",{href:e,from:r}),t||window.history.pushState(null,"",e),s=(await Promise.all([K(e),l({from:r,href:e})]))[0],b){b=!1;return}if(!s)return;i.emit("afterLeave",{href:e,from:r}),f=p;let m=S.parseFromString(s,"text/html"),E=a.qs("[a-root]",m);if(!E)throw new Error("[a-root] element missing from incoming html");if(u=a.qs("[a-page]",E),!u)throw new Error("[a-page] element missing from incoming html");let q=a.qs("title",m);if(q&&q.textContent&&(document.title=q.textContent),w.append(u),i.emit("beforeEnter",{href:e,from:r,to:u,doc:m}),await g({from:r,to:u}),c){c=!1;return}i.emit("afterEnter",{href:e,from:r,to:u,doc:m}),f=h,A=e}async function T(e,t,n){f===p&&(c=!0,i.emit("enterCancelled")),f=p;let l=a.qs("[a-page]",w);if(!l)throw new Error("[a-page] element missing");if(t||window.history.pushState(null,"",e),i.emit("beforeEnter",{href:e,to:l}),await y[n].enter({to:l,leaveCancelled:!0}),c){c=!1;return}i.emit("afterEnter",{href:e,to:l}),f=h}async function K(e){v=new AbortController;let t=x[e];if(t)return t;try{t=await fetch(e,{credentials:"include",signal:v.signal}).then(n=>n.text())}catch(n){if((n==null?void 0:n.name)==="AbortError")return}return x[e]=t,t}}o.create=P,Object.defineProperty(o,"__esModule",{value:!0}),o[Symbol.toStringTag]="Module"}); | ||
(function(a,w){typeof exports=="object"&&typeof module!="undefined"?w(exports,require("smitter"),require("martha")):typeof define=="function"&&define.amd?define(["exports","smitter","martha"],w):(a=typeof globalThis!="undefined"?globalThis:a||self,w(a.alio={},a.smitter,a.martha))})(this,function(a,w,f){"use strict";function S({transitions:y}){let v="idle",L="leaving",E="entering",i=w.smitter(),x=null,P={[window.location.pathname]:document.documentElement.outerHTML},g=f.qs("[a-root]");if(!g)throw new Error("[a-root] element missing");let o=f.qs("[a-page]",g);if(!o)throw new Error("[a-page] element missing");let m=null,r="load",b=new AbortController,T=new DOMParser,s=v,C=!1,d=!1;return f.on(document,"click",e=>{var p;let t=e,n=t.target;if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.defaultPrevented)return;let l=n==null?void 0:n.closest('a[href]:not([target]):not([href|="#"]):not([a-ignore])');if(l){let u=l.getAttribute("href");if(u==null?void 0:u.length){let c=new URL(u,window.location.origin),h=(p=l.getAttribute("a-transition"))!=null?p:"default";c.pathname!==window.location.pathname?(r=l,q(c.href,!1,h)):i.emit("samePage"),t.preventDefault()}}}),f.on(window,"popstate",()=>{r="popstate",q(window.location.href,!0)}),requestAnimationFrame(()=>{i.emit("beforeEnter",{href:window.location.href,to:o,doc:document,trigger:r}),y.default.enter({to:o,trigger:r}).then(()=>{i.emit("afterEnter",{href:window.location.href,to:o,doc:document,trigger:r})})}),{on:i.on,go:e=>q(e)};async function q(e,t=!1,n="default"){let{leave:l,enter:p}=y[n];if(typeof l!="function")throw new Error(`leave missing from: ${n}`);if(typeof p!="function")throw new Error(`enter missing from: ${n}`);let u=null;if(o=f.qs("[a-page]",g),!o)throw new Error("[a-page] element missing");if(s===L&&(C=!0,b.abort(),i.emit("leaveCancelled",{href:e,from:o,trigger:r}),x===e)){K(e,t,n);return}if(s===E&&(d=!0,i.emit("enterCancelled",{href:e,from:o,to:m,trigger:r})),s=L,i.emit("beforeLeave",{href:e,from:o,trigger:r}),t||window.history.pushState(null,"",e),u=(await Promise.all([M(e),l({from:o,href:e,trigger:r})]))[0],C){C=!1;return}if(!u)return;i.emit("afterLeave",{href:e,from:o,trigger:r}),s=E;let c=T.parseFromString(u,"text/html"),h=f.qs("[a-root]",c);if(!h)throw new Error("[a-root] element missing from incoming html");if(m=f.qs("[a-page]",h),!m)throw new Error("[a-page] element missing from incoming html");let A=f.qs("title",c);if(A&&A.textContent&&(document.title=A.textContent),g.append(m),i.emit("beforeEnter",{href:e,from:o,to:m,doc:c,trigger:r}),await p({from:o,to:m,trigger:r}),d){d=!1;return}i.emit("afterEnter",{href:e,from:o,to:m,doc:c,trigger:r}),s=v,x=e}async function K(e,t,n){s===E&&(d=!0,i.emit("enterCancelled")),s=E;let l=f.qs("[a-page]",g);if(!l)throw new Error("[a-page] element missing");if(t||window.history.pushState(null,"",e),i.emit("beforeEnter",{href:e,to:l}),await y[n].enter({to:l,leaveCancelled:!0,trigger:r}),d){d=!1;return}i.emit("afterEnter",{href:e,to:l,trigger:r}),s=v}async function M(e){b=new AbortController;let t=P[e];if(t)return t;try{t=await fetch(e,{credentials:"include",signal:b.signal}).then(n=>n.text())}catch(n){if((n==null?void 0:n.name)==="AbortError")return}return P[e]=t,t}}a.create=S,Object.defineProperty(a,"__esModule",{value:!0}),a[Symbol.toStringTag]="Module"}); |
@@ -0,1 +1,2 @@ | ||
export declare type AlioTriggerElement = Element | 'popstate' | 'load'; | ||
export interface AlioEnterOptions { | ||
@@ -6,2 +7,3 @@ to: Element; | ||
leaveCancelled?: boolean; | ||
trigger: AlioTriggerElement; | ||
} | ||
@@ -11,4 +13,5 @@ export interface AlioLeaveOptions { | ||
href: string; | ||
trigger: AlioTriggerElement; | ||
} | ||
export declare type AlioEnter = ({ from, to, href, }: AlioEnterOptions) => PromiseLike<any>; | ||
export declare type AlioEnter = ({ to, from, href, leaveCancelled, trigger, }: AlioEnterOptions) => PromiseLike<any>; | ||
export declare type AlioLeave = ({ from, href }: AlioLeaveOptions) => PromiseLike<any>; | ||
@@ -15,0 +18,0 @@ export interface AlioTransition { |
{ | ||
"name": "alio", | ||
"version": "2.0.3", | ||
"version": "2.0.4", | ||
"description": "A lightweight pjax library", | ||
@@ -57,2 +57,3 @@ "files": [ | ||
"jsdom": "^19.0.0", | ||
"motion": "^10.7.0", | ||
"prettier": "^2.5.1", | ||
@@ -59,0 +60,0 @@ "semantic-release": "^18.0.1", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
16381
234
3
20