aptechka 0.71.14 → 0.71.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/morph/index.cjs +1 -1
- package/lib/morph/index.js +75 -73
- package/package.json +1 -1
package/lib/morph/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Gt=Object.defineProperty,Jt=Object.defineProperties;var Qt=Object.getOwnPropertyDescriptors;var Dt=Object.getOwnPropertySymbols;var Zt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Ut=(r,t)=>(t=Symbol[r])?t:Symbol.for("Symbol."+r),It=r=>{throw TypeError(r)};var zt=(r,t,s)=>t in r?Gt(r,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[t]=s,dt=(r,t)=>{for(var s in t||(t={}))Zt.call(t,s)&&zt(r,s,t[s]);if(Dt)for(var s of Dt(t))_t.call(t,s)&&zt(r,s,t[s]);return r},vt=(r,t)=>Jt(r,Qt(t));var St=(r,t,s)=>t.has(r)||It("Cannot "+s);var e=(r,t,s)=>(St(r,t,"read from private field"),s?s.call(r):t.get(r)),o=(r,t,s)=>t.has(r)?It("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),n=(r,t,s,i)=>(St(r,t,"write to private field"),i?i.call(r,s):t.set(r,s),s),p=(r,t,s)=>(St(r,t,"access private method"),s);var B=(r,t,s)=>new Promise((i,u)=>{var g=S=>{try{v(s.next(S))}catch(V){u(V)}},b=S=>{try{v(s.throw(S))}catch(V){u(V)}},v=S=>S.done?i(S.value):Promise.resolve(S.value).then(g,b);v((s=s.apply(r,t)).next())});var Vt=(r,t,s)=>(t=r[Ut("asyncIterator")])?t.call(r):(r=r[Ut("iterator")](),t={},s=(i,u)=>(u=r[i])&&(t[i]=g=>new Promise((b,v,S)=>(g=u.call(r,g),S=g.done,Promise.resolve(g.value).then(V=>b({value:V,done:S}),v)))),s("next"),s("return"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Bt=require("../index-DekP7OZe.cjs"),C=require("../events-KVanG9sR.cjs"),te=require("../polyfills-Df4r-ETT.cjs"),Ot=require("../scroll-CIdNtj3G.cjs");require("construct-style-sheets-polyfill");const st=require("../url-YEESIcRn.cjs"),ee=require("../css-value-parser/index.cjs");class Wt 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)}}Bt.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",Wt);var H,l,N,nt,G;class wt{constructor(t,s){o(this,H);o(this,l);o(this,N);o(this,nt,t=>{var i;if(t.preventDefault(),e(this,l).hasAttribute("data-back")&&e(this,H).previousURL)history.back();else{n(this,N,e(this,l).getAttribute("href")||"/");const u=e(this,l).getAttribute("data-history-action")||"push",g=e(this,l).hasAttribute("data-center-scroll"),b=getComputedStyle(e(this,l)).getPropertyValue("--offset-scroll").trim(),v=b?ee.cssValueParser.parse(b):void 0,S=e(this,l).hasAttribute("data-revalidate"),V=e(this,l).hasAttribute("data-keep-search-parameters"),h=(i=e(this,l).getAttribute("data-submorph"))==null?void 0:i.split(",").map(ht=>ht.trim()),lt=e(this,l).hasAttribute("data-clear-state");e(this,H).navigate(e(this,N),{historyAction:u,centerScroll:g,offsetScroll:v,revalidate:S,keepSearchParameters:V,submorph:h,clearState:lt})}});o(this,G,()=>{const t=e(this,l).hasAttribute("data-revalidate");e(this,H).prefetch(e(this,N),t),e(this,l).removeEventListener("pointerenter",e(this,G))});n(this,H,s),n(this,l,t),n(this,N,e(this,l).getAttribute("href")||"/"),e(this,l).addEventListener("click",e(this,nt)),this.checkCurrent(location.pathname),e(this,l).hasAttribute("data-prefetch")&&e(this,l).addEventListener("pointerenter",e(this,G))}get element(){return e(this,l)}checkCurrent(t){var u;const s=e(this,H).normalizePath(t),i=e(this,H).normalizePath(e(this,N));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"):(u=e(this,l).getAttribute("data-associated-paths"))!=null&&u.split(",").find(g=>s.pathname.includes(g))?e(this,l).classList.add("current"):e(this,l).classList.remove("current")}destroy(){e(this,l).removeEventListener("click",e(this,nt)),e(this,l).removeEventListener("pointerenter",e(this,G)),e(this,l).classList.remove("current")}}H=new WeakMap,l=new WeakMap,N=new WeakMap,nt=new WeakMap,G=new WeakMap;const se=new DOMParser;var M,W,y,P,X,q,J,Y,D,Q,rt;class Ft{constructor(t,s){o(this,M);o(this,W);o(this,y,{x:0,y:0});o(this,P,null);o(this,X,null);o(this,q,null);o(this,J,null);o(this,Y,null);o(this,D,null);o(this,Q);o(this,rt);n(this,M,t),n(this,W,s),n(this,Q,s)}get pathname(){return e(this,W)}get scrollState(){return e(this,y)}get document(){return e(this,q)}setHeaders(t){n(this,rt,t)}setInitialDocument(t){n(this,P,t.cloneNode(!0))}abort(){var t;return(t=e(this,Y))==null?void 0:t.abort(`[${e(this,W)}] page loading cancelled`)}fetch(t,s,i){return B(this,null,function*(){return e(this,D)||e(this,P)&&e(this,P).documentElement.hasAttribute("data-cache")&&(!i||e(this,Q)!==t)||e(this,P)&&e(this,M).isPopstateNavigation?e(this,D):(n(this,Q,t),n(this,D,new Promise(u=>B(this,null,function*(){try{n(this,Y,new AbortController);const b=yield(yield fetch(t,{signal:e(this,Y).signal,headers:dt({"X-MORPH":"true","X-MORPH-CURRENT-PATH":s,"X-MORPH-NEW-PATH":t},e(this,rt))})).text(),v=se.parseFromString(b,"text/html");this.setInitialDocument(v)}catch(g){console.warn(g)}finally{n(this,Y,null),n(this,D,null),u()}}))),e(this,D))})}cloneDocument(){n(this,q,(e(this,X)||e(this,P)).cloneNode(!0))}get title(){let t="";if(e(this,q).title)t=e(this,q).title;else{const s=e(this,q).querySelector("h1");t=(s==null?void 0:s.innerText)||(s==null?void 0:s.textContent)||e(this,W)}return t}clearScrollState(){e(this,y).x=0,e(this,y).y=0}clearDocumentState(){n(this,X,null)}saveScrollState(){e(this,P).documentElement.hasAttribute("data-no-scroll-restoration")?(e(this,y).x=0,e(this,y).y=0):(e(this,y).x=e(this,M).scrollValue.left,e(this,y).y=e(this,M).scrollValue.top)}restoreScrollPosition(){e(this,M).scrollElement.scroll({top:e(this,y).y,left:e(this,y).x,behavior:"instant"})}saveDocumentState(){e(this,P).documentElement.hasAttribute("data-no-page-restoration")?n(this,X,null):n(this,X,document.cloneNode(!0))}renewScrollPosition(){e(this,M).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(t){n(this,J,t)}clearState(){const t=e(this,J);return n(this,J,null),t}}M=new WeakMap,W=new WeakMap,y=new WeakMap,P=new WeakMap,X=new WeakMap,q=new WeakMap,J=new WeakMap,Y=new WeakMap,D=new WeakMap,Q=new WeakMap,rt=new WeakMap;var A,Z,E,U,d,j,z,I,L,at,R,K,_,tt,c,Lt,ot,mt,bt,Xt,Pt,At,kt,Ct,ft,et;const it=class it{constructor(t){o(this,c);o(this,A,null);o(this,Z,null);o(this,E,[]);o(this,U);o(this,d,null);o(this,j);o(this,z,[]);o(this,I,!1);o(this,L,null);o(this,at,!1);o(this,R,new Map);o(this,K,null);o(this,_,0);o(this,tt,0);o(this,ot,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,ft,t=>B(this,null,function*(){t.preventDefault(),n(this,I,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none"}),n(this,I,!1)}));o(this,et,()=>{const{left:t,top:s}=this.scrollValue,i=s-e(this,tt),u=t-e(this,_);n(this,tt,s),n(this,_,t),document.documentElement.classList.toggle("scroll-y",s>0),document.documentElement.classList.toggle("scroll-x",t>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",u>0),document.documentElement.classList.toggle("scroll-x-backward",u<0),C.dispatchEvent(document,"morphScroll",{detail:{left:t,top:s}})});if(Bt.isBrowser&&!it.instance){it.instance=this,n(this,A,{base:st.normalizeBase(t==null?void 0:t.base),waitForHeadToLoad:(t==null?void 0:t.waitForHeadToLoad)!==!1,trailingSlash:(t==null?void 0:t.trailingSlash)||!1,scrollSelector:t==null?void 0:t.scrollSelector,morphInsideScrollContainer:(t==null?void 0:t.morphInsideScrollContainer)||!1}),n(this,Z,p(this,c,bt).call(this,document.body));const s=this.normalizePath(location.pathname+location.hash+location.search);n(this,d,s);const i=new Ft(this,e(this,d).pathname);i.setInitialDocument(document),e(this,R).set(e(this,d).pathname,i),document.documentElement.setAttribute("data-current-pathname",e(this,d).pathname),document.documentElement.setAttribute("data-current-leaf",s.leaf),this.findLinks(),history.scrollRestoration="manual",addEventListener("popstate",e(this,ft)),st.changeHistory({action:"replace",pathname:s.pathname,searchParameters:s.parameters,hash:s.hash}),n(this,K,new Wt),p(this,c,kt).call(this,document)}}get currentURL(){return e(this,d)}get previousURL(){return e(this,j)}get links(){return e(this,E)}get scrollElement(){return e(this,L)}get isPopstateNavigation(){return e(this,I)}get scrollValue(){let t=0,s=0;return e(this,at)?(t=window.scrollY,s=window.scrollX):(t=e(this,L).scrollTop,s=e(this,L).scrollLeft),{top:t,left:s}}saveState(t){const s=e(this,R).get(e(this,d).path);s&&s.saveState(t)}getState(){const t=e(this,R).get(e(this,d).path);return t==null?void 0:t.clearState()}normalizePath(t){return st.splitPath(t,{base:e(this,A).base,trailingSlash:e(this,A).trailingSlash})}prefetch(t,s){return B(this,null,function*(){if(e(this,z).length)return;const i=p(this,c,mt).call(this,t);i==null||i.fetch(t,e(this,d).path,s)})}excludeHeadChild(t){return!1}setHeaders(t){}navigate(V){return B(this,arguments,function*(t,{historyAction:s="push",centerScroll:i,offsetScroll:u,revalidate:g,keepSearchParameters:b,submorph:v,clearState:S}={}){var lt,ht,Ht,Mt;if(e(this,z).length)return;const h=this.normalizePath(((lt=this.pathnameModifier)==null?void 0:lt.call(this,t))||t);if(((ht=e(this,U))==null?void 0:ht.pathname)===h.pathname||e(this,d).pathname===h.pathname){p(this,c,Ct).call(this,h.hash||0,{centerScroll:i,offsetScroll:u,behavior:"smooth"}),C.dispatchEvent(document,"morphSamePath",{custom:!0}),((Ht=e(this,d))==null?void 0:Ht.parameters)!==h.parameters&&(n(this,j,e(this,d)),n(this,d,h),st.changeHistory({action:((Mt=e(this,d))==null?void 0:Mt.hash)!==h.hash?"replace":s,pathname:h.pathname,searchParameters:h.parameters,hash:h.hash}),C.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:e(this,d),previousURL:e(this,j)}}));return}n(this,U,h),e(this,E).forEach($=>{$.checkCurrent(h.pathname)});try{let $=!0;if(this.preprocessor)try{yield new Promise((a,k)=>{var T;(T=this.preprocessor)==null||T.call(this,{url:h,resolve:a,reject:k,submorph:v})})}catch(a){a?console.error(a):console.log("Route change canceled"),$=!1}if(!$||e(this,U).pathname!==h.pathname){e(this,E).forEach(a=>{a.checkCurrent(e(this,d).pathname)});return}const Rt={url:h,submorph:v};C.dispatchEvent(document,"morphNavigation",{detail:Rt});const pt=p(this,c,mt).call(this,e(this,d).pathname),f=p(this,c,mt).call(this,h.pathname);if(e(this,R).forEach(a=>{a.pathname!==h.pathname&&a.abort()}),yield f==null?void 0:f.fetch(t,e(this,d).path,g),e(this,U).pathname!==h.pathname){e(this,E).forEach(a=>{a.checkCurrent(e(this,d).path)});return}pt.clearState(),pt.saveScrollState(),pt.saveDocumentState(),e(this,I)||(f.clearScrollState(),f.clearDocumentState()),S&&f.clearState(),f.cloneDocument(),e(this,K).textContent=f.title,document.body.appendChild(e(this,K));const Et=vt(dt({},Rt),{document:f.document});C.dispatchEvent(document,"morphStart",{detail:Et});const Tt=Array.from(document.head.children),xt=Array.from(f.document.head.children),Nt=p(this,c,Xt).call(this,Tt,xt),Yt=p(this,c,Pt).call(this,Tt,Nt),ct=p(this,c,Pt).call(this,xt,Nt).filter(a=>!this.excludeHeadChild(a));ct.forEach((a,k)=>{a.tagName==="SCRIPT"&&(ct[k]=p(this,c,Lt).call(this,a))}),ct.forEach(a=>{document.head.appendChild(a)});const gt=ct.filter(a=>{if(a.hasAttribute("data-no-waiting"))return!1;if(p(this,c,At).call(this,a))return!0});e(this,A).waitForHeadToLoad&>.length&&(yield new Promise(a=>B(this,null,function*(){let k=0;try{for(var T=Vt(gt),Kt,O,F;Kt=!(O=yield T.next()).done;Kt=!1){const ut=O.value;ut.onload=()=>{k++,k===gt.length&&a()}}}catch(O){F=[O]}finally{try{Kt&&(O=T.return)&&(yield O.call(T))}finally{if(F)throw F[0]}}}))),yield Ot.wait(10);const qt=[];Yt.forEach(a=>{a.hasAttribute("data-permanent")||(p(this,c,At).call(this,a)?qt.push(a):a.remove())});const jt=p(this,c,bt).call(this,f.document.body);e(this,A).morphInsideScrollContainer||p(this,c,kt).call(this,f.document),document.documentElement.setAttribute("data-current-pathname",h.pathname),document.documentElement.setAttribute("data-current-leaf",h.leaf),st.changeHistory({action:s,pathname:h.pathname,searchParameters:h.parameters||(b?location.search:""),hash:h.hash}),e(this,K).remove(),n(this,j,e(this,d)),n(this,d,h),e(this,Z).forEach((a,k)=>{const T=jt[k],Kt=getComputedStyle(a).getPropertyValue("--morph-duration");let O=[],F=[];v?v.forEach(m=>{const w=a.querySelector(m),x=T.querySelector(m);w&&x&&(F.push(w),O.push(x))}):(O.push(...T.childNodes),F.push(...a.childNodes)),F.forEach(m=>{m instanceof HTMLElement&&(this.destroyOldLinks(m),m.classList.add("old"))}),O.forEach(m=>{m instanceof HTMLElement&&(this.findNewLinks(m),m.classList.add("new"))}),v?O.forEach((m,w)=>{var x;(x=F[w].parentElement)==null||x.insertBefore(m,F[w])}):a.prepend(...O),te.requestIdleCallback(()=>{F.forEach(m=>{m instanceof HTMLElement&&m.classList.add("old-idle")}),O.forEach(m=>{var w;m instanceof HTMLElement&&((w=m.parentElement)==null||w.style.setProperty("--new-content-height",m.offsetHeight+"px"),m.classList.add("new-idle"))})});const ut=vt(dt({},Et),{morphElement:a});C.dispatchEvent(document,"morphNewChildrenAdded",{detail:ut});const $t=new Promise(m=>{setTimeout(()=>{F.forEach(w=>w.remove()),O.forEach(w=>{var x;w instanceof HTMLElement&&((x=w.parentElement)==null||x.style.removeProperty("--new-content-height"),w.classList.remove("new-idle","new"))}),C.dispatchEvent(document,"morphOldChildrenRemoved",{detail:ut}),m()},(parseFloat(Kt)||0)*1e3+10)});e(this,z).push($t)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-f.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),C.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:f.scrollState}),h.hash?(f.clearScrollState(),p(this,c,Ct).call(this,h.hash,{centerScroll:i,offsetScroll:u})):e(this,I)?f.restoreScrollPosition():f.renewScrollPosition(),yield Promise.all(e(this,z)),qt.forEach(a=>a.remove()),n(this,z,[]),e(this,Z).forEach(a=>{a.querySelectorAll("script").forEach(T=>{T.replaceWith(p(this,c,Lt).call(this,T))})}),e(this,E).forEach(a=>{a.checkCurrent(e(this,d).path)}),C.dispatchEvent(document,"morphComplete",{detail:Et}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch($){console.error($)}n(this,U,void 0)})}addLink(t){e(this,E).push(new wt(t,this))}addLinks(t){t.forEach(s=>{this.addLink(s)})}removeLink(t){n(this,E,e(this,E).filter(s=>s.element===t?(s.destroy(),!1):!0))}destroyOldLinks(t){n(this,E,e(this,E).filter(s=>t.contains(s.element)?(s.destroy(),!1):!0))}findNewLinks(t){const s=[...t.querySelectorAll("a")].filter(e(this,ot));e(this,E).push(...s.map(i=>new wt(i,this)))}findLinks(){const t=[...document.documentElement.querySelectorAll("a")].filter(e(this,ot));e(this,E).forEach(s=>s.destroy()),n(this,E,t.map(s=>new wt(s,this)))}};A=new WeakMap,Z=new WeakMap,E=new WeakMap,U=new WeakMap,d=new WeakMap,j=new WeakMap,z=new WeakMap,I=new WeakMap,L=new WeakMap,at=new WeakMap,R=new WeakMap,K=new WeakMap,_=new WeakMap,tt=new WeakMap,c=new WeakSet,Lt=function(t){const s=document.createElement("script");for(let i=0;i<t.attributes.length;i++){const u=t.attributes[i];s.setAttribute(u.name,u.value)}return t.hasAttribute("src")||(s.innerHTML=t.innerHTML),s},ot=new WeakMap,mt=function(t){const s=this.normalizePath(t);let i=e(this,R).get(s.pathname);return i||(i=new Ft(this,s.pathname),e(this,R).set(s.pathname,i)),i},bt=function(t){const s=[...t.querySelectorAll("[data-morph]")];return s.length?s:[t]},Xt=function(t,s){return t.filter(i=>s.find(u=>u.outerHTML===i.outerHTML))},Pt=function(t,s){return t.filter(i=>!s.find(u=>u.outerHTML===i.outerHTML))},At=function(t){return t.tagName==="SCRIPT"||t.tagName==="STYLE"||t.tagName==="LINK"&&t.getAttribute("rel")==="stylesheet"},kt=function(t){var s,i;(s=e(this,L))==null||s.removeEventListener("scroll",e(this,et)),n(this,tt,0),n(this,_,0),n(this,L,e(this,A).scrollSelector&&t.querySelector(e(this,A).scrollSelector)||window),n(this,at,e(this,L)===window),(i=e(this,L))==null||i.addEventListener("scroll",e(this,et)),e(this,et).call(this)},Ct=function(t,s){const i=typeof t=="string"?document.getElementById(t):t;(typeof i=="number"||i)&&Ot.scrollToElement(i,{scrollElement:e(this,L),behavior:(s==null?void 0:s.behavior)||"instant",center:s==null?void 0:s.centerScroll,offset:s==null?void 0:s.offsetScroll})},ft=new WeakMap,et=new WeakMap,it.instance=null;let yt=it;exports.Morph=yt;
|
|
1
|
+
"use strict";var Gt=Object.defineProperty,Jt=Object.defineProperties;var Qt=Object.getOwnPropertyDescriptors;var Dt=Object.getOwnPropertySymbols;var Zt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Ut=(r,t)=>(t=Symbol[r])?t:Symbol.for("Symbol."+r),It=r=>{throw TypeError(r)};var zt=(r,t,s)=>t in r?Gt(r,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[t]=s,dt=(r,t)=>{for(var s in t||(t={}))Zt.call(t,s)&&zt(r,s,t[s]);if(Dt)for(var s of Dt(t))_t.call(t,s)&&zt(r,s,t[s]);return r},vt=(r,t)=>Jt(r,Qt(t));var St=(r,t,s)=>t.has(r)||It("Cannot "+s);var e=(r,t,s)=>(St(r,t,"read from private field"),s?s.call(r):t.get(r)),o=(r,t,s)=>t.has(r)?It("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,s),n=(r,t,s,i)=>(St(r,t,"write to private field"),i?i.call(r,s):t.set(r,s),s),p=(r,t,s)=>(St(r,t,"access private method"),s);var B=(r,t,s)=>new Promise((i,h)=>{var g=S=>{try{v(s.next(S))}catch(V){h(V)}},b=S=>{try{v(s.throw(S))}catch(V){h(V)}},v=S=>S.done?i(S.value):Promise.resolve(S.value).then(g,b);v((s=s.apply(r,t)).next())});var Vt=(r,t,s)=>(t=r[Ut("asyncIterator")])?t.call(r):(r=r[Ut("iterator")](),t={},s=(i,h)=>(h=r[i])&&(t[i]=g=>new Promise((b,v,S)=>(g=h.call(r,g),S=g.done,Promise.resolve(g.value).then(V=>b({value:V,done:S}),v)))),s("next"),s("return"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Bt=require("../index-DekP7OZe.cjs"),C=require("../events-KVanG9sR.cjs"),te=require("../polyfills-Df4r-ETT.cjs"),Ot=require("../scroll-CIdNtj3G.cjs");require("construct-style-sheets-polyfill");const st=require("../url-YEESIcRn.cjs"),ee=require("../css-value-parser/index.cjs");class Wt 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)}}Bt.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",Wt);var H,l,N,nt,G;class wt{constructor(t,s){o(this,H);o(this,l);o(this,N);o(this,nt,t=>{var i;if(t.preventDefault(),e(this,l).hasAttribute("data-back")&&e(this,H).previousURL)history.back();else{n(this,N,e(this,l).getAttribute("href")||"/");const h=e(this,l).getAttribute("data-history-action")||"push",g=e(this,l).hasAttribute("data-center-scroll"),b=getComputedStyle(e(this,l)).getPropertyValue("--offset-scroll").trim(),v=b?ee.cssValueParser.parse(b):void 0,S=e(this,l).hasAttribute("data-revalidate"),V=e(this,l).hasAttribute("data-keep-search-parameters"),c=(i=e(this,l).getAttribute("data-submorph"))==null?void 0:i.split(",").map(ht=>ht.trim()),lt=e(this,l).hasAttribute("data-clear-state");e(this,H).navigate(e(this,N),{historyAction:h,centerScroll:g,offsetScroll:v,revalidate:S,keepSearchParameters:V,submorph:c,clearState:lt})}});o(this,G,()=>{const t=e(this,l).hasAttribute("data-revalidate");e(this,H).prefetch(e(this,N),t),e(this,l).removeEventListener("pointerenter",e(this,G))});n(this,H,s),n(this,l,t),n(this,N,e(this,l).getAttribute("href")||"/"),e(this,l).addEventListener("click",e(this,nt)),this.checkCurrent(location.pathname),e(this,l).hasAttribute("data-prefetch")&&e(this,l).addEventListener("pointerenter",e(this,G))}get element(){return e(this,l)}checkCurrent(t){var h;const s=e(this,H).normalizePath(t),i=e(this,H).normalizePath(e(this,N));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"):(h=e(this,l).getAttribute("data-associated-paths"))!=null&&h.split(",").find(g=>s.pathname.includes(g))?e(this,l).classList.add("current"):e(this,l).classList.remove("current")}destroy(){e(this,l).removeEventListener("click",e(this,nt)),e(this,l).removeEventListener("pointerenter",e(this,G)),e(this,l).classList.remove("current")}}H=new WeakMap,l=new WeakMap,N=new WeakMap,nt=new WeakMap,G=new WeakMap;const se=new DOMParser;var M,W,y,P,X,q,J,Y,D,Q,rt;class Ft{constructor(t,s){o(this,M);o(this,W);o(this,y,{x:0,y:0});o(this,P,null);o(this,X,null);o(this,q,null);o(this,J,null);o(this,Y,null);o(this,D,null);o(this,Q);o(this,rt);n(this,M,t),n(this,W,s),n(this,Q,s)}get pathname(){return e(this,W)}get scrollState(){return e(this,y)}get document(){return e(this,q)}setHeaders(t){n(this,rt,t)}setInitialDocument(t){n(this,P,t.cloneNode(!0))}abort(){var t;return(t=e(this,Y))==null?void 0:t.abort(`[${e(this,W)}] page loading cancelled`)}fetch(t,s,i){return B(this,null,function*(){return e(this,D)||e(this,P)&&e(this,P).documentElement.hasAttribute("data-cache")&&(!i||e(this,Q)!==t)||e(this,P)&&e(this,M).isPopstateNavigation?e(this,D):(n(this,Q,t),n(this,D,new Promise(h=>B(this,null,function*(){try{n(this,Y,new AbortController);const b=yield(yield fetch(t,{signal:e(this,Y).signal,headers:dt({"X-MORPH":"true","X-MORPH-CURRENT-PATH":s,"X-MORPH-NEW-PATH":t},e(this,rt))})).text(),v=se.parseFromString(b,"text/html");this.setInitialDocument(v)}catch(g){console.warn(g)}finally{n(this,Y,null),n(this,D,null),h()}}))),e(this,D))})}cloneDocument(){n(this,q,(e(this,X)||e(this,P)).cloneNode(!0))}get title(){let t="";if(e(this,q).title)t=e(this,q).title;else{const s=e(this,q).querySelector("h1");t=(s==null?void 0:s.innerText)||(s==null?void 0:s.textContent)||e(this,W)}return t}clearScrollState(){e(this,y).x=0,e(this,y).y=0}clearDocumentState(){n(this,X,null)}saveScrollState(){e(this,P).documentElement.hasAttribute("data-no-scroll-restoration")?(e(this,y).x=0,e(this,y).y=0):(e(this,y).x=e(this,M).scrollValue.left,e(this,y).y=e(this,M).scrollValue.top)}restoreScrollPosition(){e(this,M).scrollElement.scroll({top:e(this,y).y,left:e(this,y).x,behavior:"instant"})}saveDocumentState(){e(this,P).documentElement.hasAttribute("data-no-page-restoration")?n(this,X,null):n(this,X,document.cloneNode(!0))}renewScrollPosition(){e(this,M).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(t){n(this,J,t)}clearState(){const t=e(this,J);return n(this,J,null),t}}M=new WeakMap,W=new WeakMap,y=new WeakMap,P=new WeakMap,X=new WeakMap,q=new WeakMap,J=new WeakMap,Y=new WeakMap,D=new WeakMap,Q=new WeakMap,rt=new WeakMap;var A,Z,E,U,d,j,z,I,L,at,R,K,_,tt,u,Lt,ot,mt,bt,Xt,Pt,At,kt,Ct,ft,et;const it=class it{constructor(t){o(this,u);o(this,A,null);o(this,Z,null);o(this,E,[]);o(this,U);o(this,d,null);o(this,j);o(this,z,[]);o(this,I,!1);o(this,L,null);o(this,at,!1);o(this,R,new Map);o(this,K,null);o(this,_,0);o(this,tt,0);o(this,ot,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,ft,t=>B(this,null,function*(){t.preventDefault(),n(this,I,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none"}),n(this,I,!1)}));o(this,et,()=>{const{left:t,top:s}=this.scrollValue,i=s-e(this,tt),h=t-e(this,_);n(this,tt,s),n(this,_,t),document.documentElement.classList.toggle("scroll-y",s>0),document.documentElement.classList.toggle("scroll-x",t>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",h>0),document.documentElement.classList.toggle("scroll-x-backward",h<0),C.dispatchEvent(document,"morphScroll",{detail:{left:t,top:s}})});if(Bt.isBrowser&&!it.instance){it.instance=this,n(this,A,{base:st.normalizeBase(t==null?void 0:t.base),waitForHeadToLoad:(t==null?void 0:t.waitForHeadToLoad)!==!1,trailingSlash:(t==null?void 0:t.trailingSlash)||!1,scrollSelector:t==null?void 0:t.scrollSelector,morphInsideScrollContainer:(t==null?void 0:t.morphInsideScrollContainer)||!1}),n(this,Z,p(this,u,bt).call(this,document.body));const s=this.normalizePath(location.pathname+location.hash+location.search);n(this,d,s);const i=new Ft(this,e(this,d).pathname);i.setInitialDocument(document),e(this,R).set(e(this,d).pathname,i),document.documentElement.setAttribute("data-current-pathname",e(this,d).pathname),document.documentElement.setAttribute("data-current-leaf",s.leaf),this.findLinks(),history.scrollRestoration="manual",addEventListener("popstate",e(this,ft)),st.changeHistory({action:"replace",pathname:s.pathname,searchParameters:s.parameters,hash:s.hash}),n(this,K,new Wt),p(this,u,kt).call(this,document)}}get currentURL(){return e(this,d)}get previousURL(){return e(this,j)}get links(){return e(this,E)}get scrollElement(){return e(this,L)}get isPopstateNavigation(){return e(this,I)}get scrollValue(){let t=0,s=0;return e(this,at)?(t=window.scrollY,s=window.scrollX):(t=e(this,L).scrollTop,s=e(this,L).scrollLeft),{top:t,left:s}}saveState(t){const s=e(this,R).get(e(this,d).path);s&&s.saveState(t)}getState(){const t=e(this,R).get(e(this,d).path);return t==null?void 0:t.clearState()}normalizePath(t){return st.splitPath(t,{base:e(this,A).base,trailingSlash:e(this,A).trailingSlash})}prefetch(t,s){return B(this,null,function*(){var h;if(e(this,z).length)return;t=((h=this.pathnameModifier)==null?void 0:h.call(this,t))||t;const i=p(this,u,mt).call(this,t);i==null||i.fetch(t,e(this,d).path,s)})}excludeHeadChild(t){return!1}setHeaders(t){}navigate(V){return B(this,arguments,function*(t,{historyAction:s="push",centerScroll:i,offsetScroll:h,revalidate:g,keepSearchParameters:b,submorph:v,clearState:S}={}){var lt,ht,Ht,Mt;if(e(this,z).length)return;const c=this.normalizePath(((lt=this.pathnameModifier)==null?void 0:lt.call(this,t))||t);if(((ht=e(this,U))==null?void 0:ht.pathname)===c.pathname||e(this,d).pathname===c.pathname){p(this,u,Ct).call(this,c.hash||0,{centerScroll:i,offsetScroll:h,behavior:"smooth"}),C.dispatchEvent(document,"morphSamePath",{custom:!0}),((Ht=e(this,d))==null?void 0:Ht.parameters)!==c.parameters&&(n(this,j,e(this,d)),n(this,d,c),st.changeHistory({action:((Mt=e(this,d))==null?void 0:Mt.hash)!==c.hash?"replace":s,pathname:c.pathname,searchParameters:c.parameters,hash:c.hash}),C.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:e(this,d),previousURL:e(this,j)}}));return}n(this,U,c),e(this,E).forEach($=>{$.checkCurrent(c.pathname)});try{let $=!0;if(this.preprocessor)try{yield new Promise((a,k)=>{var T;(T=this.preprocessor)==null||T.call(this,{url:c,resolve:a,reject:k,submorph:v})})}catch(a){a?console.error(a):console.log("Route change canceled"),$=!1}if(!$||e(this,U).pathname!==c.pathname){e(this,E).forEach(a=>{a.checkCurrent(e(this,d).pathname)});return}const Rt={url:c,submorph:v};C.dispatchEvent(document,"morphNavigation",{detail:Rt});const pt=p(this,u,mt).call(this,e(this,d).pathname),f=p(this,u,mt).call(this,c.pathname);if(e(this,R).forEach(a=>{a.pathname!==c.pathname&&a.abort()}),yield f==null?void 0:f.fetch(t,e(this,d).path,g),e(this,U).pathname!==c.pathname){e(this,E).forEach(a=>{a.checkCurrent(e(this,d).path)});return}pt.clearState(),pt.saveScrollState(),pt.saveDocumentState(),e(this,I)||(f.clearScrollState(),f.clearDocumentState()),S&&f.clearState(),f.cloneDocument(),e(this,K).textContent=f.title,document.body.appendChild(e(this,K));const Et=vt(dt({},Rt),{document:f.document});C.dispatchEvent(document,"morphStart",{detail:Et});const Tt=Array.from(document.head.children),xt=Array.from(f.document.head.children),Nt=p(this,u,Xt).call(this,Tt,xt),Yt=p(this,u,Pt).call(this,Tt,Nt),ct=p(this,u,Pt).call(this,xt,Nt).filter(a=>!this.excludeHeadChild(a));ct.forEach((a,k)=>{a.tagName==="SCRIPT"&&(ct[k]=p(this,u,Lt).call(this,a))}),ct.forEach(a=>{document.head.appendChild(a)});const gt=ct.filter(a=>{if(a.hasAttribute("data-no-waiting"))return!1;if(p(this,u,At).call(this,a))return!0});e(this,A).waitForHeadToLoad&>.length&&(yield new Promise(a=>B(this,null,function*(){let k=0;try{for(var T=Vt(gt),Kt,O,F;Kt=!(O=yield T.next()).done;Kt=!1){const ut=O.value;ut.onload=()=>{k++,k===gt.length&&a()}}}catch(O){F=[O]}finally{try{Kt&&(O=T.return)&&(yield O.call(T))}finally{if(F)throw F[0]}}}))),yield Ot.wait(10);const qt=[];Yt.forEach(a=>{a.hasAttribute("data-permanent")||(p(this,u,At).call(this,a)?qt.push(a):a.remove())});const jt=p(this,u,bt).call(this,f.document.body);e(this,A).morphInsideScrollContainer||p(this,u,kt).call(this,f.document),document.documentElement.setAttribute("data-current-pathname",c.pathname),document.documentElement.setAttribute("data-current-leaf",c.leaf),st.changeHistory({action:s,pathname:c.pathname,searchParameters:c.parameters||(b?location.search:""),hash:c.hash}),e(this,K).remove(),n(this,j,e(this,d)),n(this,d,c),e(this,Z).forEach((a,k)=>{const T=jt[k],Kt=getComputedStyle(a).getPropertyValue("--morph-duration");let O=[],F=[];v?v.forEach(m=>{const w=a.querySelector(m),x=T.querySelector(m);w&&x&&(F.push(w),O.push(x))}):(O.push(...T.childNodes),F.push(...a.childNodes)),F.forEach(m=>{m instanceof HTMLElement&&(this.destroyOldLinks(m),m.classList.add("old"))}),O.forEach(m=>{m instanceof HTMLElement&&(this.findNewLinks(m),m.classList.add("new"))}),v?O.forEach((m,w)=>{var x;(x=F[w].parentElement)==null||x.insertBefore(m,F[w])}):a.prepend(...O),te.requestIdleCallback(()=>{F.forEach(m=>{m instanceof HTMLElement&&m.classList.add("old-idle")}),O.forEach(m=>{var w;m instanceof HTMLElement&&((w=m.parentElement)==null||w.style.setProperty("--new-content-height",m.offsetHeight+"px"),m.classList.add("new-idle"))})});const ut=vt(dt({},Et),{morphElement:a});C.dispatchEvent(document,"morphNewChildrenAdded",{detail:ut});const $t=new Promise(m=>{setTimeout(()=>{F.forEach(w=>w.remove()),O.forEach(w=>{var x;w instanceof HTMLElement&&((x=w.parentElement)==null||x.style.removeProperty("--new-content-height"),w.classList.remove("new-idle","new"))}),C.dispatchEvent(document,"morphOldChildrenRemoved",{detail:ut}),m()},(parseFloat(Kt)||0)*1e3+10)});e(this,z).push($t)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-f.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),C.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:f.scrollState}),c.hash?(f.clearScrollState(),p(this,u,Ct).call(this,c.hash,{centerScroll:i,offsetScroll:h})):e(this,I)?f.restoreScrollPosition():f.renewScrollPosition(),yield Promise.all(e(this,z)),qt.forEach(a=>a.remove()),n(this,z,[]),e(this,Z).forEach(a=>{a.querySelectorAll("script").forEach(T=>{T.replaceWith(p(this,u,Lt).call(this,T))})}),e(this,E).forEach(a=>{a.checkCurrent(e(this,d).path)}),C.dispatchEvent(document,"morphComplete",{detail:Et}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch($){console.error($)}n(this,U,void 0)})}addLink(t){e(this,E).push(new wt(t,this))}addLinks(t){t.forEach(s=>{this.addLink(s)})}removeLink(t){n(this,E,e(this,E).filter(s=>s.element===t?(s.destroy(),!1):!0))}destroyOldLinks(t){n(this,E,e(this,E).filter(s=>t.contains(s.element)?(s.destroy(),!1):!0))}findNewLinks(t){const s=[...t.querySelectorAll("a")].filter(e(this,ot));e(this,E).push(...s.map(i=>new wt(i,this)))}findLinks(){const t=[...document.documentElement.querySelectorAll("a")].filter(e(this,ot));e(this,E).forEach(s=>s.destroy()),n(this,E,t.map(s=>new wt(s,this)))}};A=new WeakMap,Z=new WeakMap,E=new WeakMap,U=new WeakMap,d=new WeakMap,j=new WeakMap,z=new WeakMap,I=new WeakMap,L=new WeakMap,at=new WeakMap,R=new WeakMap,K=new WeakMap,_=new WeakMap,tt=new WeakMap,u=new WeakSet,Lt=function(t){const s=document.createElement("script");for(let i=0;i<t.attributes.length;i++){const h=t.attributes[i];s.setAttribute(h.name,h.value)}return t.hasAttribute("src")||(s.innerHTML=t.innerHTML),s},ot=new WeakMap,mt=function(t){const s=this.normalizePath(t);let i=e(this,R).get(s.pathname);return i||(i=new Ft(this,s.pathname),e(this,R).set(s.pathname,i)),i},bt=function(t){const s=[...t.querySelectorAll("[data-morph]")];return s.length?s:[t]},Xt=function(t,s){return t.filter(i=>s.find(h=>h.outerHTML===i.outerHTML))},Pt=function(t,s){return t.filter(i=>!s.find(h=>h.outerHTML===i.outerHTML))},At=function(t){return t.tagName==="SCRIPT"||t.tagName==="STYLE"||t.tagName==="LINK"&&t.getAttribute("rel")==="stylesheet"},kt=function(t){var s,i;(s=e(this,L))==null||s.removeEventListener("scroll",e(this,et)),n(this,tt,0),n(this,_,0),n(this,L,e(this,A).scrollSelector&&t.querySelector(e(this,A).scrollSelector)||window),n(this,at,e(this,L)===window),(i=e(this,L))==null||i.addEventListener("scroll",e(this,et)),e(this,et).call(this)},Ct=function(t,s){const i=typeof t=="string"?document.getElementById(t):t;(typeof i=="number"||i)&&Ot.scrollToElement(i,{scrollElement:e(this,L),behavior:(s==null?void 0:s.behavior)||"instant",center:s==null?void 0:s.centerScroll,offset:s==null?void 0:s.offsetScroll})},ft=new WeakMap,et=new WeakMap,it.instance=null;let yt=it;exports.Morph=yt;
|
package/lib/morph/index.js
CHANGED
|
@@ -15,23 +15,23 @@ var zt = (n, t, s) => t in n ? $t(n, t, { enumerable: !0, configurable: !0, writ
|
|
|
15
15
|
}, gt = (n, t) => Gt(n, Jt(t));
|
|
16
16
|
var St = (n, t, s) => t.has(n) || It("Cannot " + s);
|
|
17
17
|
var e = (n, t, s) => (St(n, t, "read from private field"), s ? s.call(n) : t.get(n)), o = (n, t, s) => t.has(n) ? It("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(n) : t.set(n, s), r = (n, t, s, i) => (St(n, t, "write to private field"), i ? i.call(n, s) : t.set(n, s), s), p = (n, t, s) => (St(n, t, "access private method"), s);
|
|
18
|
-
var W = (n, t, s) => new Promise((i,
|
|
18
|
+
var W = (n, t, s) => new Promise((i, h) => {
|
|
19
19
|
var g = (w) => {
|
|
20
20
|
try {
|
|
21
21
|
S(s.next(w));
|
|
22
22
|
} catch (q) {
|
|
23
|
-
|
|
23
|
+
h(q);
|
|
24
24
|
}
|
|
25
25
|
}, b = (w) => {
|
|
26
26
|
try {
|
|
27
27
|
S(s.throw(w));
|
|
28
28
|
} catch (q) {
|
|
29
|
-
|
|
29
|
+
h(q);
|
|
30
30
|
}
|
|
31
31
|
}, S = (w) => w.done ? i(w.value) : Promise.resolve(w.value).then(g, b);
|
|
32
32
|
S((s = s.apply(n, t)).next());
|
|
33
33
|
});
|
|
34
|
-
var Vt = (n, t, s) => (t = n[Ut("asyncIterator")]) ? t.call(n) : (n = n[Ut("iterator")](), t = {}, s = (i,
|
|
34
|
+
var Vt = (n, t, s) => (t = n[Ut("asyncIterator")]) ? t.call(n) : (n = n[Ut("iterator")](), t = {}, s = (i, h) => (h = n[i]) && (t[i] = (g) => new Promise((b, S, w) => (g = h.call(n, g), w = g.done, Promise.resolve(g.value).then((q) => b({ value: q, done: w }), S)))), s("next"), s("return"), t);
|
|
35
35
|
import { i as Ft } from "../index-Bv9zgfdb.js";
|
|
36
36
|
import { d as C } from "../events-CsVF98U6.js";
|
|
37
37
|
import { r as _t } from "../polyfills-DJrTJQky.js";
|
|
@@ -63,18 +63,18 @@ class Lt {
|
|
|
63
63
|
history.back();
|
|
64
64
|
else {
|
|
65
65
|
r(this, N, e(this, l).getAttribute("href") || "/");
|
|
66
|
-
const
|
|
66
|
+
const h = e(this, l).getAttribute(
|
|
67
67
|
"data-history-action"
|
|
68
68
|
) || "push", g = e(this, l).hasAttribute("data-center-scroll"), b = getComputedStyle(e(this, l)).getPropertyValue("--offset-scroll").trim(), S = b ? re.parse(b) : void 0, w = e(this, l).hasAttribute("data-revalidate"), q = e(this, l).hasAttribute(
|
|
69
69
|
"data-keep-search-parameters"
|
|
70
|
-
),
|
|
70
|
+
), c = (i = e(this, l).getAttribute("data-submorph")) == null ? void 0 : i.split(",").map((lt) => lt.trim()), ot = e(this, l).hasAttribute("data-clear-state");
|
|
71
71
|
e(this, H).navigate(e(this, N), {
|
|
72
|
-
historyAction:
|
|
72
|
+
historyAction: h,
|
|
73
73
|
centerScroll: g,
|
|
74
74
|
offsetScroll: S,
|
|
75
75
|
revalidate: w,
|
|
76
76
|
keepSearchParameters: q,
|
|
77
|
-
submorph:
|
|
77
|
+
submorph: c,
|
|
78
78
|
clearState: ot
|
|
79
79
|
});
|
|
80
80
|
}
|
|
@@ -89,9 +89,9 @@ class Lt {
|
|
|
89
89
|
return e(this, l);
|
|
90
90
|
}
|
|
91
91
|
checkCurrent(t) {
|
|
92
|
-
var
|
|
92
|
+
var h;
|
|
93
93
|
const s = e(this, H).normalizePath(t), i = e(this, H).normalizePath(e(this, N));
|
|
94
|
-
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") : (
|
|
94
|
+
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") : (h = e(this, l).getAttribute("data-associated-paths")) != null && h.split(",").find((g) => s.pathname.includes(g)) ? e(this, l).classList.add("current") : e(this, l).classList.remove("current");
|
|
95
95
|
}
|
|
96
96
|
destroy() {
|
|
97
97
|
e(this, l).removeEventListener("click", e(this, it)), e(this, l).removeEventListener("pointerenter", e(this, G)), e(this, l).classList.remove("current");
|
|
@@ -138,7 +138,7 @@ class qt {
|
|
|
138
138
|
}
|
|
139
139
|
fetch(t, s, i) {
|
|
140
140
|
return W(this, null, function* () {
|
|
141
|
-
return e(this, U) || e(this, P) && e(this, P).documentElement.hasAttribute("data-cache") && (!i || e(this, Q) !== t) || e(this, P) && e(this, R).isPopstateNavigation ? e(this, U) : (r(this, Q, t), r(this, U, new Promise((
|
|
141
|
+
return e(this, U) || e(this, P) && e(this, P).documentElement.hasAttribute("data-cache") && (!i || e(this, Q) !== t) || e(this, P) && e(this, R).isPopstateNavigation ? e(this, U) : (r(this, Q, t), r(this, U, new Promise((h) => W(this, null, function* () {
|
|
142
142
|
try {
|
|
143
143
|
r(this, Y, new AbortController());
|
|
144
144
|
const b = yield (yield fetch(t, {
|
|
@@ -153,7 +153,7 @@ class qt {
|
|
|
153
153
|
} catch (g) {
|
|
154
154
|
console.warn(g);
|
|
155
155
|
} finally {
|
|
156
|
-
r(this, Y, null), r(this, U, null),
|
|
156
|
+
r(this, Y, null), r(this, U, null), h();
|
|
157
157
|
}
|
|
158
158
|
}))), e(this, U));
|
|
159
159
|
});
|
|
@@ -210,10 +210,10 @@ class qt {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
R = new WeakMap(), X = new WeakMap(), v = new WeakMap(), P = new WeakMap(), B = new WeakMap(), D = new WeakMap(), J = new WeakMap(), Y = new WeakMap(), U = new WeakMap(), Q = new WeakMap(), rt = new WeakMap();
|
|
213
|
-
var A, Z, E, z, d, j, I, V, y, nt,
|
|
213
|
+
var A, Z, E, z, d, j, I, V, y, nt, M, K, _, tt, u, vt, at, dt, yt, Xt, bt, Pt, At, kt, mt, et;
|
|
214
214
|
const st = class st {
|
|
215
215
|
constructor(t) {
|
|
216
|
-
o(this,
|
|
216
|
+
o(this, u);
|
|
217
217
|
o(this, A, null);
|
|
218
218
|
o(this, Z, null);
|
|
219
219
|
o(this, E, []);
|
|
@@ -224,7 +224,7 @@ const st = class st {
|
|
|
224
224
|
o(this, V, !1);
|
|
225
225
|
o(this, y, null);
|
|
226
226
|
o(this, nt, !1);
|
|
227
|
-
o(this,
|
|
227
|
+
o(this, M, /* @__PURE__ */ new Map());
|
|
228
228
|
o(this, K, null);
|
|
229
229
|
o(this, _, 0);
|
|
230
230
|
o(this, tt, 0);
|
|
@@ -238,7 +238,7 @@ const st = class st {
|
|
|
238
238
|
}), r(this, V, !1);
|
|
239
239
|
}));
|
|
240
240
|
o(this, et, () => {
|
|
241
|
-
const { left: t, top: s } = this.scrollValue, i = s - e(this, tt),
|
|
241
|
+
const { left: t, top: s } = this.scrollValue, i = s - e(this, tt), h = t - e(this, _);
|
|
242
242
|
r(this, tt, s), r(this, _, t), document.documentElement.classList.toggle("scroll-y", s > 0), document.documentElement.classList.toggle("scroll-x", t > 0), document.documentElement.classList.toggle(
|
|
243
243
|
"scroll-y-forward",
|
|
244
244
|
i > 0
|
|
@@ -247,10 +247,10 @@ const st = class st {
|
|
|
247
247
|
i < 0
|
|
248
248
|
), document.documentElement.classList.toggle(
|
|
249
249
|
"scroll-x-forward",
|
|
250
|
-
|
|
250
|
+
h > 0
|
|
251
251
|
), document.documentElement.classList.toggle(
|
|
252
252
|
"scroll-x-backward",
|
|
253
|
-
|
|
253
|
+
h < 0
|
|
254
254
|
), C(document, "morphScroll", {
|
|
255
255
|
detail: {
|
|
256
256
|
left: t,
|
|
@@ -265,13 +265,13 @@ const st = class st {
|
|
|
265
265
|
trailingSlash: (t == null ? void 0 : t.trailingSlash) || !1,
|
|
266
266
|
scrollSelector: t == null ? void 0 : t.scrollSelector,
|
|
267
267
|
morphInsideScrollContainer: (t == null ? void 0 : t.morphInsideScrollContainer) || !1
|
|
268
|
-
}), r(this, Z, p(this,
|
|
268
|
+
}), r(this, Z, p(this, u, yt).call(this, document.body));
|
|
269
269
|
const s = this.normalizePath(
|
|
270
270
|
location.pathname + location.hash + location.search
|
|
271
271
|
);
|
|
272
272
|
r(this, d, s);
|
|
273
273
|
const i = new qt(this, e(this, d).pathname);
|
|
274
|
-
i.setInitialDocument(document), e(this,
|
|
274
|
+
i.setInitialDocument(document), e(this, M).set(e(this, d).pathname, i), document.documentElement.setAttribute(
|
|
275
275
|
"data-current-pathname",
|
|
276
276
|
e(this, d).pathname
|
|
277
277
|
), document.documentElement.setAttribute(
|
|
@@ -282,7 +282,7 @@ const st = class st {
|
|
|
282
282
|
pathname: s.pathname,
|
|
283
283
|
searchParameters: s.parameters,
|
|
284
284
|
hash: s.hash
|
|
285
|
-
}), r(this, K, new Wt()), p(this,
|
|
285
|
+
}), r(this, K, new Wt()), p(this, u, At).call(this, document);
|
|
286
286
|
}
|
|
287
287
|
}
|
|
288
288
|
get currentURL() {
|
|
@@ -305,11 +305,11 @@ const st = class st {
|
|
|
305
305
|
return e(this, nt) ? (t = window.scrollY, s = window.scrollX) : (t = e(this, y).scrollTop, s = e(this, y).scrollLeft), { top: t, left: s };
|
|
306
306
|
}
|
|
307
307
|
saveState(t) {
|
|
308
|
-
const s = e(this,
|
|
308
|
+
const s = e(this, M).get(e(this, d).path);
|
|
309
309
|
s && s.saveState(t);
|
|
310
310
|
}
|
|
311
311
|
getState() {
|
|
312
|
-
const t = e(this,
|
|
312
|
+
const t = e(this, M).get(e(this, d).path);
|
|
313
313
|
return t == null ? void 0 : t.clearState();
|
|
314
314
|
}
|
|
315
315
|
normalizePath(t) {
|
|
@@ -320,9 +320,11 @@ const st = class st {
|
|
|
320
320
|
}
|
|
321
321
|
prefetch(t, s) {
|
|
322
322
|
return W(this, null, function* () {
|
|
323
|
+
var h;
|
|
323
324
|
if (e(this, I).length)
|
|
324
325
|
return;
|
|
325
|
-
|
|
326
|
+
t = ((h = this.pathnameModifier) == null ? void 0 : h.call(this, t)) || t;
|
|
327
|
+
const i = p(this, u, dt).call(this, t);
|
|
326
328
|
i == null || i.fetch(t, e(this, d).path, s);
|
|
327
329
|
});
|
|
328
330
|
}
|
|
@@ -335,7 +337,7 @@ const st = class st {
|
|
|
335
337
|
return W(this, arguments, function* (t, {
|
|
336
338
|
historyAction: s = "push",
|
|
337
339
|
centerScroll: i,
|
|
338
|
-
offsetScroll:
|
|
340
|
+
offsetScroll: h,
|
|
339
341
|
revalidate: g,
|
|
340
342
|
keepSearchParameters: b,
|
|
341
343
|
submorph: S,
|
|
@@ -344,21 +346,21 @@ const st = class st {
|
|
|
344
346
|
var ot, lt, Ct, Ht;
|
|
345
347
|
if (e(this, I).length)
|
|
346
348
|
return;
|
|
347
|
-
const
|
|
349
|
+
const c = this.normalizePath(
|
|
348
350
|
((ot = this.pathnameModifier) == null ? void 0 : ot.call(this, t)) || t
|
|
349
351
|
);
|
|
350
|
-
if (((lt = e(this, z)) == null ? void 0 : lt.pathname) ===
|
|
351
|
-
p(this,
|
|
352
|
+
if (((lt = e(this, z)) == null ? void 0 : lt.pathname) === c.pathname || e(this, d).pathname === c.pathname) {
|
|
353
|
+
p(this, u, kt).call(this, c.hash || 0, {
|
|
352
354
|
centerScroll: i,
|
|
353
|
-
offsetScroll:
|
|
355
|
+
offsetScroll: h,
|
|
354
356
|
behavior: "smooth"
|
|
355
357
|
}), C(document, "morphSamePath", {
|
|
356
358
|
custom: !0
|
|
357
|
-
}), ((Ct = e(this, d)) == null ? void 0 : Ct.parameters) !==
|
|
358
|
-
action: ((Ht = e(this, d)) == null ? void 0 : Ht.hash) !==
|
|
359
|
-
pathname:
|
|
360
|
-
searchParameters:
|
|
361
|
-
hash:
|
|
359
|
+
}), ((Ct = e(this, d)) == null ? void 0 : Ct.parameters) !== c.parameters && (r(this, j, e(this, d)), r(this, d, c), wt({
|
|
360
|
+
action: ((Ht = e(this, d)) == null ? void 0 : Ht.hash) !== c.hash ? "replace" : s,
|
|
361
|
+
pathname: c.pathname,
|
|
362
|
+
searchParameters: c.parameters,
|
|
363
|
+
hash: c.hash
|
|
362
364
|
}), C(document, "morphURLParametersChange", {
|
|
363
365
|
detail: {
|
|
364
366
|
newURL: e(this, d),
|
|
@@ -367,17 +369,17 @@ const st = class st {
|
|
|
367
369
|
}));
|
|
368
370
|
return;
|
|
369
371
|
}
|
|
370
|
-
r(this, z,
|
|
371
|
-
$.checkCurrent(
|
|
372
|
+
r(this, z, c), e(this, E).forEach(($) => {
|
|
373
|
+
$.checkCurrent(c.pathname);
|
|
372
374
|
});
|
|
373
375
|
try {
|
|
374
376
|
let $ = !0;
|
|
375
377
|
if (this.preprocessor)
|
|
376
378
|
try {
|
|
377
379
|
yield new Promise((a, k) => {
|
|
378
|
-
var
|
|
379
|
-
(
|
|
380
|
-
url:
|
|
380
|
+
var T;
|
|
381
|
+
(T = this.preprocessor) == null || T.call(this, {
|
|
382
|
+
url: c,
|
|
381
383
|
resolve: a,
|
|
382
384
|
reject: k,
|
|
383
385
|
submorph: S
|
|
@@ -386,23 +388,23 @@ const st = class st {
|
|
|
386
388
|
} catch (a) {
|
|
387
389
|
a ? console.error(a) : console.log("Route change canceled"), $ = !1;
|
|
388
390
|
}
|
|
389
|
-
if (!$ || e(this, z).pathname !==
|
|
391
|
+
if (!$ || e(this, z).pathname !== c.pathname) {
|
|
390
392
|
e(this, E).forEach((a) => {
|
|
391
393
|
a.checkCurrent(e(this, d).pathname);
|
|
392
394
|
});
|
|
393
395
|
return;
|
|
394
396
|
}
|
|
395
397
|
const Rt = {
|
|
396
|
-
url:
|
|
398
|
+
url: c,
|
|
397
399
|
submorph: S
|
|
398
400
|
};
|
|
399
401
|
C(document, "morphNavigation", {
|
|
400
402
|
detail: Rt
|
|
401
403
|
});
|
|
402
|
-
const ft = p(this,
|
|
403
|
-
if (e(this,
|
|
404
|
-
a.pathname !==
|
|
405
|
-
}), yield f == null ? void 0 : f.fetch(t, e(this, d).path, g), e(this, z).pathname !==
|
|
404
|
+
const ft = p(this, u, dt).call(this, e(this, d).pathname), f = p(this, u, dt).call(this, c.pathname);
|
|
405
|
+
if (e(this, M).forEach((a) => {
|
|
406
|
+
a.pathname !== c.pathname && a.abort();
|
|
407
|
+
}), yield f == null ? void 0 : f.fetch(t, e(this, d).path, g), e(this, z).pathname !== c.pathname) {
|
|
406
408
|
e(this, E).forEach((a) => {
|
|
407
409
|
a.checkCurrent(e(this, d).path);
|
|
408
410
|
});
|
|
@@ -415,22 +417,22 @@ const st = class st {
|
|
|
415
417
|
C(document, "morphStart", {
|
|
416
418
|
detail: pt
|
|
417
419
|
});
|
|
418
|
-
const
|
|
420
|
+
const Mt = Array.from(document.head.children), Tt = Array.from(f.document.head.children), xt = p(this, u, Xt).call(this, Mt, Tt), Bt = p(this, u, bt).call(this, Mt, xt), ht = p(this, u, bt).call(this, Tt, xt).filter((a) => !this.excludeHeadChild(a));
|
|
419
421
|
ht.forEach((a, k) => {
|
|
420
|
-
a.tagName === "SCRIPT" && (ht[k] = p(this,
|
|
422
|
+
a.tagName === "SCRIPT" && (ht[k] = p(this, u, vt).call(this, a));
|
|
421
423
|
}), ht.forEach((a) => {
|
|
422
424
|
document.head.appendChild(a);
|
|
423
425
|
});
|
|
424
426
|
const Et = ht.filter((a) => {
|
|
425
427
|
if (a.hasAttribute("data-no-waiting"))
|
|
426
428
|
return !1;
|
|
427
|
-
if (p(this,
|
|
429
|
+
if (p(this, u, Pt).call(this, a))
|
|
428
430
|
return !0;
|
|
429
431
|
});
|
|
430
432
|
e(this, A).waitForHeadToLoad && Et.length && (yield new Promise((a) => W(this, null, function* () {
|
|
431
433
|
let k = 0;
|
|
432
434
|
try {
|
|
433
|
-
for (var
|
|
435
|
+
for (var T = Vt(Et), jt, O, F; jt = !(O = yield T.next()).done; jt = !1) {
|
|
434
436
|
const ct = O.value;
|
|
435
437
|
ct.onload = () => {
|
|
436
438
|
k++, k === Et.length && a();
|
|
@@ -440,7 +442,7 @@ const st = class st {
|
|
|
440
442
|
F = [O];
|
|
441
443
|
} finally {
|
|
442
444
|
try {
|
|
443
|
-
jt && (O =
|
|
445
|
+
jt && (O = T.return) && (yield O.call(T));
|
|
444
446
|
} finally {
|
|
445
447
|
if (F)
|
|
446
448
|
throw F[0];
|
|
@@ -449,27 +451,27 @@ const st = class st {
|
|
|
449
451
|
}))), yield te(10);
|
|
450
452
|
const Nt = [];
|
|
451
453
|
Bt.forEach((a) => {
|
|
452
|
-
a.hasAttribute("data-permanent") || (p(this,
|
|
454
|
+
a.hasAttribute("data-permanent") || (p(this, u, Pt).call(this, a) ? Nt.push(a) : a.remove());
|
|
453
455
|
});
|
|
454
|
-
const Yt = p(this,
|
|
455
|
-
e(this, A).morphInsideScrollContainer || p(this,
|
|
456
|
+
const Yt = p(this, u, yt).call(this, f.document.body);
|
|
457
|
+
e(this, A).morphInsideScrollContainer || p(this, u, At).call(this, f.document), document.documentElement.setAttribute(
|
|
456
458
|
"data-current-pathname",
|
|
457
|
-
|
|
459
|
+
c.pathname
|
|
458
460
|
), document.documentElement.setAttribute(
|
|
459
461
|
"data-current-leaf",
|
|
460
|
-
|
|
462
|
+
c.leaf
|
|
461
463
|
), wt({
|
|
462
464
|
action: s,
|
|
463
|
-
pathname:
|
|
464
|
-
searchParameters:
|
|
465
|
-
hash:
|
|
466
|
-
}), e(this, K).remove(), r(this, j, e(this, d)), r(this, d,
|
|
467
|
-
const
|
|
465
|
+
pathname: c.pathname,
|
|
466
|
+
searchParameters: c.parameters || (b ? location.search : ""),
|
|
467
|
+
hash: c.hash
|
|
468
|
+
}), e(this, K).remove(), r(this, j, e(this, d)), r(this, d, c), e(this, Z).forEach((a, k) => {
|
|
469
|
+
const T = Yt[k], jt = getComputedStyle(a).getPropertyValue("--morph-duration");
|
|
468
470
|
let O = [], F = [];
|
|
469
471
|
S ? S.forEach((m) => {
|
|
470
|
-
const L = a.querySelector(m), x =
|
|
472
|
+
const L = a.querySelector(m), x = T.querySelector(m);
|
|
471
473
|
L && x && (F.push(L), O.push(x));
|
|
472
|
-
}) : (O.push(...
|
|
474
|
+
}) : (O.push(...T.childNodes), F.push(...a.childNodes)), F.forEach((m) => {
|
|
473
475
|
m instanceof HTMLElement && (this.destroyOldLinks(m), m.classList.add("old"));
|
|
474
476
|
}), O.forEach((m) => {
|
|
475
477
|
m instanceof HTMLElement && (this.findNewLinks(m), m.classList.add("new"));
|
|
@@ -517,12 +519,12 @@ const st = class st {
|
|
|
517
519
|
this.scrollValue.top + "px"
|
|
518
520
|
), C(document, "morphBeforeNavigationScroll", {
|
|
519
521
|
detail: f.scrollState
|
|
520
|
-
}),
|
|
522
|
+
}), c.hash ? (f.clearScrollState(), p(this, u, kt).call(this, c.hash, {
|
|
521
523
|
centerScroll: i,
|
|
522
|
-
offsetScroll:
|
|
524
|
+
offsetScroll: h
|
|
523
525
|
})) : e(this, V) ? f.restoreScrollPosition() : f.renewScrollPosition(), yield Promise.all(e(this, I)), Nt.forEach((a) => a.remove()), r(this, I, []), e(this, Z).forEach((a) => {
|
|
524
|
-
a.querySelectorAll("script").forEach((
|
|
525
|
-
|
|
526
|
+
a.querySelectorAll("script").forEach((T) => {
|
|
527
|
+
T.replaceWith(p(this, u, vt).call(this, T));
|
|
526
528
|
});
|
|
527
529
|
}), e(this, E).forEach((a) => {
|
|
528
530
|
a.checkCurrent(e(this, d).path);
|
|
@@ -566,30 +568,30 @@ const st = class st {
|
|
|
566
568
|
e(this, E).forEach((s) => s.destroy()), r(this, E, t.map((s) => new Lt(s, this)));
|
|
567
569
|
}
|
|
568
570
|
};
|
|
569
|
-
A = new WeakMap(), Z = new WeakMap(), E = new WeakMap(), z = new WeakMap(), d = new WeakMap(), j = new WeakMap(), I = new WeakMap(), V = new WeakMap(), y = new WeakMap(), nt = new WeakMap(),
|
|
571
|
+
A = new WeakMap(), Z = new WeakMap(), E = new WeakMap(), z = new WeakMap(), d = new WeakMap(), j = new WeakMap(), I = new WeakMap(), V = new WeakMap(), y = new WeakMap(), nt = new WeakMap(), M = new WeakMap(), K = new WeakMap(), _ = new WeakMap(), tt = new WeakMap(), u = new WeakSet(), vt = function(t) {
|
|
570
572
|
const s = document.createElement("script");
|
|
571
573
|
for (let i = 0; i < t.attributes.length; i++) {
|
|
572
|
-
const
|
|
573
|
-
s.setAttribute(
|
|
574
|
+
const h = t.attributes[i];
|
|
575
|
+
s.setAttribute(h.name, h.value);
|
|
574
576
|
}
|
|
575
577
|
return t.hasAttribute("src") || (s.innerHTML = t.innerHTML), s;
|
|
576
578
|
}, at = new WeakMap(), dt = function(t) {
|
|
577
579
|
const s = this.normalizePath(t);
|
|
578
|
-
let i = e(this,
|
|
579
|
-
return i || (i = new qt(this, s.pathname), e(this,
|
|
580
|
+
let i = e(this, M).get(s.pathname);
|
|
581
|
+
return i || (i = new qt(this, s.pathname), e(this, M).set(s.pathname, i)), i;
|
|
580
582
|
}, yt = function(t) {
|
|
581
583
|
const s = [...t.querySelectorAll("[data-morph]")];
|
|
582
584
|
return s.length ? s : [t];
|
|
583
585
|
}, Xt = function(t, s) {
|
|
584
586
|
return t.filter(
|
|
585
587
|
(i) => s.find(
|
|
586
|
-
(
|
|
588
|
+
(h) => h.outerHTML === i.outerHTML
|
|
587
589
|
)
|
|
588
590
|
);
|
|
589
591
|
}, bt = function(t, s) {
|
|
590
592
|
return t.filter(
|
|
591
593
|
(i) => !s.find(
|
|
592
|
-
(
|
|
594
|
+
(h) => h.outerHTML === i.outerHTML
|
|
593
595
|
)
|
|
594
596
|
);
|
|
595
597
|
}, Pt = function(t) {
|