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.
@@ -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;
@@ -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;
@@ -1,27 +1,27 @@
1
- var vt = (n, t) => (t = Symbol[n]) ? t : Symbol.for("Symbol." + n), wt = (n) => {
1
+ var St = (n, t) => (t = Symbol[n]) ? t : Symbol.for("Symbol." + n), wt = (n) => {
2
2
  throw TypeError(n);
3
3
  };
4
- var it = (n, t, s) => t.has(n) || wt("Cannot " + s);
5
- var e = (n, t, s) => (it(n, t, "read from private field"), s ? s.call(n) : t.get(n)), o = (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), a = (n, t, s, i) => (it(n, t, "write to private field"), i ? i.call(n, s) : t.set(n, s), s), d = (n, t, s) => (it(n, t, "access private method"), 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 p = (E) => {
7
+ var E = (p) => {
8
8
  try {
9
- M(s.next(E));
9
+ M(s.next(p));
10
10
  } catch (h) {
11
11
  u(h);
12
12
  }
13
- }, H = (E) => {
13
+ }, S = (p) => {
14
14
  try {
15
- M(s.throw(E));
15
+ M(s.throw(p));
16
16
  } catch (h) {
17
17
  u(h);
18
18
  }
19
- }, M = (E) => E.done ? i(E.value) : Promise.resolve(E.value).then(p, H);
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[vt("asyncIterator")]) ? t.call(n) : (n = n[vt("iterator")](), t = {}, s = (i, u) => (u = n[i]) && (t[i] = (p) => new Promise((H, M, E) => (p = u.call(n, p), E = p.done, Promise.resolve(p.value).then((h) => H({ value: h, done: E }), M)))), s("next"), s("return"), t);
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 K } from "../events-CsVF98U6.js";
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 b, c, x, G, F;
42
- class rt {
41
+ var k, c, x, Y, F;
42
+ class nt {
43
43
  constructor(t, s) {
44
- o(this, b);
45
- o(this, c);
46
- o(this, x);
47
- o(this, G, (t) => {
48
- if (t.preventDefault(), e(this, c).hasAttribute("data-back") && e(this, b).previousPathname)
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"), p = getComputedStyle(e(this, c)).getPropertyValue("--offset-scroll").trim(), H = p ? Ft.parse(p) : void 0, M = e(this, c).hasAttribute("data-revalidate"), E = e(this, c).hasAttribute(
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, b).navigate(e(this, x), {
56
+ e(this, k).navigate(e(this, x), {
57
57
  historyAction: i,
58
58
  centerScroll: u,
59
- offsetScroll: H,
59
+ offsetScroll: S,
60
60
  revalidate: M,
61
- keepSearchParameters: E
61
+ keepSearchParameters: p
62
62
  });
63
63
  }
64
64
  });
65
- o(this, F, () => {
66
- e(this, b).prefetch(e(this, x)), e(this, c).removeEventListener("pointerenter", e(this, F));
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
- 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));
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, b).normalizePath(t), i = e(this, b).normalizePath(e(this, x));
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, G)), e(this, c).removeEventListener("pointerenter", e(this, F)), e(this, c).classList.remove("current");
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
- b = new WeakMap(), c = new WeakMap(), x = new WeakMap(), G = new WeakMap(), F = new WeakMap();
82
- var A, V, L, D, R, C;
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
- o(this, A);
86
- o(this, V);
87
- o(this, L, { x: 0, y: 0 });
88
- o(this, D);
89
- o(this, R, null);
90
- o(this, C, null);
91
- a(this, A, t), a(this, V, s), a(this, D, i.cloneNode(!0));
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, L);
98
+ return e(this, v);
98
99
  }
99
100
  get document() {
100
- return e(this, C);
101
+ return e(this, T);
101
102
  }
102
103
  cloneDocument() {
103
- a(this, C, (e(this, R) || e(this, D)).cloneNode(!0));
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, C).title)
108
- t = e(this, C).title;
108
+ if (e(this, T).title)
109
+ t = e(this, T).title;
109
110
  else {
110
- const s = e(this, C).querySelector("h1");
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, L).x = 0, e(this, L).y = 0;
117
+ e(this, v).x = 0, e(this, v).y = 0;
117
118
  }
118
119
  clearDocumentState() {
119
- a(this, R, null);
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, L).x = 0, e(this, L).y = 0) : (e(this, L).x = e(this, A).scrollElement.scrollLeft, e(this, L).y = e(this, A).scrollElement.scrollTop);
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
- ) ? a(this, R, null) : a(this, R, document.cloneNode(!0));
130
+ ) ? o(this, R, null) : o(this, R, document.cloneNode(!0));
130
131
  }
131
132
  restoreScrollPosition() {
132
- e(this, A).scrollElement.scroll({
133
- top: e(this, L).y,
134
- left: e(this, L).x
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, A).scrollElement.scroll({
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
- A = new WeakMap(), V = new WeakMap(), L = new WeakMap(), D = new WeakMap(), R = new WeakMap(), C = new WeakMap();
146
- var k, W, m, tt, T, f, J, z, P, w, B, I, Q, l, nt, ot, at, Tt, lt, ct, ht, ut, et, U;
147
- const Y = class Y {
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
- o(this, l);
150
- o(this, k, null);
151
- o(this, W, null);
152
- o(this, m, []);
153
- o(this, tt, new DOMParser());
154
- o(this, T);
155
- o(this, f, null);
156
- o(this, J);
157
- o(this, z, []);
158
- o(this, P, !1);
159
- o(this, w, null);
160
- o(this, B, /* @__PURE__ */ new Map());
161
- o(this, I, null);
162
- o(this, Q, (t) => {
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
- o(this, et, (t) => N(this, null, function* () {
167
+ a(this, st, (t) => N(this, null, function* () {
167
168
  var s;
168
- (s = t.state) != null && s.path && (t.preventDefault(), a(this, P, !0), yield this.navigate(t.state.path, { historyAction: "none" }), a(this, P, !1));
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
- o(this, U, () => {
171
- const t = e(this, w).scrollTop, s = e(this, w).scrollLeft;
172
- document.documentElement.classList.toggle("top-scrolled", t > 0), document.documentElement.classList.toggle("left-scrolled", s > 0), K(document, "morphScroll", {
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 && !Y.instance) {
180
- Y.instance = this, a(this, k, {
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
- }), a(this, W, d(this, l, at).call(this, document.body));
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
- a(this, f, s.pathname), e(this, B).set(
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, et)), bt({
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
- }), a(this, I, new Ct()), d(this, l, ht).call(this, document);
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, J);
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, w);
219
+ return e(this, y);
219
220
  }
220
221
  get isPopstateNavigation() {
221
- return e(this, P);
222
+ return e(this, A);
222
223
  }
223
224
  normalizePath(t) {
224
225
  return Ot(t, {
225
- base: e(this, k).base,
226
- trailingSlash: e(this, k).trailingSlash
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 s = this.normalizePath(t);
232
- d(this, l, ot).call(this, s.pathname);
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: p,
241
- keepSearchParameters: H
244
+ revalidate: E,
245
+ keepSearchParameters: S
242
246
  } = {}) {
243
247
  var dt;
244
248
  if (e(this, z).length)
245
249
  return;
246
- const E = this.normalizePath(((dt = this.pathnameModifier) == null ? void 0 : dt.call(this, t)) || t);
247
- let { pathname: h, hash: X, parameters: Ht, leaf: Mt } = E;
248
- if (e(this, T) === h || e(this, f) === h) {
249
- e(this, P) || d(this, l, ut).call(this, X || 0, {
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
- a(this, T, h), e(this, m).forEach((q) => {
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, y) => {
264
- var S;
265
- (S = this.preprocessor) == null || S.call(this, {
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: y
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, T) !== h) {
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, nt).call(this, e(this, f)), v = yield d(this, l, nt).call(this, h, p);
281
- if (e(this, T) !== h) {
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, P) || (v.clearScrollState(), v.clearDocumentState()), v.cloneDocument(), e(this, I).textContent = v.title, document.body.appendChild(e(this, I));
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
- K(document, "morphStart", {
298
+ j(document, "morphStart", {
292
299
  detail: ft
293
300
  });
294
- const pt = Array.from(document.head.children), Et = Array.from(v.document.head.children), gt = d(this, l, Tt).call(this, pt, Et), Nt = d(this, l, lt).call(this, pt, gt), Z = d(this, l, lt).call(this, Et, gt);
295
- Z.forEach((r, y) => {
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 S = document.createElement("script");
298
- S.type = "module", S.src = r.getAttribute("src"), Z[y] = S;
304
+ const L = document.createElement("script");
305
+ L.type = "module", L.src = r.getAttribute("src"), X[b] = L;
299
306
  }
300
- }), Z.forEach((r) => {
307
+ }), X.forEach((r) => {
301
308
  document.head.appendChild(r);
302
309
  });
303
- const st = Z.filter((r) => {
310
+ const it = X.filter((r) => {
304
311
  if (r.hasAttribute("data-no-waiting"))
305
312
  return !1;
306
- if (d(this, l, ct).call(this, r))
313
+ if (d(this, l, lt).call(this, r))
307
314
  return !0;
308
315
  });
309
- e(this, k).waitForHeadToLoad && st.length && (yield new Promise((r) => N(this, null, function* () {
310
- let y = 0;
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 S = yt(st), O, j, St; O = !(j = yield S.next()).done; O = !1) {
313
- const $ = j.value;
314
- $.onload = () => {
315
- y++, y === st.length && r();
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 (j) {
319
- St = [j];
325
+ } catch ($) {
326
+ Lt = [$];
320
327
  } finally {
321
328
  try {
322
- O && (j = S.return) && (yield j.call(S));
329
+ O && ($ = L.return) && (yield $.call(L));
323
330
  } finally {
324
- if (St)
325
- throw St[0];
331
+ if (Lt)
332
+ throw Lt[0];
326
333
  }
327
334
  }
328
335
  }))), yield zt(10);
329
- const Lt = [];
336
+ const vt = [];
330
337
  Nt.forEach((r) => {
331
- r.hasAttribute("data-permanent") || (d(this, l, ct).call(this, r) ? Lt.push(r) : r.remove());
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, v.document.body);
334
- e(this, k).morphInsideScrollContainer || d(this, l, ht).call(this, v.document), document.documentElement.setAttribute("data-current-pathname", h), document.documentElement.setAttribute("data-current-leaf", Mt), bt({
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: Ht || (H ? location.search : ""),
338
- hash: X
339
- }), e(this, I).remove(), a(this, J, e(this, f)), a(this, f, h), e(this, W).forEach((r, y) => {
340
- const S = xt[y], O = getComputedStyle(r).getPropertyValue("--morph-duration"), j = [...S.childNodes];
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 St = [...r.childNodes];
343
- St.forEach((g) => {
349
+ const Lt = [...r.childNodes];
350
+ Lt.forEach((g) => {
344
351
  g instanceof HTMLElement && (this.destroyOldLinks(g), g.classList.add("old"));
345
- }), j.forEach((g) => {
352
+ }), $.forEach((g) => {
346
353
  g instanceof HTMLElement && (this.findNewLinks(g), g.classList.add("new"));
347
- }), r.prepend(...j), Rt(() => {
348
- j.forEach((g) => {
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
- K(document, "morphNewChildrenAdded", {
357
- detail: $
363
+ j(document, "morphNewChildrenAdded", {
364
+ detail: Z
358
365
  });
359
366
  const Dt = new Promise((g) => {
360
367
  setTimeout(() => {
361
- St.forEach((_) => _.remove()), j.forEach((_) => {
368
+ Lt.forEach((_) => _.remove()), $.forEach((_) => {
362
369
  _ instanceof HTMLElement && _.classList.remove("in", "new");
363
- }), K(document, "morphOldChildrenRemoved", {
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(...j), this.findNewLinks(r);
371
- }), X ? (v.clearScrollState(), d(this, l, ut).call(this, X, { centerScroll: i, offsetScroll: u })) : e(this, P) ? v.restoreScrollPosition() : v.renewScrollPosition(), yield Promise.all(e(this, z)), Lt.forEach((r) => r.remove()), a(this, z, []), e(this, W).forEach((r) => {
372
- r.querySelectorAll("script").forEach((S) => {
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 = S.getAttribute("src"), S.replaceWith(O);
381
+ O.type = "module", O.src = L.getAttribute("src"), L.replaceWith(O);
375
382
  });
376
- }), K(document, "morphComplete", {
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
- a(this, T, void 0);
389
+ o(this, H, void 0);
383
390
  });
384
391
  }
385
392
  addLink(t) {
386
- e(this, m).push(new rt(t, this));
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
- a(this, m, e(this, m).filter((s) => s.element === t ? (s.destroy(), !1) : !0));
401
+ o(this, m, e(this, m).filter((s) => s.element === t ? (s.destroy(), !1) : !0));
395
402
  }
396
403
  destroyOldLinks(t) {
397
- a(this, m, e(this, m).filter((s) => t.contains(s.element) ? (s.destroy(), !1) : !0));
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, Q)
408
+ e(this, J)
402
409
  );
403
410
  e(this, m).push(
404
- ...s.map((i) => new rt(i, this))
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, Q));
411
- e(this, m).forEach((s) => s.destroy()), a(this, m, t.map((s) => new rt(s, this)));
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
- k = new WeakMap(), W = new WeakMap(), m = new WeakMap(), tt = new WeakMap(), T = new WeakMap(), f = new WeakMap(), J = new WeakMap(), z = new WeakMap(), P = new WeakMap(), w = new WeakMap(), B = new WeakMap(), I = new WeakMap(), Q = new WeakMap(), l = new WeakSet(), nt = function(t, s = !1) {
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, ot).call(this, t)), i;
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
- }, ot = function(t) {
426
+ }, Tt = function(t, s) {
420
427
  return N(this, null, function* () {
421
- const i = yield (yield fetch(t)).text(), u = e(this, tt).parseFromString(i, "text/html"), p = new kt(this, t, u);
422
- return e(this, B).set(t, p), p;
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
- }, Tt = function(t, s) {
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
- }, lt = function(t, s) {
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
- }, ct = function(t) {
448
+ }, lt = function(t) {
440
449
  return t.tagName === "SCRIPT" || t.tagName === "STYLE" || t.tagName === "LINK" && t.getAttribute("rel") === "stylesheet";
441
- }, ht = function(t) {
450
+ }, ct = function(t) {
442
451
  var s, i;
443
- (s = e(this, w)) == null || s.removeEventListener(
452
+ (s = e(this, y)) == null || s.removeEventListener(
444
453
  "scroll",
445
454
  e(this, U)
446
- ), a(this, w, t.querySelector(e(this, k).scrollSelector) || t.documentElement), (i = e(this, w)) == null || i.addEventListener("scroll", e(this, U)), e(this, U).call(this);
447
- }, ut = function(t, s) {
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, w),
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
- }, et = new WeakMap(), U = new WeakMap(), Y.instance = null;
456
- let Pt = Y;
464
+ }, st = new WeakMap(), U = new WeakMap(), K.instance = null;
465
+ let Pt = K;
457
466
  export {
458
467
  Pt as Morph
459
468
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aptechka",
3
- "version": "0.59.1",
3
+ "version": "0.60.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/denisavitski/aptechka.git"