aptechka 0.74.2 → 0.75.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.
@@ -39,6 +39,7 @@ export interface MorphNavigateOptions {
39
39
  submorphAppend?: boolean;
40
40
  clearState?: boolean;
41
41
  keepScrollPosition?: boolean;
42
+ mergeParams?: boolean;
42
43
  }
43
44
  export interface MorphScrollDetail {
44
45
  left: number;
@@ -88,7 +89,7 @@ export declare class Morph {
88
89
  };
89
90
  saveState(state: any): void;
90
91
  getState(): any;
91
- normalizePath(path: string): {
92
+ normalizePath(path: string, options?: Pick<MorphNavigateOptions, 'mergeParams'>): {
92
93
  leaf: string;
93
94
  pathname: string;
94
95
  parameters: string;
@@ -98,13 +99,14 @@ export declare class Morph {
98
99
  prefetch(path: string, revalidate?: boolean): Promise<void>;
99
100
  excludeHeadChild(child: Node): boolean;
100
101
  setHeaders(path: string): void;
101
- navigate(path: string, { historyAction, centerScroll, offsetScroll, scrollBehaviour, revalidate, keepSearchParameters, submorph, submorphAppend, clearState, keepScrollPosition, }?: MorphNavigateOptions): Promise<void>;
102
+ navigate(path: string, { historyAction, centerScroll, offsetScroll, scrollBehaviour, revalidate, keepSearchParameters, submorph, submorphAppend, clearState, keepScrollPosition, mergeParams, }?: MorphNavigateOptions): Promise<void>;
102
103
  addLink(element: HTMLAnchorElement): void;
103
104
  addLinks(elements: Array<HTMLAnchorElement>): void;
104
105
  removeLink(element: HTMLAnchorElement): void;
105
106
  destroyOldLinks(morphElement: HTMLElement): void;
106
107
  findNewLinks(morphElement: HTMLElement): void;
107
108
  findLinks(): void;
109
+ findParamsDependent(): void;
108
110
  }
109
111
  declare global {
110
112
  interface DocumentEventMap extends MorphEvents {
@@ -0,0 +1,5 @@
1
+ export declare class MorphParamsDependent {
2
+ #private;
3
+ constructor(element: HTMLElement);
4
+ destroy(): void;
5
+ }
@@ -1 +1 @@
1
- "use strict";var ae=Object.defineProperty,ne=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var Xt=Object.getOwnPropertySymbols;var oe=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable;var Yt=(o,e)=>(e=Symbol[o])?e:Symbol.for("Symbol."+o),Kt=o=>{throw TypeError(o)};var jt=(o,e,i)=>e in o?ae(o,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):o[e]=i,vt=(o,e)=>{for(var i in e||(e={}))oe.call(e,i)&&jt(o,i,e[i]);if(Xt)for(var i of Xt(e))le.call(e,i)&&jt(o,i,e[i]);return o},Pt=(o,e)=>ne(o,re(e));var Ct=(o,e,i)=>e.has(o)||Kt("Cannot "+i);var t=(o,e,i)=>(Ct(o,e,"read from private field"),i?i.call(o):e.get(o)),l=(o,e,i)=>e.has(o)?Kt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,i),r=(o,e,i,s)=>(Ct(o,e,"write to private field"),s?s.call(o,i):e.set(o,i),i),p=(o,e,i)=>(Ct(o,e,"access private method"),i);var W=(o,e,i)=>new Promise((s,h)=>{var v=d=>{try{L(i.next(d))}catch(E){h(E)}},g=d=>{try{L(i.throw(d))}catch(E){h(E)}},L=d=>d.done?s(d.value):Promise.resolve(d.value).then(v,g);L((i=i.apply(o,e)).next())});var $t=(o,e,i)=>(e=o[Yt("asyncIterator")])?e.call(o):(o=o[Yt("iterator")](),e={},i=(s,h)=>(h=o[s])&&(e[s]=v=>new Promise((g,L,d)=>(v=h.call(o,v),d=v.done,Promise.resolve(v.value).then(E=>g({value:E,done:d}),L)))),i("next"),i("return"),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Qt=require("../index-DekP7OZe.cjs"),M=require("../events-KVanG9sR.cjs"),Gt=require("../scroll-CIdNtj3G.cjs");require("construct-style-sheets-polyfill");const nt=require("../url-DGcX4fGV.cjs"),he=require("../css-value-parser/index.cjs");class Zt extends HTMLElement{connectedCallback(){const e={"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[i,s]of Object.entries(e))this.setAttribute(i,s)}}Qt.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",Zt);var P,a,I,J,St,ot,Q;class Ht{constructor(e,i){l(this,J);l(this,P);l(this,a);l(this,I);l(this,ot,e=>{var s;if(e.preventDefault(),document.documentElement.classList.contains("click-disabled"))return;if(t(this,a).hasAttribute("data-back")&&t(this,P).previousURL)history.back();else{r(this,I,t(this,a).getAttribute("href")||"/");const h=t(this,a).getAttribute("data-history-action")||"push",v=t(this,a).hasAttribute("data-center-scroll"),g=getComputedStyle(t(this,a)).getPropertyValue("--offset-scroll").trim(),L=g?he.cssValueParser.parse(g):void 0,d=t(this,a).hasAttribute("data-revalidate")||t(this,a).hasAttribute("data-pagination-more-link")||t(this,a).hasAttribute("data-pagination-set-link"),E=t(this,a).hasAttribute("data-keep-search-parameters"),yt=t(this,a).hasAttribute("data-keep-scroll-position")||t(this,a).hasAttribute("data-pagination-more-link"),at=t(this,a).getAttribute("data-scroll-behaviour"),mt=p(this,J,St).call(this,t(this,a).getAttribute("data-pagination-set-link")||t(this,a).getAttribute("data-pagination-more-link"));mt&&(t(this,a).hasAttribute("data-pagination-set-link")?t(this,P).links.forEach(U=>{U.updatePagination(parseInt(t(this,a).getAttribute("data-value")||"1"),mt.selector)}):t(this,a).hasAttribute("data-pagination-more-link")&&t(this,P).links.forEach(U=>{U.updatePagination(mt.currentPage+1,mt.selector)}));const ft=((s=t(this,a).getAttribute("data-submorph"))==null?void 0:s.split(",").map(U=>U.trim()))||t(this,a).hasAttribute("data-pagination-more-link")&&[t(this,a).getAttribute("data-pagination-more-link")]||t(this,a).hasAttribute("data-pagination-set-link")&&[t(this,a).getAttribute("data-pagination-set-link")]||void 0,c=t(this,a).hasAttribute("data-clear-state");t(this,P).navigate(t(this,I),{historyAction:h,centerScroll:v,offsetScroll:L,revalidate:d,keepSearchParameters:E,submorph:ft,clearState:c,keepScrollPosition:yt,scrollBehaviour:at,submorphAppend:t(this,a).hasAttribute("data-pagination-more-link")})}});l(this,Q,()=>{const e=t(this,a).hasAttribute("data-revalidate");t(this,P).prefetch(t(this,I),e),t(this,a).removeEventListener("pointerenter",t(this,Q))});r(this,P,i),r(this,a,e),t(this,a).addEventListener("click",t(this,ot)),r(this,I,t(this,a).getAttribute("href")||"/"),this.checkCurrent(location.href.replace(location.origin,""));const s=p(this,J,St).call(this,t(this,a).getAttribute("data-pagination-set-link")||t(this,a).getAttribute("data-pagination-more-link"));s&&this.updatePagination(s.currentPage,s.selector),t(this,a).hasAttribute("data-prefetch")&&t(this,a).addEventListener("pointerenter",t(this,Q))}get element(){return t(this,a)}checkCurrent(e){var h;const i=t(this,P).normalizePath(e),s=t(this,P).normalizePath(t(this,I));t(this,a).hasAttribute("data-include")&&i.pathname.includes(s.pathname)?t(this,a).classList.add("current"):s.pathname===i.pathname?t(this,a).classList.add("current"):(h=t(this,a).getAttribute("data-associated-paths"))!=null&&h.split(",").find(v=>i.pathname.includes(v))?t(this,a).classList.add("current"):t(this,a).classList.remove("current"),i.path===s.path?t(this,a).classList.add("exact"):t(this,a).classList.remove("exact")}updatePagination(e,i){const s=p(this,J,St).call(this,i);if(s)if(s.element.setAttribute("data-current-page",e.toString()),t(this,a).hasAttribute("data-pagination-more-link"))if(e<s.totalPages){t(this,a).style.display="";const h=t(this,a).querySelector("[data-pagination-more-link-counter]");h&&(h.textContent=(s.totalPages-e).toString());const v=t(this,a).getAttribute("href"),g=new URL(v,window.location.origin);g.searchParams.set("page",(e+1).toString());const L=g.href.replace(g.origin,"").toString();t(this,a).setAttribute("href",L),this.checkCurrent(L)}else t(this,a).style.display="none";else t(this,a).hasAttribute("data-pagination-set-link")&&(t(this,a).getAttribute("data-value")===e.toString()?t(this,a).classList.add("pagination-current"):t(this,a).classList.remove("pagination-current"))}destroy(){t(this,a).removeEventListener("click",t(this,ot)),t(this,a).removeEventListener("pointerenter",t(this,Q)),t(this,a).classList.remove("current","exact","pagination-current")}}P=new WeakMap,a=new WeakMap,I=new WeakMap,J=new WeakSet,St=function(e){if(!e)return;const i=document.querySelector(e);if(i){const s=parseInt(i.getAttribute("data-current-page")||"1"),h=parseInt(i.getAttribute("data-total-pages")||"1");return{element:i,currentPage:s,totalPages:h,selector:e}}},ot=new WeakMap,Q=new WeakMap;const ce=new DOMParser;var T,X,A,x,Y,z,Z,j,V,lt;class Jt{constructor(e,i){l(this,T);l(this,X);l(this,A,{x:0,y:0});l(this,x,null);l(this,Y,null);l(this,z,null);l(this,Z,null);l(this,j,null);l(this,V,null);l(this,lt);r(this,T,e),r(this,X,i)}get pathname(){return t(this,X)}get scrollState(){return t(this,A)}get document(){return t(this,z)}setHeaders(e){r(this,lt,e)}setInitialDocument(e){r(this,x,e.cloneNode(!0))}abort(){var e;return(e=t(this,j))==null?void 0:e.abort(`[${t(this,X)}] page loading cancelled`)}fetch(e,i,s){return W(this,null,function*(){var h;if(!s){const L=((h=t(this,x))==null?void 0:h.documentElement.getAttribute("data-cache"))&&i!==e,d=t(this,x)&&t(this,T).isPopstateNavigation;if(t(this,V)||L||d)return t(this,V)}return r(this,V,new Promise(v=>W(this,null,function*(){try{r(this,j,new AbortController);const L=yield(yield fetch(e,{signal:t(this,j).signal,headers:vt({"X-MORPH":"true","X-MORPH-CURRENT-PATH":encodeURIComponent(i),"X-MORPH-NEW-PATH":encodeURIComponent(e)},t(this,lt))})).text(),d=ce.parseFromString(L,"text/html");this.setInitialDocument(d)}catch(g){console.warn(g)}finally{r(this,j,null),r(this,V,null),v()}}))),t(this,V)})}cloneDocument(){r(this,z,(t(this,Y)||t(this,x)).cloneNode(!0))}get title(){let e="";if(t(this,z).title)e=t(this,z).title;else{const i=t(this,z).querySelector("h1");e=(i==null?void 0:i.innerText)||(i==null?void 0:i.textContent)||t(this,X)}return e}clearScrollState(){t(this,A).x=0,t(this,A).y=0}clearDocumentState(){r(this,Y,null)}saveScrollState(){t(this,x).documentElement.hasAttribute("data-no-scroll-restoration")?(t(this,A).x=0,t(this,A).y=0):(t(this,A).x=t(this,T).scrollValue.left,t(this,A).y=t(this,T).scrollValue.top)}restoreScrollPosition(){t(this,T).scrollElement.scroll({top:t(this,A).y,left:t(this,A).x,behavior:"instant"})}saveDocumentState(){t(this,x).documentElement.hasAttribute("data-no-page-restoration")?r(this,Y,null):r(this,Y,document.cloneNode(!0))}renewScrollPosition(){t(this,T).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(e){r(this,Z,e)}clearState(){const e=t(this,Z);return r(this,Z,null),e}}T=new WeakMap,X=new WeakMap,A=new WeakMap,x=new WeakMap,Y=new WeakMap,z=new WeakMap,Z=new WeakMap,j=new WeakMap,V=new WeakMap,lt=new WeakMap;var R,_,y,O,f,K,F,B,C,ht,N,$,tt,et,ct,it,ut,m,Mt,dt,bt,Tt,_t,xt,Nt,Ut,qt,Lt,st;const rt=class rt{constructor(e){l(this,m);l(this,R,null);l(this,_,null);l(this,y,[]);l(this,O);l(this,f,null);l(this,K);l(this,F,[]);l(this,B,!1);l(this,C,null);l(this,ht,!1);l(this,N,new Map);l(this,$,null);l(this,tt,0);l(this,et,0);l(this,ct);l(this,it);l(this,ut);l(this,dt,e=>{var i;return((i=e.getAttribute("href"))==null?void 0:i.startsWith("/"))&&!e.hasAttribute("download")&&!e.hasAttribute("data-morph-skip")&&!e.closest("[data-morph-skip]")&&e.getAttribute("target")!=="_blank"});l(this,Lt,e=>W(this,null,function*(){e.preventDefault(),r(this,B,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none",submorph:t(this,it)?void 0:t(this,ct),revalidate:t(this,it),keepScrollPosition:t(this,ut)}),r(this,B,!1)}));l(this,st,()=>{const{left:e,top:i}=this.scrollValue,s=i-t(this,et),h=e-t(this,tt);r(this,et,i),r(this,tt,e),document.documentElement.classList.toggle("scroll-y",i>0),document.documentElement.classList.toggle("scroll-x",e>0),document.documentElement.classList.toggle("scroll-y-forward",s>0),document.documentElement.classList.toggle("scroll-y-backward",s<0),document.documentElement.classList.toggle("scroll-x-forward",h>0),document.documentElement.classList.toggle("scroll-x-backward",h<0),M.dispatchEvent(document,"morphScroll",{detail:{left:e,top:i}})});if(Qt.isBrowser&&!rt.instance){rt.instance=this,r(this,R,{base:nt.normalizeBase(e==null?void 0:e.base),waitForHeadToLoad:(e==null?void 0:e.waitForHeadToLoad)!==!1,trailingSlash:(e==null?void 0:e.trailingSlash)||!1,scrollSelector:e==null?void 0:e.scrollSelector,morphInsideScrollContainer:(e==null?void 0:e.morphInsideScrollContainer)||!1}),r(this,_,p(this,m,Tt).call(this,document.body));const i=this.normalizePath(location.pathname+location.search+location.hash);r(this,f,i);const s=new Jt(this,t(this,f).pathname);s.setInitialDocument(document),t(this,N).set(t(this,f).pathname,s),document.documentElement.setAttribute("data-current-pathname",t(this,f).pathname),document.documentElement.setAttribute("data-current-leaf",i.leaf),this.findLinks(),history.scrollRestoration="manual",addEventListener("popstate",t(this,Lt)),nt.changeHistory({action:"replace",pathname:i.pathname,searchParameters:i.parameters,hash:i.hash}),r(this,$,new Zt),p(this,m,Ut).call(this,document)}}get currentURL(){return t(this,f)}get previousURL(){return t(this,K)}get links(){return t(this,y)}get scrollElement(){return t(this,C)}get isPopstateNavigation(){return t(this,B)}get scrollValue(){let e=0,i=0;return t(this,ht)?(e=window.scrollY,i=window.scrollX):(e=t(this,C).scrollTop,i=t(this,C).scrollLeft),{top:e,left:i}}saveState(e){const i=t(this,N).get(t(this,f).path);i&&i.saveState(e)}getState(){const e=t(this,N).get(t(this,f).path);return e==null?void 0:e.clearState()}normalizePath(e){return nt.splitPath(e,{base:t(this,R).base,trailingSlash:t(this,R).trailingSlash})}prefetch(e,i){return W(this,null,function*(){var h;if(t(this,F).length)return;e=((h=this.pathnameModifier)==null?void 0:h.call(this,e))||e;const s=p(this,m,bt).call(this,e);s==null||s.fetch(e,t(this,f).path,i)})}excludeHeadChild(e){return!1}setHeaders(e){}navigate(mt){return W(this,arguments,function*(e,{historyAction:i="push",centerScroll:s,offsetScroll:h,scrollBehaviour:v,revalidate:g,keepSearchParameters:L,submorph:d,submorphAppend:E,clearState:yt,keepScrollPosition:at}={}){var U,Dt,It,zt;if(t(this,F).length)return;r(this,ct,d),r(this,it,g),r(this,ut,at);const ft=((U=this.pathnameModifier)==null?void 0:U.call(this,e))||e,c=this.normalizePath(ft);if(t(this,y).forEach(G=>{G.checkCurrent(c.path)}),!g&&(((Dt=t(this,O))==null?void 0:Dt.pathname)===c.pathname||t(this,f).pathname===c.pathname)){at||p(this,m,qt).call(this,c.hash||0,{centerScroll:s,offsetScroll:h,behavior:"smooth"}),M.dispatchEvent(document,"morphSamePath",{custom:!0}),((It=t(this,f))==null?void 0:It.parameters)!==c.parameters&&(r(this,K,t(this,f)),r(this,f,c),nt.changeHistory({action:((zt=t(this,f))==null?void 0:zt.hash)!==c.hash?"replace":i,pathname:c.pathname,searchParameters:c.parameters,hash:c.hash}),M.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:t(this,f),previousURL:t(this,K)}}));return}r(this,O,c);try{let G=!0;if(this.preprocessor)try{yield new Promise((n,w)=>{var k;(k=this.preprocessor)==null||k.call(this,{url:c,resolve:n,reject:w,submorph:d})})}catch(n){n?console.error(n):console.log("Route change canceled"),G=!1}if(!G||t(this,O).pathname!==c.pathname){t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)});return}const Vt={url:c,submorph:d};d?E||d.forEach(n=>{document.querySelectorAll(n).forEach(w=>{w.classList.add("out"),w.setAttribute("data-morph-out","")})}):t(this,_).forEach(n=>{var w,k;(w=n.firstElementChild)==null||w.classList.add("out"),(k=n.firstElementChild)==null||k.setAttribute("data-morph-out","")}),M.dispatchEvent(document,"morphNavigation",{detail:Vt});const wt=p(this,m,bt).call(this,t(this,f).pathname),S=p(this,m,bt).call(this,c.pathname);if(t(this,N).forEach(n=>{n.pathname!==c.pathname&&n.abort()}),yield S==null?void 0:S.fetch(ft,t(this,f).path,g),t(this,O).pathname!==c.pathname){t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)});return}wt.clearState(),wt.saveScrollState(),wt.saveDocumentState(),(!t(this,B)||g)&&(S.clearScrollState(),S.clearDocumentState()),yt&&S.clearState(),S.cloneDocument(),t(this,$).textContent=S.title,document.body.appendChild(t(this,$));const pt=Pt(vt({},Vt),{document:S.document});E||pt.document.querySelectorAll("[data-morph-out]").forEach(n=>{n.classList.remove("out")}),M.dispatchEvent(document,"morphStart",{detail:pt});const Ot=Array.from(document.head.children),Ft=Array.from(S.document.head.children),Bt=p(this,m,_t).call(this,Ot,Ft),te=p(this,m,xt).call(this,Ot,Bt),gt=p(this,m,xt).call(this,Ft,Bt).filter(n=>!this.excludeHeadChild(n));gt.forEach((n,w)=>{n.tagName==="SCRIPT"&&(gt[w]=p(this,m,Mt).call(this,n))}),gt.forEach(n=>{document.head.appendChild(n)});const At=gt.filter(n=>{if(n.hasAttribute("data-no-waiting"))return!1;if(p(this,m,Nt).call(this,n))return!0});t(this,R).waitForHeadToLoad&&At.length&&(yield new Promise(n=>W(this,null,function*(){let w=0;try{for(var k=$t(At),ie,q,H;ie=!(q=yield k.next()).done;ie=!1){const Et=q.value;Et.onload=()=>{w++,w===At.length&&n()}}}catch(q){H=[q]}finally{try{ie&&(q=k.return)&&(yield q.call(k))}finally{if(H)throw H[0]}}}))),yield Gt.wait(10);const Wt=[];E||te.forEach(n=>{n.hasAttribute("data-permanent")||(p(this,m,Nt).call(this,n)?Wt.push(n):n.remove())});const ee=p(this,m,Tt).call(this,S.document.body);!t(this,R).morphInsideScrollContainer&&!d&&p(this,m,Ut).call(this,S.document),document.documentElement.setAttribute("data-current-pathname",c.pathname),document.documentElement.setAttribute("data-current-leaf",c.leaf),nt.changeHistory({action:i,pathname:c.pathname,searchParameters:c.parameters||(L?location.search:""),hash:c.hash}),t(this,$).remove(),r(this,K,t(this,f)),r(this,f,c);const kt=[];t(this,_).forEach((n,w)=>{const k=ee[w],ie=getComputedStyle(n).getPropertyValue("--morph-duration");let q=[],H=[];d?(d.forEach(u=>{const b=n.querySelector(u),D=k.querySelector(u);b&&D&&(H.push(b),q.push(D))}),H.forEach(u=>{u.parentElement&&kt.push(u.parentElement)})):(q.push(...k.childNodes),H.push(...n.childNodes),kt.push(n)),E||H.forEach(u=>{u instanceof HTMLElement&&(this.destroyOldLinks(u),u.classList.add("old"))}),q.forEach(u=>{u instanceof HTMLElement&&(this.findNewLinks(u),u.classList.add("new"))}),d?E?q.forEach((u,b)=>{H[b]instanceof HTMLElement&&H[b].append(...u.childNodes)}):q.forEach((u,b)=>{var D;(D=H[b].parentElement)==null||D.insertBefore(u,H[b])}):n.prepend(...q),setTimeout(()=>{E||H.forEach(u=>{u instanceof HTMLElement&&u.classList.add("old-idle")}),q.forEach(u=>{var b;u instanceof HTMLElement&&((b=u.parentElement)==null||b.style.setProperty("--new-content-height",u.offsetHeight+"px"),u.classList.add("new-idle"))})},0);const Et=Pt(vt({},pt),{morphElement:n});M.dispatchEvent(document,"morphNewChildrenAdded",{detail:Et});const se=new Promise(u=>{setTimeout(()=>{E||H.forEach(b=>b.remove()),q.forEach(b=>{var D;b instanceof HTMLElement&&((D=b.parentElement)==null||D.style.removeProperty("--new-content-height"),b.classList.remove("new-idle","new"))}),E||M.dispatchEvent(document,"morphOldChildrenRemoved",{detail:Et}),u()},(parseFloat(ie)||0)*1e3+10)});t(this,F).push(se)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-S.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),M.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:S.scrollState}),c.hash?(S.clearScrollState(),p(this,m,qt).call(this,c.hash,{centerScroll:s,offsetScroll:h,behavior:v})):t(this,B)?S.restoreScrollPosition():at||S.renewScrollPosition(),yield Promise.all(t(this,F)),E||Wt.forEach(n=>n.remove()),r(this,F,[]),kt.forEach(n=>{n.querySelectorAll("script").forEach(k=>{k.replaceWith(p(this,m,Mt).call(this,k))})}),t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)}),M.dispatchEvent(document,"morphComplete",{detail:pt}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch(G){console.error(G)}r(this,O,void 0)})}addLink(e){t(this,y).push(new Ht(e,this))}addLinks(e){e.forEach(i=>{this.addLink(i)})}removeLink(e){r(this,y,t(this,y).filter(i=>i.element===e?(i.destroy(),!1):!0))}destroyOldLinks(e){r(this,y,t(this,y).filter(i=>e.contains(i.element)?(i.destroy(),!1):!0))}findNewLinks(e){const i=[...e.querySelectorAll("a")].filter(t(this,dt));t(this,y).push(...i.map(s=>new Ht(s,this)))}findLinks(){const e=[...document.documentElement.querySelectorAll("a")].filter(t(this,dt));t(this,y).forEach(i=>i.destroy()),r(this,y,e.map(i=>new Ht(i,this)))}};R=new WeakMap,_=new WeakMap,y=new WeakMap,O=new WeakMap,f=new WeakMap,K=new WeakMap,F=new WeakMap,B=new WeakMap,C=new WeakMap,ht=new WeakMap,N=new WeakMap,$=new WeakMap,tt=new WeakMap,et=new WeakMap,ct=new WeakMap,it=new WeakMap,ut=new WeakMap,m=new WeakSet,Mt=function(e){const i=document.createElement("script");for(let s=0;s<e.attributes.length;s++){const h=e.attributes[s];i.setAttribute(h.name,h.value)}return e.hasAttribute("src")||(i.innerHTML=e.innerHTML),i},dt=new WeakMap,bt=function(e){const i=this.normalizePath(e);let s=t(this,N).get(i.pathname);return s||(s=new Jt(this,i.pathname),t(this,N).set(i.pathname,s)),s},Tt=function(e){const i=[...e.querySelectorAll("[data-morph]")];return i.length?i:[e]},_t=function(e,i){return e.filter(s=>i.find(h=>h.outerHTML===s.outerHTML))},xt=function(e,i){return e.filter(s=>!i.find(h=>h.outerHTML===s.outerHTML))},Nt=function(e){return e.tagName==="SCRIPT"||e.tagName==="STYLE"||e.tagName==="LINK"&&e.getAttribute("rel")==="stylesheet"},Ut=function(e){var i,s;(i=t(this,C))==null||i.removeEventListener("scroll",t(this,st)),r(this,et,0),r(this,tt,0),r(this,C,t(this,R).scrollSelector&&e.querySelector(t(this,R).scrollSelector)||window),r(this,ht,t(this,C)===window),(s=t(this,C))==null||s.addEventListener("scroll",t(this,st)),t(this,st).call(this)},qt=function(e,i){const s=typeof e=="string"?document.getElementById(e):e;(typeof s=="number"||s)&&Gt.scrollToElement(s,{scrollElement:t(this,C),behavior:(i==null?void 0:i.behavior)||"instant",center:i==null?void 0:i.centerScroll,offset:i==null?void 0:i.offsetScroll})},Lt=new WeakMap,st=new WeakMap,rt.instance=null;let Rt=rt;exports.Morph=Rt;
1
+ "use strict";var ue=Object.defineProperty,de=Object.defineProperties;var me=Object.getOwnPropertyDescriptors;var Jt=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,pe=Object.prototype.propertyIsEnumerable;var Qt=(o,e)=>(e=Symbol[o])?e:Symbol.for("Symbol."+o),_t=o=>{throw TypeError(o)};var Zt=(o,e,s)=>e in o?ue(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,Rt=(o,e)=>{for(var s in e||(e={}))fe.call(e,s)&&Zt(o,s,e[s]);if(Jt)for(var s of Jt(e))pe.call(e,s)&&Zt(o,s,e[s]);return o},Dt=(o,e)=>de(o,me(e));var qt=(o,e,s)=>e.has(o)||_t("Cannot "+s);var t=(o,e,s)=>(qt(o,e,"read from private field"),s?s.call(o):e.get(o)),h=(o,e,s)=>e.has(o)?_t("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,s),r=(o,e,s,i)=>(qt(o,e,"write to private field"),i?i.call(o,s):e.set(o,s),s),g=(o,e,s)=>(qt(o,e,"access private method"),s);var G=(o,e,s)=>new Promise((i,l)=>{var S=c=>{try{E(s.next(c))}catch(v){l(v)}},p=c=>{try{E(s.throw(c))}catch(v){l(v)}},E=c=>c.done?i(c.value):Promise.resolve(c.value).then(S,p);E((s=s.apply(o,e)).next())});var te=(o,e,s)=>(e=o[Qt("asyncIterator")])?e.call(o):(o=o[Qt("iterator")](),e={},s=(i,l)=>(l=o[i])&&(e[i]=S=>new Promise((p,E,c)=>(S=l.call(o,S),c=S.done,Promise.resolve(S.value).then(v=>p({value:v,done:c}),E)))),s("next"),s("return"),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("../index-DekP7OZe.cjs"),q=require("../events-KVanG9sR.cjs"),ee=require("../scroll-CIdNtj3G.cjs");require("construct-style-sheets-polyfill");const dt=require("../url-Dns-01WU.cjs"),ge=require("../css-value-parser/index.cjs"),Ee=require("../string-DUXXtU8v.cjs");class ae extends HTMLElement{connectedCallback(){const e={"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(e))this.setAttribute(s,i)}}ie.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",ae);var H,a,U,st,Ht,ft,it;class It{constructor(e,s){h(this,st);h(this,H);h(this,a);h(this,U);h(this,ft,e=>{var i;if(e.preventDefault(),document.documentElement.classList.contains("click-disabled"))return;if(t(this,a).hasAttribute("data-back")&&t(this,H).previousURL)history.back();else{r(this,U,t(this,a).getAttribute("href")||"/");const l=t(this,a).getAttribute("data-history-action")||"push",S=t(this,a).hasAttribute("data-center-scroll"),p=getComputedStyle(t(this,a)).getPropertyValue("--offset-scroll").trim(),E=p?ge.cssValueParser.parse(p):void 0,c=t(this,a).hasAttribute("data-revalidate")||t(this,a).hasAttribute("data-pagination-more-link")||t(this,a).hasAttribute("data-pagination-set-link"),v=t(this,a).hasAttribute("data-keep-search-parameters"),D=t(this,a).hasAttribute("data-keep-scroll-position")||t(this,a).hasAttribute("data-pagination-more-link"),ut=t(this,a).getAttribute("data-scroll-behaviour"),et=g(this,st,Ht).call(this,t(this,a).getAttribute("data-pagination-set-link")||t(this,a).getAttribute("data-pagination-more-link"));et&&(t(this,a).hasAttribute("data-pagination-set-link")?t(this,H).links.forEach(T=>{T.updatePagination(parseInt(t(this,a).getAttribute("data-value")||"1"),et.selector)}):t(this,a).hasAttribute("data-pagination-more-link")&&t(this,H).links.forEach(T=>{T.updatePagination(et.currentPage+1,et.selector)}));const re=((i=t(this,a).getAttribute("data-submorph"))==null?void 0:i.split(",").map(T=>T.trim()))||t(this,a).hasAttribute("data-pagination-more-link")&&[t(this,a).getAttribute("data-pagination-more-link")]||t(this,a).hasAttribute("data-pagination-set-link")&&[t(this,a).getAttribute("data-pagination-set-link")]||void 0,Pt=t(this,a).hasAttribute("data-clear-state");let u=t(this,U);if(t(this,a).hasAttribute("data-toggle-params")){const[T,wt]=t(this,U).split("?"),j=new URLSearchParams(wt),O=new URLSearchParams(location.search),A=new URLSearchParams;for(const[w]of j)(!O.has(w)||O.has(w)&&O.get(w)!==j.get(w))&&A.append(w,j.get(w));if(t(this,a).hasAttribute("data-merge-params"))for(const[w]of O)j.has(w)||A.append(w,O.get(w));u=`${T}?${A.toString()}`}t(this,H).navigate(u,{historyAction:l,centerScroll:S,offsetScroll:E,revalidate:c,keepSearchParameters:v,submorph:re,clearState:Pt,keepScrollPosition:D,scrollBehaviour:ut,submorphAppend:t(this,a).hasAttribute("data-pagination-more-link"),mergeParams:t(this,a).hasAttribute("data-merge-params")&&!t(this,a).hasAttribute("data-toggle-params")})}});h(this,it,()=>{const e=t(this,a).hasAttribute("data-revalidate");t(this,H).prefetch(t(this,U),e),t(this,a).removeEventListener("pointerenter",t(this,it))});r(this,H,s),r(this,a,e),t(this,a).addEventListener("click",t(this,ft)),r(this,U,t(this,a).getAttribute("href")||"/"),this.checkCurrent(location.href.replace(location.origin,""));const i=g(this,st,Ht).call(this,t(this,a).getAttribute("data-pagination-set-link")||t(this,a).getAttribute("data-pagination-more-link"));i&&this.updatePagination(i.currentPage,i.selector),t(this,a).hasAttribute("data-prefetch")&&t(this,a).addEventListener("pointerenter",t(this,it))}get element(){return t(this,a)}checkCurrent(e){var v;const s=t(this,H).normalizePath(e),i=t(this,H).normalizePath(t(this,U));t(this,a).hasAttribute("data-include")&&s.pathname.includes(i.pathname)?t(this,a).classList.add("current"):i.pathname===s.pathname?t(this,a).classList.add("current"):(v=t(this,a).getAttribute("data-associated-paths"))!=null&&v.split(",").find(D=>s.pathname.includes(D))?t(this,a).classList.add("current"):t(this,a).classList.remove("current"),s.path===i.path?t(this,a).classList.add("exact"):t(this,a).classList.remove("exact");const[l,S]=t(this,U).split("?"),p=new URLSearchParams(S),E=new URLSearchParams(location.search);let c=0;for(const[D]of E)p.has(D)&&E.get(D)===p.get(D)&&c++;c?(t(this,a).classList.toggle("all-params-matched",E.size===c),t(this,a).classList.toggle("some-params-matched",E.size!==c)):(t(this,a).classList.remove("all-params-matched"),t(this,a).classList.remove("some-params-matched"))}updatePagination(e,s){const i=g(this,st,Ht).call(this,s);if(i)if(i.element.setAttribute("data-current-page",e.toString()),t(this,a).hasAttribute("data-pagination-more-link"))if(e<i.totalPages){t(this,a).style.display="";const l=t(this,a).querySelector("[data-pagination-more-link-counter]");l&&(l.textContent=(i.totalPages-e).toString());const S=t(this,a).getAttribute("href"),p=new URL(S,window.location.origin);p.searchParams.set("page",(e+1).toString());const E=p.href.replace(p.origin,"").toString();t(this,a).setAttribute("href",E),this.checkCurrent(E)}else t(this,a).style.display="none";else t(this,a).hasAttribute("data-pagination-set-link")&&(t(this,a).getAttribute("data-value")===e.toString()?t(this,a).classList.add("pagination-current"):t(this,a).classList.remove("pagination-current"))}destroy(){t(this,a).removeEventListener("click",t(this,ft)),t(this,a).removeEventListener("pointerenter",t(this,it)),t(this,a).classList.remove("current","exact","pagination-current")}}H=new WeakMap,a=new WeakMap,U=new WeakMap,st=new WeakSet,Ht=function(e){if(!e)return;const s=document.querySelector(e);if(s){const i=parseInt(s.getAttribute("data-current-page")||"1"),l=parseInt(s.getAttribute("data-total-pages")||"1");return{element:s,currentPage:i,totalPages:l,selector:e}}},ft=new WeakMap,it=new WeakMap;const ve=new DOMParser;var I,J,k,z,Q,B,at,Z,X,pt;class se{constructor(e,s){h(this,I);h(this,J);h(this,k,{x:0,y:0});h(this,z,null);h(this,Q,null);h(this,B,null);h(this,at,null);h(this,Z,null);h(this,X,null);h(this,pt);r(this,I,e),r(this,J,s)}get pathname(){return t(this,J)}get scrollState(){return t(this,k)}get document(){return t(this,B)}setHeaders(e){r(this,pt,e)}setInitialDocument(e){r(this,z,e.cloneNode(!0))}abort(){var e;return(e=t(this,Z))==null?void 0:e.abort(`[${t(this,J)}] page loading cancelled`)}fetch(e,s,i){return G(this,null,function*(){var l;if(!i){const E=((l=t(this,z))==null?void 0:l.documentElement.getAttribute("data-cache"))&&s!==e,c=t(this,z)&&t(this,I).isPopstateNavigation;if(t(this,X)||E||c)return t(this,X)}return r(this,X,new Promise(S=>G(this,null,function*(){try{r(this,Z,new AbortController);const E=yield(yield fetch(e,{signal:t(this,Z).signal,headers:Rt({"X-MORPH":"true","X-MORPH-CURRENT-PATH":encodeURIComponent(s),"X-MORPH-NEW-PATH":encodeURIComponent(e)},t(this,pt))})).text(),c=ve.parseFromString(E,"text/html");this.setInitialDocument(c)}catch(p){console.warn(p)}finally{r(this,Z,null),r(this,X,null),S()}}))),t(this,X)})}cloneDocument(){r(this,B,(t(this,Q)||t(this,z)).cloneNode(!0))}get title(){let e="";if(t(this,B).title)e=t(this,B).title;else{const s=t(this,B).querySelector("h1");e=(s==null?void 0:s.innerText)||(s==null?void 0:s.textContent)||t(this,J)}return e}clearScrollState(){t(this,k).x=0,t(this,k).y=0}clearDocumentState(){r(this,Q,null)}saveScrollState(){t(this,z).documentElement.hasAttribute("data-no-scroll-restoration")?(t(this,k).x=0,t(this,k).y=0):(t(this,k).x=t(this,I).scrollValue.left,t(this,k).y=t(this,I).scrollValue.top)}restoreScrollPosition(){t(this,I).scrollElement.scroll({top:t(this,k).y,left:t(this,k).x,behavior:"instant"})}saveDocumentState(){t(this,z).documentElement.hasAttribute("data-no-page-restoration")?r(this,Q,null):r(this,Q,document.cloneNode(!0))}renewScrollPosition(){t(this,I).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(e){r(this,at,e)}clearState(){const e=t(this,at);return r(this,at,null),e}}I=new WeakMap,J=new WeakMap,k=new WeakMap,z=new WeakMap,Q=new WeakMap,B=new WeakMap,at=new WeakMap,Z=new WeakMap,X=new WeakMap,pt=new WeakMap;var C,nt,gt,zt,Et;class Se{constructor(e){h(this,gt);h(this,C);h(this,nt,[]);h(this,Et,()=>{g(this,gt,zt).call(this)});r(this,C,e);for(const s in t(this,C).dataset){const i=Ee.camelToKebab(s);if(i.startsWith("param-")){const l=i.split("param-")[1],S=t(this,C).dataset[s];t(this,nt).push({name:l,value:S})}}document.addEventListener("morphURLParametersChange",t(this,Et)),g(this,gt,zt).call(this)}destroy(){document.removeEventListener("morphURLParametersChange",t(this,Et))}}C=new WeakMap,nt=new WeakMap,gt=new WeakSet,zt=function(){const e=new URLSearchParams(location.search);let s=!!t(this,nt).find(l=>e.has(l.name)&&(e.get(l.name)===l.value||l.value==="*"));!s&&t(this,C).hasAttribute("data-match-no-params")&&(s=!t(this,nt).filter(l=>e.has(l.name)).length);const i=t(this,C).getAttribute("data-hide-class");s?i?t(this,C).classList.remove(i):t(this,C).style.display="":i?t(this,C).classList.add(i):t(this,C).style.display="none"},Et=new WeakMap;var N,rt,y,K,f,_,Y,$,M,vt,V,St,tt,ot,ht,Lt,lt,bt,m,Ot,yt,Mt,Wt,ne,Ft,Bt,Xt,Kt,Tt,ct;const mt=class mt{constructor(e){h(this,m);h(this,N,null);h(this,rt,null);h(this,y,[]);h(this,K);h(this,f,null);h(this,_);h(this,Y,[]);h(this,$,!1);h(this,M,null);h(this,vt,!1);h(this,V,new Map);h(this,St,[]);h(this,tt,null);h(this,ot,0);h(this,ht,0);h(this,Lt);h(this,lt);h(this,bt);h(this,yt,e=>{var s;return((s=e.getAttribute("href"))==null?void 0:s.startsWith("/"))&&!e.hasAttribute("download")&&!e.hasAttribute("data-morph-skip")&&!e.closest("[data-morph-skip]")&&e.getAttribute("target")!=="_blank"});h(this,Tt,e=>G(this,null,function*(){e.preventDefault(),r(this,$,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none",submorph:t(this,lt)?void 0:t(this,Lt),revalidate:t(this,lt),keepScrollPosition:t(this,bt)}),r(this,$,!1)}));h(this,ct,()=>{const{left:e,top:s}=this.scrollValue,i=s-t(this,ht),l=e-t(this,ot);r(this,ht,s),r(this,ot,e),document.documentElement.classList.toggle("scroll-y",s>0),document.documentElement.classList.toggle("scroll-x",e>0),document.documentElement.classList.toggle("scroll-y-forward",i>0),document.documentElement.classList.toggle("scroll-y-backward",i<0),document.documentElement.classList.toggle("scroll-x-forward",l>0),document.documentElement.classList.toggle("scroll-x-backward",l<0),q.dispatchEvent(document,"morphScroll",{detail:{left:e,top:s}})});if(ie.isBrowser&&!mt.instance){mt.instance=this,r(this,N,{base:dt.normalizeBase(e==null?void 0:e.base),waitForHeadToLoad:(e==null?void 0:e.waitForHeadToLoad)!==!1,trailingSlash:(e==null?void 0:e.trailingSlash)||!1,scrollSelector:e==null?void 0:e.scrollSelector,morphInsideScrollContainer:(e==null?void 0:e.morphInsideScrollContainer)||!1}),r(this,rt,g(this,m,Wt).call(this,document.body));const s=this.normalizePath(location.pathname+location.search+location.hash);r(this,f,s);const i=new se(this,t(this,f).pathname);i.setInitialDocument(document),t(this,V).set(t(this,f).pathname,i),document.documentElement.setAttribute("data-current-pathname",t(this,f).pathname),document.documentElement.setAttribute("data-current-leaf",s.leaf),this.findLinks(),this.findParamsDependent(),history.scrollRestoration="manual",addEventListener("popstate",t(this,Tt)),dt.changeHistory({action:"replace",pathname:s.pathname,searchParameters:s.parameters,hash:s.hash}),r(this,tt,new ae),g(this,m,Xt).call(this,document)}}get currentURL(){return t(this,f)}get previousURL(){return t(this,_)}get links(){return t(this,y)}get scrollElement(){return t(this,M)}get isPopstateNavigation(){return t(this,$)}get scrollValue(){let e=0,s=0;return t(this,vt)?(e=window.scrollY,s=window.scrollX):(e=t(this,M).scrollTop,s=t(this,M).scrollLeft),{top:e,left:s}}saveState(e){const s=t(this,V).get(t(this,f).path);s&&s.saveState(e)}getState(){const e=t(this,V).get(t(this,f).path);return e==null?void 0:e.clearState()}normalizePath(e,s){return dt.splitPath(e,{base:t(this,N).base,trailingSlash:t(this,N).trailingSlash,mergeParams:s!=null&&s.mergeParams?location.search:""})}prefetch(e,s){return G(this,null,function*(){var l;if(t(this,Y).length)return;e=((l=this.pathnameModifier)==null?void 0:l.call(this,e))||e;const i=g(this,m,Mt).call(this,e);i==null||i.fetch(e,t(this,f).path,s)})}excludeHeadChild(e){return!1}setHeaders(e){}navigate(re){return G(this,arguments,function*(e,{historyAction:s="push",centerScroll:i,offsetScroll:l,scrollBehaviour:S,revalidate:p,keepSearchParameters:E,submorph:c,submorphAppend:v,clearState:D,keepScrollPosition:ut,mergeParams:et}={}){var T,wt,j,O;if(t(this,Y).length)return;r(this,Lt,c),r(this,lt,p),r(this,bt,ut);const Pt=((T=this.pathnameModifier)==null?void 0:T.call(this,e))||e,u=this.normalizePath(Pt,{mergeParams:et});if(!p&&(((wt=t(this,K))==null?void 0:wt.pathname)===u.pathname||t(this,f).pathname===u.pathname)){ut||g(this,m,Kt).call(this,u.hash||0,{centerScroll:i,offsetScroll:l,behavior:"smooth"}),q.dispatchEvent(document,"morphSamePath",{custom:!0}),((j=t(this,f))==null?void 0:j.parameters)!==u.parameters&&(r(this,_,t(this,f)),r(this,f,u),dt.changeHistory({action:((O=t(this,f))==null?void 0:O.hash)!==u.hash?"replace":s,pathname:u.pathname,searchParameters:u.parameters,hash:u.hash}),q.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:t(this,f),previousURL:t(this,_)}})),t(this,y).forEach(A=>{A.checkCurrent(u.path)});return}else t(this,y).forEach(A=>{A.checkCurrent(u.path)});r(this,K,u);try{let A=!0;if(this.preprocessor)try{yield new Promise((n,P)=>{var R;(R=this.preprocessor)==null||R.call(this,{url:u,resolve:n,reject:P,submorph:c})})}catch(n){n?console.error(n):console.log("Route change canceled"),A=!1}if(!A||t(this,K).pathname!==u.pathname){t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)});return}const w={url:u,submorph:c};c?v||c.forEach(n=>{document.querySelectorAll(n).forEach(P=>{P.classList.add("out"),P.setAttribute("data-morph-out","")})}):t(this,rt).forEach(n=>{var P,R;(P=n.firstElementChild)==null||P.classList.add("out"),(R=n.firstElementChild)==null||R.setAttribute("data-morph-out","")}),q.dispatchEvent(document,"morphNavigation",{detail:w});const xt=g(this,m,Mt).call(this,t(this,f).pathname),L=g(this,m,Mt).call(this,u.pathname);if(t(this,V).forEach(n=>{n.pathname!==u.pathname&&n.abort()}),yield L==null?void 0:L.fetch(Pt,t(this,f).path,p),t(this,K).pathname!==u.pathname){t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)});return}xt.clearState(),xt.saveScrollState(),xt.saveDocumentState(),(!t(this,$)||p)&&(L.clearScrollState(),L.clearDocumentState()),D&&L.clearState(),L.cloneDocument(),t(this,tt).textContent=L.title,document.body.appendChild(t(this,tt));const At=Dt(Rt({},w),{document:L.document});v||At.document.querySelectorAll("[data-morph-out]").forEach(n=>{n.classList.remove("out")}),q.dispatchEvent(document,"morphStart",{detail:At});const Yt=Array.from(document.head.children),$t=Array.from(L.document.head.children),jt=g(this,m,ne).call(this,Yt,$t),oe=g(this,m,Ft).call(this,Yt,jt),kt=g(this,m,Ft).call(this,$t,jt).filter(n=>!this.excludeHeadChild(n));kt.forEach((n,P)=>{n.tagName==="SCRIPT"&&(kt[P]=g(this,m,Ot).call(this,n))}),kt.forEach(n=>{document.head.appendChild(n)});const Ut=kt.filter(n=>{if(n.hasAttribute("data-no-waiting"))return!1;if(g(this,m,Bt).call(this,n))return!0});t(this,N).waitForHeadToLoad&&Ut.length&&(yield new Promise(n=>G(this,null,function*(){let P=0;try{for(var R=te(Ut),le,W,x;le=!(W=yield R.next()).done;le=!1){const Ct=W.value;Ct.onload=()=>{P++,P===Ut.length&&n()}}}catch(W){x=[W]}finally{try{le&&(W=R.return)&&(yield W.call(R))}finally{if(x)throw x[0]}}}))),yield ee.wait(10);const Gt=[];v||oe.forEach(n=>{n.hasAttribute("data-permanent")||(g(this,m,Bt).call(this,n)?Gt.push(n):n.remove())});const he=g(this,m,Wt).call(this,L.document.body);!t(this,N).morphInsideScrollContainer&&!c&&g(this,m,Xt).call(this,L.document),document.documentElement.setAttribute("data-current-pathname",u.pathname),document.documentElement.setAttribute("data-current-leaf",u.leaf),dt.changeHistory({action:s,pathname:u.pathname,searchParameters:u.parameters||(E?location.search:""),hash:u.hash}),t(this,tt).remove(),r(this,_,t(this,f)),r(this,f,u);const Nt=[];t(this,rt).forEach((n,P)=>{const R=he[P],le=getComputedStyle(n).getPropertyValue("--morph-duration");let W=[],x=[];c?(c.forEach(d=>{const b=n.querySelector(d),F=R.querySelector(d);b&&F&&(x.push(b),W.push(F))}),x.forEach(d=>{d.parentElement&&Nt.push(d.parentElement)})):(W.push(...R.childNodes),x.push(...n.childNodes),Nt.push(n)),v||x.forEach(d=>{d instanceof HTMLElement&&(this.destroyOldLinks(d),d.classList.add("old"))}),W.forEach(d=>{d instanceof HTMLElement&&(this.findNewLinks(d),d.classList.add("new"))}),c?v?W.forEach((d,b)=>{x[b]instanceof HTMLElement&&x[b].append(...d.childNodes)}):W.forEach((d,b)=>{var F;(F=x[b].parentElement)==null||F.insertBefore(d,x[b])}):n.prepend(...W),setTimeout(()=>{v||x.forEach(d=>{d instanceof HTMLElement&&d.classList.add("old-idle")}),W.forEach(d=>{var b;d instanceof HTMLElement&&((b=d.parentElement)==null||b.style.setProperty("--new-content-height",d.offsetHeight+"px"),d.classList.add("new-idle"))})},0);const Ct=Dt(Rt({},At),{morphElement:n});q.dispatchEvent(document,"morphNewChildrenAdded",{detail:Ct});const ce=new Promise(d=>{setTimeout(()=>{v||x.forEach(b=>b.remove()),W.forEach(b=>{var F;b instanceof HTMLElement&&((F=b.parentElement)==null||F.style.removeProperty("--new-content-height"),b.classList.remove("new-idle","new"))}),v||q.dispatchEvent(document,"morphOldChildrenRemoved",{detail:Ct}),d()},(parseFloat(le)||0)*1e3+10)});t(this,Y).push(ce)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-L.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),q.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:L.scrollState}),u.hash?(L.clearScrollState(),g(this,m,Kt).call(this,u.hash,{centerScroll:i,offsetScroll:l,behavior:S})):t(this,$)?L.restoreScrollPosition():ut||L.renewScrollPosition(),yield Promise.all(t(this,Y)),v||Gt.forEach(n=>n.remove()),r(this,Y,[]),Nt.forEach(n=>{n.querySelectorAll("script").forEach(R=>{R.replaceWith(g(this,m,Ot).call(this,R))})}),t(this,y).forEach(n=>{n.checkCurrent(t(this,f).path)}),this.findParamsDependent(),q.dispatchEvent(document,"morphComplete",{detail:At}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch(A){console.error(A)}r(this,K,void 0)})}addLink(e){t(this,y).push(new It(e,this))}addLinks(e){e.forEach(s=>{this.addLink(s)})}removeLink(e){r(this,y,t(this,y).filter(s=>s.element===e?(s.destroy(),!1):!0))}destroyOldLinks(e){r(this,y,t(this,y).filter(s=>e.contains(s.element)?(s.destroy(),!1):!0))}findNewLinks(e){const s=[...e.querySelectorAll("a")].filter(t(this,yt));t(this,y).push(...s.map(i=>new It(i,this)))}findLinks(){const e=[...document.documentElement.querySelectorAll("a")].filter(t(this,yt));t(this,y).forEach(s=>s.destroy()),r(this,y,e.map(s=>new It(s,this)))}findParamsDependent(){const e=[...document.documentElement.querySelectorAll("[data-morph-params-dependent]")];t(this,St).forEach(s=>s.destroy()),r(this,St,e.map(s=>new Se(s)))}};N=new WeakMap,rt=new WeakMap,y=new WeakMap,K=new WeakMap,f=new WeakMap,_=new WeakMap,Y=new WeakMap,$=new WeakMap,M=new WeakMap,vt=new WeakMap,V=new WeakMap,St=new WeakMap,tt=new WeakMap,ot=new WeakMap,ht=new WeakMap,Lt=new WeakMap,lt=new WeakMap,bt=new WeakMap,m=new WeakSet,Ot=function(e){const s=document.createElement("script");for(let i=0;i<e.attributes.length;i++){const l=e.attributes[i];s.setAttribute(l.name,l.value)}return e.hasAttribute("src")||(s.innerHTML=e.innerHTML),s},yt=new WeakMap,Mt=function(e){const s=this.normalizePath(e);let i=t(this,V).get(s.pathname);return i||(i=new se(this,s.pathname),t(this,V).set(s.pathname,i)),i},Wt=function(e){const s=[...e.querySelectorAll("[data-morph]")];return s.length?s:[e]},ne=function(e,s){return e.filter(i=>s.find(l=>l.outerHTML===i.outerHTML))},Ft=function(e,s){return e.filter(i=>!s.find(l=>l.outerHTML===i.outerHTML))},Bt=function(e){return e.tagName==="SCRIPT"||e.tagName==="STYLE"||e.tagName==="LINK"&&e.getAttribute("rel")==="stylesheet"},Xt=function(e){var s,i;(s=t(this,M))==null||s.removeEventListener("scroll",t(this,ct)),r(this,ht,0),r(this,ot,0),r(this,M,t(this,N).scrollSelector&&e.querySelector(t(this,N).scrollSelector)||window),r(this,vt,t(this,M)===window),(i=t(this,M))==null||i.addEventListener("scroll",t(this,ct)),t(this,ct).call(this)},Kt=function(e,s){const i=typeof e=="string"?document.getElementById(e):e;(typeof i=="number"||i)&&ee.scrollToElement(i,{scrollElement:t(this,M),behavior:(s==null?void 0:s.behavior)||"instant",center:s==null?void 0:s.centerScroll,offset:s==null?void 0:s.offsetScroll})},Tt=new WeakMap,ct=new WeakMap,mt.instance=null;let Vt=mt;exports.Morph=Vt;