aptechka 0.59.1 → 0.60.0
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.
- package/lib/morph/Morph.d.ts +5 -1
- package/lib/morph/index.cjs +1 -1
- package/lib/morph/index.js +175 -166
- package/package.json +1 -1
package/lib/morph/Morph.d.ts
CHANGED
|
@@ -42,6 +42,10 @@ export interface MorphEvents {
|
|
|
42
42
|
morphOldChildrenRemoved: CustomEvent<MorphChildrenActionEntry>;
|
|
43
43
|
morphScroll: CustomEvent<MorphScrollDetail>;
|
|
44
44
|
}
|
|
45
|
+
export interface MorphGetRouteOptions {
|
|
46
|
+
searchParameters?: string;
|
|
47
|
+
revalidate?: boolean;
|
|
48
|
+
}
|
|
45
49
|
export declare class Morph {
|
|
46
50
|
#private;
|
|
47
51
|
static instance: Morph;
|
|
@@ -59,7 +63,7 @@ export declare class Morph {
|
|
|
59
63
|
parameters: string;
|
|
60
64
|
hash: string;
|
|
61
65
|
};
|
|
62
|
-
prefetch(path: string): Promise<void>;
|
|
66
|
+
prefetch(path: string, revalidate?: boolean): Promise<void>;
|
|
63
67
|
navigate(path: string, { historyAction, centerScroll, offsetScroll, revalidate, keepSearchParameters, }?: MorphNavigateOptions): Promise<void>;
|
|
64
68
|
addLink(element: HTMLAnchorElement): void;
|
|
65
69
|
addLinks(elements: Array<HTMLAnchorElement>): void;
|
package/lib/morph/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var wt=(r,t)=>(t=Symbol[r])?t:Symbol.for("Symbol."+r),bt=r=>{throw TypeError(r)};var nt=(r,t,s)=>t.has(r)||bt("Cannot "+s);var e=(r,t,s)=>(nt(r,t,"read from private field"),s?s.call(r):t.get(r)),o=(r,t,s)=>t.has(r)?bt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),a=(r,t,s,i)=>(nt(r,t,"write to private field"),i?i.call(r,s):t.set(r,s),s),d=(r,t,s)=>(nt(r,t,"access private method"),s);var N=(r,t,s)=>new Promise((i,u)=>{var p=E=>{try{H(s.next(E))}catch(h){u(h)}},M=E=>{try{H(s.throw(E))}catch(h){u(h)}},H=E=>E.done?i(E.value):Promise.resolve(E.value).then(p,M);H((s=s.apply(r,t)).next())});var kt=(r,t,s)=>(t=r[wt("asyncIterator")])?t.call(r):(r=r[wt("iterator")](),t={},s=(i,u)=>(u=r[i])&&(t[i]=p=>new Promise((M,H,E)=>(p=u.call(r,p),E=p.done,Promise.resolve(p.value).then(h=>M({value:h,done:E}),H)))),s("next"),s("return"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ct=require("../index-Cqw2NKev.cjs"),K=require("../events-KVanG9sR.cjs"),Rt=require("../polyfills-Df4r-ETT.cjs"),Pt=require("../scroll-DAhSpkhR.cjs"),tt=require("../url-D1CgmwZ_.cjs"),zt=require("../css-value-parser/index.cjs");class Tt extends HTMLElement{connectedCallback(){const t={"aria-live":"assertive","aria-atomic":"true",style:"position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"};for(const[s,i]of Object.entries(t))this.setAttribute(s,i)}}Ct.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",Tt);var b,c,x,G,F;class rt{constructor(t,s){o(this,b);o(this,c);o(this,x);o(this,G,t=>{if(t.preventDefault(),e(this,c).hasAttribute("data-back")&&e(this,b).previousPathname)history.back();else{const i=e(this,c).getAttribute("data-history-action")||"push",u=e(this,c).hasAttribute("data-center-scroll"),p=getComputedStyle(e(this,c)).getPropertyValue("--offset-scroll").trim(),M=p?zt.cssValueParser.parse(p):void 0,H=e(this,c).hasAttribute("data-revalidate"),E=e(this,c).hasAttribute("data-keep-search-parameters");e(this,b).navigate(e(this,x),{historyAction:i,centerScroll:u,offsetScroll:M,revalidate:H,keepSearchParameters:E})}});o(this,F,()=>{e(this,b).prefetch(e(this,x)),e(this,c).removeEventListener("pointerenter",e(this,F))});a(this,b,s),a(this,c,t),a(this,x,e(this,c).getAttribute("href")||"/"),e(this,c).addEventListener("click",e(this,G)),this.checkCurrent(location.pathname),e(this,c).hasAttribute("data-prefetch")&&e(this,c).addEventListener("pointerenter",e(this,F))}get element(){return e(this,c)}checkCurrent(t){const s=e(this,b).normalizePath(t),i=e(this,b).normalizePath(e(this,x));e(this,c).hasAttribute("data-include")&&s.pathname.includes(i.pathname)?e(this,c).classList.add("current"):i.pathname===s.pathname?e(this,c).classList.add("current"):e(this,c).classList.remove("current")}destroy(){e(this,c).removeEventListener("click",e(this,G)),e(this,c).removeEventListener("pointerenter",e(this,F)),e(this,c).classList.remove("current")}}b=new WeakMap,c=new WeakMap,x=new WeakMap,G=new WeakMap,F=new WeakMap;var A,V,v,q,D,C;class At{constructor(t,s,i){o(this,A);o(this,V);o(this,v,{x:0,y:0});o(this,q);o(this,D,null);o(this,C,null);a(this,A,t),a(this,V,s),a(this,q,i.cloneNode(!0))}get pathname(){return e(this,V)}get scrollState(){return e(this,v)}get document(){return e(this,C)}cloneDocument(){a(this,C,(e(this,D)||e(this,q)).cloneNode(!0))}get title(){let t="";if(e(this,C).title)t=e(this,C).title;else{const s=e(this,C).querySelector("h1");t=(s==null?void 0:s.innerText)||(s==null?void 0:s.textContent)||e(this,V)}return t}clearScrollState(){e(this,v).x=0,e(this,v).y=0}clearDocumentState(){a(this,D,null)}saveScrollState(){e(this,q).documentElement.hasAttribute("data-no-scroll-restoration")?(e(this,v).x=0,e(this,v).y=0):(e(this,v).x=e(this,A).scrollElement.scrollLeft,e(this,v).y=e(this,A).scrollElement.scrollTop)}saveDocumentState(){e(this,q).documentElement.hasAttribute("data-no-page-restoration")?a(this,D,null):a(this,D,document.cloneNode(!0))}restoreScrollPosition(){e(this,A).scrollElement.scroll({top:e(this,v).y,left:e(this,v).x})}renewScrollPosition(){e(this,A).scrollElement.scroll({top:0,left:0,behavior:"instant"})}}A=new WeakMap,V=new WeakMap,v=new WeakMap,q=new WeakMap,D=new WeakMap,C=new WeakMap;var k,B,m,et,T,f,J,R,P,y,W,z,Q,l,at,lt,ct,Mt,ht,ut,dt,mt,st,j;const Y=class Y{constructor(t){o(this,l);o(this,k,null);o(this,B,null);o(this,m,[]);o(this,et,new DOMParser);o(this,T);o(this,f,null);o(this,J);o(this,R,[]);o(this,P,!1);o(this,y,null);o(this,W,new Map);o(this,z,null);o(this,Q,t=>{var s;return((s=t.getAttribute("href"))==null?void 0:s.startsWith("/"))&&!t.hasAttribute("download")&&!t.hasAttribute("data-morph-skip")&&!t.closest("[data-morph-skip]")&&t.getAttribute("target")!=="_blank"});o(this,st,t=>N(this,null,function*(){var s;(s=t.state)!=null&&s.path&&(t.preventDefault(),a(this,P,!0),yield this.navigate(t.state.path,{historyAction:"none"}),a(this,P,!1))}));o(this,j,()=>{const t=e(this,y).scrollTop,s=e(this,y).scrollLeft;document.documentElement.classList.toggle("top-scrolled",t>0),document.documentElement.classList.toggle("left-scrolled",s>0),K.dispatchEvent(document,"morphScroll",{detail:{left:s,top:t}})});if(Ct.isBrowser&&!Y.instance){Y.instance=this,a(this,k,{base:tt.normalizeBase(t==null?void 0:t.base),waitForHeadToLoad:(t==null?void 0:t.waitForHeadToLoad)!==!1,cachePages:(t==null?void 0:t.cachePages)!==!1,trailingSlash:(t==null?void 0:t.trailingSlash)||!1,scrollSelector:(t==null?void 0:t.scrollSelector)||"body",morphInsideScrollContainer:(t==null?void 0:t.morphInsideScrollContainer)||!1}),a(this,B,d(this,l,ct).call(this,document.body));const s=this.normalizePath(location.pathname+location.hash);a(this,f,s.pathname),e(this,W).set(e(this,f),new At(this,e(this,f),document)),document.documentElement.setAttribute("data-current-pathname",e(this,f)),document.documentElement.setAttribute("data-current-leaf",s.leaf),this.findLinks(),addEventListener("popstate",e(this,st)),tt.changeHistory({action:"replace",pathname:e(this,f),searchParameters:s.parameters||location.search,hash:s.hash}),a(this,z,new Tt),d(this,l,dt).call(this,document)}}get currentPathname(){return e(this,f)}get previousPathname(){return e(this,J)}get links(){return e(this,m)}get scrollElement(){return e(this,y)}get isPopstateNavigation(){return e(this,P)}normalizePath(t){return tt.splitPath(t,{base:e(this,k).base,trailingSlash:e(this,k).trailingSlash})}prefetch(t){return N(this,null,function*(){const s=this.normalizePath(t);d(this,l,lt).call(this,s.pathname)})}navigate(H){return N(this,arguments,function*(t,{historyAction:s="push",centerScroll:i,offsetScroll:u,revalidate:p,keepSearchParameters:M}={}){var ft;if(e(this,R).length)return;const E=this.normalizePath(((ft=this.pathnameModifier)==null?void 0:ft.call(this,t))||t);let{pathname:h,hash:X,parameters:Ht,leaf:Nt}=E;if(e(this,T)===h||e(this,f)===h){e(this,P)||d(this,l,mt).call(this,X||0,{centerScroll:i,offsetScroll:u,behavior:"smooth"});return}a(this,T,h),e(this,m).forEach(I=>{I.checkCurrent(h)});try{let I=!0;if(this.preprocessor)try{yield new Promise((n,w)=>{var S;(S=this.preprocessor)==null||S.call(this,{pathname:h,resolve:n,reject:w})})}catch(n){n?console.error(n):console.log("Route change canceled"),I=!1}if(!I||e(this,T)!==h){e(this,m).forEach(n=>{n.checkCurrent(e(this,f))});return}const pt=yield d(this,l,at).call(this,e(this,f)),L=yield d(this,l,at).call(this,h,p);if(e(this,T)!==h){e(this,m).forEach(n=>{n.checkCurrent(e(this,f))});return}pt.saveScrollState(),pt.saveDocumentState(),e(this,P)||(L.clearScrollState(),L.clearDocumentState()),L.cloneDocument(),e(this,z).textContent=L.title,document.body.appendChild(e(this,z));const Et={pathname:h};K.dispatchEvent(document,"morphStart",{detail:Et});const gt=Array.from(document.head.children),vt=Array.from(L.document.head.children),St=d(this,l,Mt).call(this,gt,vt),xt=d(this,l,ht).call(this,gt,St),Z=d(this,l,ht).call(this,vt,St);Z.forEach((n,w)=>{if(n.tagName==="SCRIPT"&&n.getAttribute("src")){const S=document.createElement("script");S.type="module",S.src=n.getAttribute("src"),Z[w]=S}}),Z.forEach(n=>{document.head.appendChild(n)});const it=Z.filter(n=>{if(n.hasAttribute("data-no-waiting"))return!1;if(d(this,l,ut).call(this,n))return!0});e(this,k).waitForHeadToLoad&&it.length&&(yield new Promise(n=>N(this,null,function*(){let w=0;try{for(var S=kt(it),O,U,yt;O=!(U=yield S.next()).done;O=!1){const _=U.value;_.onload=()=>{w++,w===it.length&&n()}}}catch(U){yt=[U]}finally{try{O&&(U=S.return)&&(yield U.call(S))}finally{if(yt)throw yt[0]}}}))),yield Pt.wait(10);const Lt=[];xt.forEach(n=>{n.hasAttribute("data-permanent")||(d(this,l,ut).call(this,n)?Lt.push(n):n.remove())});const qt=d(this,l,ct).call(this,L.document.body);e(this,k).morphInsideScrollContainer||d(this,l,dt).call(this,L.document),document.documentElement.setAttribute("data-current-pathname",h),document.documentElement.setAttribute("data-current-leaf",Nt),tt.changeHistory({action:s,pathname:h,searchParameters:Ht||(M?location.search:""),hash:X}),e(this,z).remove(),a(this,J,e(this,f)),a(this,f,h),e(this,B).forEach((n,w)=>{const S=qt[w],O=getComputedStyle(n).getPropertyValue("--morph-duration"),U=[...S.childNodes];if(O){const yt=[...n.childNodes];yt.forEach(g=>{g instanceof HTMLElement&&(this.destroyOldLinks(g),g.classList.add("old"))}),U.forEach(g=>{g instanceof HTMLElement&&(this.findNewLinks(g),g.classList.add("new"))}),n.prepend(...U),Rt.requestIdleCallback(()=>{U.forEach(g=>{g instanceof HTMLElement&&g.classList.add("in")})});const _={morphElement:n,pathname:h};K.dispatchEvent(document,"morphNewChildrenAdded",{detail:_});const Dt=new Promise(g=>{setTimeout(()=>{yt.forEach($=>$.remove()),U.forEach($=>{$ instanceof HTMLElement&&$.classList.remove("in","new")}),K.dispatchEvent(document,"morphOldChildrenRemoved",{detail:_}),g()},(parseFloat(O)||0)*1e3+10)});e(this,R).push(Dt)}else this.destroyOldLinks(n),n.innerHTML="",n.append(...U),this.findNewLinks(n)}),X?(L.clearScrollState(),d(this,l,mt).call(this,X,{centerScroll:i,offsetScroll:u})):e(this,P)?L.restoreScrollPosition():L.renewScrollPosition(),yield Promise.all(e(this,R)),Lt.forEach(n=>n.remove()),a(this,R,[]),e(this,B).forEach(n=>{n.querySelectorAll("script").forEach(S=>{const O=document.createElement("script");O.type="module",O.src=S.getAttribute("src"),S.replaceWith(O)})}),K.dispatchEvent(document,"morphComplete",{detail:Et}),window.dispatchEvent(new Event("resize"))}catch(I){console.error(I)}a(this,T,void 0)})}addLink(t){e(this,m).push(new rt(t,this))}addLinks(t){t.forEach(s=>{this.addLink(s)})}removeLink(t){a(this,m,e(this,m).filter(s=>s.element===t?(s.destroy(),!1):!0))}destroyOldLinks(t){a(this,m,e(this,m).filter(s=>t.contains(s.element)?(s.destroy(),!1):!0))}findNewLinks(t){const s=[...t.querySelectorAll("a")].filter(e(this,Q));e(this,m).push(...s.map(i=>new rt(i,this)))}findLinks(){const t=[...document.documentElement.querySelectorAll("a")].filter(e(this,Q));e(this,m).forEach(s=>s.destroy()),a(this,m,t.map(s=>new rt(s,this)))}};k=new WeakMap,B=new WeakMap,m=new WeakMap,et=new WeakMap,T=new WeakMap,f=new WeakMap,J=new WeakMap,R=new WeakMap,P=new WeakMap,y=new WeakMap,W=new WeakMap,z=new WeakMap,Q=new WeakMap,l=new WeakSet,at=function(t,s=!1){return N(this,null,function*(){let i=e(this,W).get(t);return(!i||s)&&(i=yield d(this,l,lt).call(this,t)),i})},lt=function(t){return N(this,null,function*(){const i=yield(yield fetch(t)).text(),u=e(this,et).parseFromString(i,"text/html"),p=new At(this,t,u);return e(this,W).set(t,p),p})},ct=function(t){const s=[...t.querySelectorAll("[data-morph]")];return s.length?s:[t]},Mt=function(t,s){return t.filter(i=>s.find(u=>u.outerHTML===i.outerHTML))},ht=function(t,s){return t.filter(i=>!s.find(u=>u.outerHTML===i.outerHTML))},ut=function(t){return t.tagName==="SCRIPT"||t.tagName==="STYLE"||t.tagName==="LINK"&&t.getAttribute("rel")==="stylesheet"},dt=function(t){var s,i;(s=e(this,y))==null||s.removeEventListener("scroll",e(this,j)),a(this,y,t.querySelector(e(this,k).scrollSelector)||t.documentElement),(i=e(this,y))==null||i.addEventListener("scroll",e(this,j)),e(this,j).call(this)},mt=function(t,s){const i=typeof t=="string"?document.getElementById(t):t;(typeof i=="number"||i)&&Pt.scrollToElement(i,{scrollElement:e(this,y),behavior:(s==null?void 0:s.behavior)||"instant",center:s==null?void 0:s.centerScroll,offset:s==null?void 0:s.offsetScroll})},st=new WeakMap,j=new WeakMap,Y.instance=null;let ot=Y;exports.Morph=ot;
|
|
1
|
+
"use strict";var wt=(n,t)=>(t=Symbol[n])?t:Symbol.for("Symbol."+n),bt=n=>{throw TypeError(n)};var nt=(n,t,s)=>t.has(n)||bt("Cannot "+s);var e=(n,t,s)=>(nt(n,t,"read from private field"),s?s.call(n):t.get(n)),a=(n,t,s)=>t.has(n)?bt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,s),o=(n,t,s,i)=>(nt(n,t,"write to private field"),i?i.call(n,s):t.set(n,s),s),d=(n,t,s)=>(nt(n,t,"access private method"),s);var N=(n,t,s)=>new Promise((i,u)=>{var E=p=>{try{H(s.next(p))}catch(h){u(h)}},L=p=>{try{H(s.throw(p))}catch(h){u(h)}},H=p=>p.done?i(p.value):Promise.resolve(p.value).then(E,L);H((s=s.apply(n,t)).next())});var Pt=(n,t,s)=>(t=n[wt("asyncIterator")])?t.call(n):(n=n[wt("iterator")](),t={},s=(i,u)=>(u=n[i])&&(t[i]=E=>new Promise((L,H,p)=>(E=u.call(n,E),p=E.done,Promise.resolve(E.value).then(h=>L({value:h,done:p}),H)))),s("next"),s("return"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ct=require("../index-Cqw2NKev.cjs"),$=require("../events-KVanG9sR.cjs"),Rt=require("../polyfills-Df4r-ETT.cjs"),kt=require("../scroll-DAhSpkhR.cjs"),tt=require("../url-D1CgmwZ_.cjs"),zt=require("../css-value-parser/index.cjs");class Tt extends HTMLElement{connectedCallback(){const t={"aria-live":"assertive","aria-atomic":"true",style:"position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"};for(const[s,i]of Object.entries(t))this.setAttribute(s,i)}}Ct.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",Tt);var P,l,x,Y,F;class at{constructor(t,s){a(this,P);a(this,l);a(this,x);a(this,Y,t=>{if(t.preventDefault(),e(this,l).hasAttribute("data-back")&&e(this,P).previousPathname)history.back();else{const i=e(this,l).getAttribute("data-history-action")||"push",u=e(this,l).hasAttribute("data-center-scroll"),E=getComputedStyle(e(this,l)).getPropertyValue("--offset-scroll").trim(),L=E?zt.cssValueParser.parse(E):void 0,H=e(this,l).hasAttribute("data-revalidate"),p=e(this,l).hasAttribute("data-keep-search-parameters");e(this,P).navigate(e(this,x),{historyAction:i,centerScroll:u,offsetScroll:L,revalidate:H,keepSearchParameters:p})}});a(this,F,()=>{const t=e(this,l).hasAttribute("data-revalidate");e(this,P).prefetch(e(this,x),t),e(this,l).removeEventListener("pointerenter",e(this,F))});o(this,P,s),o(this,l,t),o(this,x,e(this,l).getAttribute("href")||"/"),e(this,l).addEventListener("click",e(this,Y)),this.checkCurrent(location.pathname),e(this,l).hasAttribute("data-prefetch")&&e(this,l).addEventListener("pointerenter",e(this,F))}get element(){return e(this,l)}checkCurrent(t){const s=e(this,P).normalizePath(t),i=e(this,P).normalizePath(e(this,x));e(this,l).hasAttribute("data-include")&&s.pathname.includes(i.pathname)?e(this,l).classList.add("current"):i.pathname===s.pathname?e(this,l).classList.add("current"):e(this,l).classList.remove("current")}destroy(){e(this,l).removeEventListener("click",e(this,Y)),e(this,l).removeEventListener("pointerenter",e(this,F)),e(this,l).classList.remove("current")}}P=new WeakMap,l=new WeakMap,x=new WeakMap,Y=new WeakMap,F=new WeakMap;var C,V,v,q,D,T;class At{constructor(t,s,i){a(this,C);a(this,V);a(this,v,{x:0,y:0});a(this,q);a(this,D,null);a(this,T,null);o(this,C,t),o(this,V,s),o(this,q,i.cloneNode(!0))}get pathname(){return e(this,V)}get scrollState(){return e(this,v)}get document(){return e(this,T)}cloneDocument(){o(this,T,(e(this,D)||e(this,q)).cloneNode(!0))}get title(){let t="";if(e(this,T).title)t=e(this,T).title;else{const s=e(this,T).querySelector("h1");t=(s==null?void 0:s.innerText)||(s==null?void 0:s.textContent)||e(this,V)}return t}clearScrollState(){e(this,v).x=0,e(this,v).y=0}clearDocumentState(){o(this,D,null)}saveScrollState(){e(this,q).documentElement.hasAttribute("data-no-scroll-restoration")?(e(this,v).x=0,e(this,v).y=0):(e(this,v).x=e(this,C).scrollElement.scrollLeft,e(this,v).y=e(this,C).scrollElement.scrollTop)}saveDocumentState(){e(this,q).documentElement.hasAttribute("data-no-page-restoration")?o(this,D,null):o(this,D,document.cloneNode(!0))}restoreScrollPosition(){e(this,C).scrollElement.scroll({top:e(this,v).y,left:e(this,v).x})}renewScrollPosition(){e(this,C).scrollElement.scroll({top:0,left:0,behavior:"instant"})}}C=new WeakMap,V=new WeakMap,v=new WeakMap,q=new WeakMap,D=new WeakMap,T=new WeakMap;var k,B,m,st,M,f,G,R,A,w,W,z,J,c,et,Mt,ct,Ht,lt,ht,ut,dt,it,j;const K=class K{constructor(t){a(this,c);a(this,k,null);a(this,B,null);a(this,m,[]);a(this,st,new DOMParser);a(this,M);a(this,f,null);a(this,G);a(this,R,[]);a(this,A,!1);a(this,w,null);a(this,W,new Map);a(this,z,null);a(this,J,t=>{var s;return((s=t.getAttribute("href"))==null?void 0:s.startsWith("/"))&&!t.hasAttribute("download")&&!t.hasAttribute("data-morph-skip")&&!t.closest("[data-morph-skip]")&&t.getAttribute("target")!=="_blank"});a(this,it,t=>N(this,null,function*(){var s;(s=t.state)!=null&&s.path&&(t.preventDefault(),o(this,A,!0),yield this.navigate(t.state.path,{historyAction:"none"}),o(this,A,!1))}));a(this,j,()=>{const t=e(this,w).scrollTop,s=e(this,w).scrollLeft;document.documentElement.classList.toggle("top-scrolled",t>0),document.documentElement.classList.toggle("left-scrolled",s>0),$.dispatchEvent(document,"morphScroll",{detail:{left:s,top:t}})});if(Ct.isBrowser&&!K.instance){K.instance=this,o(this,k,{base:tt.normalizeBase(t==null?void 0:t.base),waitForHeadToLoad:(t==null?void 0:t.waitForHeadToLoad)!==!1,cachePages:(t==null?void 0:t.cachePages)!==!1,trailingSlash:(t==null?void 0:t.trailingSlash)||!1,scrollSelector:(t==null?void 0:t.scrollSelector)||"body",morphInsideScrollContainer:(t==null?void 0:t.morphInsideScrollContainer)||!1}),o(this,B,d(this,c,ct).call(this,document.body));const s=this.normalizePath(location.pathname+location.hash);o(this,f,s.pathname),e(this,W).set(e(this,f),new At(this,e(this,f),document)),document.documentElement.setAttribute("data-current-pathname",e(this,f)),document.documentElement.setAttribute("data-current-leaf",s.leaf),this.findLinks(),addEventListener("popstate",e(this,it)),tt.changeHistory({action:"replace",pathname:e(this,f),searchParameters:s.parameters||location.search,hash:s.hash}),o(this,z,new Tt),d(this,c,ut).call(this,document)}}get currentPathname(){return e(this,f)}get previousPathname(){return e(this,G)}get links(){return e(this,m)}get scrollElement(){return e(this,w)}get isPopstateNavigation(){return e(this,A)}normalizePath(t){return tt.splitPath(t,{base:e(this,k).base,trailingSlash:e(this,k).trailingSlash})}prefetch(t,s){return N(this,null,function*(){const i=this.normalizePath(t);d(this,c,et).call(this,i.pathname,{searchParameters:i.parameters,revalidate:s})})}navigate(H){return N(this,arguments,function*(t,{historyAction:s="push",centerScroll:i,offsetScroll:u,revalidate:E,keepSearchParameters:L}={}){var ft;if(e(this,R).length)return;const p=this.normalizePath(((ft=this.pathnameModifier)==null?void 0:ft.call(this,t))||t);let{pathname:h,hash:Q,parameters:mt,leaf:Nt}=p;if(e(this,M)===h||e(this,f)===h){e(this,A)||d(this,c,dt).call(this,Q||0,{centerScroll:i,offsetScroll:u,behavior:"smooth"});return}o(this,M,h),e(this,m).forEach(I=>{I.checkCurrent(h)});try{let I=!0;if(this.preprocessor)try{yield new Promise((r,b)=>{var S;(S=this.preprocessor)==null||S.call(this,{pathname:h,resolve:r,reject:b})})}catch(r){r?console.error(r):console.log("Route change canceled"),I=!1}if(!I||e(this,M)!==h){e(this,m).forEach(r=>{r.checkCurrent(e(this,f))});return}const pt=yield d(this,c,et).call(this,e(this,f)),y=yield d(this,c,et).call(this,h,{searchParameters:mt,revalidate:E});if(e(this,M)!==h){e(this,m).forEach(r=>{r.checkCurrent(e(this,f))});return}pt.saveScrollState(),pt.saveDocumentState(),e(this,A)||(y.clearScrollState(),y.clearDocumentState()),y.cloneDocument(),e(this,z).textContent=y.title,document.body.appendChild(e(this,z));const Et={pathname:h};$.dispatchEvent(document,"morphStart",{detail:Et});const gt=Array.from(document.head.children),vt=Array.from(y.document.head.children),St=d(this,c,Ht).call(this,gt,vt),xt=d(this,c,lt).call(this,gt,St),X=d(this,c,lt).call(this,vt,St);X.forEach((r,b)=>{if(r.tagName==="SCRIPT"&&r.getAttribute("src")){const S=document.createElement("script");S.type="module",S.src=r.getAttribute("src"),X[b]=S}}),X.forEach(r=>{document.head.appendChild(r)});const rt=X.filter(r=>{if(r.hasAttribute("data-no-waiting"))return!1;if(d(this,c,ht).call(this,r))return!0});e(this,k).waitForHeadToLoad&&rt.length&&(yield new Promise(r=>N(this,null,function*(){let b=0;try{for(var S=Pt(rt),O,U,yt;O=!(U=yield S.next()).done;O=!1){const Z=U.value;Z.onload=()=>{b++,b===rt.length&&r()}}}catch(U){yt=[U]}finally{try{O&&(U=S.return)&&(yield U.call(S))}finally{if(yt)throw yt[0]}}}))),yield kt.wait(10);const Lt=[];xt.forEach(r=>{r.hasAttribute("data-permanent")||(d(this,c,ht).call(this,r)?Lt.push(r):r.remove())});const qt=d(this,c,ct).call(this,y.document.body);e(this,k).morphInsideScrollContainer||d(this,c,ut).call(this,y.document),document.documentElement.setAttribute("data-current-pathname",h),document.documentElement.setAttribute("data-current-leaf",Nt),tt.changeHistory({action:s,pathname:h,searchParameters:mt||(L?location.search:""),hash:Q}),e(this,z).remove(),o(this,G,e(this,f)),o(this,f,h),e(this,B).forEach((r,b)=>{const S=qt[b],O=getComputedStyle(r).getPropertyValue("--morph-duration"),U=[...S.childNodes];if(O){const yt=[...r.childNodes];yt.forEach(g=>{g instanceof HTMLElement&&(this.destroyOldLinks(g),g.classList.add("old"))}),U.forEach(g=>{g instanceof HTMLElement&&(this.findNewLinks(g),g.classList.add("new"))}),r.prepend(...U),Rt.requestIdleCallback(()=>{U.forEach(g=>{g instanceof HTMLElement&&g.classList.add("in")})});const Z={morphElement:r,pathname:h};$.dispatchEvent(document,"morphNewChildrenAdded",{detail:Z});const Dt=new Promise(g=>{setTimeout(()=>{yt.forEach(_=>_.remove()),U.forEach(_=>{_ instanceof HTMLElement&&_.classList.remove("in","new")}),$.dispatchEvent(document,"morphOldChildrenRemoved",{detail:Z}),g()},(parseFloat(O)||0)*1e3+10)});e(this,R).push(Dt)}else this.destroyOldLinks(r),r.innerHTML="",r.append(...U),this.findNewLinks(r)}),Q?(y.clearScrollState(),d(this,c,dt).call(this,Q,{centerScroll:i,offsetScroll:u})):e(this,A)?y.restoreScrollPosition():y.renewScrollPosition(),yield Promise.all(e(this,R)),Lt.forEach(r=>r.remove()),o(this,R,[]),e(this,B).forEach(r=>{r.querySelectorAll("script").forEach(S=>{const O=document.createElement("script");O.type="module",O.src=S.getAttribute("src"),S.replaceWith(O)})}),$.dispatchEvent(document,"morphComplete",{detail:Et}),window.dispatchEvent(new Event("resize"))}catch(I){console.error(I)}o(this,M,void 0)})}addLink(t){e(this,m).push(new at(t,this))}addLinks(t){t.forEach(s=>{this.addLink(s)})}removeLink(t){o(this,m,e(this,m).filter(s=>s.element===t?(s.destroy(),!1):!0))}destroyOldLinks(t){o(this,m,e(this,m).filter(s=>t.contains(s.element)?(s.destroy(),!1):!0))}findNewLinks(t){const s=[...t.querySelectorAll("a")].filter(e(this,J));e(this,m).push(...s.map(i=>new at(i,this)))}findLinks(){const t=[...document.documentElement.querySelectorAll("a")].filter(e(this,J));e(this,m).forEach(s=>s.destroy()),o(this,m,t.map(s=>new at(s,this)))}};k=new WeakMap,B=new WeakMap,m=new WeakMap,st=new WeakMap,M=new WeakMap,f=new WeakMap,G=new WeakMap,R=new WeakMap,A=new WeakMap,w=new WeakMap,W=new WeakMap,z=new WeakMap,J=new WeakMap,c=new WeakSet,et=function(t,s){return N(this,null,function*(){let i=e(this,W).get(t);return(!i||s!=null&&s.revalidate)&&(i=yield d(this,c,Mt).call(this,t,s==null?void 0:s.searchParameters)),i})},Mt=function(t,s){return N(this,null,function*(){const u=yield(yield fetch(`${t}${s?"?"+s:""}`)).text(),E=e(this,st).parseFromString(u,"text/html"),L=new At(this,t,E);return e(this,W).set(t,L),L})},ct=function(t){const s=[...t.querySelectorAll("[data-morph]")];return s.length?s:[t]},Ht=function(t,s){return t.filter(i=>s.find(u=>u.outerHTML===i.outerHTML))},lt=function(t,s){return t.filter(i=>!s.find(u=>u.outerHTML===i.outerHTML))},ht=function(t){return t.tagName==="SCRIPT"||t.tagName==="STYLE"||t.tagName==="LINK"&&t.getAttribute("rel")==="stylesheet"},ut=function(t){var s,i;(s=e(this,w))==null||s.removeEventListener("scroll",e(this,j)),o(this,w,t.querySelector(e(this,k).scrollSelector)||t.documentElement),(i=e(this,w))==null||i.addEventListener("scroll",e(this,j)),e(this,j).call(this)},dt=function(t,s){const i=typeof t=="string"?document.getElementById(t):t;(typeof i=="number"||i)&&kt.scrollToElement(i,{scrollElement:e(this,w),behavior:(s==null?void 0:s.behavior)||"instant",center:s==null?void 0:s.centerScroll,offset:s==null?void 0:s.offsetScroll})},it=new WeakMap,j=new WeakMap,K.instance=null;let ot=K;exports.Morph=ot;
|
package/lib/morph/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
var
|
|
1
|
+
var St = (n, t) => (t = Symbol[n]) ? t : Symbol.for("Symbol." + n), wt = (n) => {
|
|
2
2
|
throw TypeError(n);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var e = (n, t, s) => (
|
|
4
|
+
var rt = (n, t, s) => t.has(n) || wt("Cannot " + s);
|
|
5
|
+
var e = (n, t, s) => (rt(n, t, "read from private field"), s ? s.call(n) : t.get(n)), a = (n, t, s) => t.has(n) ? wt("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, s), o = (n, t, s, i) => (rt(n, t, "write to private field"), i ? i.call(n, s) : t.set(n, s), s), d = (n, t, s) => (rt(n, t, "access private method"), s);
|
|
6
6
|
var N = (n, t, s) => new Promise((i, u) => {
|
|
7
|
-
var
|
|
7
|
+
var E = (p) => {
|
|
8
8
|
try {
|
|
9
|
-
M(s.next(
|
|
9
|
+
M(s.next(p));
|
|
10
10
|
} catch (h) {
|
|
11
11
|
u(h);
|
|
12
12
|
}
|
|
13
|
-
},
|
|
13
|
+
}, S = (p) => {
|
|
14
14
|
try {
|
|
15
|
-
M(s.throw(
|
|
15
|
+
M(s.throw(p));
|
|
16
16
|
} catch (h) {
|
|
17
17
|
u(h);
|
|
18
18
|
}
|
|
19
|
-
}, M = (
|
|
19
|
+
}, M = (p) => p.done ? i(p.value) : Promise.resolve(p.value).then(E, S);
|
|
20
20
|
M((s = s.apply(n, t)).next());
|
|
21
21
|
});
|
|
22
|
-
var yt = (n, t, s) => (t = n[
|
|
22
|
+
var yt = (n, t, s) => (t = n[St("asyncIterator")]) ? t.call(n) : (n = n[St("iterator")](), t = {}, s = (i, u) => (u = n[i]) && (t[i] = (E) => new Promise((S, M, p) => (E = u.call(n, E), p = E.done, Promise.resolve(E.value).then((h) => S({ value: h, done: p }), M)))), s("next"), s("return"), t);
|
|
23
23
|
import { i as At } from "../index-euf5anj6.js";
|
|
24
|
-
import { d as
|
|
24
|
+
import { d as j } from "../events-CsVF98U6.js";
|
|
25
25
|
import { r as Rt } from "../polyfills-DJrTJQky.js";
|
|
26
26
|
import { w as zt, s as It } from "../scroll-Benkuq-t.js";
|
|
27
27
|
import { n as qt, c as bt, s as Ot } from "../url-B6BNcw6_.js";
|
|
@@ -38,157 +38,158 @@ class Ct extends HTMLElement {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
At && !customElements.get("morph-announcer") && customElements.define("morph-announcer", Ct);
|
|
41
|
-
var
|
|
42
|
-
class
|
|
41
|
+
var k, c, x, Y, F;
|
|
42
|
+
class nt {
|
|
43
43
|
constructor(t, s) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (t.preventDefault(), e(this, c).hasAttribute("data-back") && e(this,
|
|
44
|
+
a(this, k);
|
|
45
|
+
a(this, c);
|
|
46
|
+
a(this, x);
|
|
47
|
+
a(this, Y, (t) => {
|
|
48
|
+
if (t.preventDefault(), e(this, c).hasAttribute("data-back") && e(this, k).previousPathname)
|
|
49
49
|
history.back();
|
|
50
50
|
else {
|
|
51
51
|
const i = e(this, c).getAttribute(
|
|
52
52
|
"data-history-action"
|
|
53
|
-
) || "push", u = e(this, c).hasAttribute("data-center-scroll"),
|
|
53
|
+
) || "push", u = e(this, c).hasAttribute("data-center-scroll"), E = getComputedStyle(e(this, c)).getPropertyValue("--offset-scroll").trim(), S = E ? Ft.parse(E) : void 0, M = e(this, c).hasAttribute("data-revalidate"), p = e(this, c).hasAttribute(
|
|
54
54
|
"data-keep-search-parameters"
|
|
55
55
|
);
|
|
56
|
-
e(this,
|
|
56
|
+
e(this, k).navigate(e(this, x), {
|
|
57
57
|
historyAction: i,
|
|
58
58
|
centerScroll: u,
|
|
59
|
-
offsetScroll:
|
|
59
|
+
offsetScroll: S,
|
|
60
60
|
revalidate: M,
|
|
61
|
-
keepSearchParameters:
|
|
61
|
+
keepSearchParameters: p
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
a(this, F, () => {
|
|
66
|
+
const t = e(this, c).hasAttribute("data-revalidate");
|
|
67
|
+
e(this, k).prefetch(e(this, x), t), e(this, c).removeEventListener("pointerenter", e(this, F));
|
|
67
68
|
});
|
|
68
|
-
|
|
69
|
+
o(this, k, s), o(this, c, t), o(this, x, e(this, c).getAttribute("href") || "/"), e(this, c).addEventListener("click", e(this, Y)), this.checkCurrent(location.pathname), e(this, c).hasAttribute("data-prefetch") && e(this, c).addEventListener("pointerenter", e(this, F));
|
|
69
70
|
}
|
|
70
71
|
get element() {
|
|
71
72
|
return e(this, c);
|
|
72
73
|
}
|
|
73
74
|
checkCurrent(t) {
|
|
74
|
-
const s = e(this,
|
|
75
|
+
const s = e(this, k).normalizePath(t), i = e(this, k).normalizePath(e(this, x));
|
|
75
76
|
e(this, c).hasAttribute("data-include") && s.pathname.includes(i.pathname) ? e(this, c).classList.add("current") : i.pathname === s.pathname ? e(this, c).classList.add("current") : e(this, c).classList.remove("current");
|
|
76
77
|
}
|
|
77
78
|
destroy() {
|
|
78
|
-
e(this, c).removeEventListener("click", e(this,
|
|
79
|
+
e(this, c).removeEventListener("click", e(this, Y)), e(this, c).removeEventListener("pointerenter", e(this, F)), e(this, c).classList.remove("current");
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
-
var
|
|
82
|
+
k = new WeakMap(), c = new WeakMap(), x = new WeakMap(), Y = new WeakMap(), F = new WeakMap();
|
|
83
|
+
var C, V, v, D, R, T;
|
|
83
84
|
class kt {
|
|
84
85
|
constructor(t, s, i) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
a(this, C);
|
|
87
|
+
a(this, V);
|
|
88
|
+
a(this, v, { x: 0, y: 0 });
|
|
89
|
+
a(this, D);
|
|
90
|
+
a(this, R, null);
|
|
91
|
+
a(this, T, null);
|
|
92
|
+
o(this, C, t), o(this, V, s), o(this, D, i.cloneNode(!0));
|
|
92
93
|
}
|
|
93
94
|
get pathname() {
|
|
94
95
|
return e(this, V);
|
|
95
96
|
}
|
|
96
97
|
get scrollState() {
|
|
97
|
-
return e(this,
|
|
98
|
+
return e(this, v);
|
|
98
99
|
}
|
|
99
100
|
get document() {
|
|
100
|
-
return e(this,
|
|
101
|
+
return e(this, T);
|
|
101
102
|
}
|
|
102
103
|
cloneDocument() {
|
|
103
|
-
|
|
104
|
+
o(this, T, (e(this, R) || e(this, D)).cloneNode(!0));
|
|
104
105
|
}
|
|
105
106
|
get title() {
|
|
106
107
|
let t = "";
|
|
107
|
-
if (e(this,
|
|
108
|
-
t = e(this,
|
|
108
|
+
if (e(this, T).title)
|
|
109
|
+
t = e(this, T).title;
|
|
109
110
|
else {
|
|
110
|
-
const s = e(this,
|
|
111
|
+
const s = e(this, T).querySelector("h1");
|
|
111
112
|
t = (s == null ? void 0 : s.innerText) || (s == null ? void 0 : s.textContent) || e(this, V);
|
|
112
113
|
}
|
|
113
114
|
return t;
|
|
114
115
|
}
|
|
115
116
|
clearScrollState() {
|
|
116
|
-
e(this,
|
|
117
|
+
e(this, v).x = 0, e(this, v).y = 0;
|
|
117
118
|
}
|
|
118
119
|
clearDocumentState() {
|
|
119
|
-
|
|
120
|
+
o(this, R, null);
|
|
120
121
|
}
|
|
121
122
|
saveScrollState() {
|
|
122
123
|
e(this, D).documentElement.hasAttribute(
|
|
123
124
|
"data-no-scroll-restoration"
|
|
124
|
-
) ? (e(this,
|
|
125
|
+
) ? (e(this, v).x = 0, e(this, v).y = 0) : (e(this, v).x = e(this, C).scrollElement.scrollLeft, e(this, v).y = e(this, C).scrollElement.scrollTop);
|
|
125
126
|
}
|
|
126
127
|
saveDocumentState() {
|
|
127
128
|
e(this, D).documentElement.hasAttribute(
|
|
128
129
|
"data-no-page-restoration"
|
|
129
|
-
) ?
|
|
130
|
+
) ? o(this, R, null) : o(this, R, document.cloneNode(!0));
|
|
130
131
|
}
|
|
131
132
|
restoreScrollPosition() {
|
|
132
|
-
e(this,
|
|
133
|
-
top: e(this,
|
|
134
|
-
left: e(this,
|
|
133
|
+
e(this, C).scrollElement.scroll({
|
|
134
|
+
top: e(this, v).y,
|
|
135
|
+
left: e(this, v).x
|
|
135
136
|
});
|
|
136
137
|
}
|
|
137
138
|
renewScrollPosition() {
|
|
138
|
-
e(this,
|
|
139
|
+
e(this, C).scrollElement.scroll({
|
|
139
140
|
top: 0,
|
|
140
141
|
left: 0,
|
|
141
142
|
behavior: "instant"
|
|
142
143
|
});
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
|
-
|
|
146
|
-
var
|
|
147
|
-
const
|
|
146
|
+
C = new WeakMap(), V = new WeakMap(), v = new WeakMap(), D = new WeakMap(), R = new WeakMap(), T = new WeakMap();
|
|
147
|
+
var P, W, m, et, H, f, G, z, A, y, B, I, J, l, tt, Tt, at, Ht, ot, lt, ct, ht, st, U;
|
|
148
|
+
const K = class K {
|
|
148
149
|
constructor(t) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
150
|
+
a(this, l);
|
|
151
|
+
a(this, P, null);
|
|
152
|
+
a(this, W, null);
|
|
153
|
+
a(this, m, []);
|
|
154
|
+
a(this, et, new DOMParser());
|
|
155
|
+
a(this, H);
|
|
156
|
+
a(this, f, null);
|
|
157
|
+
a(this, G);
|
|
158
|
+
a(this, z, []);
|
|
159
|
+
a(this, A, !1);
|
|
160
|
+
a(this, y, null);
|
|
161
|
+
a(this, B, /* @__PURE__ */ new Map());
|
|
162
|
+
a(this, I, null);
|
|
163
|
+
a(this, J, (t) => {
|
|
163
164
|
var s;
|
|
164
165
|
return ((s = t.getAttribute("href")) == null ? void 0 : s.startsWith("/")) && !t.hasAttribute("download") && !t.hasAttribute("data-morph-skip") && !t.closest("[data-morph-skip]") && t.getAttribute("target") !== "_blank";
|
|
165
166
|
});
|
|
166
|
-
|
|
167
|
+
a(this, st, (t) => N(this, null, function* () {
|
|
167
168
|
var s;
|
|
168
|
-
(s = t.state) != null && s.path && (t.preventDefault(),
|
|
169
|
+
(s = t.state) != null && s.path && (t.preventDefault(), o(this, A, !0), yield this.navigate(t.state.path, { historyAction: "none" }), o(this, A, !1));
|
|
169
170
|
}));
|
|
170
|
-
|
|
171
|
-
const t = e(this,
|
|
172
|
-
document.documentElement.classList.toggle("top-scrolled", t > 0), document.documentElement.classList.toggle("left-scrolled", s > 0),
|
|
171
|
+
a(this, U, () => {
|
|
172
|
+
const t = e(this, y).scrollTop, s = e(this, y).scrollLeft;
|
|
173
|
+
document.documentElement.classList.toggle("top-scrolled", t > 0), document.documentElement.classList.toggle("left-scrolled", s > 0), j(document, "morphScroll", {
|
|
173
174
|
detail: {
|
|
174
175
|
left: s,
|
|
175
176
|
top: t
|
|
176
177
|
}
|
|
177
178
|
});
|
|
178
179
|
});
|
|
179
|
-
if (At && !
|
|
180
|
-
|
|
180
|
+
if (At && !K.instance) {
|
|
181
|
+
K.instance = this, o(this, P, {
|
|
181
182
|
base: qt(t == null ? void 0 : t.base),
|
|
182
183
|
waitForHeadToLoad: (t == null ? void 0 : t.waitForHeadToLoad) !== !1,
|
|
183
184
|
cachePages: (t == null ? void 0 : t.cachePages) !== !1,
|
|
184
185
|
trailingSlash: (t == null ? void 0 : t.trailingSlash) || !1,
|
|
185
186
|
scrollSelector: (t == null ? void 0 : t.scrollSelector) || "body",
|
|
186
187
|
morphInsideScrollContainer: (t == null ? void 0 : t.morphInsideScrollContainer) || !1
|
|
187
|
-
}),
|
|
188
|
+
}), o(this, W, d(this, l, at).call(this, document.body));
|
|
188
189
|
const s = this.normalizePath(
|
|
189
190
|
location.pathname + location.hash
|
|
190
191
|
);
|
|
191
|
-
|
|
192
|
+
o(this, f, s.pathname), e(this, B).set(
|
|
192
193
|
e(this, f),
|
|
193
194
|
new kt(this, e(this, f), document)
|
|
194
195
|
), document.documentElement.setAttribute(
|
|
@@ -197,39 +198,42 @@ const Y = class Y {
|
|
|
197
198
|
), document.documentElement.setAttribute(
|
|
198
199
|
"data-current-leaf",
|
|
199
200
|
s.leaf
|
|
200
|
-
), this.findLinks(), addEventListener("popstate", e(this,
|
|
201
|
+
), this.findLinks(), addEventListener("popstate", e(this, st)), bt({
|
|
201
202
|
action: "replace",
|
|
202
203
|
pathname: e(this, f),
|
|
203
204
|
searchParameters: s.parameters || location.search,
|
|
204
205
|
hash: s.hash
|
|
205
|
-
}),
|
|
206
|
+
}), o(this, I, new Ct()), d(this, l, ct).call(this, document);
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
get currentPathname() {
|
|
209
210
|
return e(this, f);
|
|
210
211
|
}
|
|
211
212
|
get previousPathname() {
|
|
212
|
-
return e(this,
|
|
213
|
+
return e(this, G);
|
|
213
214
|
}
|
|
214
215
|
get links() {
|
|
215
216
|
return e(this, m);
|
|
216
217
|
}
|
|
217
218
|
get scrollElement() {
|
|
218
|
-
return e(this,
|
|
219
|
+
return e(this, y);
|
|
219
220
|
}
|
|
220
221
|
get isPopstateNavigation() {
|
|
221
|
-
return e(this,
|
|
222
|
+
return e(this, A);
|
|
222
223
|
}
|
|
223
224
|
normalizePath(t) {
|
|
224
225
|
return Ot(t, {
|
|
225
|
-
base: e(this,
|
|
226
|
-
trailingSlash: e(this,
|
|
226
|
+
base: e(this, P).base,
|
|
227
|
+
trailingSlash: e(this, P).trailingSlash
|
|
227
228
|
});
|
|
228
229
|
}
|
|
229
|
-
prefetch(t) {
|
|
230
|
+
prefetch(t, s) {
|
|
230
231
|
return N(this, null, function* () {
|
|
231
|
-
const
|
|
232
|
-
d(this, l,
|
|
232
|
+
const i = this.normalizePath(t);
|
|
233
|
+
d(this, l, tt).call(this, i.pathname, {
|
|
234
|
+
searchParameters: i.parameters,
|
|
235
|
+
revalidate: s
|
|
236
|
+
});
|
|
233
237
|
});
|
|
234
238
|
}
|
|
235
239
|
navigate(M) {
|
|
@@ -237,153 +241,156 @@ const Y = class Y {
|
|
|
237
241
|
historyAction: s = "push",
|
|
238
242
|
centerScroll: i,
|
|
239
243
|
offsetScroll: u,
|
|
240
|
-
revalidate:
|
|
241
|
-
keepSearchParameters:
|
|
244
|
+
revalidate: E,
|
|
245
|
+
keepSearchParameters: S
|
|
242
246
|
} = {}) {
|
|
243
247
|
var dt;
|
|
244
248
|
if (e(this, z).length)
|
|
245
249
|
return;
|
|
246
|
-
const
|
|
247
|
-
let { pathname: h, hash:
|
|
248
|
-
if (e(this,
|
|
249
|
-
e(this,
|
|
250
|
+
const p = this.normalizePath(((dt = this.pathnameModifier) == null ? void 0 : dt.call(this, t)) || t);
|
|
251
|
+
let { pathname: h, hash: Q, parameters: ut, leaf: Mt } = p;
|
|
252
|
+
if (e(this, H) === h || e(this, f) === h) {
|
|
253
|
+
e(this, A) || d(this, l, ht).call(this, Q || 0, {
|
|
250
254
|
centerScroll: i,
|
|
251
255
|
offsetScroll: u,
|
|
252
256
|
behavior: "smooth"
|
|
253
257
|
});
|
|
254
258
|
return;
|
|
255
259
|
}
|
|
256
|
-
|
|
260
|
+
o(this, H, h), e(this, m).forEach((q) => {
|
|
257
261
|
q.checkCurrent(h);
|
|
258
262
|
});
|
|
259
263
|
try {
|
|
260
264
|
let q = !0;
|
|
261
265
|
if (this.preprocessor)
|
|
262
266
|
try {
|
|
263
|
-
yield new Promise((r,
|
|
264
|
-
var
|
|
265
|
-
(
|
|
267
|
+
yield new Promise((r, b) => {
|
|
268
|
+
var L;
|
|
269
|
+
(L = this.preprocessor) == null || L.call(this, {
|
|
266
270
|
pathname: h,
|
|
267
271
|
resolve: r,
|
|
268
|
-
reject:
|
|
272
|
+
reject: b
|
|
269
273
|
});
|
|
270
274
|
});
|
|
271
275
|
} catch (r) {
|
|
272
276
|
r ? console.error(r) : console.log("Route change canceled"), q = !1;
|
|
273
277
|
}
|
|
274
|
-
if (!q || e(this,
|
|
278
|
+
if (!q || e(this, H) !== h) {
|
|
275
279
|
e(this, m).forEach((r) => {
|
|
276
280
|
r.checkCurrent(e(this, f));
|
|
277
281
|
});
|
|
278
282
|
return;
|
|
279
283
|
}
|
|
280
|
-
const mt = yield d(this, l,
|
|
281
|
-
|
|
284
|
+
const mt = yield d(this, l, tt).call(this, e(this, f)), w = yield d(this, l, tt).call(this, h, {
|
|
285
|
+
searchParameters: ut,
|
|
286
|
+
revalidate: E
|
|
287
|
+
});
|
|
288
|
+
if (e(this, H) !== h) {
|
|
282
289
|
e(this, m).forEach((r) => {
|
|
283
290
|
r.checkCurrent(e(this, f));
|
|
284
291
|
});
|
|
285
292
|
return;
|
|
286
293
|
}
|
|
287
|
-
mt.saveScrollState(), mt.saveDocumentState(), e(this,
|
|
294
|
+
mt.saveScrollState(), mt.saveDocumentState(), e(this, A) || (w.clearScrollState(), w.clearDocumentState()), w.cloneDocument(), e(this, I).textContent = w.title, document.body.appendChild(e(this, I));
|
|
288
295
|
const ft = {
|
|
289
296
|
pathname: h
|
|
290
297
|
};
|
|
291
|
-
|
|
298
|
+
j(document, "morphStart", {
|
|
292
299
|
detail: ft
|
|
293
300
|
});
|
|
294
|
-
const pt = Array.from(document.head.children), Et = Array.from(
|
|
295
|
-
|
|
301
|
+
const pt = Array.from(document.head.children), Et = Array.from(w.document.head.children), gt = d(this, l, Ht).call(this, pt, Et), Nt = d(this, l, ot).call(this, pt, gt), X = d(this, l, ot).call(this, Et, gt);
|
|
302
|
+
X.forEach((r, b) => {
|
|
296
303
|
if (r.tagName === "SCRIPT" && r.getAttribute("src")) {
|
|
297
|
-
const
|
|
298
|
-
|
|
304
|
+
const L = document.createElement("script");
|
|
305
|
+
L.type = "module", L.src = r.getAttribute("src"), X[b] = L;
|
|
299
306
|
}
|
|
300
|
-
}),
|
|
307
|
+
}), X.forEach((r) => {
|
|
301
308
|
document.head.appendChild(r);
|
|
302
309
|
});
|
|
303
|
-
const
|
|
310
|
+
const it = X.filter((r) => {
|
|
304
311
|
if (r.hasAttribute("data-no-waiting"))
|
|
305
312
|
return !1;
|
|
306
|
-
if (d(this, l,
|
|
313
|
+
if (d(this, l, lt).call(this, r))
|
|
307
314
|
return !0;
|
|
308
315
|
});
|
|
309
|
-
e(this,
|
|
310
|
-
let
|
|
316
|
+
e(this, P).waitForHeadToLoad && it.length && (yield new Promise((r) => N(this, null, function* () {
|
|
317
|
+
let b = 0;
|
|
311
318
|
try {
|
|
312
|
-
for (var
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
319
|
+
for (var L = yt(it), O, $, Lt; O = !($ = yield L.next()).done; O = !1) {
|
|
320
|
+
const Z = $.value;
|
|
321
|
+
Z.onload = () => {
|
|
322
|
+
b++, b === it.length && r();
|
|
316
323
|
};
|
|
317
324
|
}
|
|
318
|
-
} catch (
|
|
319
|
-
|
|
325
|
+
} catch ($) {
|
|
326
|
+
Lt = [$];
|
|
320
327
|
} finally {
|
|
321
328
|
try {
|
|
322
|
-
O && (
|
|
329
|
+
O && ($ = L.return) && (yield $.call(L));
|
|
323
330
|
} finally {
|
|
324
|
-
if (
|
|
325
|
-
throw
|
|
331
|
+
if (Lt)
|
|
332
|
+
throw Lt[0];
|
|
326
333
|
}
|
|
327
334
|
}
|
|
328
335
|
}))), yield zt(10);
|
|
329
|
-
const
|
|
336
|
+
const vt = [];
|
|
330
337
|
Nt.forEach((r) => {
|
|
331
|
-
r.hasAttribute("data-permanent") || (d(this, l,
|
|
338
|
+
r.hasAttribute("data-permanent") || (d(this, l, lt).call(this, r) ? vt.push(r) : r.remove());
|
|
332
339
|
});
|
|
333
|
-
const xt = d(this, l, at).call(this,
|
|
334
|
-
e(this,
|
|
340
|
+
const xt = d(this, l, at).call(this, w.document.body);
|
|
341
|
+
e(this, P).morphInsideScrollContainer || d(this, l, ct).call(this, w.document), document.documentElement.setAttribute("data-current-pathname", h), document.documentElement.setAttribute("data-current-leaf", Mt), bt({
|
|
335
342
|
action: s,
|
|
336
343
|
pathname: h,
|
|
337
|
-
searchParameters:
|
|
338
|
-
hash:
|
|
339
|
-
}), e(this, I).remove(),
|
|
340
|
-
const
|
|
344
|
+
searchParameters: ut || (S ? location.search : ""),
|
|
345
|
+
hash: Q
|
|
346
|
+
}), e(this, I).remove(), o(this, G, e(this, f)), o(this, f, h), e(this, W).forEach((r, b) => {
|
|
347
|
+
const L = xt[b], O = getComputedStyle(r).getPropertyValue("--morph-duration"), $ = [...L.childNodes];
|
|
341
348
|
if (O) {
|
|
342
|
-
const
|
|
343
|
-
|
|
349
|
+
const Lt = [...r.childNodes];
|
|
350
|
+
Lt.forEach((g) => {
|
|
344
351
|
g instanceof HTMLElement && (this.destroyOldLinks(g), g.classList.add("old"));
|
|
345
|
-
}),
|
|
352
|
+
}), $.forEach((g) => {
|
|
346
353
|
g instanceof HTMLElement && (this.findNewLinks(g), g.classList.add("new"));
|
|
347
|
-
}), r.prepend(
|
|
348
|
-
|
|
354
|
+
}), r.prepend(...$), Rt(() => {
|
|
355
|
+
$.forEach((g) => {
|
|
349
356
|
g instanceof HTMLElement && g.classList.add("in");
|
|
350
357
|
});
|
|
351
358
|
});
|
|
352
|
-
const
|
|
359
|
+
const Z = {
|
|
353
360
|
morphElement: r,
|
|
354
361
|
pathname: h
|
|
355
362
|
};
|
|
356
|
-
|
|
357
|
-
detail:
|
|
363
|
+
j(document, "morphNewChildrenAdded", {
|
|
364
|
+
detail: Z
|
|
358
365
|
});
|
|
359
366
|
const Dt = new Promise((g) => {
|
|
360
367
|
setTimeout(() => {
|
|
361
|
-
|
|
368
|
+
Lt.forEach((_) => _.remove()), $.forEach((_) => {
|
|
362
369
|
_ instanceof HTMLElement && _.classList.remove("in", "new");
|
|
363
|
-
}),
|
|
364
|
-
detail:
|
|
370
|
+
}), j(document, "morphOldChildrenRemoved", {
|
|
371
|
+
detail: Z
|
|
365
372
|
}), g();
|
|
366
373
|
}, (parseFloat(O) || 0) * 1e3 + 10);
|
|
367
374
|
});
|
|
368
375
|
e(this, z).push(Dt);
|
|
369
376
|
} else
|
|
370
|
-
this.destroyOldLinks(r), r.innerHTML = "", r.append(
|
|
371
|
-
}),
|
|
372
|
-
r.querySelectorAll("script").forEach((
|
|
377
|
+
this.destroyOldLinks(r), r.innerHTML = "", r.append(...$), this.findNewLinks(r);
|
|
378
|
+
}), Q ? (w.clearScrollState(), d(this, l, ht).call(this, Q, { centerScroll: i, offsetScroll: u })) : e(this, A) ? w.restoreScrollPosition() : w.renewScrollPosition(), yield Promise.all(e(this, z)), vt.forEach((r) => r.remove()), o(this, z, []), e(this, W).forEach((r) => {
|
|
379
|
+
r.querySelectorAll("script").forEach((L) => {
|
|
373
380
|
const O = document.createElement("script");
|
|
374
|
-
O.type = "module", O.src =
|
|
381
|
+
O.type = "module", O.src = L.getAttribute("src"), L.replaceWith(O);
|
|
375
382
|
});
|
|
376
|
-
}),
|
|
383
|
+
}), j(document, "morphComplete", {
|
|
377
384
|
detail: ft
|
|
378
385
|
}), window.dispatchEvent(new Event("resize"));
|
|
379
386
|
} catch (q) {
|
|
380
387
|
console.error(q);
|
|
381
388
|
}
|
|
382
|
-
|
|
389
|
+
o(this, H, void 0);
|
|
383
390
|
});
|
|
384
391
|
}
|
|
385
392
|
addLink(t) {
|
|
386
|
-
e(this, m).push(new
|
|
393
|
+
e(this, m).push(new nt(t, this));
|
|
387
394
|
}
|
|
388
395
|
addLinks(t) {
|
|
389
396
|
t.forEach((s) => {
|
|
@@ -391,69 +398,71 @@ const Y = class Y {
|
|
|
391
398
|
});
|
|
392
399
|
}
|
|
393
400
|
removeLink(t) {
|
|
394
|
-
|
|
401
|
+
o(this, m, e(this, m).filter((s) => s.element === t ? (s.destroy(), !1) : !0));
|
|
395
402
|
}
|
|
396
403
|
destroyOldLinks(t) {
|
|
397
|
-
|
|
404
|
+
o(this, m, e(this, m).filter((s) => t.contains(s.element) ? (s.destroy(), !1) : !0));
|
|
398
405
|
}
|
|
399
406
|
findNewLinks(t) {
|
|
400
407
|
const s = [...t.querySelectorAll("a")].filter(
|
|
401
|
-
e(this,
|
|
408
|
+
e(this, J)
|
|
402
409
|
);
|
|
403
410
|
e(this, m).push(
|
|
404
|
-
...s.map((i) => new
|
|
411
|
+
...s.map((i) => new nt(i, this))
|
|
405
412
|
);
|
|
406
413
|
}
|
|
407
414
|
findLinks() {
|
|
408
415
|
const t = [
|
|
409
416
|
...document.documentElement.querySelectorAll("a")
|
|
410
|
-
].filter(e(this,
|
|
411
|
-
e(this, m).forEach((s) => s.destroy()),
|
|
417
|
+
].filter(e(this, J));
|
|
418
|
+
e(this, m).forEach((s) => s.destroy()), o(this, m, t.map((s) => new nt(s, this)));
|
|
412
419
|
}
|
|
413
420
|
};
|
|
414
|
-
|
|
421
|
+
P = new WeakMap(), W = new WeakMap(), m = new WeakMap(), et = new WeakMap(), H = new WeakMap(), f = new WeakMap(), G = new WeakMap(), z = new WeakMap(), A = new WeakMap(), y = new WeakMap(), B = new WeakMap(), I = new WeakMap(), J = new WeakMap(), l = new WeakSet(), tt = function(t, s) {
|
|
415
422
|
return N(this, null, function* () {
|
|
416
423
|
let i = e(this, B).get(t);
|
|
417
|
-
return (!i || s) && (i = yield d(this, l,
|
|
424
|
+
return (!i || s != null && s.revalidate) && (i = yield d(this, l, Tt).call(this, t, s == null ? void 0 : s.searchParameters)), i;
|
|
418
425
|
});
|
|
419
|
-
},
|
|
426
|
+
}, Tt = function(t, s) {
|
|
420
427
|
return N(this, null, function* () {
|
|
421
|
-
const
|
|
422
|
-
|
|
428
|
+
const u = yield (yield fetch(
|
|
429
|
+
`${t}${s ? "?" + s : ""}`
|
|
430
|
+
)).text(), E = e(this, et).parseFromString(u, "text/html"), S = new kt(this, t, E);
|
|
431
|
+
return e(this, B).set(t, S), S;
|
|
423
432
|
});
|
|
424
433
|
}, at = function(t) {
|
|
425
434
|
const s = [...t.querySelectorAll("[data-morph]")];
|
|
426
435
|
return s.length ? s : [t];
|
|
427
|
-
},
|
|
436
|
+
}, Ht = function(t, s) {
|
|
428
437
|
return t.filter(
|
|
429
438
|
(i) => s.find(
|
|
430
439
|
(u) => u.outerHTML === i.outerHTML
|
|
431
440
|
)
|
|
432
441
|
);
|
|
433
|
-
},
|
|
442
|
+
}, ot = function(t, s) {
|
|
434
443
|
return t.filter(
|
|
435
444
|
(i) => !s.find(
|
|
436
445
|
(u) => u.outerHTML === i.outerHTML
|
|
437
446
|
)
|
|
438
447
|
);
|
|
439
|
-
},
|
|
448
|
+
}, lt = function(t) {
|
|
440
449
|
return t.tagName === "SCRIPT" || t.tagName === "STYLE" || t.tagName === "LINK" && t.getAttribute("rel") === "stylesheet";
|
|
441
|
-
},
|
|
450
|
+
}, ct = function(t) {
|
|
442
451
|
var s, i;
|
|
443
|
-
(s = e(this,
|
|
452
|
+
(s = e(this, y)) == null || s.removeEventListener(
|
|
444
453
|
"scroll",
|
|
445
454
|
e(this, U)
|
|
446
|
-
),
|
|
447
|
-
},
|
|
455
|
+
), o(this, y, t.querySelector(e(this, P).scrollSelector) || t.documentElement), (i = e(this, y)) == null || i.addEventListener("scroll", e(this, U)), e(this, U).call(this);
|
|
456
|
+
}, ht = function(t, s) {
|
|
448
457
|
const i = typeof t == "string" ? document.getElementById(t) : t;
|
|
449
458
|
(typeof i == "number" || i) && It(i, {
|
|
450
|
-
scrollElement: e(this,
|
|
459
|
+
scrollElement: e(this, y),
|
|
451
460
|
behavior: (s == null ? void 0 : s.behavior) || "instant",
|
|
452
461
|
center: s == null ? void 0 : s.centerScroll,
|
|
453
462
|
offset: s == null ? void 0 : s.offsetScroll
|
|
454
463
|
});
|
|
455
|
-
},
|
|
456
|
-
let Pt =
|
|
464
|
+
}, st = new WeakMap(), U = new WeakMap(), K.instance = null;
|
|
465
|
+
let Pt = K;
|
|
457
466
|
export {
|
|
458
467
|
Pt as Morph
|
|
459
468
|
};
|