aptechka 0.91.0 → 0.91.2

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.
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __knownSymbol=(name,symbol)=>(symbol=Symbol[name])?symbol:Symbol.for("Symbol."+name),__typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var __async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});var __forAwait=(obj,it,method)=>(it=obj[__knownSymbol("asyncIterator")])?it.call(obj):(obj=obj[__knownSymbol("iterator")](),it={},method=(key,fn)=>(fn=obj[key])&&(it[key]=arg=>new Promise((yes,no,done)=>(arg=fn.call(obj,arg),done=arg.done,Promise.resolve(arg.value).then(value=>yes({value,done}),no)))),method("next"),method("return"),it);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Store=require("../Store-B96mD8mD.cjs"),dom=require("../dom-B40i6NXw.cjs"),events=require("../events-UlGk63iC.cjs"),promises=require("../promises-nDm8_iG6.cjs"),scroll=require("../scroll-BWDLSP3i.cjs");require("construct-style-sheets-polyfill");require("../index-BoGx2BWX.cjs");const url=require("../url-D0rESDQq.cjs"),cssValueParser_index=require("../css-value-parser/index.cjs"),historyManager=require("../historyManager-C_QO4Fko.cjs"),_MorphAnnouncer=class _MorphAnnouncer extends HTMLElement{connectedCallback(){const attrs={"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[key,value]of Object.entries(attrs))this.setAttribute(key,value)}};__name(_MorphAnnouncer,"MorphAnnouncer");let MorphAnnouncer=_MorphAnnouncer;Store.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",MorphAnnouncer);var _morph,_element,_MorphLink_instances,path_get,click_fn,_clickListener,_pointerListener;const _MorphLink=class _MorphLink{constructor(element,morph){__privateAdd(this,_MorphLink_instances);__privateAdd(this,_morph);__privateAdd(this,_element);__privateAdd(this,_clickListener,__name(e=>{e.preventDefault(),__privateMethod(this,_MorphLink_instances,click_fn).call(this)},"#clickListener"));__privateAdd(this,_pointerListener,__name(()=>{const revalidate=__privateGet(this,_element).hasAttribute("data-revalidate");__privateGet(this,_morph).prefetch(__privateGet(this,_MorphLink_instances,path_get),revalidate),__privateGet(this,_element).removeEventListener("pointerenter",__privateGet(this,_pointerListener))},"#pointerListener"));__privateSet(this,_morph,morph),__privateSet(this,_element,element),__privateGet(this,_element).addEventListener("click",__privateGet(this,_clickListener)),this.checkCurrent(location.href.replace(location.origin,"")),__privateGet(this,_element).hasAttribute("data-prefetch")&&__privateGet(this,_element).addEventListener("pointerenter",__privateGet(this,_pointerListener))}get element(){return __privateGet(this,_element)}checkCurrent(path){var _a,_b;const locationUrl=__privateGet(this,_morph).normalizePath(path),linkUrl=__privateGet(this,_morph).normalizePath(__privateGet(this,_MorphLink_instances,path_get));__privateGet(this,_element).hasAttribute("data-include")&&locationUrl.pathname.includes(linkUrl.pathname)?__privateGet(this,_element).classList.add("current"):linkUrl.pathname===locationUrl.pathname?__privateGet(this,_element).classList.add("current"):(_a=__privateGet(this,_element).getAttribute("data-associated-paths"))!=null&&_a.split(",").find(path2=>locationUrl.pathname.includes(path2))?__privateGet(this,_element).classList.add("current"):__privateGet(this,_element).classList.remove("current"),locationUrl.path===linkUrl.path?__privateGet(this,_element).classList.add("exact"):__privateGet(this,_element).classList.remove("exact");const[pathWithoutParams,pathParamsStr]=(_b=__privateGet(this,_MorphLink_instances,path_get).split("#")[0])==null?void 0:_b.split("?"),pathParams=new URLSearchParams(pathParamsStr),locationParams=new URLSearchParams(location.search);let matchCounter=0;for(const[key]of locationParams)pathParams.has(key)&&locationParams.get(key)===pathParams.get(key)&&matchCounter++;matchCounter?(__privateGet(this,_element).classList.toggle("all-params-matched",locationParams.size===matchCounter),__privateGet(this,_element).classList.toggle("some-params-matched",locationParams.size!==matchCounter)):!locationParams.size&&__privateGet(this,_element).hasAttribute("data-match-no-params")?__privateGet(this,_element).classList.add("all-params-matched"):(__privateGet(this,_element).classList.remove("all-params-matched"),__privateGet(this,_element).classList.remove("some-params-matched"));for(const key in __privateGet(this,_element).dataset){const kebabKey=Store.camelToKebab(key);if(kebabKey.startsWith("match-param-")){const name=kebabKey.split("match-param-")[1],value=__privateGet(this,_element).dataset[key],className=`param-${name}-matched`;locationParams.has(name)&&locationParams.get(name)===value||!locationParams.has(name)&&(value===""||value==="*"||value==="all"||value==="any"||value==="vse")?__privateGet(this,_element).classList.add(className):__privateGet(this,_element).classList.remove(className)}}}destroy(){__privateGet(this,_element).removeEventListener("click",__privateGet(this,_clickListener)),__privateGet(this,_element).removeEventListener("pointerenter",__privateGet(this,_pointerListener)),__privateGet(this,_element).classList.remove("current","exact")}};_morph=new WeakMap,_element=new WeakMap,_MorphLink_instances=new WeakSet,path_get=__name(function(){const url2=new URL(__privateGet(this,_element).href);return __privateGet(this,_morph).normalizePath(url2.pathname+url2.search+url2.hash).path},"#path"),click_fn=__name(function(){var _a;if(document.documentElement.classList.contains("click-disabled"))return;if(__privateGet(this,_element).hasAttribute("data-back")&&__privateGet(this,_morph).previousURL)history.back();else{const historyAction=__privateGet(this,_element).getAttribute("data-history-action")||"push",centerScroll=__privateGet(this,_element).hasAttribute("data-center-scroll"),offsetScrollRawValue=getComputedStyle(__privateGet(this,_element)).getPropertyValue("--offset-scroll").trim(),offsetScroll=offsetScrollRawValue?cssValueParser_index.cssValueParser.parse(offsetScrollRawValue):void 0,scrollDuration=parseFloat(__privateGet(this,_element).getAttribute("data-scroll-duration")||"0")||void 0,scrollEasing=__privateGet(this,_element).getAttribute("data-scroll-easing")||void 0,revalidate=__privateGet(this,_element).hasAttribute("data-revalidate")||__privateGet(this,_element).hasAttribute("data-pagination-more-link")||__privateGet(this,_element).hasAttribute("data-pagination-set-link")||__privateGet(this,_element).hasAttribute("data-pagination-next-link")||__privateGet(this,_element).hasAttribute("data-pagination-prev-link"),keepSearchParameters=__privateGet(this,_element).hasAttribute("data-keep-search-parameters"),keepScrollPosition=__privateGet(this,_element).hasAttribute("data-keep-scroll-position")||__privateGet(this,_element).hasAttribute("data-pagination-more-link"),scrollBehaviour=__privateGet(this,_element).getAttribute("data-scroll-behaviour"),submorph=(_a=__privateGet(this,_element).getAttribute("data-submorph")||__privateGet(this,_element).getAttribute("data-submorph-append"))==null?void 0:_a.split(",").map(v=>v.trim()),clearState=__privateGet(this,_element).hasAttribute("data-clear-state");let path=__privateGet(this,_MorphLink_instances,path_get);if(__privateGet(this,_element).hasAttribute("data-toggle-params")){const[pathWithoutParams,pathParamsStr]=__privateGet(this,_MorphLink_instances,path_get).split("?"),pathParams=new URLSearchParams(pathParamsStr),locationParams=new URLSearchParams(location.search),resultParams=new URLSearchParams;for(const[key]of pathParams)(!locationParams.has(key)||locationParams.has(key)&&locationParams.get(key)!==pathParams.get(key))&&resultParams.append(key,pathParams.get(key));if(__privateGet(this,_element).hasAttribute("data-merge-params"))for(const[key]of locationParams)pathParams.has(key)||resultParams.append(key,locationParams.get(key));path=`${pathWithoutParams}?${resultParams.toString()}`}__privateGet(this,_morph).navigate(path,{historyAction,centerScroll,offsetScroll,revalidate,keepSearchParameters,submorph,clearState,keepScrollPosition,scrollBehaviour,scrollDuration,scrollEasing,submorphAppend:__privateGet(this,_element).hasAttribute("data-submorph-append"),mergeParams:__privateGet(this,_element).hasAttribute("data-merge-params")&&!__privateGet(this,_element).hasAttribute("data-toggle-params"),detail:__privateGet(this,_element).getAttribute("data-detail"),removeParams:__privateGet(this,_element).getAttribute("data-remove-params")||void 0,scrollTo:__privateGet(this,_element).getAttribute("data-scroll-to")||void 0})}},"#click"),_clickListener=new WeakMap,_pointerListener=new WeakMap,__name(_MorphLink,"MorphLink");let MorphLink=_MorphLink;var _element2,_params,_MorphParamsDependent_instances,update_fn,_urlChangeListener;const _MorphParamsDependent=class _MorphParamsDependent{constructor(element){__privateAdd(this,_MorphParamsDependent_instances);__privateAdd(this,_element2);__privateAdd(this,_params,[]);__privateAdd(this,_urlChangeListener,__name(()=>{__privateMethod(this,_MorphParamsDependent_instances,update_fn).call(this)},"#urlChangeListener"));__privateSet(this,_element2,element);for(const key in __privateGet(this,_element2).dataset){const kebabKey=Store.camelToKebab(key);if(kebabKey.startsWith("param-")){const name=kebabKey.split("param-")[1],value=__privateGet(this,_element2).dataset[key];__privateGet(this,_params).push({name,value})}}document.addEventListener("morphURLParametersChange",__privateGet(this,_urlChangeListener)),__privateMethod(this,_MorphParamsDependent_instances,update_fn).call(this)}destroy(){document.removeEventListener("morphURLParametersChange",__privateGet(this,_urlChangeListener))}};_element2=new WeakMap,_params=new WeakMap,_MorphParamsDependent_instances=new WeakSet,update_fn=__name(function(){const locationParams=new URLSearchParams(location.search);let matched=!!__privateGet(this,_params).find(param=>locationParams.has(param.name)&&(locationParams.get(param.name)===param.value||param.value==="*"||param.value==="all"||param.value==="any"||param.value==="vse"||locationParams.get(param.name)==="*"||locationParams.get(param.name)==="all"||locationParams.get(param.name)==="any"||locationParams.get(param.name)==="vse"));!matched&&__privateGet(this,_element2).hasAttribute("data-match-no-params")&&(matched=!__privateGet(this,_params).filter(param=>locationParams.has(param.name)).length);const hideClass=__privateGet(this,_element2).getAttribute("data-hide-class");matched?hideClass?__privateGet(this,_element2).classList.remove(hideClass):__privateGet(this,_element2).style.display="":hideClass?__privateGet(this,_element2).classList.add(hideClass):__privateGet(this,_element2).style.display="none",requestAnimationFrame(()=>{window.dispatchEvent(new CustomEvent("resize"))})},"#update"),_urlChangeListener=new WeakMap,__name(_MorphParamsDependent,"MorphParamsDependent");let MorphParamsDependent=_MorphParamsDependent;const domParser=new DOMParser;var _morph2,_pathname,_scrollState,_initialDocument,_modifiedDocument,_currentDocument,_savedState,_abortController,_fetching,_headers,_needRavalidation;const _MorphRoute=class _MorphRoute{constructor(morph,pathname){__privateAdd(this,_morph2);__privateAdd(this,_pathname);__privateAdd(this,_scrollState,{x:0,y:0});__privateAdd(this,_initialDocument,null);__privateAdd(this,_modifiedDocument,null);__privateAdd(this,_currentDocument,null);__privateAdd(this,_savedState,null);__privateAdd(this,_abortController,null);__privateAdd(this,_fetching,null);__privateAdd(this,_headers);__privateAdd(this,_needRavalidation,!1);__privateSet(this,_morph2,morph),__privateSet(this,_pathname,pathname)}get pathname(){return __privateGet(this,_pathname)}get scrollState(){return __privateGet(this,_scrollState)}get document(){return __privateGet(this,_currentDocument)}needRavalidation(){__privateSet(this,_needRavalidation,!0)}setHeaders(headers){__privateSet(this,_headers,headers)}setInitialDocument(document2){__privateSet(this,_initialDocument,document2.cloneNode(!0))}abort(){var _a;return(_a=__privateGet(this,_abortController))==null?void 0:_a.abort(`[${__privateGet(this,_pathname)}] page loading cancelled`)}fetch(path,currentPath,revalidate){return __async(this,null,function*(){var _a;if(!revalidate&&!__privateGet(this,_needRavalidation)){const shouldUseCache=((_a=__privateGet(this,_initialDocument))==null?void 0:_a.documentElement.getAttribute("data-cache"))&&currentPath!==path,isPopstateNavigation=__privateGet(this,_initialDocument)&&__privateGet(this,_morph2).isPopstateNavigation;if(__privateGet(this,_fetching)||shouldUseCache||isPopstateNavigation)return __privateGet(this,_fetching)}return __privateSet(this,_fetching,new Promise(res=>__async(this,null,function*(){try{__privateSet(this,_abortController,new AbortController);const text=yield(yield fetch(path,{signal:__privateGet(this,_abortController).signal,headers:__spreadValues({"X-MORPH":"true","X-MORPH-REVALIDATE":revalidate?"true":"false","X-MORPH-CURRENT-PATH":encodeURIComponent(currentPath),"X-MORPH-NEW-PATH":encodeURIComponent(path)},__privateGet(this,_headers))})).text(),document2=domParser.parseFromString(text,"text/html");this.setInitialDocument(document2),__privateSet(this,_needRavalidation,!1)}catch(e){console.warn(e)}finally{__privateSet(this,_abortController,null),__privateSet(this,_fetching,null),res()}}))),__privateGet(this,_fetching)})}cloneDocument(){__privateSet(this,_currentDocument,(__privateGet(this,_modifiedDocument)||__privateGet(this,_initialDocument)).cloneNode(!0))}get title(){let title="";if(__privateGet(this,_currentDocument).title)title=__privateGet(this,_currentDocument).title;else{const h1=__privateGet(this,_currentDocument).querySelector("h1");title=(h1==null?void 0:h1.innerText)||(h1==null?void 0:h1.textContent)||__privateGet(this,_pathname)}return title}clearScrollState(){__privateGet(this,_scrollState).x=0,__privateGet(this,_scrollState).y=0}clearDocumentState(){__privateSet(this,_modifiedDocument,null)}saveScrollState(){__privateGet(this,_initialDocument).documentElement.hasAttribute("data-no-scroll-restoration")?(__privateGet(this,_scrollState).x=0,__privateGet(this,_scrollState).y=0):(__privateGet(this,_scrollState).x=__privateGet(this,_morph2).scrollValue.left,__privateGet(this,_scrollState).y=__privateGet(this,_morph2).scrollValue.top)}restoreScrollPosition(){__privateGet(this,_morph2).scrollElement.scroll({top:__privateGet(this,_scrollState).y,left:__privateGet(this,_scrollState).x,behavior:"instant"})}saveDocumentState(){__privateGet(this,_initialDocument).documentElement.hasAttribute("data-no-page-restoration")?__privateSet(this,_modifiedDocument,null):__privateSet(this,_modifiedDocument,document.cloneNode(!0))}renewScrollPosition(){__privateGet(this,_morph2).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(state){__privateSet(this,_savedState,state)}clearState(){const state=__privateGet(this,_savedState);return __privateSet(this,_savedState,null),state}};_morph2=new WeakMap,_pathname=new WeakMap,_scrollState=new WeakMap,_initialDocument=new WeakMap,_modifiedDocument=new WeakMap,_currentDocument=new WeakMap,_savedState=new WeakMap,_abortController=new WeakMap,_fetching=new WeakMap,_headers=new WeakMap,_needRavalidation=new WeakMap,__name(_MorphRoute,"MorphRoute");let MorphRoute=_MorphRoute;var _options,_morphElements,_links,_candidateURL,_currentURL,_previousURL,_promises,_isPopstateNavigation,_currentScrollElement,_isWindowScroll,_routes,_paramDependent,_announcer,_currentScrollX,_currentScrollY,_lastSubmorph,_lastRevalidate,_lastKeepScrollPosition,_checkLink,_Morph_instances,getRoute_fn,getMorphElements_fn,isElementEmitsLoadEvent_fn,updateCurrentScrollElement_fn,tryScrollToElement_fn,_popStateListener,_scrollListener;const _Morph=class _Morph{constructor(parameters){__privateAdd(this,_Morph_instances);__privateAdd(this,_options,null);__privateAdd(this,_morphElements,null);__privateAdd(this,_links,[]);__privateAdd(this,_candidateURL);__privateAdd(this,_currentURL,null);__privateAdd(this,_previousURL);__privateAdd(this,_promises,[]);__privateAdd(this,_isPopstateNavigation,!1);__privateAdd(this,_currentScrollElement,null);__privateAdd(this,_isWindowScroll,!1);__privateAdd(this,_routes,new Map);__privateAdd(this,_paramDependent,[]);__privateAdd(this,_announcer,null);__privateAdd(this,_currentScrollX,0);__privateAdd(this,_currentScrollY,0);__privateAdd(this,_lastSubmorph);__privateAdd(this,_lastRevalidate);__privateAdd(this,_lastKeepScrollPosition);__privateAdd(this,_checkLink,__name(element=>{var _a,_b;return(((_a=element.getAttribute("href"))==null?void 0:_a.startsWith("/"))||((_b=element.getAttribute("href"))==null?void 0:_b.startsWith("?")))&&!element.hasAttribute("download")&&!element.hasAttribute("data-morph-skip")&&!element.closest("[data-morph-skip]")&&element.getAttribute("target")!=="_blank"},"#checkLink"));__privateAdd(this,_popStateListener,__name(event=>__async(this,null,function*(){var _a,_b,_c,_d;(_b=(_a=event.state)==null?void 0:_a.data)!=null&&_b.popover||(_d=(_c=event.previousState)==null?void 0:_c.data)!=null&&_d.popover||(__privateSet(this,_isPopstateNavigation,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none",submorph:__privateGet(this,_lastRevalidate)?void 0:__privateGet(this,_lastSubmorph),revalidate:__privateGet(this,_lastRevalidate),keepScrollPosition:__privateGet(this,_lastKeepScrollPosition)}),__privateSet(this,_isPopstateNavigation,!1))}),"#popStateListener"));__privateAdd(this,_scrollListener,__name(()=>{const{left,top}=this.scrollValue,directionY=top-__privateGet(this,_currentScrollY),directionX=left-__privateGet(this,_currentScrollX);__privateSet(this,_currentScrollY,top),__privateSet(this,_currentScrollX,left),document.documentElement.classList.toggle("scroll-y",top>0),document.documentElement.classList.toggle("scroll-x",left>0),document.documentElement.classList.toggle("scroll-y-forward",directionY>0),document.documentElement.classList.toggle("scroll-y-backward",directionY<0),document.documentElement.classList.toggle("scroll-x-forward",directionX>0),document.documentElement.classList.toggle("scroll-x-backward",directionX<0),events.dispatchEvent(document,"morphScroll",{detail:{left,top}})},"#scrollListener"));if(Store.isBrowser&&!_Morph.instance){_Morph.instance=this,__privateSet(this,_options,{base:url.normalizeBase(parameters==null?void 0:parameters.base),waitForHeadToLoad:(parameters==null?void 0:parameters.waitForHeadToLoad)!==!1,trailingSlash:(parameters==null?void 0:parameters.trailingSlash)||!1,scrollSelector:parameters==null?void 0:parameters.scrollSelector,morphInsideScrollContainer:(parameters==null?void 0:parameters.morphInsideScrollContainer)||!1}),__privateSet(this,_morphElements,__privateMethod(this,_Morph_instances,getMorphElements_fn).call(this,document.body));const normalizedURL=this.normalizePath(location.pathname+location.search+location.hash);__privateSet(this,_currentURL,normalizedURL);const initialRoute=new MorphRoute(this,__privateGet(this,_currentURL).pathname);initialRoute.setInitialDocument(document),__privateGet(this,_routes).set(__privateGet(this,_currentURL).pathname,initialRoute),document.documentElement.setAttribute("data-current-pathname",__privateGet(this,_currentURL).pathname),document.documentElement.setAttribute("data-current-leaf",normalizedURL.leaf),this.findLinks(),this.findParamsDependent(),historyManager.historyManager.addPopStateHandler(__privateGet(this,_popStateListener)),historyManager.historyManager.__change({action:"replace",pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters,hash:normalizedURL.hash}),__privateSet(this,_announcer,new MorphAnnouncer),__privateMethod(this,_Morph_instances,updateCurrentScrollElement_fn).call(this,document)}}get currentURL(){return __privateGet(this,_currentURL)}get previousURL(){return __privateGet(this,_previousURL)}get links(){return __privateGet(this,_links)}get scrollElement(){return __privateGet(this,_currentScrollElement)}get isPopstateNavigation(){return __privateGet(this,_isPopstateNavigation)}get scrollValue(){let top=0,left=0;return __privateGet(this,_isWindowScroll)?(top=window.scrollY,left=window.scrollX):(top=__privateGet(this,_currentScrollElement).scrollTop,left=__privateGet(this,_currentScrollElement).scrollLeft),{top,left}}get isNavigating(){return!!__privateGet(this,_promises).length}saveState(state){const route=__privateGet(this,_routes).get(__privateGet(this,_currentURL).path);route&&route.saveState(state)}getState(){const route=__privateGet(this,_routes).get(__privateGet(this,_currentURL).path);return route==null?void 0:route.clearState()}normalizePath(path,options){return url.splitPath(path,{base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash,mergeParams:options!=null&&options.mergeParams?location.search:"",removeParams:options==null?void 0:options.removeParams})}prefetch(path,revalidate){return __async(this,null,function*(){var _a;if(__privateGet(this,_promises).length)return;path=((_a=this.pathnameModifier)==null?void 0:_a.call(this,path))||path;const route=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,path);route==null||route.fetch(path,__privateGet(this,_currentURL).path,revalidate)})}excludeHeadChild(child){return!1}needRavalidation(path){const normalizedURL=this.normalizePath(path),route=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,normalizedURL.path);route==null||route.needRavalidation()}navigate(_0){return __async(this,arguments,function*(path,{historyAction="push",centerScroll,offsetScroll,scrollDuration,scrollEasing,scrollBehaviour,revalidate,keepSearchParameters,submorph,submorphAppend,clearState,keepScrollPosition,mergeParams,removeParams,detail,scrollTo}={}){var _a,_b,_c,_d;if(__privateGet(this,_promises).length)return;__privateSet(this,_lastSubmorph,submorph),__privateSet(this,_lastRevalidate,revalidate),__privateSet(this,_lastKeepScrollPosition,keepScrollPosition);const modifiedPath=((_a=this.pathnameModifier)==null?void 0:_a.call(this,path))||path,normalizedURL=this.normalizePath(modifiedPath,{mergeParams,removeParams});if(!revalidate&&(((_b=__privateGet(this,_candidateURL))==null?void 0:_b.pathname)===normalizedURL.pathname||__privateGet(this,_currentURL).pathname===normalizedURL.pathname)){keepScrollPosition||__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,scrollTo||normalizedURL.hash||0,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:"smooth"}),events.dispatchEvent(document,"morphSamePath",{detail:{detail}}),((_c=__privateGet(this,_currentURL))==null?void 0:_c.parameters)!==normalizedURL.parameters&&(__privateSet(this,_previousURL,__privateGet(this,_currentURL)),__privateSet(this,_currentURL,normalizedURL),historyManager.historyManager.__change({action:((_d=__privateGet(this,_currentURL))==null?void 0:_d.hash)!==normalizedURL.hash?"replace":historyAction,pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters,hash:normalizedURL.hash}),events.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:__privateGet(this,_currentURL),previousURL:__privateGet(this,_previousURL),detail}})),__privateGet(this,_links).forEach(link=>{link.checkCurrent(normalizedURL.path)});return}else __privateGet(this,_links).forEach(link=>{link.checkCurrent(normalizedURL.path)});__privateSet(this,_candidateURL,normalizedURL);try{let preprocessedSuccesfully=!0;if(this.preprocessor)try{yield new Promise((resolve,reject)=>{var _a2;(_a2=this.preprocessor)==null||_a2.call(this,{url:normalizedURL,resolve,reject,submorph,detail})})}catch(e){e?console.error(e):console.log("Route change canceled"),preprocessedSuccesfully=!1}if(!preprocessedSuccesfully||__privateGet(this,_candidateURL).pathname!==normalizedURL.pathname){__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)});return}const navigationEntry={url:normalizedURL,submorph,detail};submorph?submorphAppend||submorph.forEach(sel=>{document.querySelectorAll(sel).forEach(el=>{el.classList.add("out"),el.setAttribute("data-morph-out","")})}):__privateGet(this,_morphElements).forEach(el=>{var _a2,_b2;(_a2=el.firstElementChild)==null||_a2.classList.add("out"),(_b2=el.firstElementChild)==null||_b2.setAttribute("data-morph-out","")}),events.dispatchEvent(document,"morphNavigation",{detail:navigationEntry});const currentRoute=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,__privateGet(this,_currentURL).pathname),nextRoute=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,normalizedURL.pathname);if(__privateGet(this,_routes).forEach(el=>{el.pathname!==normalizedURL.pathname&&el.abort()}),yield nextRoute==null?void 0:nextRoute.fetch(modifiedPath,__privateGet(this,_currentURL).path,revalidate),__privateGet(this,_candidateURL).pathname!==normalizedURL.pathname){__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)});return}currentRoute.clearState(),currentRoute.saveScrollState(),currentRoute.saveDocumentState(),(!__privateGet(this,_isPopstateNavigation)||revalidate)&&(nextRoute.clearScrollState(),nextRoute.clearDocumentState()),clearState&&nextRoute.clearState(),nextRoute.cloneDocument(),__privateGet(this,_announcer).textContent=nextRoute.title,document.body.appendChild(__privateGet(this,_announcer));const documentFetchedEntry=__spreadProps(__spreadValues({},navigationEntry),{document:nextRoute.document});submorphAppend||documentFetchedEntry.document.querySelectorAll("[data-morph-out]").forEach(el=>{el.classList.remove("out")}),events.dispatchEvent(document,"morphStart",{detail:documentFetchedEntry});const currentHeadChildren=Array.from(document.head.children),newHeadChildren=Array.from(nextRoute.document.head.children),identicalHeadChildren=dom.intersectElements(currentHeadChildren,newHeadChildren),removeHeadChildren=dom.excludeElements(currentHeadChildren,identicalHeadChildren),addHeadChildren=dom.excludeElements(newHeadChildren,identicalHeadChildren).filter(child=>!this.excludeHeadChild(child));addHeadChildren.forEach((child,index)=>{child.tagName==="SCRIPT"&&(addHeadChildren[index]=dom.createScriptElement(child))}),addHeadChildren.forEach(child=>{document.head.appendChild(child)});const elementsWithLoad=addHeadChildren.filter(child=>{if(child.hasAttribute("data-no-waiting"))return!1;if(__privateMethod(this,_Morph_instances,isElementEmitsLoadEvent_fn).call(this,child))return!0});__privateGet(this,_options).waitForHeadToLoad&&elementsWithLoad.length&&(yield new Promise(res=>__async(this,null,function*(){let counter=0;try{for(var iter=__forAwait(elementsWithLoad),more,temp,error;more=!(temp=yield iter.next()).done;more=!1){const element=temp.value;element.onload=()=>{counter++,counter===elementsWithLoad.length&&res()}}}catch(temp){error=[temp]}finally{try{more&&(temp=iter.return)&&(yield temp.call(iter))}finally{if(error)throw error[0]}}}))),yield promises.wait(10);const oldElementsWithLoadEvent=[];submorphAppend||removeHeadChildren.forEach(child=>{child.hasAttribute("data-permanent")||(__privateMethod(this,_Morph_instances,isElementEmitsLoadEvent_fn).call(this,child)?oldElementsWithLoadEvent.push(child):child.remove())});const newMorphElements=__privateMethod(this,_Morph_instances,getMorphElements_fn).call(this,nextRoute.document.body);!__privateGet(this,_options).morphInsideScrollContainer&&!submorph&&__privateMethod(this,_Morph_instances,updateCurrentScrollElement_fn).call(this,nextRoute.document),document.documentElement.setAttribute("data-current-pathname",normalizedURL.pathname),document.documentElement.setAttribute("data-current-leaf",normalizedURL.leaf),historyManager.historyManager.__change({action:historyAction,pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters||(keepSearchParameters?location.search:""),hash:normalizedURL.hash}),__privateGet(this,_announcer).remove(),__privateSet(this,_previousURL,__privateGet(this,_currentURL)),__privateSet(this,_currentURL,normalizedURL);const morphedElements=[];__privateGet(this,_morphElements).forEach((morphElement,i)=>{const newMorphElement=newMorphElements[i],duration=getComputedStyle(morphElement).getPropertyValue("--morph-duration");let newMorphElementChildNodes=[],currentMorphElementChildNodes=[];submorph?(submorph.forEach(selector=>{const curSubMorphElement=morphElement.querySelector(selector),newSubMorphElement=newMorphElement.querySelector(selector);curSubMorphElement&&newSubMorphElement&&(currentMorphElementChildNodes.push(curSubMorphElement),newMorphElementChildNodes.push(newSubMorphElement))}),currentMorphElementChildNodes.forEach(el=>{el.parentElement&&morphedElements.push(el.parentElement)})):(newMorphElementChildNodes.push(...newMorphElement.childNodes),currentMorphElementChildNodes.push(...morphElement.childNodes),morphedElements.push(morphElement));const transfer=[];submorphAppend||currentMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&(this.destroyOldLinks(element),element.classList.add("old"),element.querySelectorAll("[data-morph-transfer]").forEach(el=>{const selector=el.getAttribute("data-morph-transfer");transfer.push({element:el,selector})}))}),newMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&(transfer.forEach(item=>{const nestlement=element.querySelector(item.selector);nestlement&&nestlement.replaceWith(nextRoute.document.importNode(item.element,!0))}),this.findNewLinks(element),element.classList.add("new"))}),submorph?submorphAppend?newMorphElementChildNodes.forEach((el,i2)=>{currentMorphElementChildNodes[i2]instanceof HTMLElement&&currentMorphElementChildNodes[i2].append(...el.childNodes)}):newMorphElementChildNodes.forEach((el,i2)=>{var _a2;(_a2=currentMorphElementChildNodes[i2].parentElement)==null||_a2.insertBefore(el,currentMorphElementChildNodes[i2])}):morphElement.prepend(...newMorphElementChildNodes),setTimeout(()=>{submorphAppend||currentMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&element.classList.add("old-idle")}),newMorphElementChildNodes.forEach(element=>{var _a2;element instanceof HTMLElement&&((_a2=element.parentElement)==null||_a2.style.setProperty("--new-content-height",element.offsetHeight+"px"),element.classList.add("new-idle"))})},0);const detail2=__spreadProps(__spreadValues({},documentFetchedEntry),{morphElement});events.dispatchEvent(document,"morphNewChildrenAdded",{detail:detail2});const promise=new Promise(res=>{setTimeout(()=>{submorphAppend||currentMorphElementChildNodes.forEach(el=>{el.remove()}),newMorphElementChildNodes.forEach(element=>{var _a2;element instanceof HTMLElement&&((_a2=element.parentElement)==null||_a2.style.removeProperty("--new-content-height"),element.classList.remove("new-idle","new"))}),submorphAppend||events.dispatchEvent(document,"morphOldChildrenRemoved",{detail:detail2}),res()},(parseFloat(duration)||0)*1e3+10)});__privateGet(this,_promises).push(promise)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-nextRoute.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),events.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:nextRoute.scrollState}),scrollTo?(nextRoute.clearScrollState(),__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,scrollTo,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:scrollBehaviour})):normalizedURL.hash?(nextRoute.clearScrollState(),__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,normalizedURL.hash,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:scrollBehaviour})):__privateGet(this,_isPopstateNavigation)?nextRoute.restoreScrollPosition():keepScrollPosition||nextRoute.renewScrollPosition(),yield Promise.all(__privateGet(this,_promises)),submorphAppend||oldElementsWithLoadEvent.forEach(child=>child.remove()),__privateSet(this,_promises,[]),morphedElements.forEach(el=>{el.querySelectorAll("script").forEach(element=>{element.replaceWith(dom.createScriptElement(element))})}),__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)}),this.findParamsDependent(),events.dispatchEvent(document,"morphComplete",{detail:documentFetchedEntry}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch(e){console.error(e)}__privateSet(this,_candidateURL,void 0)})}addLink(element){__privateGet(this,_links).push(new MorphLink(element,this))}addLinks(elements){elements.forEach(element=>{this.addLink(element)})}removeLink(element){__privateSet(this,_links,__privateGet(this,_links).filter(link=>link.element===element?(link.destroy(),!1):!0))}destroyOldLinks(morphElement){__privateSet(this,_links,__privateGet(this,_links).filter(link=>morphElement.contains(link.element)?(link.destroy(),!1):!0))}findNewLinks(morphElement){const linkElements=[...morphElement.querySelectorAll("a")].filter(__privateGet(this,_checkLink));__privateGet(this,_links).push(...linkElements.map(element=>new MorphLink(element,this)))}findLinks(){const linkElements=[...document.documentElement.querySelectorAll("a")].filter(__privateGet(this,_checkLink));__privateGet(this,_links).forEach(link=>link.destroy()),__privateSet(this,_links,linkElements.map(element=>new MorphLink(element,this)))}findParamsDependent(){const elements=[...document.documentElement.querySelectorAll("[data-morph-params-dependent]")];__privateGet(this,_paramDependent).forEach(link=>link.destroy()),__privateSet(this,_paramDependent,elements.map(element=>new MorphParamsDependent(element)))}};_options=new WeakMap,_morphElements=new WeakMap,_links=new WeakMap,_candidateURL=new WeakMap,_currentURL=new WeakMap,_previousURL=new WeakMap,_promises=new WeakMap,_isPopstateNavigation=new WeakMap,_currentScrollElement=new WeakMap,_isWindowScroll=new WeakMap,_routes=new WeakMap,_paramDependent=new WeakMap,_announcer=new WeakMap,_currentScrollX=new WeakMap,_currentScrollY=new WeakMap,_lastSubmorph=new WeakMap,_lastRevalidate=new WeakMap,_lastKeepScrollPosition=new WeakMap,_checkLink=new WeakMap,_Morph_instances=new WeakSet,getRoute_fn=__name(function(path){const normalizedURL=this.normalizePath(path);let route=__privateGet(this,_routes).get(normalizedURL.pathname);return route||(route=new MorphRoute(this,normalizedURL.pathname),__privateGet(this,_routes).set(normalizedURL.pathname,route)),route},"#getRoute"),getMorphElements_fn=__name(function(el){const morphElements=[...el.querySelectorAll("[data-morph]")];return morphElements.length?morphElements:[el]},"#getMorphElements"),isElementEmitsLoadEvent_fn=__name(function(element){return element.tagName==="SCRIPT"||element.tagName==="STYLE"||element.tagName==="LINK"&&element.getAttribute("rel")==="stylesheet"},"#isElementEmitsLoadEvent"),updateCurrentScrollElement_fn=__name(function(document2){var _a,_b;(_a=__privateGet(this,_currentScrollElement))==null||_a.removeEventListener("scroll",__privateGet(this,_scrollListener)),__privateSet(this,_currentScrollY,0),__privateSet(this,_currentScrollX,0),__privateSet(this,_currentScrollElement,__privateGet(this,_options).scrollSelector&&document2.querySelector(__privateGet(this,_options).scrollSelector)||window),__privateSet(this,_isWindowScroll,__privateGet(this,_currentScrollElement)===window),(_b=__privateGet(this,_currentScrollElement))==null||_b.addEventListener("scroll",__privateGet(this,_scrollListener)),__privateGet(this,_scrollListener).call(this)},"#updateCurrentScrollElement"),tryScrollToElement_fn=__name(function(id,options){const value=typeof id=="string"?document.querySelector(id):id;(typeof value=="number"||value)&&scroll.scrollToElement(value,__spreadValues({scrollElement:__privateGet(this,_currentScrollElement)},options))},"#tryScrollToElement"),_popStateListener=new WeakMap,_scrollListener=new WeakMap,__name(_Morph,"Morph"),_Morph.instance=null;let Morph=_Morph;exports.Morph=Morph;
1
+ "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __knownSymbol=(name,symbol)=>(symbol=Symbol[name])?symbol:Symbol.for("Symbol."+name),__typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var __async=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});var __forAwait=(obj,it,method)=>(it=obj[__knownSymbol("asyncIterator")])?it.call(obj):(obj=obj[__knownSymbol("iterator")](),it={},method=(key,fn)=>(fn=obj[key])&&(it[key]=arg=>new Promise((yes,no,done)=>(arg=fn.call(obj,arg),done=arg.done,Promise.resolve(arg.value).then(value=>yes({value,done}),no)))),method("next"),method("return"),it);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Store=require("../Store-B96mD8mD.cjs"),dom=require("../dom-B40i6NXw.cjs"),events=require("../events-UlGk63iC.cjs"),promises=require("../promises-nDm8_iG6.cjs"),scroll=require("../scroll-DfvKl-On.cjs");require("construct-style-sheets-polyfill");require("../index-BoGx2BWX.cjs");const url=require("../url-D0rESDQq.cjs"),cssValueParser_index=require("../css-value-parser/index.cjs"),historyManager=require("../historyManager-C_QO4Fko.cjs"),_MorphAnnouncer=class _MorphAnnouncer extends HTMLElement{connectedCallback(){const attrs={"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[key,value]of Object.entries(attrs))this.setAttribute(key,value)}};__name(_MorphAnnouncer,"MorphAnnouncer");let MorphAnnouncer=_MorphAnnouncer;Store.isBrowser&&!customElements.get("morph-announcer")&&customElements.define("morph-announcer",MorphAnnouncer);var _morph,_element,_MorphLink_instances,path_get,click_fn,_clickListener,_pointerListener;const _MorphLink=class _MorphLink{constructor(element,morph){__privateAdd(this,_MorphLink_instances);__privateAdd(this,_morph);__privateAdd(this,_element);__privateAdd(this,_clickListener,__name(e=>{e.preventDefault(),__privateMethod(this,_MorphLink_instances,click_fn).call(this)},"#clickListener"));__privateAdd(this,_pointerListener,__name(()=>{const revalidate=__privateGet(this,_element).hasAttribute("data-revalidate");__privateGet(this,_morph).prefetch(__privateGet(this,_MorphLink_instances,path_get),revalidate),__privateGet(this,_element).removeEventListener("pointerenter",__privateGet(this,_pointerListener))},"#pointerListener"));__privateSet(this,_morph,morph),__privateSet(this,_element,element),__privateGet(this,_element).addEventListener("click",__privateGet(this,_clickListener)),this.checkCurrent(location.href.replace(location.origin,"")),__privateGet(this,_element).hasAttribute("data-prefetch")&&__privateGet(this,_element).addEventListener("pointerenter",__privateGet(this,_pointerListener))}get element(){return __privateGet(this,_element)}checkCurrent(path){var _a,_b;const locationUrl=__privateGet(this,_morph).normalizePath(path),linkUrl=__privateGet(this,_morph).normalizePath(__privateGet(this,_MorphLink_instances,path_get));__privateGet(this,_element).hasAttribute("data-include")&&locationUrl.pathname.includes(linkUrl.pathname)?__privateGet(this,_element).classList.add("current"):linkUrl.pathname===locationUrl.pathname?__privateGet(this,_element).classList.add("current"):(_a=__privateGet(this,_element).getAttribute("data-associated-paths"))!=null&&_a.split(",").find(path2=>locationUrl.pathname.includes(path2))?__privateGet(this,_element).classList.add("current"):__privateGet(this,_element).classList.remove("current"),locationUrl.path===linkUrl.path?__privateGet(this,_element).classList.add("exact"):__privateGet(this,_element).classList.remove("exact");const[pathWithoutParams,pathParamsStr]=(_b=__privateGet(this,_MorphLink_instances,path_get).split("#")[0])==null?void 0:_b.split("?"),pathParams=new URLSearchParams(pathParamsStr),locationParams=new URLSearchParams(location.search);let matchCounter=0;for(const[key]of locationParams)pathParams.has(key)&&locationParams.get(key)===pathParams.get(key)&&matchCounter++;matchCounter?(__privateGet(this,_element).classList.toggle("all-params-matched",locationParams.size===matchCounter),__privateGet(this,_element).classList.toggle("some-params-matched",locationParams.size!==matchCounter)):!locationParams.size&&__privateGet(this,_element).hasAttribute("data-match-no-params")?__privateGet(this,_element).classList.add("all-params-matched"):(__privateGet(this,_element).classList.remove("all-params-matched"),__privateGet(this,_element).classList.remove("some-params-matched"));for(const key in __privateGet(this,_element).dataset){const kebabKey=Store.camelToKebab(key);if(kebabKey.startsWith("match-param-")){const name=kebabKey.split("match-param-")[1],value=__privateGet(this,_element).dataset[key],className=`param-${name}-matched`;locationParams.has(name)&&locationParams.get(name)===value||!locationParams.has(name)&&(value===""||value==="*"||value==="all"||value==="any"||value==="vse")?__privateGet(this,_element).classList.add(className):__privateGet(this,_element).classList.remove(className)}}}destroy(){__privateGet(this,_element).removeEventListener("click",__privateGet(this,_clickListener)),__privateGet(this,_element).removeEventListener("pointerenter",__privateGet(this,_pointerListener)),__privateGet(this,_element).classList.remove("current","exact")}};_morph=new WeakMap,_element=new WeakMap,_MorphLink_instances=new WeakSet,path_get=__name(function(){const url2=new URL(__privateGet(this,_element).href);return __privateGet(this,_morph).normalizePath(url2.pathname+url2.search+url2.hash).path},"#path"),click_fn=__name(function(){var _a;if(document.documentElement.classList.contains("click-disabled"))return;if(__privateGet(this,_element).hasAttribute("data-back")&&__privateGet(this,_morph).previousURL)history.back();else{const historyAction=__privateGet(this,_element).getAttribute("data-history-action")||"push",centerScroll=__privateGet(this,_element).hasAttribute("data-center-scroll"),offsetScrollRawValue=getComputedStyle(__privateGet(this,_element)).getPropertyValue("--offset-scroll").trim(),offsetScroll=offsetScrollRawValue?cssValueParser_index.cssValueParser.parse(offsetScrollRawValue):void 0,scrollDuration=parseFloat(__privateGet(this,_element).getAttribute("data-scroll-duration")||"0")||void 0,scrollEasing=__privateGet(this,_element).getAttribute("data-scroll-easing")||void 0,revalidate=__privateGet(this,_element).hasAttribute("data-revalidate")||__privateGet(this,_element).hasAttribute("data-pagination-more-link")||__privateGet(this,_element).hasAttribute("data-pagination-set-link")||__privateGet(this,_element).hasAttribute("data-pagination-next-link")||__privateGet(this,_element).hasAttribute("data-pagination-prev-link"),keepSearchParameters=__privateGet(this,_element).hasAttribute("data-keep-search-parameters"),keepScrollPosition=__privateGet(this,_element).hasAttribute("data-keep-scroll-position")||__privateGet(this,_element).hasAttribute("data-pagination-more-link"),scrollBehaviour=__privateGet(this,_element).getAttribute("data-scroll-behaviour"),submorph=(_a=__privateGet(this,_element).getAttribute("data-submorph")||__privateGet(this,_element).getAttribute("data-submorph-append"))==null?void 0:_a.split(",").map(v=>v.trim()),clearState=__privateGet(this,_element).hasAttribute("data-clear-state");let path=__privateGet(this,_MorphLink_instances,path_get);if(__privateGet(this,_element).hasAttribute("data-toggle-params")){const[pathWithoutParams,pathParamsStr]=__privateGet(this,_MorphLink_instances,path_get).split("?"),pathParams=new URLSearchParams(pathParamsStr),locationParams=new URLSearchParams(location.search),resultParams=new URLSearchParams;for(const[key]of pathParams)(!locationParams.has(key)||locationParams.has(key)&&locationParams.get(key)!==pathParams.get(key))&&resultParams.append(key,pathParams.get(key));if(__privateGet(this,_element).hasAttribute("data-merge-params"))for(const[key]of locationParams)pathParams.has(key)||resultParams.append(key,locationParams.get(key));path=`${pathWithoutParams}?${resultParams.toString()}`}__privateGet(this,_morph).navigate(path,{historyAction,centerScroll,offsetScroll,revalidate,keepSearchParameters,submorph,clearState,keepScrollPosition,scrollBehaviour,scrollDuration,scrollEasing,submorphAppend:__privateGet(this,_element).hasAttribute("data-submorph-append"),mergeParams:__privateGet(this,_element).hasAttribute("data-merge-params")&&!__privateGet(this,_element).hasAttribute("data-toggle-params"),detail:__privateGet(this,_element).getAttribute("data-detail"),removeParams:__privateGet(this,_element).getAttribute("data-remove-params")||void 0,scrollTo:__privateGet(this,_element).getAttribute("data-scroll-to")||void 0})}},"#click"),_clickListener=new WeakMap,_pointerListener=new WeakMap,__name(_MorphLink,"MorphLink");let MorphLink=_MorphLink;var _element2,_params,_MorphParamsDependent_instances,update_fn,_urlChangeListener;const _MorphParamsDependent=class _MorphParamsDependent{constructor(element){__privateAdd(this,_MorphParamsDependent_instances);__privateAdd(this,_element2);__privateAdd(this,_params,[]);__privateAdd(this,_urlChangeListener,__name(()=>{__privateMethod(this,_MorphParamsDependent_instances,update_fn).call(this)},"#urlChangeListener"));__privateSet(this,_element2,element);for(const key in __privateGet(this,_element2).dataset){const kebabKey=Store.camelToKebab(key);if(kebabKey.startsWith("param-")){const name=kebabKey.split("param-")[1],value=__privateGet(this,_element2).dataset[key];__privateGet(this,_params).push({name,value})}}document.addEventListener("morphURLParametersChange",__privateGet(this,_urlChangeListener)),__privateMethod(this,_MorphParamsDependent_instances,update_fn).call(this)}destroy(){document.removeEventListener("morphURLParametersChange",__privateGet(this,_urlChangeListener))}};_element2=new WeakMap,_params=new WeakMap,_MorphParamsDependent_instances=new WeakSet,update_fn=__name(function(){const locationParams=new URLSearchParams(location.search);let matched=!!__privateGet(this,_params).find(param=>locationParams.has(param.name)&&(locationParams.get(param.name)===param.value||param.value==="*"||param.value==="all"||param.value==="any"||param.value==="vse"||locationParams.get(param.name)==="*"||locationParams.get(param.name)==="all"||locationParams.get(param.name)==="any"||locationParams.get(param.name)==="vse"));!matched&&__privateGet(this,_element2).hasAttribute("data-match-no-params")&&(matched=!__privateGet(this,_params).filter(param=>locationParams.has(param.name)).length);const hideClass=__privateGet(this,_element2).getAttribute("data-hide-class");matched?hideClass?__privateGet(this,_element2).classList.remove(hideClass):__privateGet(this,_element2).style.display="":hideClass?__privateGet(this,_element2).classList.add(hideClass):__privateGet(this,_element2).style.display="none",requestAnimationFrame(()=>{window.dispatchEvent(new CustomEvent("resize"))})},"#update"),_urlChangeListener=new WeakMap,__name(_MorphParamsDependent,"MorphParamsDependent");let MorphParamsDependent=_MorphParamsDependent;const domParser=new DOMParser;var _morph2,_pathname,_scrollState,_initialDocument,_modifiedDocument,_currentDocument,_savedState,_abortController,_fetching,_headers,_needRavalidation;const _MorphRoute=class _MorphRoute{constructor(morph,pathname){__privateAdd(this,_morph2);__privateAdd(this,_pathname);__privateAdd(this,_scrollState,{x:0,y:0});__privateAdd(this,_initialDocument,null);__privateAdd(this,_modifiedDocument,null);__privateAdd(this,_currentDocument,null);__privateAdd(this,_savedState,null);__privateAdd(this,_abortController,null);__privateAdd(this,_fetching,null);__privateAdd(this,_headers);__privateAdd(this,_needRavalidation,!1);__privateSet(this,_morph2,morph),__privateSet(this,_pathname,pathname)}get pathname(){return __privateGet(this,_pathname)}get scrollState(){return __privateGet(this,_scrollState)}get document(){return __privateGet(this,_currentDocument)}needRavalidation(){__privateSet(this,_needRavalidation,!0)}setHeaders(headers){__privateSet(this,_headers,headers)}setInitialDocument(document2){__privateSet(this,_initialDocument,document2.cloneNode(!0))}abort(){var _a;return(_a=__privateGet(this,_abortController))==null?void 0:_a.abort(`[${__privateGet(this,_pathname)}] page loading cancelled`)}fetch(path,currentPath,revalidate){return __async(this,null,function*(){var _a;if(!revalidate&&!__privateGet(this,_needRavalidation)){const shouldUseCache=((_a=__privateGet(this,_initialDocument))==null?void 0:_a.documentElement.getAttribute("data-cache"))&&currentPath!==path,isPopstateNavigation=__privateGet(this,_initialDocument)&&__privateGet(this,_morph2).isPopstateNavigation;if(__privateGet(this,_fetching)||shouldUseCache||isPopstateNavigation)return __privateGet(this,_fetching)}return __privateSet(this,_fetching,new Promise(res=>__async(this,null,function*(){try{__privateSet(this,_abortController,new AbortController);const text=yield(yield fetch(path,{signal:__privateGet(this,_abortController).signal,headers:__spreadValues({"X-MORPH":"true","X-MORPH-REVALIDATE":revalidate?"true":"false","X-MORPH-CURRENT-PATH":encodeURIComponent(currentPath),"X-MORPH-NEW-PATH":encodeURIComponent(path)},__privateGet(this,_headers))})).text(),document2=domParser.parseFromString(text,"text/html");this.setInitialDocument(document2),__privateSet(this,_needRavalidation,!1)}catch(e){console.warn(e)}finally{__privateSet(this,_abortController,null),__privateSet(this,_fetching,null),res()}}))),__privateGet(this,_fetching)})}cloneDocument(){__privateSet(this,_currentDocument,(__privateGet(this,_modifiedDocument)||__privateGet(this,_initialDocument)).cloneNode(!0))}get title(){let title="";if(__privateGet(this,_currentDocument).title)title=__privateGet(this,_currentDocument).title;else{const h1=__privateGet(this,_currentDocument).querySelector("h1");title=(h1==null?void 0:h1.innerText)||(h1==null?void 0:h1.textContent)||__privateGet(this,_pathname)}return title}clearScrollState(){__privateGet(this,_scrollState).x=0,__privateGet(this,_scrollState).y=0}clearDocumentState(){__privateSet(this,_modifiedDocument,null)}saveScrollState(){__privateGet(this,_initialDocument).documentElement.hasAttribute("data-no-scroll-restoration")?(__privateGet(this,_scrollState).x=0,__privateGet(this,_scrollState).y=0):(__privateGet(this,_scrollState).x=__privateGet(this,_morph2).scrollValue.left,__privateGet(this,_scrollState).y=__privateGet(this,_morph2).scrollValue.top)}restoreScrollPosition(){__privateGet(this,_morph2).scrollElement.scroll({top:__privateGet(this,_scrollState).y,left:__privateGet(this,_scrollState).x,behavior:"instant"})}saveDocumentState(){__privateGet(this,_initialDocument).documentElement.hasAttribute("data-no-page-restoration")?__privateSet(this,_modifiedDocument,null):__privateSet(this,_modifiedDocument,document.cloneNode(!0))}renewScrollPosition(){__privateGet(this,_morph2).scrollElement.scroll({top:0,left:0,behavior:"instant"})}saveState(state){__privateSet(this,_savedState,state)}clearState(){const state=__privateGet(this,_savedState);return __privateSet(this,_savedState,null),state}};_morph2=new WeakMap,_pathname=new WeakMap,_scrollState=new WeakMap,_initialDocument=new WeakMap,_modifiedDocument=new WeakMap,_currentDocument=new WeakMap,_savedState=new WeakMap,_abortController=new WeakMap,_fetching=new WeakMap,_headers=new WeakMap,_needRavalidation=new WeakMap,__name(_MorphRoute,"MorphRoute");let MorphRoute=_MorphRoute;var _options,_morphElements,_links,_candidateURL,_currentURL,_previousURL,_promises,_isPopstateNavigation,_currentScrollElement,_isWindowScroll,_routes,_paramDependent,_announcer,_currentScrollX,_currentScrollY,_lastSubmorph,_lastRevalidate,_lastKeepScrollPosition,_checkLink,_Morph_instances,getRoute_fn,getMorphElements_fn,isElementEmitsLoadEvent_fn,updateCurrentScrollElement_fn,tryScrollToElement_fn,_popStateListener,_scrollListener;const _Morph=class _Morph{constructor(parameters){__privateAdd(this,_Morph_instances);__privateAdd(this,_options,null);__privateAdd(this,_morphElements,null);__privateAdd(this,_links,[]);__privateAdd(this,_candidateURL);__privateAdd(this,_currentURL,null);__privateAdd(this,_previousURL);__privateAdd(this,_promises,[]);__privateAdd(this,_isPopstateNavigation,!1);__privateAdd(this,_currentScrollElement,null);__privateAdd(this,_isWindowScroll,!1);__privateAdd(this,_routes,new Map);__privateAdd(this,_paramDependent,[]);__privateAdd(this,_announcer,null);__privateAdd(this,_currentScrollX,0);__privateAdd(this,_currentScrollY,0);__privateAdd(this,_lastSubmorph);__privateAdd(this,_lastRevalidate);__privateAdd(this,_lastKeepScrollPosition);__privateAdd(this,_checkLink,__name(element=>{var _a,_b;return(((_a=element.getAttribute("href"))==null?void 0:_a.startsWith("/"))||((_b=element.getAttribute("href"))==null?void 0:_b.startsWith("?")))&&!element.hasAttribute("download")&&!element.hasAttribute("data-morph-skip")&&!element.closest("[data-morph-skip]")&&element.getAttribute("target")!=="_blank"},"#checkLink"));__privateAdd(this,_popStateListener,__name(event=>__async(this,null,function*(){var _a,_b,_c,_d;(_b=(_a=event.state)==null?void 0:_a.data)!=null&&_b.popover||(_d=(_c=event.previousState)==null?void 0:_c.data)!=null&&_d.popover||(__privateSet(this,_isPopstateNavigation,!0),yield this.navigate(location.href.replace(location.origin,""),{historyAction:"none",submorph:__privateGet(this,_lastRevalidate)?void 0:__privateGet(this,_lastSubmorph),revalidate:__privateGet(this,_lastRevalidate),keepScrollPosition:__privateGet(this,_lastKeepScrollPosition)}),__privateSet(this,_isPopstateNavigation,!1))}),"#popStateListener"));__privateAdd(this,_scrollListener,__name(()=>{const{left,top}=this.scrollValue,directionY=top-__privateGet(this,_currentScrollY),directionX=left-__privateGet(this,_currentScrollX);__privateSet(this,_currentScrollY,top),__privateSet(this,_currentScrollX,left),document.documentElement.classList.toggle("scroll-y",top>0),document.documentElement.classList.toggle("scroll-x",left>0),document.documentElement.classList.toggle("scroll-y-forward",directionY>0),document.documentElement.classList.toggle("scroll-y-backward",directionY<0),document.documentElement.classList.toggle("scroll-x-forward",directionX>0),document.documentElement.classList.toggle("scroll-x-backward",directionX<0),events.dispatchEvent(document,"morphScroll",{detail:{left,top}})},"#scrollListener"));if(Store.isBrowser&&!_Morph.instance){_Morph.instance=this,__privateSet(this,_options,{base:url.normalizeBase(parameters==null?void 0:parameters.base),waitForHeadToLoad:(parameters==null?void 0:parameters.waitForHeadToLoad)!==!1,trailingSlash:(parameters==null?void 0:parameters.trailingSlash)||!1,scrollSelector:parameters==null?void 0:parameters.scrollSelector,morphInsideScrollContainer:(parameters==null?void 0:parameters.morphInsideScrollContainer)||!1}),__privateSet(this,_morphElements,__privateMethod(this,_Morph_instances,getMorphElements_fn).call(this,document.body));const normalizedURL=this.normalizePath(location.pathname+location.search+location.hash);__privateSet(this,_currentURL,normalizedURL);const initialRoute=new MorphRoute(this,__privateGet(this,_currentURL).pathname);initialRoute.setInitialDocument(document),__privateGet(this,_routes).set(__privateGet(this,_currentURL).pathname,initialRoute),document.documentElement.setAttribute("data-current-pathname",__privateGet(this,_currentURL).pathname),document.documentElement.setAttribute("data-current-leaf",normalizedURL.leaf),this.findLinks(),this.findParamsDependent(),historyManager.historyManager.addPopStateHandler(__privateGet(this,_popStateListener)),historyManager.historyManager.__change({action:"replace",pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters,hash:normalizedURL.hash}),__privateSet(this,_announcer,new MorphAnnouncer),__privateMethod(this,_Morph_instances,updateCurrentScrollElement_fn).call(this,document)}}get currentURL(){return __privateGet(this,_currentURL)}get previousURL(){return __privateGet(this,_previousURL)}get links(){return __privateGet(this,_links)}get scrollElement(){return __privateGet(this,_currentScrollElement)}get isPopstateNavigation(){return __privateGet(this,_isPopstateNavigation)}get scrollValue(){let top=0,left=0;return __privateGet(this,_isWindowScroll)?(top=window.scrollY,left=window.scrollX):(top=__privateGet(this,_currentScrollElement).scrollTop,left=__privateGet(this,_currentScrollElement).scrollLeft),{top,left}}get isNavigating(){return!!__privateGet(this,_promises).length}saveState(state){const route=__privateGet(this,_routes).get(__privateGet(this,_currentURL).path);route&&route.saveState(state)}getState(){const route=__privateGet(this,_routes).get(__privateGet(this,_currentURL).path);return route==null?void 0:route.clearState()}normalizePath(path,options){return url.splitPath(path,{base:__privateGet(this,_options).base,trailingSlash:__privateGet(this,_options).trailingSlash,mergeParams:options!=null&&options.mergeParams?location.search:"",removeParams:options==null?void 0:options.removeParams})}prefetch(path,revalidate){return __async(this,null,function*(){var _a;if(__privateGet(this,_promises).length)return;path=((_a=this.pathnameModifier)==null?void 0:_a.call(this,path))||path;const route=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,path);route==null||route.fetch(path,__privateGet(this,_currentURL).path,revalidate)})}excludeHeadChild(child){return!1}needRavalidation(path){const normalizedURL=this.normalizePath(path),route=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,normalizedURL.path);route==null||route.needRavalidation()}navigate(_0){return __async(this,arguments,function*(path,{historyAction="push",centerScroll,offsetScroll,scrollDuration,scrollEasing,scrollBehaviour,revalidate,keepSearchParameters,submorph,submorphAppend,clearState,keepScrollPosition,mergeParams,removeParams,detail,scrollTo}={}){var _a,_b,_c,_d;if(__privateGet(this,_promises).length)return;__privateSet(this,_lastSubmorph,submorph),__privateSet(this,_lastRevalidate,revalidate),__privateSet(this,_lastKeepScrollPosition,keepScrollPosition);const modifiedPath=((_a=this.pathnameModifier)==null?void 0:_a.call(this,path))||path,normalizedURL=this.normalizePath(modifiedPath,{mergeParams,removeParams});if(!revalidate&&(((_b=__privateGet(this,_candidateURL))==null?void 0:_b.pathname)===normalizedURL.pathname||__privateGet(this,_currentURL).pathname===normalizedURL.pathname)){keepScrollPosition||__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,scrollTo||normalizedURL.hash||0,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:"smooth"}),events.dispatchEvent(document,"morphSamePath",{detail:{detail}}),((_c=__privateGet(this,_currentURL))==null?void 0:_c.parameters)!==normalizedURL.parameters&&(__privateSet(this,_previousURL,__privateGet(this,_currentURL)),__privateSet(this,_currentURL,normalizedURL),historyManager.historyManager.__change({action:((_d=__privateGet(this,_currentURL))==null?void 0:_d.hash)!==normalizedURL.hash?"replace":historyAction,pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters,hash:normalizedURL.hash}),events.dispatchEvent(document,"morphURLParametersChange",{detail:{newURL:__privateGet(this,_currentURL),previousURL:__privateGet(this,_previousURL),detail}})),__privateGet(this,_links).forEach(link=>{link.checkCurrent(normalizedURL.path)});return}else __privateGet(this,_links).forEach(link=>{link.checkCurrent(normalizedURL.path)});__privateSet(this,_candidateURL,normalizedURL);try{let preprocessedSuccesfully=!0;if(this.preprocessor)try{yield new Promise((resolve,reject)=>{var _a2;(_a2=this.preprocessor)==null||_a2.call(this,{url:normalizedURL,resolve,reject,submorph,detail})})}catch(e){e?console.error(e):console.log("Route change canceled"),preprocessedSuccesfully=!1}if(!preprocessedSuccesfully||__privateGet(this,_candidateURL).pathname!==normalizedURL.pathname){__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)});return}const navigationEntry={url:normalizedURL,submorph,detail};submorph?submorphAppend||submorph.forEach(sel=>{document.querySelectorAll(sel).forEach(el=>{el.classList.add("out"),el.setAttribute("data-morph-out","")})}):__privateGet(this,_morphElements).forEach(el=>{var _a2,_b2;(_a2=el.firstElementChild)==null||_a2.classList.add("out"),(_b2=el.firstElementChild)==null||_b2.setAttribute("data-morph-out","")}),events.dispatchEvent(document,"morphNavigation",{detail:navigationEntry});const currentRoute=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,__privateGet(this,_currentURL).pathname),nextRoute=__privateMethod(this,_Morph_instances,getRoute_fn).call(this,normalizedURL.pathname);if(__privateGet(this,_routes).forEach(el=>{el.pathname!==normalizedURL.pathname&&el.abort()}),yield nextRoute==null?void 0:nextRoute.fetch(modifiedPath,__privateGet(this,_currentURL).path,revalidate),__privateGet(this,_candidateURL).pathname!==normalizedURL.pathname){__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)});return}currentRoute.clearState(),currentRoute.saveScrollState(),currentRoute.saveDocumentState(),(!__privateGet(this,_isPopstateNavigation)||revalidate)&&(nextRoute.clearScrollState(),nextRoute.clearDocumentState()),clearState&&nextRoute.clearState(),nextRoute.cloneDocument(),__privateGet(this,_announcer).textContent=nextRoute.title,document.body.appendChild(__privateGet(this,_announcer));const documentFetchedEntry=__spreadProps(__spreadValues({},navigationEntry),{document:nextRoute.document});submorphAppend||documentFetchedEntry.document.querySelectorAll("[data-morph-out]").forEach(el=>{el.classList.remove("out")}),events.dispatchEvent(document,"morphStart",{detail:documentFetchedEntry});const currentHeadChildren=Array.from(document.head.children),newHeadChildren=Array.from(nextRoute.document.head.children),identicalHeadChildren=dom.intersectElements(currentHeadChildren,newHeadChildren),removeHeadChildren=dom.excludeElements(currentHeadChildren,identicalHeadChildren),addHeadChildren=dom.excludeElements(newHeadChildren,identicalHeadChildren).filter(child=>!this.excludeHeadChild(child));addHeadChildren.forEach((child,index)=>{child.tagName==="SCRIPT"&&(addHeadChildren[index]=dom.createScriptElement(child))}),addHeadChildren.forEach(child=>{document.head.appendChild(child)});const elementsWithLoad=addHeadChildren.filter(child=>{if(child.hasAttribute("data-no-waiting"))return!1;if(__privateMethod(this,_Morph_instances,isElementEmitsLoadEvent_fn).call(this,child))return!0});__privateGet(this,_options).waitForHeadToLoad&&elementsWithLoad.length&&(yield new Promise(res=>__async(this,null,function*(){let counter=0;try{for(var iter=__forAwait(elementsWithLoad),more,temp,error;more=!(temp=yield iter.next()).done;more=!1){const element=temp.value;element.onload=()=>{counter++,counter===elementsWithLoad.length&&res()}}}catch(temp){error=[temp]}finally{try{more&&(temp=iter.return)&&(yield temp.call(iter))}finally{if(error)throw error[0]}}}))),yield promises.wait(10);const oldElementsWithLoadEvent=[];submorphAppend||removeHeadChildren.forEach(child=>{child.hasAttribute("data-permanent")||(__privateMethod(this,_Morph_instances,isElementEmitsLoadEvent_fn).call(this,child)?oldElementsWithLoadEvent.push(child):child.remove())});const newMorphElements=__privateMethod(this,_Morph_instances,getMorphElements_fn).call(this,nextRoute.document.body);!__privateGet(this,_options).morphInsideScrollContainer&&!submorph&&__privateMethod(this,_Morph_instances,updateCurrentScrollElement_fn).call(this,nextRoute.document),document.documentElement.setAttribute("data-current-pathname",normalizedURL.pathname),document.documentElement.setAttribute("data-current-leaf",normalizedURL.leaf),historyManager.historyManager.__change({action:historyAction,pathname:normalizedURL.pathname,searchParameters:normalizedURL.parameters||(keepSearchParameters?location.search:""),hash:normalizedURL.hash}),__privateGet(this,_announcer).remove(),__privateSet(this,_previousURL,__privateGet(this,_currentURL)),__privateSet(this,_currentURL,normalizedURL);const morphedElements=[];__privateGet(this,_morphElements).forEach((morphElement,i)=>{const newMorphElement=newMorphElements[i],duration=getComputedStyle(morphElement).getPropertyValue("--morph-duration");let newMorphElementChildNodes=[],currentMorphElementChildNodes=[];submorph?(submorph.forEach(selector=>{const curSubMorphElement=morphElement.querySelector(selector),newSubMorphElement=newMorphElement.querySelector(selector);curSubMorphElement&&newSubMorphElement&&(currentMorphElementChildNodes.push(curSubMorphElement),newMorphElementChildNodes.push(newSubMorphElement))}),currentMorphElementChildNodes.forEach(el=>{el.parentElement&&morphedElements.push(el.parentElement)})):(newMorphElementChildNodes.push(...newMorphElement.childNodes),currentMorphElementChildNodes.push(...morphElement.childNodes),morphedElements.push(morphElement));const transfer=[];submorphAppend||currentMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&(this.destroyOldLinks(element),element.classList.add("old"),element.querySelectorAll("[data-morph-transfer]").forEach(el=>{const selector=el.getAttribute("data-morph-transfer");transfer.push({element:el,selector})}))}),newMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&(transfer.forEach(item=>{const nestlement=element.querySelector(item.selector);nestlement&&nestlement.replaceWith(nextRoute.document.importNode(item.element,!0))}),this.findNewLinks(element),element.classList.add("new"))}),submorph?submorphAppend?newMorphElementChildNodes.forEach((el,i2)=>{currentMorphElementChildNodes[i2]instanceof HTMLElement&&currentMorphElementChildNodes[i2].append(...el.childNodes)}):newMorphElementChildNodes.forEach((el,i2)=>{var _a2;(_a2=currentMorphElementChildNodes[i2].parentElement)==null||_a2.insertBefore(el,currentMorphElementChildNodes[i2])}):morphElement.prepend(...newMorphElementChildNodes),setTimeout(()=>{submorphAppend||currentMorphElementChildNodes.forEach(element=>{element instanceof HTMLElement&&element.classList.add("old-idle")}),newMorphElementChildNodes.forEach(element=>{var _a2;element instanceof HTMLElement&&((_a2=element.parentElement)==null||_a2.style.setProperty("--new-content-height",element.offsetHeight+"px"),element.classList.add("new-idle"))})},0);const detail2=__spreadProps(__spreadValues({},documentFetchedEntry),{morphElement});events.dispatchEvent(document,"morphNewChildrenAdded",{detail:detail2});const promise=new Promise(res=>{setTimeout(()=>{submorphAppend||currentMorphElementChildNodes.forEach(el=>{el.remove()}),newMorphElementChildNodes.forEach(element=>{var _a2;element instanceof HTMLElement&&((_a2=element.parentElement)==null||_a2.style.removeProperty("--new-content-height"),element.classList.remove("new-idle","new"))}),submorphAppend||events.dispatchEvent(document,"morphOldChildrenRemoved",{detail:detail2}),res()},(parseFloat(duration)||0)*1e3+10)});__privateGet(this,_promises).push(promise)}),this.isPopstateNavigation?document.documentElement.style.setProperty("--new-document-scroll-position",(this.scrollValue.top-nextRoute.scrollState.y)*1+"px"):document.documentElement.style.setProperty("--new-document-scroll-position",this.scrollValue.top+"px"),events.dispatchEvent(document,"morphBeforeNavigationScroll",{detail:nextRoute.scrollState}),scrollTo?(nextRoute.clearScrollState(),__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,scrollTo,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:scrollBehaviour})):normalizedURL.hash?(nextRoute.clearScrollState(),__privateMethod(this,_Morph_instances,tryScrollToElement_fn).call(this,normalizedURL.hash,{center:centerScroll,offset:offsetScroll,duration:scrollDuration,easing:scrollEasing,behavior:scrollBehaviour})):__privateGet(this,_isPopstateNavigation)?nextRoute.restoreScrollPosition():keepScrollPosition||nextRoute.renewScrollPosition(),yield Promise.all(__privateGet(this,_promises)),submorphAppend||oldElementsWithLoadEvent.forEach(child=>child.remove()),__privateSet(this,_promises,[]),morphedElements.forEach(el=>{el.querySelectorAll("script").forEach(element=>{element.replaceWith(dom.createScriptElement(element))})}),__privateGet(this,_links).forEach(link=>{link.checkCurrent(__privateGet(this,_currentURL).path)}),this.findParamsDependent(),events.dispatchEvent(document,"morphComplete",{detail:documentFetchedEntry}),document.documentElement.style.removeProperty("--new-document-scroll-position"),window.dispatchEvent(new Event("resize"))}catch(e){console.error(e)}__privateSet(this,_candidateURL,void 0)})}addLink(element){__privateGet(this,_links).push(new MorphLink(element,this))}addLinks(elements){elements.forEach(element=>{this.addLink(element)})}removeLink(element){__privateSet(this,_links,__privateGet(this,_links).filter(link=>link.element===element?(link.destroy(),!1):!0))}destroyOldLinks(morphElement){__privateSet(this,_links,__privateGet(this,_links).filter(link=>morphElement.contains(link.element)?(link.destroy(),!1):!0))}findNewLinks(morphElement){const linkElements=[...morphElement.querySelectorAll("a")].filter(__privateGet(this,_checkLink));__privateGet(this,_links).push(...linkElements.map(element=>new MorphLink(element,this)))}findLinks(){const linkElements=[...document.documentElement.querySelectorAll("a")].filter(__privateGet(this,_checkLink));__privateGet(this,_links).forEach(link=>link.destroy()),__privateSet(this,_links,linkElements.map(element=>new MorphLink(element,this)))}findParamsDependent(){const elements=[...document.documentElement.querySelectorAll("[data-morph-params-dependent]")];__privateGet(this,_paramDependent).forEach(link=>link.destroy()),__privateSet(this,_paramDependent,elements.map(element=>new MorphParamsDependent(element)))}};_options=new WeakMap,_morphElements=new WeakMap,_links=new WeakMap,_candidateURL=new WeakMap,_currentURL=new WeakMap,_previousURL=new WeakMap,_promises=new WeakMap,_isPopstateNavigation=new WeakMap,_currentScrollElement=new WeakMap,_isWindowScroll=new WeakMap,_routes=new WeakMap,_paramDependent=new WeakMap,_announcer=new WeakMap,_currentScrollX=new WeakMap,_currentScrollY=new WeakMap,_lastSubmorph=new WeakMap,_lastRevalidate=new WeakMap,_lastKeepScrollPosition=new WeakMap,_checkLink=new WeakMap,_Morph_instances=new WeakSet,getRoute_fn=__name(function(path){const normalizedURL=this.normalizePath(path);let route=__privateGet(this,_routes).get(normalizedURL.pathname);return route||(route=new MorphRoute(this,normalizedURL.pathname),__privateGet(this,_routes).set(normalizedURL.pathname,route)),route},"#getRoute"),getMorphElements_fn=__name(function(el){const morphElements=[...el.querySelectorAll("[data-morph]")];return morphElements.length?morphElements:[el]},"#getMorphElements"),isElementEmitsLoadEvent_fn=__name(function(element){return element.tagName==="SCRIPT"||element.tagName==="STYLE"||element.tagName==="LINK"&&element.getAttribute("rel")==="stylesheet"},"#isElementEmitsLoadEvent"),updateCurrentScrollElement_fn=__name(function(document2){var _a,_b;(_a=__privateGet(this,_currentScrollElement))==null||_a.removeEventListener("scroll",__privateGet(this,_scrollListener)),__privateSet(this,_currentScrollY,0),__privateSet(this,_currentScrollX,0),__privateSet(this,_currentScrollElement,__privateGet(this,_options).scrollSelector&&document2.querySelector(__privateGet(this,_options).scrollSelector)||window),__privateSet(this,_isWindowScroll,__privateGet(this,_currentScrollElement)===window),(_b=__privateGet(this,_currentScrollElement))==null||_b.addEventListener("scroll",__privateGet(this,_scrollListener)),__privateGet(this,_scrollListener).call(this)},"#updateCurrentScrollElement"),tryScrollToElement_fn=__name(function(id,options){const value=typeof id=="string"?document.querySelector(id):id;(typeof value=="number"||value)&&scroll.scrollToElement(value,__spreadValues({scrollElement:__privateGet(this,_currentScrollElement)},options))},"#tryScrollToElement"),_popStateListener=new WeakMap,_scrollListener=new WeakMap,__name(_Morph,"Morph"),_Morph.instance=null;let Morph=_Morph;exports.Morph=Morph;
@@ -36,7 +36,7 @@ import { i as isBrowser, c as camelToKebab } from "../Store-CAGUSjFX.js";
36
36
  import { i as intersectElements, e as excludeElements, c as createScriptElement } from "../dom-D8D-_9ty.js";
37
37
  import { d as dispatchEvent } from "../events-Ds-TuvYW.js";
38
38
  import { w as wait } from "../promises-BsIKOEDq.js";
39
- import { s as scrollToElement } from "../scroll-C27tnW2f.js";
39
+ import { s as scrollToElement } from "../scroll-IQwW3E-B.js";
40
40
  import "construct-style-sheets-polyfill";
41
41
  import "../index-DAG0CtYo.js";
42
42
  import { a as normalizeBase, c as splitPath } from "../url-DTxLpq5m.js";
@@ -0,0 +1 @@
1
+ "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const Tweened=require("./Tweened-BZoUkI7O.cjs"),order_index=require("./order/index.cjs"),dom=require("./dom-B40i6NXw.cjs"),layout=require("./layout-CnGLl7oe.cjs");require("construct-style-sheets-polyfill");require("./index-BoGx2BWX.cjs");const scrollToElementTweened={value:null};function scrollToElement(elementOrSelectorOrNumber,{behavior="instant",offset=0,center=!1,scrollElement,scrollCallback,duration,easing,startValue}={}){var _a;let elementPosition,centerElement=scrollElement,scrollContainerElement=scrollElement;if(typeof elementOrSelectorOrNumber=="number")elementPosition=elementOrSelectorOrNumber;else{const element=dom.getElement(elementOrSelectorOrNumber);element&&(centerElement=element,scrollContainerElement=scrollElement||dom.findScrollParentElement(element),elementPosition=layout.getCumulativeOffsetTop(element))}if(centerElement&&scrollContainerElement&&typeof elementPosition=="number"){const offsetValue=typeof offset=="number"?offset:typeof offset=="string"&&!isNaN(parseFloat(offset))?parseFloat(offset):(((_a=dom.getElement(offset))==null?void 0:_a.offsetHeight)||0)*-1,height=centerElement instanceof HTMLElement?centerElement.offsetHeight:innerHeight,centerValue=center?innerHeight/2*-1+height/2:0,top=elementPosition+offsetValue+centerValue,scrollToValue=__name(value=>{scrollContainerElement instanceof HTMLElement&&scrollContainerElement.tagName==="E-SMOOTH-SCROLL"?scrollContainerElement.scrollToValue(value,duration?"instant":behavior):scrollContainerElement.scroll({top:value,behavior:duration?"instant":behavior})},"scrollToValue");if(duration){scrollToElementTweened.value&&scrollToElementTweened.value.close();let tweenedStart=0;startValue?tweenedStart=startValue:scrollContainerElement instanceof HTMLElement?tweenedStart=scrollContainerElement.scrollTop:tweenedStart=window.scrollY,scrollToElementTweened.value=new Tweened.Tweened(tweenedStart,{order:order_index.TICK_ORDER.SCROLL}),scrollToElementTweened.value.subscribe(e=>{scrollCallback?scrollCallback(e.current):scrollToValue(e.current)}),scrollToElementTweened.value.set(top,{duration:Math.min(duration,duration*(Math.abs(tweenedStart-top)/3e3)),easing})}else scrollCallback?scrollCallback(top):scrollToValue(top)}}__name(scrollToElement,"scrollToElement");exports.scrollToElement=scrollToElement;exports.scrollToElementTweened=scrollToElementTweened;
@@ -6,7 +6,7 @@ import { g as getElement, f as findScrollParentElement } from "./dom-D8D-_9ty.js
6
6
  import { b as getCumulativeOffsetTop } from "./layout-BL6AX9-r.js";
7
7
  import "construct-style-sheets-polyfill";
8
8
  import "./index-DAG0CtYo.js";
9
- let tweened;
9
+ const scrollToElementTweened = { value: null };
10
10
  function scrollToElement(elementOrSelectorOrNumber, {
11
11
  behavior = "instant",
12
12
  offset = 0,
@@ -36,20 +36,25 @@ function scrollToElement(elementOrSelectorOrNumber, {
36
36
  });
37
37
  }, "scrollToValue");
38
38
  if (duration) {
39
- tweened && tweened.close();
39
+ scrollToElementTweened.value && scrollToElementTweened.value.close();
40
40
  let tweenedStart = 0;
41
- startValue ? tweenedStart = startValue : scrollContainerElement instanceof HTMLElement ? tweenedStart = scrollContainerElement.scrollTop : tweenedStart = window.scrollY, tweened = new Tweened(tweenedStart, {
42
- duration,
43
- easing,
41
+ startValue ? tweenedStart = startValue : scrollContainerElement instanceof HTMLElement ? tweenedStart = scrollContainerElement.scrollTop : tweenedStart = window.scrollY, scrollToElementTweened.value = new Tweened(tweenedStart, {
44
42
  order: TICK_ORDER.SCROLL
45
- }), tweened.subscribe((e) => {
43
+ }), scrollToElementTweened.value.subscribe((e) => {
46
44
  scrollCallback ? scrollCallback(e.current) : scrollToValue(e.current);
47
- }), tweened.set(top, { duration, easing });
45
+ }), scrollToElementTweened.value.set(top, {
46
+ duration: Math.min(
47
+ duration,
48
+ duration * (Math.abs(tweenedStart - top) / 3e3)
49
+ ),
50
+ easing
51
+ });
48
52
  } else
49
53
  scrollCallback ? scrollCallback(top) : scrollToValue(top);
50
54
  }
51
55
  }
52
56
  __name(scrollToElement, "scrollToElement");
53
57
  export {
58
+ scrollToElementTweened as a,
54
59
  scrollToElement as s
55
60
  };
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ticker_index=require("../index-BoGx2BWX.cjs"),Store=require("../Store-B96mD8mD.cjs"),dom=require("../dom-B40i6NXw.cjs"),gestures=require("../gestures-DtYbQr49.cjs");require("construct-style-sheets-polyfill");const order_index=require("../order/index.cjs"),Damped=require("../Damped-B_mVO810.cjs"),cssProperty_index=require("../css-property/index.cjs"),Viewport=require("../Viewport-Blxv_yl_.cjs"),scrollEntries_index=require("../scroll-entries/index.cjs"),scroll=require("../scroll-BWDLSP3i.cjs"),elementLinkedStore_index=require("../element-linked-store/index.cjs"),elementResizer_index=require("../element-resizer/index.cjs"),events=require("../events-UlGk63iC.cjs"),layout=require("../layout-CnGLl7oe.cjs"),loading=require("../loading-7Ju1mFST.cjs"),math=require("../math-C-knY2TL.cjs"),windowResizer_index=require("../window-resizer/index.cjs");var _scrollElement,_thumbElement,_thumbScrollSize,_limit,_isHorizontal,_activeTimeoutId,_ScrollbarElement_instances,scrollPosition_get,scrollSize_get,scrollViewportSize_get,_scrollListener,_resizeListener,_grabListener,_tickListener,_intersectionListener;const _ScrollbarElement=class _ScrollbarElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_ScrollbarElement_instances);__privateAdd(this,_scrollElement,null);__privateAdd(this,_thumbElement,null);__privateAdd(this,_thumbScrollSize,0);__privateAdd(this,_limit,0);__privateAdd(this,_isHorizontal,!1);__privateAdd(this,_activeTimeoutId);__privateAdd(this,_scrollListener,__name(()=>{this.classList.add("active"),clearTimeout(__privateGet(this,_activeTimeoutId));const position=__privateGet(this,_ScrollbarElement_instances,scrollPosition_get)/__privateGet(this,_limit)*__privateGet(this,_thumbScrollSize);__privateGet(this,_isHorizontal)?__privateGet(this,_thumbElement).style.transform=`translate3d(${position}px, 0px, 0px)`:__privateGet(this,_thumbElement).style.transform=`translate3d(0px, ${position}px, 0px)`,__privateSet(this,_activeTimeoutId,setTimeout(()=>{this.classList.remove("active")},1e3))},"#scrollListener"));__privateAdd(this,_resizeListener,__name(()=>{const barSize=__privateGet(this,_isHorizontal)?this.offsetWidth:this.offsetHeight,scrollSize=__privateGet(this,_ScrollbarElement_instances,scrollSize_get),viewportSize=__privateGet(this,_ScrollbarElement_instances,scrollViewportSize_get);__privateSet(this,_limit,scrollSize-viewportSize);let thumbSize=barSize*barSize/(__privateGet(this,_limit)+barSize);thumbSize=Math.max(thumbSize,30),__privateGet(this,_isHorizontal)?(__privateGet(this,_thumbElement).style.width=thumbSize+"px",__privateGet(this,_thumbElement).style.height="100%"):(__privateGet(this,_thumbElement).style.width="100%",__privateGet(this,_thumbElement).style.height=thumbSize+"px"),__privateSet(this,_thumbScrollSize,barSize-thumbSize),scrollSize<=viewportSize?this.style.display="none":this.style.display="block"},"#resizeListener"));__privateAdd(this,_grabListener,__name(grabEvent=>{const startValue=__privateGet(this,_ScrollbarElement_instances,scrollPosition_get),grabCursor=__privateGet(this,_isHorizontal)?grabEvent.x:grabEvent.y;gestures.setupDrag(moveEvent=>{const mult=__privateGet(this,_limit)/__privateGet(this,_thumbScrollSize),delta=(__privateGet(this,_isHorizontal)?moveEvent.x-grabCursor:moveEvent.y-grabCursor)*mult;__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scroll({left:startValue+delta,behavior:"instant"}):__privateGet(this,_scrollElement).scroll({top:startValue+delta,behavior:"instant"})})},"#grabListener"));__privateAdd(this,_tickListener,__name(()=>{__privateGet(this,_resizeListener).call(this)},"#tickListener"));__privateAdd(this,_intersectionListener,__name(e=>{e.isIntersecting?(ticker_index.ticker.subscribe(__privateGet(this,_tickListener),{maxFPS:5}),__privateGet(this,_tickListener).call(this)):ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#intersectionListener"))}connectedCallback(){const scrollSelector=this.getAttribute("data-scroll");let scrollElement=null;scrollSelector&&(scrollSelector==="parent"?scrollElement=this.parentElement:scrollElement=document.querySelector(scrollSelector)),scrollElement||(scrollElement=dom.findScrollParentElement(this),scrollElement===document.body&&(scrollElement=window)),__privateSet(this,_isHorizontal,this.hasAttribute("horisontal"));const thumbElement=this.querySelector("[data-thumb]");scrollElement&&thumbElement&&(__privateSet(this,_scrollElement,scrollElement),__privateSet(this,_thumbElement,thumbElement),__privateGet(this,_scrollElement).addEventListener("scroll",__privateGet(this,_scrollListener)),__privateGet(this,_thumbElement).addEventListener("pointerdown",__privateGet(this,_grabListener)),ticker_index.intersector.subscribe(this.parentElement===document.body?this:this.parentElement,__privateGet(this,_intersectionListener)))}disconnectedCallback(){var _a,_b;(_a=__privateGet(this,_scrollElement))==null||_a.removeEventListener("scroll",__privateGet(this,_scrollListener)),(_b=__privateGet(this,_thumbElement))==null||_b.removeEventListener("pointerdown",__privateGet(this,_grabListener)),clearTimeout(__privateGet(this,_activeTimeoutId)),ticker_index.intersector.unsubscribe(__privateGet(this,_intersectionListener)),ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener))}};_scrollElement=new WeakMap,_thumbElement=new WeakMap,_thumbScrollSize=new WeakMap,_limit=new WeakMap,_isHorizontal=new WeakMap,_activeTimeoutId=new WeakMap,_ScrollbarElement_instances=new WeakSet,scrollPosition_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollLeft:__privateGet(this,_scrollElement).scrollTop:__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollX:__privateGet(this,_scrollElement).scrollY},"#scrollPosition"),scrollSize_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollWidth:__privateGet(this,_scrollElement).scrollHeight:__privateGet(this,_isHorizontal)?Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth):Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},"#scrollSize"),scrollViewportSize_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).offsetWidth:__privateGet(this,_scrollElement).offsetHeight:__privateGet(this,_isHorizontal)?innerWidth:innerHeight},"#scrollViewportSize"),_scrollListener=new WeakMap,_resizeListener=new WeakMap,_grabListener=new WeakMap,_tickListener=new WeakMap,_intersectionListener=new WeakMap,__name(_ScrollbarElement,"ScrollbarElement");let ScrollbarElement=_ScrollbarElement;Store.isBrowser&&!customElements.get("e-scrollbar")&&customElements.define("e-scrollbar",ScrollbarElement);const scrollKeys=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End","Space"]);var _cssDisabled,_cssDamping,_value,_currentRoundedValue,_needSync,_SmoothScrollElement_instances,checkDisabled_fn,_wheelListener,_pointerdownListener,_resizeListener2,_keydownListener,_scrollListener2;const _SmoothScrollElement=class _SmoothScrollElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_SmoothScrollElement_instances);__privateAdd(this,_cssDisabled,new cssProperty_index.CSSProperty(this,"--smooth-scroll-disabled",!1));__privateAdd(this,_cssDamping,new cssProperty_index.CSSProperty(this,"--smooth-scroll-damping",10));__privateAdd(this,_value,new Damped.Damped(0,{order:order_index.TICK_ORDER.SCROLL}));__privateAdd(this,_currentRoundedValue,0);__privateAdd(this,_needSync,!1);__privateAdd(this,_wheelListener,__name(e=>{if(!(__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||Viewport.device.isMobile)){if(Math.sign(e.deltaY)<0&&__privateGet(this,_value).target===0&&__privateGet(this,_value).direction<0||Math.sign(e.deltaY)>0&&__privateGet(this,_value).target===__privateGet(this,_value).max&&__privateGet(this,_value).direction>0||e.stopPropagation(),e.target instanceof Element){const preventElement=e.target.closest("[data-prevent-smooth-scroll]");if(preventElement){const attrValue=preventElement.getAttribute("data-prevent-smooth-scroll");if(attrValue){if(matchMedia(attrValue).matches)return}else return}}Math.abs(e.deltaX)>Math.abs(e.deltaY)||(e.preventDefault(),this.shiftPosition(e.deltaY))}},"#wheelListener"));__privateAdd(this,_pointerdownListener,__name(e=>{if(e.target instanceof Element){const anchorElement=e.target.closest("a");if(e.button!==0||__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)&&!anchorElement)return;if(anchorElement&&!anchorElement.hasAttribute("data-smooth-scroll-skip")&&this.contains(anchorElement)){this.stop();const url=new URL(anchorElement.href);url.hash&&(e.preventDefault(),this.scrollToElement(url.hash,{behavior:anchorElement.getAttribute("data-scroll-behavior")||"smooth",offset:anchorElement.getAttribute("data-scroll-offset")||void 0,center:anchorElement.hasAttribute("data-scroll-center"),duration:parseFloat(anchorElement.getAttribute("data-scroll-duration")||"0")||void 0,easing:anchorElement.getAttribute("data-scroll-easing")||void 0}))}}},"#pointerdownListener"));__privateAdd(this,_resizeListener2,__name(()=>{this.resize(),this.sync()},"#resizeListener"));__privateAdd(this,_keydownListener,__name(e=>{__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||scrollKeys.has(e.code)&&this.stop()},"#keydownListener"));__privateAdd(this,_scrollListener2,__name(()=>{Viewport.device.isMobile&&this.sync()},"#scrollListener"))}resize(){__privateGet(this,_value).min=0,__privateGet(this,_value).max=this.scrollHeight-this.offsetHeight}stop(){__privateGet(this,_value).unlistenAnimationFrame(),__privateSet(this,_needSync,!0)}sync(){const currentValue=this.scrollTop;(Viewport.device.isMobile||__privateGet(this,_needSync)||Math.abs(currentValue-__privateGet(this,_value).current)>100)&&(__privateSet(this,_needSync,!1),__privateGet(this,_value).set(currentValue,{equalize:!0}))}shiftPosition(value){this.resize(),this.sync(),__privateGet(this,_value).shift(value)}setPosition(value,options){this.resize(),this.sync(),__privateGet(this,_value).set(value,options)}scrollToValue(value,behavior){Viewport.device.isMobile?this.scroll({top:value,behavior}):this.setPosition(value,{equalize:behavior==="instant"})}scrollToElement(elementOrSelector,options){scroll.scrollToElement(elementOrSelector,__spreadProps(__spreadValues({},options),{scrollElement:this,startValue:__privateGet(this,_value).current,scrollCallback:__name(top=>{this.scrollToValue(top,options!=null&&options.duration?"instant":options==null?void 0:options.behavior)},"scrollCallback")}))}connectedCallback(){window.addEventListener("resize",__privateGet(this,_resizeListener2)),this.addEventListener("keydown",__privateGet(this,_keydownListener)),document.documentElement.addEventListener("pointerdown",__privateGet(this,_pointerdownListener)),this.addEventListener("wheel",__privateGet(this,_wheelListener),{passive:!1}),this.addEventListener("scroll",__privateGet(this,_scrollListener2)),__privateGet(this,_value).set(this.scrollTop,{equalize:!0}),__privateGet(this,_value).subscribe(e=>{const roundedCurrent=Math.round(e.current);scrollEntries_index.scrollEntries.update(this,"y",e.current),roundedCurrent!==__privateGet(this,_currentRoundedValue)&&!Viewport.device.isMobile&&this.scroll({top:roundedCurrent,behavior:"instant"}),__privateSet(this,_currentRoundedValue,roundedCurrent)}),__privateGet(this,_cssDamping).observe(),__privateGet(this,_cssDisabled).observe(),__privateGet(this,_cssDamping).subscribe(e=>{__privateGet(this,_value).damping=e.current}),scrollEntries_index.scrollEntries.register(this),this.resize()}disconnectedCallback(){__privateGet(this,_value).close(),__privateGet(this,_cssDamping).close(),__privateGet(this,_cssDisabled).close(),scrollEntries_index.scrollEntries.unregister(this),window.removeEventListener("resize",__privateGet(this,_resizeListener2)),this.removeEventListener("keydown",__privateGet(this,_keydownListener)),document.documentElement.removeEventListener("pointerdown",__privateGet(this,_pointerdownListener)),this.removeEventListener("wheel",__privateGet(this,_wheelListener)),this.removeEventListener("scroll",__privateGet(this,_scrollListener2))}};_cssDisabled=new WeakMap,_cssDamping=new WeakMap,_value=new WeakMap,_currentRoundedValue=new WeakMap,_needSync=new WeakMap,_SmoothScrollElement_instances=new WeakSet,checkDisabled_fn=__name(function(){return __privateGet(this,_cssDisabled).current||getComputedStyle(this).getPropertyValue("overflow")==="hidden"},"#checkDisabled"),_wheelListener=new WeakMap,_pointerdownListener=new WeakMap,_resizeListener2=new WeakMap,_keydownListener=new WeakMap,_scrollListener2=new WeakMap,__name(_SmoothScrollElement,"SmoothScrollElement");let SmoothScrollElement=_SmoothScrollElement;customElements.get("e-smooth-scroll")||customElements.define("e-smooth-scroll",SmoothScrollElement);var _statusHolderElements,_progressHolderElements,_scrollElement2,_statusHolderCSSProperty,_progressHolderCSSProperty,_disabledCSSProperty,_startOffsetCSSProperty,_startOffsetMinCSSProperty,_startExtraOffsetCSSProperty,_distanceCSSProperty,_distanceOffsetCSSProperty,_progressVarCSSProperty,_enterOnceCSSProperty,_status,_initialPosition,_start,_finish,_distance,_scrolled,_progress,_visible,_loadingUnsub,_ScrollRegionElement_instances,addGlobalClasses_fn,removeGlobalClasses_fn,init_fn,_resizeListener3,_tickListener2,enter_fn,exit_fn,cssVar_fn,_loadingListener;const _ScrollRegionElement=class _ScrollRegionElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_ScrollRegionElement_instances);__privateAdd(this,_statusHolderElements,[this]);__privateAdd(this,_progressHolderElements,[this]);__privateAdd(this,_scrollElement2,null);__privateAdd(this,_statusHolderCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-status-holder",!1));__privateAdd(this,_progressHolderCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-progress-holder",!1));__privateAdd(this,_disabledCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-disabled",!1));__privateAdd(this,_startOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-offset",0,{rawValueCheck:!1}));__privateAdd(this,_startOffsetMinCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-offset-min",!1,{rawValueCheck:!1}));__privateAdd(this,_startExtraOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-extra-offset",0,{rawValueCheck:!1}));__privateAdd(this,_distanceCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-distance",0,{rawValueCheck:!1}));__privateAdd(this,_distanceOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-distance-offset",0,{rawValueCheck:!1}));__privateAdd(this,_progressVarCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-progress-var",""));__privateAdd(this,_enterOnceCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-enter-once",!1));__privateAdd(this,_status,new elementLinkedStore_index.ElementLinkedStore(this,{enabled:!1,entered:!1,enteredOnLoad:!1,activated:!1}));__privateAdd(this,_initialPosition,0);__privateAdd(this,_start,0);__privateAdd(this,_finish,0);__privateAdd(this,_distance,0);__privateAdd(this,_scrolled,0);__privateAdd(this,_progress,0);__privateAdd(this,_visible,!1);__privateAdd(this,_loadingUnsub);__privateAdd(this,_resizeListener3,__name(()=>{this.resize()},"#resizeListener"));__privateAdd(this,_tickListener2,__name(()=>{this.tick()},"#tickListener"));__privateAdd(this,_loadingListener,__name(()=>{__privateMethod(this,_ScrollRegionElement_instances,init_fn).call(this)},"#loadingListener"))}get start(){return __privateGet(this,_start)}get finish(){return __privateGet(this,_finish)}get distance(){return __privateGet(this,_distance)}get scrolled(){return __privateGet(this,_scrolled)}get progress(){return __privateGet(this,_progress)}get status(){return __privateGet(this,_status)}get scrollValue(){return __privateGet(this,_scrollElement2)instanceof HTMLElement?__privateGet(this,_scrollElement2).scrollTop:__privateGet(this,_scrollElement2).scrollY}resize(){__privateGet(this,_disabledCSSProperty).current||(__privateSet(this,_initialPosition,layout.getCumulativeOffsetTop(this)),__privateSet(this,_start,__privateGet(this,_initialPosition)),typeof __privateGet(this,_startOffsetMinCSSProperty).current=="number"?__privateSet(this,_start,__privateGet(this,_start)+Math.max(__privateGet(this,_startOffsetCSSProperty).current,__privateGet(this,_startOffsetMinCSSProperty).current)):__privateSet(this,_start,__privateGet(this,_start)+__privateGet(this,_startOffsetCSSProperty).current),__privateSet(this,_start,__privateGet(this,_start)+__privateGet(this,_startExtraOffsetCSSProperty).current),__privateSet(this,_start,__privateGet(this,_start)-layout.getStickyOffset(this,"top")),__privateSet(this,_finish,__privateGet(this,_start)),__privateGet(this,_distanceCSSProperty).current?__privateSet(this,_finish,__privateGet(this,_finish)+__privateGet(this,_distanceCSSProperty).current):__privateSet(this,_finish,__privateGet(this,_finish)+this.offsetHeight),__privateSet(this,_finish,__privateGet(this,_finish)+__privateGet(this,_distanceOffsetCSSProperty).current),__privateSet(this,_distance,__privateGet(this,_finish)-__privateGet(this,_start)),__privateSet(this,_visible,this.offsetWidth!==0&&this.offsetHeight!==0),this.tick())}tick(){if(__privateGet(this,_disabledCSSProperty).current)return;const scrollValue=this.scrollValue;if(__privateSet(this,_scrolled,math.clamp(scrollValue-__privateGet(this,_start),0,__privateGet(this,_distance))),__privateSet(this,_progress,__privateGet(this,_scrolled)/__privateGet(this,_distance)||0),__privateGet(this,_progressVarCSSProperty).current)for(let index=0;index<__privateGet(this,_progressHolderElements).length;index++)__privateGet(this,_progressHolderElements)[index].style.setProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,__privateGet(this,_progressVarCSSProperty).current),__privateGet(this,_progress).toFixed(6));__privateGet(this,_status).set("activated",scrollValue>=__privateGet(this,_start)),__privateGet(this,_visible)&&__privateGet(this,_status).isFalse("entered")&&scrollValue>=__privateGet(this,_start)&&scrollValue<=__privateGet(this,_finish)?__privateMethod(this,_ScrollRegionElement_instances,enter_fn).call(this):__privateGet(this,_visible)&&!__privateGet(this,_enterOnceCSSProperty).current&&__privateGet(this,_status).isTrue("entered")&&(scrollValue<__privateGet(this,_start)||scrollValue>__privateGet(this,_finish))&&__privateMethod(this,_ScrollRegionElement_instances,exit_fn).call(this),__privateGet(this,_enterOnceCSSProperty).current&&__privateGet(this,_progress)===1&&(__privateGet(this,_status).current.entered||__privateMethod(this,_ScrollRegionElement_instances,enter_fn).call(this),this.destroy()),events.dispatchEvent(this,"scrollRegionProgress",{detail:{progress:__privateGet(this,_progress),scrolled:__privateGet(this,_scrolled)}})}destroy(){var _a;(_a=__privateGet(this,_loadingUnsub))==null||_a.call(this),this.disable(!1),__privateGet(this,_statusHolderCSSProperty).close(),__privateGet(this,_progressHolderCSSProperty).close(),__privateGet(this,_disabledCSSProperty).close(),__privateGet(this,_startOffsetCSSProperty).close(),__privateGet(this,_startOffsetMinCSSProperty).close(),__privateGet(this,_startExtraOffsetCSSProperty).close(),__privateGet(this,_distanceCSSProperty).close(),__privateGet(this,_distanceOffsetCSSProperty).close(),__privateGet(this,_progressVarCSSProperty).close(),__privateGet(this,_enterOnceCSSProperty).close()}enable(){ticker_index.ticker.subscribe(__privateGet(this,_tickListener2),{culling:this}),elementResizer_index.elementResizer.subscribe(this,__privateGet(this,_resizeListener3)),windowResizer_index.windowResizer.subscribe(__privateGet(this,_resizeListener3)),__privateGet(this,_tickListener2).call(this),__privateGet(this,_status).set("enabled",!0)}disable(resetStatus=!0){ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener2)),elementResizer_index.elementResizer.unsubscribe(__privateGet(this,_resizeListener3)),windowResizer_index.windowResizer.unsubscribe(__privateGet(this,_resizeListener3)),resetStatus&&__privateGet(this,_status).reset(),__privateMethod(this,_ScrollRegionElement_instances,removeGlobalClasses_fn).call(this)}connectedCallback(){const scrollSelector=this.getAttribute("data-scroll")||".page-scroll";__privateSet(this,_scrollElement2,document.querySelector(scrollSelector)),__privateSet(this,_loadingUnsub,loading.requestLoadingCallback("load",__privateGet(this,_loadingListener)))}disconnectedCallback(){this.destroy()}};_statusHolderElements=new WeakMap,_progressHolderElements=new WeakMap,_scrollElement2=new WeakMap,_statusHolderCSSProperty=new WeakMap,_progressHolderCSSProperty=new WeakMap,_disabledCSSProperty=new WeakMap,_startOffsetCSSProperty=new WeakMap,_startOffsetMinCSSProperty=new WeakMap,_startExtraOffsetCSSProperty=new WeakMap,_distanceCSSProperty=new WeakMap,_distanceOffsetCSSProperty=new WeakMap,_progressVarCSSProperty=new WeakMap,_enterOnceCSSProperty=new WeakMap,_status=new WeakMap,_initialPosition=new WeakMap,_start=new WeakMap,_finish=new WeakMap,_distance=new WeakMap,_scrolled=new WeakMap,_progress=new WeakMap,_visible=new WeakMap,_loadingUnsub=new WeakMap,_ScrollRegionElement_instances=new WeakSet,addGlobalClasses_fn=__name(function(){this.hasAttribute("data-global-class")&&document.documentElement.classList.add(this.getAttribute("data-global-class"))},"#addGlobalClasses"),removeGlobalClasses_fn=__name(function(){this.hasAttribute("data-global-class")&&document.documentElement.classList.remove(this.getAttribute("data-global-class"))},"#removeGlobalClasses"),init_fn=__name(function(){__privateGet(this,_statusHolderCSSProperty).subscribe(e=>{__privateGet(this,_statusHolderElements).length&&__privateGet(this,_statusHolderElements).forEach(el=>{__privateGet(this,_status).removeElement(el)}),__privateSet(this,_statusHolderElements,[]),e.current?e.current.split(",").map(v=>v.trim()).forEach(selector=>{const element=document.querySelector(selector);element instanceof HTMLElement&&(__privateGet(this,_statusHolderElements).push(element),__privateGet(this,_status).addElement(element))}):__privateSet(this,_statusHolderElements,[this])}),__privateGet(this,_progressHolderCSSProperty).subscribe(e=>{__privateGet(this,_progressHolderElements).length&&__privateGet(this,_progressHolderElements).forEach(el=>{el.style.removeProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,__privateGet(this,_progressVarCSSProperty).current))}),__privateSet(this,_progressHolderElements,[]),e.current?e.current.split(",").map(v=>v.trim()).forEach(selector=>{const element=document.querySelector(selector);element instanceof HTMLElement&&__privateGet(this,_progressHolderElements).push(element)}):__privateSet(this,_progressHolderElements,[this])}),__privateGet(this,_disabledCSSProperty).subscribe(e=>{e.current&&!e.previous?this.disable():this.enable()}),__privateGet(this,_progressVarCSSProperty).subscribe(e=>{e.current?__privateGet(this,_tickListener2).call(this):e.previous&&__privateGet(this,_progressHolderElements).forEach(el=>{el.style.removeProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,e.previous))})}),__privateGet(this,_distanceCSSProperty).subscribe(()=>{__privateGet(this,_resizeListener3).call(this)}),__privateGet(this,_statusHolderCSSProperty).observe(),__privateGet(this,_progressHolderCSSProperty).observe(),__privateGet(this,_disabledCSSProperty).observe(),__privateGet(this,_startOffsetCSSProperty).observe(),__privateGet(this,_startOffsetMinCSSProperty).observe(),__privateGet(this,_startExtraOffsetCSSProperty).observe(),__privateGet(this,_distanceCSSProperty).observe(),__privateGet(this,_distanceOffsetCSSProperty).observe(),__privateGet(this,_progressVarCSSProperty).observe(),__privateGet(this,_enterOnceCSSProperty).observe()},"#init"),_resizeListener3=new WeakMap,_tickListener2=new WeakMap,enter_fn=__name(function(){const scrollValue=this.scrollValue;__privateGet(this,_status).set("entered",!0),scrollValue===0&&__privateGet(this,_status).set("enteredOnLoad",!0),__privateMethod(this,_ScrollRegionElement_instances,addGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionEnter")},"#enter"),exit_fn=__name(function(){__privateGet(this,_status).set("entered",!1),__privateMethod(this,_ScrollRegionElement_instances,removeGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionExit")},"#exit"),cssVar_fn=__name(function(value){return`--${value}`},"#cssVar"),_loadingListener=new WeakMap,__name(_ScrollRegionElement,"ScrollRegionElement");let ScrollRegionElement=_ScrollRegionElement;customElements.get("e-scroll-region")||customElements.define("e-scroll-region",ScrollRegionElement);exports.ScrollRegionElement=ScrollRegionElement;exports.ScrollbarElement=ScrollbarElement;exports.SmoothScrollElement=SmoothScrollElement;
1
+ "use strict";var __defProp=Object.defineProperty,__defProps=Object.defineProperties;var __getOwnPropDescs=Object.getOwnPropertyDescriptors;var __getOwnPropSymbols=Object.getOwnPropertySymbols;var __hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,__spreadValues=(a,b)=>{for(var prop in b||(b={}))__hasOwnProp.call(b,prop)&&__defNormalProp(a,prop,b[prop]);if(__getOwnPropSymbols)for(var prop of __getOwnPropSymbols(b))__propIsEnum.call(b,prop)&&__defNormalProp(a,prop,b[prop]);return a},__spreadProps=(a,b)=>__defProps(a,__getOwnPropDescs(b)),__name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ticker_index=require("../index-BoGx2BWX.cjs"),Store=require("../Store-B96mD8mD.cjs"),dom=require("../dom-B40i6NXw.cjs"),gestures=require("../gestures-DtYbQr49.cjs");require("construct-style-sheets-polyfill");const order_index=require("../order/index.cjs"),Damped=require("../Damped-B_mVO810.cjs"),cssProperty_index=require("../css-property/index.cjs"),Viewport=require("../Viewport-Blxv_yl_.cjs"),scrollEntries_index=require("../scroll-entries/index.cjs"),scroll=require("../scroll-DfvKl-On.cjs"),elementLinkedStore_index=require("../element-linked-store/index.cjs"),elementResizer_index=require("../element-resizer/index.cjs"),events=require("../events-UlGk63iC.cjs"),layout=require("../layout-CnGLl7oe.cjs"),loading=require("../loading-7Ju1mFST.cjs"),math=require("../math-C-knY2TL.cjs"),windowResizer_index=require("../window-resizer/index.cjs");var _scrollElement,_thumbElement,_thumbScrollSize,_limit,_isHorizontal,_activeTimeoutId,_ScrollbarElement_instances,scrollPosition_get,scrollSize_get,scrollViewportSize_get,_scrollListener,_resizeListener,_grabListener,_tickListener,_intersectionListener;const _ScrollbarElement=class _ScrollbarElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_ScrollbarElement_instances);__privateAdd(this,_scrollElement,null);__privateAdd(this,_thumbElement,null);__privateAdd(this,_thumbScrollSize,0);__privateAdd(this,_limit,0);__privateAdd(this,_isHorizontal,!1);__privateAdd(this,_activeTimeoutId);__privateAdd(this,_scrollListener,__name(()=>{this.classList.add("active"),clearTimeout(__privateGet(this,_activeTimeoutId));const position=__privateGet(this,_ScrollbarElement_instances,scrollPosition_get)/__privateGet(this,_limit)*__privateGet(this,_thumbScrollSize);__privateGet(this,_isHorizontal)?__privateGet(this,_thumbElement).style.transform=`translate3d(${position}px, 0px, 0px)`:__privateGet(this,_thumbElement).style.transform=`translate3d(0px, ${position}px, 0px)`,__privateSet(this,_activeTimeoutId,setTimeout(()=>{this.classList.remove("active")},1e3))},"#scrollListener"));__privateAdd(this,_resizeListener,__name(()=>{const barSize=__privateGet(this,_isHorizontal)?this.offsetWidth:this.offsetHeight,scrollSize=__privateGet(this,_ScrollbarElement_instances,scrollSize_get),viewportSize=__privateGet(this,_ScrollbarElement_instances,scrollViewportSize_get);__privateSet(this,_limit,scrollSize-viewportSize);let thumbSize=barSize*barSize/(__privateGet(this,_limit)+barSize);thumbSize=Math.max(thumbSize,30),__privateGet(this,_isHorizontal)?(__privateGet(this,_thumbElement).style.width=thumbSize+"px",__privateGet(this,_thumbElement).style.height="100%"):(__privateGet(this,_thumbElement).style.width="100%",__privateGet(this,_thumbElement).style.height=thumbSize+"px"),__privateSet(this,_thumbScrollSize,barSize-thumbSize),scrollSize<=viewportSize?this.style.display="none":this.style.display="block"},"#resizeListener"));__privateAdd(this,_grabListener,__name(grabEvent=>{const startValue=__privateGet(this,_ScrollbarElement_instances,scrollPosition_get),grabCursor=__privateGet(this,_isHorizontal)?grabEvent.x:grabEvent.y;gestures.setupDrag(moveEvent=>{const mult=__privateGet(this,_limit)/__privateGet(this,_thumbScrollSize),delta=(__privateGet(this,_isHorizontal)?moveEvent.x-grabCursor:moveEvent.y-grabCursor)*mult;__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scroll({left:startValue+delta,behavior:"instant"}):__privateGet(this,_scrollElement).scroll({top:startValue+delta,behavior:"instant"})})},"#grabListener"));__privateAdd(this,_tickListener,__name(()=>{__privateGet(this,_resizeListener).call(this)},"#tickListener"));__privateAdd(this,_intersectionListener,__name(e=>{e.isIntersecting?(ticker_index.ticker.subscribe(__privateGet(this,_tickListener),{maxFPS:5}),__privateGet(this,_tickListener).call(this)):ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#intersectionListener"))}connectedCallback(){const scrollSelector=this.getAttribute("data-scroll");let scrollElement=null;scrollSelector&&(scrollSelector==="parent"?scrollElement=this.parentElement:scrollElement=document.querySelector(scrollSelector)),scrollElement||(scrollElement=dom.findScrollParentElement(this),scrollElement===document.body&&(scrollElement=window)),__privateSet(this,_isHorizontal,this.hasAttribute("horisontal"));const thumbElement=this.querySelector("[data-thumb]");scrollElement&&thumbElement&&(__privateSet(this,_scrollElement,scrollElement),__privateSet(this,_thumbElement,thumbElement),__privateGet(this,_scrollElement).addEventListener("scroll",__privateGet(this,_scrollListener)),__privateGet(this,_thumbElement).addEventListener("pointerdown",__privateGet(this,_grabListener)),ticker_index.intersector.subscribe(this.parentElement===document.body?this:this.parentElement,__privateGet(this,_intersectionListener)))}disconnectedCallback(){var _a,_b;(_a=__privateGet(this,_scrollElement))==null||_a.removeEventListener("scroll",__privateGet(this,_scrollListener)),(_b=__privateGet(this,_thumbElement))==null||_b.removeEventListener("pointerdown",__privateGet(this,_grabListener)),clearTimeout(__privateGet(this,_activeTimeoutId)),ticker_index.intersector.unsubscribe(__privateGet(this,_intersectionListener)),ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener))}};_scrollElement=new WeakMap,_thumbElement=new WeakMap,_thumbScrollSize=new WeakMap,_limit=new WeakMap,_isHorizontal=new WeakMap,_activeTimeoutId=new WeakMap,_ScrollbarElement_instances=new WeakSet,scrollPosition_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollLeft:__privateGet(this,_scrollElement).scrollTop:__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollX:__privateGet(this,_scrollElement).scrollY},"#scrollPosition"),scrollSize_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).scrollWidth:__privateGet(this,_scrollElement).scrollHeight:__privateGet(this,_isHorizontal)?Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth):Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},"#scrollSize"),scrollViewportSize_get=__name(function(){return __privateGet(this,_scrollElement)instanceof HTMLElement?__privateGet(this,_isHorizontal)?__privateGet(this,_scrollElement).offsetWidth:__privateGet(this,_scrollElement).offsetHeight:__privateGet(this,_isHorizontal)?innerWidth:innerHeight},"#scrollViewportSize"),_scrollListener=new WeakMap,_resizeListener=new WeakMap,_grabListener=new WeakMap,_tickListener=new WeakMap,_intersectionListener=new WeakMap,__name(_ScrollbarElement,"ScrollbarElement");let ScrollbarElement=_ScrollbarElement;Store.isBrowser&&!customElements.get("e-scrollbar")&&customElements.define("e-scrollbar",ScrollbarElement);const scrollKeys=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End","Space"]);var _cssDisabled,_cssDamping,_value,_currentRoundedValue,_needSync,_SmoothScrollElement_instances,checkDisabled_fn,_wheelListener,_pointerdownListener,_resizeListener2,_keydownListener,_scrollListener2;const _SmoothScrollElement=class _SmoothScrollElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_SmoothScrollElement_instances);__privateAdd(this,_cssDisabled,new cssProperty_index.CSSProperty(this,"--smooth-scroll-disabled",!1));__privateAdd(this,_cssDamping,new cssProperty_index.CSSProperty(this,"--smooth-scroll-damping",10));__privateAdd(this,_value,new Damped.Damped(0,{order:order_index.TICK_ORDER.SCROLL}));__privateAdd(this,_currentRoundedValue,0);__privateAdd(this,_needSync,!1);__privateAdd(this,_wheelListener,__name(e=>{if(!(__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||Viewport.device.isMobile)){if(Math.sign(e.deltaY)<0&&__privateGet(this,_value).target===0&&__privateGet(this,_value).direction<0||Math.sign(e.deltaY)>0&&__privateGet(this,_value).target===__privateGet(this,_value).max&&__privateGet(this,_value).direction>0||e.stopPropagation(),e.target instanceof Element){const preventElement=e.target.closest("[data-prevent-smooth-scroll]");if(preventElement){const attrValue=preventElement.getAttribute("data-prevent-smooth-scroll");if(attrValue){if(matchMedia(attrValue).matches)return}else return}}Math.abs(e.deltaX)>Math.abs(e.deltaY)||(e.preventDefault(),this.shiftPosition(e.deltaY))}},"#wheelListener"));__privateAdd(this,_pointerdownListener,__name(e=>{if(e.target instanceof Element){const anchorElement=e.target.closest("a");if(e.button!==0||__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)&&!anchorElement)return;if(anchorElement&&!anchorElement.hasAttribute("data-smooth-scroll-skip")&&this.contains(anchorElement)){this.stop();const url=new URL(anchorElement.href);url.hash&&(e.preventDefault(),this.scrollToElement(url.hash,{behavior:anchorElement.getAttribute("data-scroll-behavior")||"smooth",offset:anchorElement.getAttribute("data-scroll-offset")||void 0,center:anchorElement.hasAttribute("data-scroll-center"),duration:parseFloat(anchorElement.getAttribute("data-scroll-duration")||"0")||void 0,easing:anchorElement.getAttribute("data-scroll-easing")||void 0}))}}},"#pointerdownListener"));__privateAdd(this,_resizeListener2,__name(()=>{this.resize(),this.sync()},"#resizeListener"));__privateAdd(this,_keydownListener,__name(e=>{__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||scrollKeys.has(e.code)&&this.stop()},"#keydownListener"));__privateAdd(this,_scrollListener2,__name(()=>{Viewport.device.isMobile&&this.sync()},"#scrollListener"))}resize(){__privateGet(this,_value).min=0,__privateGet(this,_value).max=this.scrollHeight-this.offsetHeight}stop(){var _a;(_a=scroll.scrollToElementTweened.value)==null||_a.set(this.scrollTop,{equalize:!0}),__privateGet(this,_value).unlistenAnimationFrame(),__privateSet(this,_needSync,!0)}sync(){const currentValue=this.scrollTop;(Viewport.device.isMobile||__privateGet(this,_needSync)||Math.abs(currentValue-__privateGet(this,_value).current)>100)&&(__privateSet(this,_needSync,!1),__privateGet(this,_value).set(currentValue,{equalize:!0}))}shiftPosition(value){this.resize(),this.sync(),__privateGet(this,_value).shift(value)}setPosition(value,options){this.resize(),this.sync(),__privateGet(this,_value).set(value,options)}scrollToValue(value,behavior){Viewport.device.isMobile?this.scroll({top:value,behavior}):this.setPosition(value,{equalize:behavior==="instant"})}scrollToElement(elementOrSelector,options){scroll.scrollToElement(elementOrSelector,__spreadProps(__spreadValues({},options),{scrollElement:this,startValue:__privateGet(this,_value).current,scrollCallback:__name(top=>{this.scrollToValue(top,options!=null&&options.duration?"instant":options==null?void 0:options.behavior)},"scrollCallback")}))}connectedCallback(){window.addEventListener("resize",__privateGet(this,_resizeListener2)),this.addEventListener("keydown",__privateGet(this,_keydownListener)),document.documentElement.addEventListener("pointerdown",__privateGet(this,_pointerdownListener)),this.addEventListener("wheel",__privateGet(this,_wheelListener),{passive:!1}),this.addEventListener("scroll",__privateGet(this,_scrollListener2)),__privateGet(this,_value).set(this.scrollTop,{equalize:!0}),__privateGet(this,_value).subscribe(e=>{const roundedCurrent=Math.round(e.current);scrollEntries_index.scrollEntries.update(this,"y",e.current),roundedCurrent!==__privateGet(this,_currentRoundedValue)&&!Viewport.device.isMobile&&this.scroll({top:roundedCurrent,behavior:"instant"}),__privateSet(this,_currentRoundedValue,roundedCurrent)}),__privateGet(this,_cssDamping).observe(),__privateGet(this,_cssDisabled).observe(),__privateGet(this,_cssDamping).subscribe(e=>{__privateGet(this,_value).damping=e.current}),scrollEntries_index.scrollEntries.register(this),this.resize()}disconnectedCallback(){__privateGet(this,_value).close(),__privateGet(this,_cssDamping).close(),__privateGet(this,_cssDisabled).close(),scrollEntries_index.scrollEntries.unregister(this),window.removeEventListener("resize",__privateGet(this,_resizeListener2)),this.removeEventListener("keydown",__privateGet(this,_keydownListener)),document.documentElement.removeEventListener("pointerdown",__privateGet(this,_pointerdownListener)),this.removeEventListener("wheel",__privateGet(this,_wheelListener)),this.removeEventListener("scroll",__privateGet(this,_scrollListener2))}};_cssDisabled=new WeakMap,_cssDamping=new WeakMap,_value=new WeakMap,_currentRoundedValue=new WeakMap,_needSync=new WeakMap,_SmoothScrollElement_instances=new WeakSet,checkDisabled_fn=__name(function(){return __privateGet(this,_cssDisabled).current||getComputedStyle(this).getPropertyValue("overflow")==="hidden"},"#checkDisabled"),_wheelListener=new WeakMap,_pointerdownListener=new WeakMap,_resizeListener2=new WeakMap,_keydownListener=new WeakMap,_scrollListener2=new WeakMap,__name(_SmoothScrollElement,"SmoothScrollElement");let SmoothScrollElement=_SmoothScrollElement;customElements.get("e-smooth-scroll")||customElements.define("e-smooth-scroll",SmoothScrollElement);var _statusHolderElements,_progressHolderElements,_scrollElement2,_statusHolderCSSProperty,_progressHolderCSSProperty,_disabledCSSProperty,_startOffsetCSSProperty,_startOffsetMinCSSProperty,_startExtraOffsetCSSProperty,_distanceCSSProperty,_distanceOffsetCSSProperty,_progressVarCSSProperty,_enterOnceCSSProperty,_status,_initialPosition,_start,_finish,_distance,_scrolled,_progress,_visible,_loadingUnsub,_ScrollRegionElement_instances,addGlobalClasses_fn,removeGlobalClasses_fn,init_fn,_resizeListener3,_tickListener2,enter_fn,exit_fn,cssVar_fn,_loadingListener;const _ScrollRegionElement=class _ScrollRegionElement extends HTMLElement{constructor(){super(...arguments);__privateAdd(this,_ScrollRegionElement_instances);__privateAdd(this,_statusHolderElements,[this]);__privateAdd(this,_progressHolderElements,[this]);__privateAdd(this,_scrollElement2,null);__privateAdd(this,_statusHolderCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-status-holder",!1));__privateAdd(this,_progressHolderCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-progress-holder",!1));__privateAdd(this,_disabledCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-disabled",!1));__privateAdd(this,_startOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-offset",0,{rawValueCheck:!1}));__privateAdd(this,_startOffsetMinCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-offset-min",!1,{rawValueCheck:!1}));__privateAdd(this,_startExtraOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-start-extra-offset",0,{rawValueCheck:!1}));__privateAdd(this,_distanceCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-distance",0,{rawValueCheck:!1}));__privateAdd(this,_distanceOffsetCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-distance-offset",0,{rawValueCheck:!1}));__privateAdd(this,_progressVarCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-progress-var",""));__privateAdd(this,_enterOnceCSSProperty,new cssProperty_index.CSSProperty(this,"--scroll-region-enter-once",!1));__privateAdd(this,_status,new elementLinkedStore_index.ElementLinkedStore(this,{enabled:!1,entered:!1,enteredOnLoad:!1,activated:!1}));__privateAdd(this,_initialPosition,0);__privateAdd(this,_start,0);__privateAdd(this,_finish,0);__privateAdd(this,_distance,0);__privateAdd(this,_scrolled,0);__privateAdd(this,_progress,0);__privateAdd(this,_visible,!1);__privateAdd(this,_loadingUnsub);__privateAdd(this,_resizeListener3,__name(()=>{this.resize()},"#resizeListener"));__privateAdd(this,_tickListener2,__name(()=>{this.tick()},"#tickListener"));__privateAdd(this,_loadingListener,__name(()=>{__privateMethod(this,_ScrollRegionElement_instances,init_fn).call(this)},"#loadingListener"))}get start(){return __privateGet(this,_start)}get finish(){return __privateGet(this,_finish)}get distance(){return __privateGet(this,_distance)}get scrolled(){return __privateGet(this,_scrolled)}get progress(){return __privateGet(this,_progress)}get status(){return __privateGet(this,_status)}get scrollValue(){return __privateGet(this,_scrollElement2)instanceof HTMLElement?__privateGet(this,_scrollElement2).scrollTop:__privateGet(this,_scrollElement2).scrollY}resize(){__privateGet(this,_disabledCSSProperty).current||(__privateSet(this,_initialPosition,layout.getCumulativeOffsetTop(this)),__privateSet(this,_start,__privateGet(this,_initialPosition)),typeof __privateGet(this,_startOffsetMinCSSProperty).current=="number"?__privateSet(this,_start,__privateGet(this,_start)+Math.max(__privateGet(this,_startOffsetCSSProperty).current,__privateGet(this,_startOffsetMinCSSProperty).current)):__privateSet(this,_start,__privateGet(this,_start)+__privateGet(this,_startOffsetCSSProperty).current),__privateSet(this,_start,__privateGet(this,_start)+__privateGet(this,_startExtraOffsetCSSProperty).current),__privateSet(this,_start,__privateGet(this,_start)-layout.getStickyOffset(this,"top")),__privateSet(this,_finish,__privateGet(this,_start)),__privateGet(this,_distanceCSSProperty).current?__privateSet(this,_finish,__privateGet(this,_finish)+__privateGet(this,_distanceCSSProperty).current):__privateSet(this,_finish,__privateGet(this,_finish)+this.offsetHeight),__privateSet(this,_finish,__privateGet(this,_finish)+__privateGet(this,_distanceOffsetCSSProperty).current),__privateSet(this,_distance,__privateGet(this,_finish)-__privateGet(this,_start)),__privateSet(this,_visible,this.offsetWidth!==0&&this.offsetHeight!==0),this.tick())}tick(){if(__privateGet(this,_disabledCSSProperty).current)return;const scrollValue=this.scrollValue;if(__privateSet(this,_scrolled,math.clamp(scrollValue-__privateGet(this,_start),0,__privateGet(this,_distance))),__privateSet(this,_progress,__privateGet(this,_scrolled)/__privateGet(this,_distance)||0),__privateGet(this,_progressVarCSSProperty).current)for(let index=0;index<__privateGet(this,_progressHolderElements).length;index++)__privateGet(this,_progressHolderElements)[index].style.setProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,__privateGet(this,_progressVarCSSProperty).current),__privateGet(this,_progress).toFixed(6));__privateGet(this,_status).set("activated",scrollValue>=__privateGet(this,_start)),__privateGet(this,_visible)&&__privateGet(this,_status).isFalse("entered")&&scrollValue>=__privateGet(this,_start)&&scrollValue<=__privateGet(this,_finish)?__privateMethod(this,_ScrollRegionElement_instances,enter_fn).call(this):__privateGet(this,_visible)&&!__privateGet(this,_enterOnceCSSProperty).current&&__privateGet(this,_status).isTrue("entered")&&(scrollValue<__privateGet(this,_start)||scrollValue>__privateGet(this,_finish))&&__privateMethod(this,_ScrollRegionElement_instances,exit_fn).call(this),__privateGet(this,_enterOnceCSSProperty).current&&__privateGet(this,_progress)===1&&(__privateGet(this,_status).current.entered||__privateMethod(this,_ScrollRegionElement_instances,enter_fn).call(this),this.destroy()),events.dispatchEvent(this,"scrollRegionProgress",{detail:{progress:__privateGet(this,_progress),scrolled:__privateGet(this,_scrolled)}})}destroy(){var _a;(_a=__privateGet(this,_loadingUnsub))==null||_a.call(this),this.disable(!1),__privateGet(this,_statusHolderCSSProperty).close(),__privateGet(this,_progressHolderCSSProperty).close(),__privateGet(this,_disabledCSSProperty).close(),__privateGet(this,_startOffsetCSSProperty).close(),__privateGet(this,_startOffsetMinCSSProperty).close(),__privateGet(this,_startExtraOffsetCSSProperty).close(),__privateGet(this,_distanceCSSProperty).close(),__privateGet(this,_distanceOffsetCSSProperty).close(),__privateGet(this,_progressVarCSSProperty).close(),__privateGet(this,_enterOnceCSSProperty).close()}enable(){ticker_index.ticker.subscribe(__privateGet(this,_tickListener2),{culling:this}),elementResizer_index.elementResizer.subscribe(this,__privateGet(this,_resizeListener3)),windowResizer_index.windowResizer.subscribe(__privateGet(this,_resizeListener3)),__privateGet(this,_tickListener2).call(this),__privateGet(this,_status).set("enabled",!0)}disable(resetStatus=!0){ticker_index.ticker.unsubscribe(__privateGet(this,_tickListener2)),elementResizer_index.elementResizer.unsubscribe(__privateGet(this,_resizeListener3)),windowResizer_index.windowResizer.unsubscribe(__privateGet(this,_resizeListener3)),resetStatus&&__privateGet(this,_status).reset(),__privateMethod(this,_ScrollRegionElement_instances,removeGlobalClasses_fn).call(this)}connectedCallback(){const scrollSelector=this.getAttribute("data-scroll")||".page-scroll";__privateSet(this,_scrollElement2,document.querySelector(scrollSelector)),__privateSet(this,_loadingUnsub,loading.requestLoadingCallback("load",__privateGet(this,_loadingListener)))}disconnectedCallback(){this.destroy()}};_statusHolderElements=new WeakMap,_progressHolderElements=new WeakMap,_scrollElement2=new WeakMap,_statusHolderCSSProperty=new WeakMap,_progressHolderCSSProperty=new WeakMap,_disabledCSSProperty=new WeakMap,_startOffsetCSSProperty=new WeakMap,_startOffsetMinCSSProperty=new WeakMap,_startExtraOffsetCSSProperty=new WeakMap,_distanceCSSProperty=new WeakMap,_distanceOffsetCSSProperty=new WeakMap,_progressVarCSSProperty=new WeakMap,_enterOnceCSSProperty=new WeakMap,_status=new WeakMap,_initialPosition=new WeakMap,_start=new WeakMap,_finish=new WeakMap,_distance=new WeakMap,_scrolled=new WeakMap,_progress=new WeakMap,_visible=new WeakMap,_loadingUnsub=new WeakMap,_ScrollRegionElement_instances=new WeakSet,addGlobalClasses_fn=__name(function(){this.hasAttribute("data-global-class")&&document.documentElement.classList.add(this.getAttribute("data-global-class"))},"#addGlobalClasses"),removeGlobalClasses_fn=__name(function(){this.hasAttribute("data-global-class")&&document.documentElement.classList.remove(this.getAttribute("data-global-class"))},"#removeGlobalClasses"),init_fn=__name(function(){__privateGet(this,_statusHolderCSSProperty).subscribe(e=>{__privateGet(this,_statusHolderElements).length&&__privateGet(this,_statusHolderElements).forEach(el=>{__privateGet(this,_status).removeElement(el)}),__privateSet(this,_statusHolderElements,[]),e.current?e.current.split(",").map(v=>v.trim()).forEach(selector=>{const element=document.querySelector(selector);element instanceof HTMLElement&&(__privateGet(this,_statusHolderElements).push(element),__privateGet(this,_status).addElement(element))}):(__privateSet(this,_statusHolderElements,[this]),__privateGet(this,_status).addElement(this))}),__privateGet(this,_progressHolderCSSProperty).subscribe(e=>{__privateGet(this,_progressHolderElements).length&&__privateGet(this,_progressHolderElements).forEach(el=>{el.style.removeProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,__privateGet(this,_progressVarCSSProperty).current))}),__privateSet(this,_progressHolderElements,[]),e.current?e.current.split(",").map(v=>v.trim()).forEach(selector=>{const element=document.querySelector(selector);element instanceof HTMLElement&&__privateGet(this,_progressHolderElements).push(element)}):__privateSet(this,_progressHolderElements,[this])}),__privateGet(this,_disabledCSSProperty).subscribe(e=>{e.current&&!e.previous?this.disable():this.enable()}),__privateGet(this,_progressVarCSSProperty).subscribe(e=>{e.current?__privateGet(this,_tickListener2).call(this):e.previous&&__privateGet(this,_progressHolderElements).forEach(el=>{el.style.removeProperty(__privateMethod(this,_ScrollRegionElement_instances,cssVar_fn).call(this,e.previous))})}),__privateGet(this,_distanceCSSProperty).subscribe(()=>{__privateGet(this,_resizeListener3).call(this)}),__privateGet(this,_statusHolderCSSProperty).observe(),__privateGet(this,_progressHolderCSSProperty).observe(),__privateGet(this,_disabledCSSProperty).observe(),__privateGet(this,_startOffsetCSSProperty).observe(),__privateGet(this,_startOffsetMinCSSProperty).observe(),__privateGet(this,_startExtraOffsetCSSProperty).observe(),__privateGet(this,_distanceCSSProperty).observe(),__privateGet(this,_distanceOffsetCSSProperty).observe(),__privateGet(this,_progressVarCSSProperty).observe(),__privateGet(this,_enterOnceCSSProperty).observe()},"#init"),_resizeListener3=new WeakMap,_tickListener2=new WeakMap,enter_fn=__name(function(){const scrollValue=this.scrollValue;__privateGet(this,_status).set("entered",!0),scrollValue===0&&__privateGet(this,_status).set("enteredOnLoad",!0),__privateMethod(this,_ScrollRegionElement_instances,addGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionEnter")},"#enter"),exit_fn=__name(function(){__privateGet(this,_status).set("entered",!1),__privateMethod(this,_ScrollRegionElement_instances,removeGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionExit")},"#exit"),cssVar_fn=__name(function(value){return`--${value}`},"#cssVar"),_loadingListener=new WeakMap,__name(_ScrollRegionElement,"ScrollRegionElement");let ScrollRegionElement=_ScrollRegionElement;customElements.get("e-scroll-region")||customElements.define("e-scroll-region",ScrollRegionElement);exports.ScrollRegionElement=ScrollRegionElement;exports.ScrollbarElement=ScrollbarElement;exports.SmoothScrollElement=SmoothScrollElement;
@@ -25,7 +25,7 @@ import { D as Damped } from "../Damped-m3PWu4LD.js";
25
25
  import { CSSProperty } from "../css-property/index.js";
26
26
  import { d as device } from "../Viewport-B3kVX27H.js";
27
27
  import { scrollEntries } from "../scroll-entries/index.js";
28
- import { s as scrollToElement } from "../scroll-C27tnW2f.js";
28
+ import { s as scrollToElement, a as scrollToElementTweened } from "../scroll-IQwW3E-B.js";
29
29
  import { ElementLinkedStore } from "../element-linked-store/index.js";
30
30
  import { elementResizer } from "../element-resizer/index.js";
31
31
  import { d as dispatchEvent } from "../events-Ds-TuvYW.js";
@@ -187,7 +187,8 @@ const _SmoothScrollElement = class _SmoothScrollElement extends HTMLElement {
187
187
  __privateGet(this, _value).min = 0, __privateGet(this, _value).max = this.scrollHeight - this.offsetHeight;
188
188
  }
189
189
  stop() {
190
- __privateGet(this, _value).unlistenAnimationFrame(), __privateSet(this, _needSync, !0);
190
+ var _a;
191
+ (_a = scrollToElementTweened.value) == null || _a.set(this.scrollTop, { equalize: !0 }), __privateGet(this, _value).unlistenAnimationFrame(), __privateSet(this, _needSync, !0);
191
192
  }
192
193
  sync() {
193
194
  const currentValue = this.scrollTop;
@@ -421,7 +422,7 @@ _statusHolderElements = new WeakMap(), _progressHolderElements = new WeakMap(),
421
422
  }), __privateSet(this, _statusHolderElements, []), e.current ? e.current.split(",").map((v) => v.trim()).forEach((selector) => {
422
423
  const element = document.querySelector(selector);
423
424
  element instanceof HTMLElement && (__privateGet(this, _statusHolderElements).push(element), __privateGet(this, _status).addElement(element));
424
- }) : __privateSet(this, _statusHolderElements, [this]);
425
+ }) : (__privateSet(this, _statusHolderElements, [this]), __privateGet(this, _status).addElement(this));
425
426
  }), __privateGet(this, _progressHolderCSSProperty).subscribe((e) => {
426
427
  __privateGet(this, _progressHolderElements).length && __privateGet(this, _progressHolderElements).forEach((el) => {
427
428
  el.style.removeProperty(
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const attributes=require("../attributes-BADnRZpK.cjs"),Store=require("../Store-B96mD8mD.cjs"),canvas=require("../canvas-BP1ceie3.cjs"),coordinates=require("../coordinates-DQ9XV9M1.cjs"),customElements=require("../custom-elements-BfZCJde6.cjs"),dom=require("../dom-B40i6NXw.cjs"),Tweened=require("../Tweened-BZoUkI7O.cjs"),element=require("../element-CqD0jqBJ.cjs"),events=require("../events-UlGk63iC.cjs"),file=require("../file-RHfA3OS-.cjs"),_function=require("../function-H4b_gTg6.cjs"),gestures=require("../gestures-DtYbQr49.cjs"),stylesheet=require("../stylesheet-DQv6_0na.cjs"),layout=require("../layout-CnGLl7oe.cjs"),loading=require("../loading-7Ju1mFST.cjs"),math=require("../math-C-knY2TL.cjs"),metadata=require("../metadata-BrHUfpV9.cjs"),morph=require("../morph-C71wnWQv.cjs"),number=require("../number-Bu4sGvW7.cjs"),object=require("../object-DTY_W6xG.cjs"),polyfills=require("../polyfills-DZCuDBkA.cjs"),promises=require("../promises-nDm8_iG6.cjs"),scroll=require("../scroll-BWDLSP3i.cjs"),style=require("../style-IDJ6db6n.cjs"),ticker_index=require("../index-BoGx2BWX.cjs"),url=require("../url-D0rESDQq.cjs");function insert(arr,index,...newItems){return[...arr.slice(0,index),...newItems,...arr.slice(index)]}__name(insert,"insert");function shiftArray(arr,positions){const len=arr.length;positions=positions%len;const result=new Array(len);for(let i=0;i<len;i++){const newPos=(i+positions)%len;result[newPos]=arr[i]}return result}__name(shiftArray,"shiftArray");function formatBytes(bytes,decimals=2){if(!+bytes)return"0 Bytes";const k=1024,dm=decimals<0?0:decimals,sizes=["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],i=Math.floor(Math.log(bytes)/Math.log(k));return`${parseFloat((bytes/Math.pow(k,i)).toFixed(dm))} ${sizes[i]}`}__name(formatBytes,"formatBytes");function copyTextToClipboard(text){if(navigator.clipboard)navigator.clipboard.writeText(text).then(()=>{console.log("Text copied to clipboard successfully!")}).catch(err=>{console.error("Failed to copy text to clipboard:",err)});else{const textArea=document.createElement("textarea");textArea.value=text,textArea.style.position="fixed",textArea.style.top="0",textArea.style.left="0",document.body.appendChild(textArea),textArea.select();try{document.execCommand("copy")?console.log("Text copied to clipboard successfully!"):console.error("Failed to copy text to clipboard.")}catch(err){console.error("Failed to copy text to clipboard:",err)}document.body.removeChild(textArea)}}__name(copyTextToClipboard,"copyTextToClipboard");function dotRectCollision(dot,rect){return dot.x<rect.x+rect.width&&dot.x>rect.x&&dot.y<rect.y+rect.height&&dot.y>rect.y}__name(dotRectCollision,"dotRectCollision");function dotCircleCollision(dot,circle){return Math.sqrt((dot.x-circle.x)**2+(dot.y-circle.y)**2)<circle.radius}__name(dotCircleCollision,"dotCircleCollision");function dotPolygonCollision(dot,polygon){let inside=!1;const{x,y}=dot;for(let i=0,j=polygon.length-1;i<polygon.length;j=i++){const xi=polygon[i].x,yi=polygon[i].y,xj=polygon[j].x,yj=polygon[j].y;yi>y!=yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi&&(inside=!inside)}return inside}__name(dotPolygonCollision,"dotPolygonCollision");function rgbToHex(r,g,b){const toHex=__name(c=>{const hex=c.toString(16);return hex.length===1?"0"+hex:hex},"toHex");return`#${toHex(r)}${toHex(g)}${toHex(b)}`}__name(rgbToHex,"rgbToHex");function getStyleRuleActualValue(rule,name){const obj=rule.style.getPropertyValue(name);if(obj){const stringValue=obj.toString();return stringValue.startsWith("var")?getStyleRuleActualValue(rule,stringValue.slice(4,-1)):stringValue}}__name(getStyleRuleActualValue,"getStyleRuleActualValue");function getRootVariables(...names){const variables={};return Array.from(document.styleSheets).forEach(stylesheet2=>{Array.from(stylesheet2.cssRules).forEach(rule=>{rule instanceof CSSStyleRule&&rule.selectorText===":root"&&names.forEach(name=>{const value=getStyleRuleActualValue(rule,name);value&&(variables[name]=value)})})}),names.forEach(name=>{variables[name]||console.warn(`variable named ${name} not found`)}),variables}__name(getRootVariables,"getRootVariables");function encode(string){const decodedStr=window.atob(string);return decodeURIComponent(window.escape(decodedStr))}__name(encode,"encode");function decode(string){const encodedStr=window.unescape(encodeURIComponent(string));return window.btoa(encodedStr)}__name(decode,"decode");const phoneRegex=/^(\+?\d{1,3}[-.\s]?)?(\(?\d{3}\)?[-.\s]?)?\d{1,4}[-.\s]?\d{2,4}[-.\s]?\d{2,4}$/,emailRegex=/^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/;function tryCreateHrefFromContact(contact){let href,type;return emailRegex.test(contact)?(href=`mailto:${contact.trim()}`,type="email"):phoneRegex.test(contact)&&(href=`tel:${contact.replace(/[^0-9\\.\\+]+/g,"")}`,type="phone"),{href,type,contact}}__name(tryCreateHrefFromContact,"tryCreateHrefFromContact");function transliterate(text,options={}){const{separator="-",lowercase=!0,replaceNumbers=!0,maxLength=60}=options,charMap={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"j",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"sh",ъ:"",ы:"y",ь:"",э:"e",ю:"yu",я:"ya"};let result=text.replace(/[а-яё]/gi,char=>{const lowerChar=char.toLowerCase(),replacement=charMap[lowerChar]||"";return char===lowerChar?replacement:replacement.toUpperCase()});if(replaceNumbers){const numberMap={0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"};result=result.replace(/[0-9]/g,num=>numberMap[num]||num)}return lowercase&&(result=result.toLowerCase()),result=result.replace(/[^\w\-]+/g,separator).replace(new RegExp(`\\${separator}+`,"g"),separator).replace(new RegExp(`(^\\${separator}|\\${separator}$)`,"g"),""),maxLength>0&&result.length>maxLength&&(result=result.substring(0,maxLength).replace(new RegExp(`\\${separator}[^\\${separator}]*$`),"")),result}__name(transliterate,"transliterate");function splitProgress(progress,items,initialItemsWithFullProgress=0){const totalItems=items-initialItemsWithFullProgress,splitted=[];for(let item=0;item<items;item++){const offset=item/totalItems-initialItemsWithFullProgress/totalItems,itemProgress=Math.min(1,Math.max(0,(progress-offset)*totalItems));splitted.push(itemProgress)}return splitted}__name(splitProgress,"splitProgress");function setElementsProgress(progress,elements,initialItemsWithFullProgress=0){const totalItems=elements.length-initialItemsWithFullProgress;elements.forEach((el,index)=>{const offset=index/totalItems-initialItemsWithFullProgress/totalItems,itemProgress=Math.min(1,Math.max(0,(progress-offset)*totalItems));el.style.setProperty("--item-progress",itemProgress.toString())})}__name(setElementsProgress,"setElementsProgress");function setActiveContentClasses(index,elements){elements.forEach((el,i)=>{i>index?(el.classList.remove("current","previous"),el.classList.add("next")):i<index?(el.classList.remove("current","next"),el.classList.add("previous")):(el.classList.remove("previous","next"),el.classList.add("current"))})}__name(setActiveContentClasses,"setActiveContentClasses");function cloneTemplateContent(templateElement,callback){if(templateElement){const element2=templateElement.content.cloneNode(!0).firstElementChild;return element2&&(callback==null||callback(element2)),element2}return null}__name(cloneTemplateContent,"cloneTemplateContent");function setIntervalOnIntersection(element2,delay,callback,options){let intervalId,isIntersecting=!1,current=0,previous=0,tickerUnsubsribe;const toggleInterval=__name(()=>{clearInterval(intervalId),tickerUnsubsribe==null||tickerUnsubsribe(),options!=null&&options.restartCounter&&(current=0),isIntersecting&&(callback({current,previous,progress:0}),previous=current,tickerUnsubsribe=restartTicker(),intervalId=setInterval(()=>{tickerUnsubsribe==null||tickerUnsubsribe(),current++,callback({current,previous,progress:0}),previous=current,tickerUnsubsribe=restartTicker()},delay))},"toggleInterval"),restartTicker=__name(()=>ticker_index.ticker.subscribe(e=>{const progress=e.timeElapsedSinceSubscription/delay;callback({current,previous,progress})}),"restartTicker"),intersectorUnsubscribe=ticker_index.intersector.subscribe(element2,e=>{isIntersecting=e.isIntersecting,toggleInterval()});return{destroy:__name(()=>{tickerUnsubsribe==null||tickerUnsubsribe(),intersectorUnsubscribe(),clearInterval(intervalId)},"destroy"),restart:__name((currentValue,previousValue)=>{current=currentValue||0,previousValue&&(previous=previousValue),toggleInterval()},"restart"),stop:__name(()=>{clearInterval(intervalId),tickerUnsubsribe==null||tickerUnsubsribe()},"stop")}}__name(setIntervalOnIntersection,"setIntervalOnIntersection");exports.getElementAttributesAdvanced=attributes.getElementAttributesAdvanced;exports.parseAttribute=attributes.parseAttribute;exports.parseAttributeValue=attributes.parseAttributeValue;exports.parseAttributeValueAdvanced=attributes.parseAttributeValueAdvanced;exports.camelToKebab=Store.camelToKebab;exports.capitalize=Store.capitalize;exports.declension=Store.declension;exports.decodeHtmlEntities=Store.decodeHtmlEntities;exports.generateId=Store.generateId;exports.getRandomChar=Store.getRandomChar;exports.isBrowser=Store.isBrowser;exports.isUppercase=Store.isUppercase;exports.kebabToCamel=Store.kebabToCamel;exports.snakeToDotted=Store.snakeToDotted;exports.toPascalCase=Store.toPascalCase;exports.uncapitalize=Store.uncapitalize;exports.contain=canvas.contain;exports.cover=canvas.cover;exports.fixPosition=canvas.fixPosition;exports.measureText=canvas.measureText;exports.getPointerPosition=coordinates.getPointerPosition;exports.normalize=coordinates.normalize;exports.screenToCartesian=coordinates.screenToCartesian;exports.whenDefined=customElements.whenDefined;exports.createScriptElement=dom.createScriptElement;exports.deepQuerySelectorAll=dom.deepQuerySelectorAll;exports.excludeElements=dom.excludeElements;exports.findParentElement=dom.findParentElement;exports.findScrollParentElement=dom.findScrollParentElement;exports.getAllParentElements=dom.getAllParentElements;exports.getElement=dom.getElement;exports.intersectElements=dom.intersectElements;exports.traverseNodes=dom.traverseNodes;exports.traverseShadowRoots=dom.traverseShadowRoots;exports.easeInCubic=Tweened.easeInCubic;exports.easeInExpo=Tweened.easeInExpo;exports.easeInOutCubic=Tweened.easeInOutCubic;exports.easeInOutExpo=Tweened.easeInOutExpo;exports.easeInOutQuad=Tweened.easeInOutQuad;exports.easeInOutQuart=Tweened.easeInOutQuart;exports.easeInOutQuint=Tweened.easeInOutQuint;exports.easeInQuad=Tweened.easeInQuad;exports.easeInQuart=Tweened.easeInQuart;exports.easeInQuint=Tweened.easeInQuint;exports.easeOutCubic=Tweened.easeOutCubic;exports.easeOutExpo=Tweened.easeOutExpo;exports.easeOutQuad=Tweened.easeOutQuad;exports.easeOutQuart=Tweened.easeOutQuart;exports.easeOutQuint=Tweened.easeOutQuint;exports.easings=Tweened.easings;exports.linear=Tweened.linear;exports.isElementVisible=element.isElementVisible;exports.dispatchEvent=events.dispatchEvent;exports.createJSONAndSave=file.createJSONAndSave;exports.downloadURI=file.downloadURI;exports.debounce=_function.debounce;exports.throttle=_function.throttle;exports.setupDrag=gestures.setupDrag;exports.createStylesheet=stylesheet.createStylesheet;exports.styleToString=stylesheet.styleToString;exports.getCumulativeOffsetLeft=layout.getCumulativeOffsetLeft;exports.getCumulativeOffsetTop=layout.getCumulativeOffsetTop;exports.getCumulativePosition=layout.getCumulativePosition;exports.getStickyOffset=layout.getStickyOffset;exports.requestLoadingCallback=loading.requestLoadingCallback;exports.calculateDistance=math.calculateDistance;exports.calculateDistanceWithRadius=math.calculateDistanceWithRadius;exports.clamp=math.clamp;exports.damp=math.damp;exports.lerp=math.lerp;exports.mapRange=math.mapRange;exports.round=math.round;exports.smootherstep=math.smootherstep;exports.smoothstep=math.smoothstep;exports.step=math.step;exports.formatMediaDuration=metadata.formatMediaDuration;exports.ACTION_CREATE=morph.ACTION_CREATE;exports.ACTION_PRESERVE=morph.ACTION_PRESERVE;exports.ACTION_REMOVE=morph.ACTION_REMOVE;exports.ACTION_REMOVE_ATTR=morph.ACTION_REMOVE_ATTR;exports.ACTION_REPLACE=morph.ACTION_REPLACE;exports.ACTION_SET_ATTR=morph.ACTION_SET_ATTR;exports.ACTION_SKIP=morph.ACTION_SKIP;exports.ACTION_UPDATE=morph.ACTION_UPDATE;exports.NODE_TYPE_COMMENT=morph.NODE_TYPE_COMMENT;exports.NODE_TYPE_DOCUMENT=morph.NODE_TYPE_DOCUMENT;exports.NODE_TYPE_ELEMENT=morph.NODE_TYPE_ELEMENT;exports.NODE_TYPE_TEXT=morph.NODE_TYPE_TEXT;exports.diff=morph.diff;exports.morph=morph.morph;exports.patch=morph.patch;exports.beautifyNumber=number.beautifyNumber;exports.loopNumber=number.loopNumber;exports.preciseNumber=number.preciseNumber;exports.roundNumberTo=number.roundNumberTo;exports.toStep=number.toStep;exports.cloneDeep=object.cloneDeep;exports.compareObjects=object.compareObjects;exports.isESClass=object.isESClass;exports.isNullish=object.isNullish;exports.isObject=object.isObject;exports.mergeDeep=object.mergeDeep;exports.mixin=object.mixin;exports.omit=object.omit;exports.pick=object.pick;exports.nullishCoalescing=polyfills.nullishCoalescing;exports.requestIdleCallback=polyfills.requestIdleCallback;exports.wait=promises.wait;exports.scrollToElement=scroll.scrollToElement;exports.getElementTransitionDurationMS=style.getElementTransitionDurationMS;exports.getElementTransitionDurationS=style.getElementTransitionDurationS;exports.changeHistory=url.changeHistory;exports.isLocalUrl=url.isLocalUrl;exports.normalizeBase=url.normalizeBase;exports.normalizeRelativeURLs=url.normalizeRelativeURLs;exports.normalizeURL=url.normalizeURL;exports.parseSearchParameters=url.parseSearchParameters;exports.searchParamsObjectToString=url.searchParamsObjectToString;exports.searchParamsToObject=url.searchParamsToObject;exports.splitPath=url.splitPath;exports.updateSearchParameter=url.updateSearchParameter;exports.cloneTemplateContent=cloneTemplateContent;exports.copyTextToClipboard=copyTextToClipboard;exports.decode=decode;exports.dotCircleCollision=dotCircleCollision;exports.dotPolygonCollision=dotPolygonCollision;exports.dotRectCollision=dotRectCollision;exports.encode=encode;exports.formatBytes=formatBytes;exports.getRootVariables=getRootVariables;exports.getStyleRuleActualValue=getStyleRuleActualValue;exports.insert=insert;exports.rgbToHex=rgbToHex;exports.setActiveContentClasses=setActiveContentClasses;exports.setElementsProgress=setElementsProgress;exports.setIntervalOnIntersection=setIntervalOnIntersection;exports.shiftArray=shiftArray;exports.splitProgress=splitProgress;exports.transliterate=transliterate;exports.tryCreateHrefFromContact=tryCreateHrefFromContact;
1
+ "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const attributes=require("../attributes-BADnRZpK.cjs"),Store=require("../Store-B96mD8mD.cjs"),canvas=require("../canvas-BP1ceie3.cjs"),coordinates=require("../coordinates-DQ9XV9M1.cjs"),customElements=require("../custom-elements-BfZCJde6.cjs"),dom=require("../dom-B40i6NXw.cjs"),Tweened=require("../Tweened-BZoUkI7O.cjs"),element=require("../element-CqD0jqBJ.cjs"),events=require("../events-UlGk63iC.cjs"),file=require("../file-RHfA3OS-.cjs"),_function=require("../function-H4b_gTg6.cjs"),gestures=require("../gestures-DtYbQr49.cjs"),stylesheet=require("../stylesheet-DQv6_0na.cjs"),layout=require("../layout-CnGLl7oe.cjs"),loading=require("../loading-7Ju1mFST.cjs"),math=require("../math-C-knY2TL.cjs"),metadata=require("../metadata-BrHUfpV9.cjs"),morph=require("../morph-C71wnWQv.cjs"),number=require("../number-Bu4sGvW7.cjs"),object=require("../object-DTY_W6xG.cjs"),polyfills=require("../polyfills-DZCuDBkA.cjs"),promises=require("../promises-nDm8_iG6.cjs"),scroll=require("../scroll-DfvKl-On.cjs"),style=require("../style-IDJ6db6n.cjs"),ticker_index=require("../index-BoGx2BWX.cjs"),url=require("../url-D0rESDQq.cjs");function insert(arr,index,...newItems){return[...arr.slice(0,index),...newItems,...arr.slice(index)]}__name(insert,"insert");function shiftArray(arr,positions){const len=arr.length;positions=positions%len;const result=new Array(len);for(let i=0;i<len;i++){const newPos=(i+positions)%len;result[newPos]=arr[i]}return result}__name(shiftArray,"shiftArray");function formatBytes(bytes,decimals=2){if(!+bytes)return"0 Bytes";const k=1024,dm=decimals<0?0:decimals,sizes=["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],i=Math.floor(Math.log(bytes)/Math.log(k));return`${parseFloat((bytes/Math.pow(k,i)).toFixed(dm))} ${sizes[i]}`}__name(formatBytes,"formatBytes");function copyTextToClipboard(text){if(navigator.clipboard)navigator.clipboard.writeText(text).then(()=>{console.log("Text copied to clipboard successfully!")}).catch(err=>{console.error("Failed to copy text to clipboard:",err)});else{const textArea=document.createElement("textarea");textArea.value=text,textArea.style.position="fixed",textArea.style.top="0",textArea.style.left="0",document.body.appendChild(textArea),textArea.select();try{document.execCommand("copy")?console.log("Text copied to clipboard successfully!"):console.error("Failed to copy text to clipboard.")}catch(err){console.error("Failed to copy text to clipboard:",err)}document.body.removeChild(textArea)}}__name(copyTextToClipboard,"copyTextToClipboard");function dotRectCollision(dot,rect){return dot.x<rect.x+rect.width&&dot.x>rect.x&&dot.y<rect.y+rect.height&&dot.y>rect.y}__name(dotRectCollision,"dotRectCollision");function dotCircleCollision(dot,circle){return Math.sqrt((dot.x-circle.x)**2+(dot.y-circle.y)**2)<circle.radius}__name(dotCircleCollision,"dotCircleCollision");function dotPolygonCollision(dot,polygon){let inside=!1;const{x,y}=dot;for(let i=0,j=polygon.length-1;i<polygon.length;j=i++){const xi=polygon[i].x,yi=polygon[i].y,xj=polygon[j].x,yj=polygon[j].y;yi>y!=yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi&&(inside=!inside)}return inside}__name(dotPolygonCollision,"dotPolygonCollision");function rgbToHex(r,g,b){const toHex=__name(c=>{const hex=c.toString(16);return hex.length===1?"0"+hex:hex},"toHex");return`#${toHex(r)}${toHex(g)}${toHex(b)}`}__name(rgbToHex,"rgbToHex");function getStyleRuleActualValue(rule,name){const obj=rule.style.getPropertyValue(name);if(obj){const stringValue=obj.toString();return stringValue.startsWith("var")?getStyleRuleActualValue(rule,stringValue.slice(4,-1)):stringValue}}__name(getStyleRuleActualValue,"getStyleRuleActualValue");function getRootVariables(...names){const variables={};return Array.from(document.styleSheets).forEach(stylesheet2=>{Array.from(stylesheet2.cssRules).forEach(rule=>{rule instanceof CSSStyleRule&&rule.selectorText===":root"&&names.forEach(name=>{const value=getStyleRuleActualValue(rule,name);value&&(variables[name]=value)})})}),names.forEach(name=>{variables[name]||console.warn(`variable named ${name} not found`)}),variables}__name(getRootVariables,"getRootVariables");function encode(string){const decodedStr=window.atob(string);return decodeURIComponent(window.escape(decodedStr))}__name(encode,"encode");function decode(string){const encodedStr=window.unescape(encodeURIComponent(string));return window.btoa(encodedStr)}__name(decode,"decode");const phoneRegex=/^(\+?\d{1,3}[-.\s]?)?(\(?\d{3}\)?[-.\s]?)?\d{1,4}[-.\s]?\d{2,4}[-.\s]?\d{2,4}$/,emailRegex=/^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/;function tryCreateHrefFromContact(contact){let href,type;return emailRegex.test(contact)?(href=`mailto:${contact.trim()}`,type="email"):phoneRegex.test(contact)&&(href=`tel:${contact.replace(/[^0-9\\.\\+]+/g,"")}`,type="phone"),{href,type,contact}}__name(tryCreateHrefFromContact,"tryCreateHrefFromContact");function transliterate(text,options={}){const{separator="-",lowercase=!0,replaceNumbers=!0,maxLength=60}=options,charMap={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"j",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"h",ц:"c",ч:"ch",ш:"sh",щ:"sh",ъ:"",ы:"y",ь:"",э:"e",ю:"yu",я:"ya"};let result=text.replace(/[а-яё]/gi,char=>{const lowerChar=char.toLowerCase(),replacement=charMap[lowerChar]||"";return char===lowerChar?replacement:replacement.toUpperCase()});if(replaceNumbers){const numberMap={0:"zero",1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"};result=result.replace(/[0-9]/g,num=>numberMap[num]||num)}return lowercase&&(result=result.toLowerCase()),result=result.replace(/[^\w\-]+/g,separator).replace(new RegExp(`\\${separator}+`,"g"),separator).replace(new RegExp(`(^\\${separator}|\\${separator}$)`,"g"),""),maxLength>0&&result.length>maxLength&&(result=result.substring(0,maxLength).replace(new RegExp(`\\${separator}[^\\${separator}]*$`),"")),result}__name(transliterate,"transliterate");function splitProgress(progress,items,initialItemsWithFullProgress=0){const totalItems=items-initialItemsWithFullProgress,splitted=[];for(let item=0;item<items;item++){const offset=item/totalItems-initialItemsWithFullProgress/totalItems,itemProgress=Math.min(1,Math.max(0,(progress-offset)*totalItems));splitted.push(itemProgress)}return splitted}__name(splitProgress,"splitProgress");function setElementsProgress(progress,elements,initialItemsWithFullProgress=0){const totalItems=elements.length-initialItemsWithFullProgress;elements.forEach((el,index)=>{const offset=index/totalItems-initialItemsWithFullProgress/totalItems,itemProgress=Math.min(1,Math.max(0,(progress-offset)*totalItems));el.style.setProperty("--item-progress",itemProgress.toString())})}__name(setElementsProgress,"setElementsProgress");function setActiveContentClasses(index,elements){elements.forEach((el,i)=>{i>index?(el.classList.remove("current","previous"),el.classList.add("next")):i<index?(el.classList.remove("current","next"),el.classList.add("previous")):(el.classList.remove("previous","next"),el.classList.add("current"))})}__name(setActiveContentClasses,"setActiveContentClasses");function cloneTemplateContent(templateElement,callback){if(templateElement){const element2=templateElement.content.cloneNode(!0).firstElementChild;return element2&&(callback==null||callback(element2)),element2}return null}__name(cloneTemplateContent,"cloneTemplateContent");function setIntervalOnIntersection(element2,delay,callback,options){let intervalId,isIntersecting=!1,current=0,previous=0,tickerUnsubsribe;const toggleInterval=__name(()=>{clearInterval(intervalId),tickerUnsubsribe==null||tickerUnsubsribe(),options!=null&&options.restartCounter&&(current=0),isIntersecting&&(callback({current,previous,progress:0}),previous=current,tickerUnsubsribe=restartTicker(),intervalId=setInterval(()=>{tickerUnsubsribe==null||tickerUnsubsribe(),current++,callback({current,previous,progress:0}),previous=current,tickerUnsubsribe=restartTicker()},delay))},"toggleInterval"),restartTicker=__name(()=>ticker_index.ticker.subscribe(e=>{const progress=e.timeElapsedSinceSubscription/delay;callback({current,previous,progress})}),"restartTicker"),intersectorUnsubscribe=ticker_index.intersector.subscribe(element2,e=>{isIntersecting=e.isIntersecting,toggleInterval()});return{destroy:__name(()=>{tickerUnsubsribe==null||tickerUnsubsribe(),intersectorUnsubscribe(),clearInterval(intervalId)},"destroy"),restart:__name((currentValue,previousValue)=>{current=currentValue||0,previousValue&&(previous=previousValue),toggleInterval()},"restart"),stop:__name(()=>{clearInterval(intervalId),tickerUnsubsribe==null||tickerUnsubsribe()},"stop")}}__name(setIntervalOnIntersection,"setIntervalOnIntersection");exports.getElementAttributesAdvanced=attributes.getElementAttributesAdvanced;exports.parseAttribute=attributes.parseAttribute;exports.parseAttributeValue=attributes.parseAttributeValue;exports.parseAttributeValueAdvanced=attributes.parseAttributeValueAdvanced;exports.camelToKebab=Store.camelToKebab;exports.capitalize=Store.capitalize;exports.declension=Store.declension;exports.decodeHtmlEntities=Store.decodeHtmlEntities;exports.generateId=Store.generateId;exports.getRandomChar=Store.getRandomChar;exports.isBrowser=Store.isBrowser;exports.isUppercase=Store.isUppercase;exports.kebabToCamel=Store.kebabToCamel;exports.snakeToDotted=Store.snakeToDotted;exports.toPascalCase=Store.toPascalCase;exports.uncapitalize=Store.uncapitalize;exports.contain=canvas.contain;exports.cover=canvas.cover;exports.fixPosition=canvas.fixPosition;exports.measureText=canvas.measureText;exports.getPointerPosition=coordinates.getPointerPosition;exports.normalize=coordinates.normalize;exports.screenToCartesian=coordinates.screenToCartesian;exports.whenDefined=customElements.whenDefined;exports.createScriptElement=dom.createScriptElement;exports.deepQuerySelectorAll=dom.deepQuerySelectorAll;exports.excludeElements=dom.excludeElements;exports.findParentElement=dom.findParentElement;exports.findScrollParentElement=dom.findScrollParentElement;exports.getAllParentElements=dom.getAllParentElements;exports.getElement=dom.getElement;exports.intersectElements=dom.intersectElements;exports.traverseNodes=dom.traverseNodes;exports.traverseShadowRoots=dom.traverseShadowRoots;exports.easeInCubic=Tweened.easeInCubic;exports.easeInExpo=Tweened.easeInExpo;exports.easeInOutCubic=Tweened.easeInOutCubic;exports.easeInOutExpo=Tweened.easeInOutExpo;exports.easeInOutQuad=Tweened.easeInOutQuad;exports.easeInOutQuart=Tweened.easeInOutQuart;exports.easeInOutQuint=Tweened.easeInOutQuint;exports.easeInQuad=Tweened.easeInQuad;exports.easeInQuart=Tweened.easeInQuart;exports.easeInQuint=Tweened.easeInQuint;exports.easeOutCubic=Tweened.easeOutCubic;exports.easeOutExpo=Tweened.easeOutExpo;exports.easeOutQuad=Tweened.easeOutQuad;exports.easeOutQuart=Tweened.easeOutQuart;exports.easeOutQuint=Tweened.easeOutQuint;exports.easings=Tweened.easings;exports.linear=Tweened.linear;exports.isElementVisible=element.isElementVisible;exports.dispatchEvent=events.dispatchEvent;exports.createJSONAndSave=file.createJSONAndSave;exports.downloadURI=file.downloadURI;exports.debounce=_function.debounce;exports.throttle=_function.throttle;exports.setupDrag=gestures.setupDrag;exports.createStylesheet=stylesheet.createStylesheet;exports.styleToString=stylesheet.styleToString;exports.getCumulativeOffsetLeft=layout.getCumulativeOffsetLeft;exports.getCumulativeOffsetTop=layout.getCumulativeOffsetTop;exports.getCumulativePosition=layout.getCumulativePosition;exports.getStickyOffset=layout.getStickyOffset;exports.requestLoadingCallback=loading.requestLoadingCallback;exports.calculateDistance=math.calculateDistance;exports.calculateDistanceWithRadius=math.calculateDistanceWithRadius;exports.clamp=math.clamp;exports.damp=math.damp;exports.lerp=math.lerp;exports.mapRange=math.mapRange;exports.round=math.round;exports.smootherstep=math.smootherstep;exports.smoothstep=math.smoothstep;exports.step=math.step;exports.formatMediaDuration=metadata.formatMediaDuration;exports.ACTION_CREATE=morph.ACTION_CREATE;exports.ACTION_PRESERVE=morph.ACTION_PRESERVE;exports.ACTION_REMOVE=morph.ACTION_REMOVE;exports.ACTION_REMOVE_ATTR=morph.ACTION_REMOVE_ATTR;exports.ACTION_REPLACE=morph.ACTION_REPLACE;exports.ACTION_SET_ATTR=morph.ACTION_SET_ATTR;exports.ACTION_SKIP=morph.ACTION_SKIP;exports.ACTION_UPDATE=morph.ACTION_UPDATE;exports.NODE_TYPE_COMMENT=morph.NODE_TYPE_COMMENT;exports.NODE_TYPE_DOCUMENT=morph.NODE_TYPE_DOCUMENT;exports.NODE_TYPE_ELEMENT=morph.NODE_TYPE_ELEMENT;exports.NODE_TYPE_TEXT=morph.NODE_TYPE_TEXT;exports.diff=morph.diff;exports.morph=morph.morph;exports.patch=morph.patch;exports.beautifyNumber=number.beautifyNumber;exports.loopNumber=number.loopNumber;exports.preciseNumber=number.preciseNumber;exports.roundNumberTo=number.roundNumberTo;exports.toStep=number.toStep;exports.cloneDeep=object.cloneDeep;exports.compareObjects=object.compareObjects;exports.isESClass=object.isESClass;exports.isNullish=object.isNullish;exports.isObject=object.isObject;exports.mergeDeep=object.mergeDeep;exports.mixin=object.mixin;exports.omit=object.omit;exports.pick=object.pick;exports.nullishCoalescing=polyfills.nullishCoalescing;exports.requestIdleCallback=polyfills.requestIdleCallback;exports.wait=promises.wait;exports.scrollToElement=scroll.scrollToElement;exports.scrollToElementTweened=scroll.scrollToElementTweened;exports.getElementTransitionDurationMS=style.getElementTransitionDurationMS;exports.getElementTransitionDurationS=style.getElementTransitionDurationS;exports.changeHistory=url.changeHistory;exports.isLocalUrl=url.isLocalUrl;exports.normalizeBase=url.normalizeBase;exports.normalizeRelativeURLs=url.normalizeRelativeURLs;exports.normalizeURL=url.normalizeURL;exports.parseSearchParameters=url.parseSearchParameters;exports.searchParamsObjectToString=url.searchParamsObjectToString;exports.searchParamsToObject=url.searchParamsToObject;exports.splitPath=url.splitPath;exports.updateSearchParameter=url.updateSearchParameter;exports.cloneTemplateContent=cloneTemplateContent;exports.copyTextToClipboard=copyTextToClipboard;exports.decode=decode;exports.dotCircleCollision=dotCircleCollision;exports.dotPolygonCollision=dotPolygonCollision;exports.dotRectCollision=dotRectCollision;exports.encode=encode;exports.formatBytes=formatBytes;exports.getRootVariables=getRootVariables;exports.getStyleRuleActualValue=getStyleRuleActualValue;exports.insert=insert;exports.rgbToHex=rgbToHex;exports.setActiveContentClasses=setActiveContentClasses;exports.setElementsProgress=setElementsProgress;exports.setIntervalOnIntersection=setIntervalOnIntersection;exports.shiftArray=shiftArray;exports.splitProgress=splitProgress;exports.transliterate=transliterate;exports.tryCreateHrefFromContact=tryCreateHrefFromContact;
@@ -22,10 +22,10 @@ import { b as b8, l as l3, p as p4, r as r3, t as t4 } from "../number-DiVt2xnh.
22
22
  import { c as c10, d as d9, i as i6, b as b9, a as a8, m as m5, e as e6, o as o2, p as p5 } from "../object-CiIdEmJx.js";
23
23
  import { n as n3, r as r4 } from "../polyfills-CG1XJNia.js";
24
24
  import { w as w2 } from "../promises-BsIKOEDq.js";
25
- import { s as s6 } from "../scroll-C27tnW2f.js";
26
- import { g as g8, a as a9 } from "../style-DBoQWK0d.js";
25
+ import { s as s6, a as a9 } from "../scroll-IQwW3E-B.js";
26
+ import { g as g8, a as a10 } from "../style-DBoQWK0d.js";
27
27
  import { i as intersector, t as ticker } from "../index-DAG0CtYo.js";
28
- import { d as d10, i as i7, a as a10, b as b10, n as n4, p as p6, s as s7, e as e7, c as c11, u as u2 } from "../url-DTxLpq5m.js";
28
+ import { d as d10, i as i7, a as a11, b as b10, n as n4, p as p6, s as s7, e as e7, c as c11, u as u2 } from "../url-DTxLpq5m.js";
29
29
  function insert(arr, index, ...newItems) {
30
30
  return [...arr.slice(0, index), ...newItems, ...arr.slice(index)];
31
31
  }
@@ -349,7 +349,7 @@ export {
349
349
  g4 as getElement,
350
350
  g as getElementAttributesAdvanced,
351
351
  g8 as getElementTransitionDurationMS,
352
- a9 as getElementTransitionDurationS,
352
+ a10 as getElementTransitionDurationS,
353
353
  g3 as getPointerPosition,
354
354
  h as getRandomChar,
355
355
  getRootVariables,
@@ -374,7 +374,7 @@ export {
374
374
  e6 as mixin,
375
375
  m4 as morph,
376
376
  n as normalize,
377
- a10 as normalizeBase,
377
+ a11 as normalizeBase,
378
378
  b10 as normalizeRelativeURLs,
379
379
  n4 as normalizeURL,
380
380
  n3 as nullishCoalescing,
@@ -393,6 +393,7 @@ export {
393
393
  r3 as roundNumberTo,
394
394
  s2 as screenToCartesian,
395
395
  s6 as scrollToElement,
396
+ a9 as scrollToElementTweened,
396
397
  s7 as searchParamsObjectToString,
397
398
  e7 as searchParamsToObject,
398
399
  setActiveContentClasses,
@@ -1,5 +1,8 @@
1
- import { TweenedOptions } from '../animation/Tweened';
1
+ import { Tweened, TweenedOptions } from '../animation/Tweened';
2
2
  import { ElementOrSelector } from '.';
3
+ export declare const scrollToElementTweened: {
4
+ value: Tweened | null;
5
+ };
3
6
  export interface ScrollToElementOptions extends Pick<TweenedOptions, 'duration' | 'easing'> {
4
7
  behavior?: ScrollBehavior;
5
8
  offset?: number | string | ElementOrSelector<HTMLElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aptechka",
3
- "version": "0.91.0",
3
+ "version": "0.91.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/denisavitski/aptechka.git"
@@ -1 +0,0 @@
1
- "use strict";var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});const Tweened=require("./Tweened-BZoUkI7O.cjs"),order_index=require("./order/index.cjs"),dom=require("./dom-B40i6NXw.cjs"),layout=require("./layout-CnGLl7oe.cjs");require("construct-style-sheets-polyfill");require("./index-BoGx2BWX.cjs");let tweened;function scrollToElement(elementOrSelectorOrNumber,{behavior="instant",offset=0,center=!1,scrollElement,scrollCallback,duration,easing,startValue}={}){var _a;let elementPosition,centerElement=scrollElement,scrollContainerElement=scrollElement;if(typeof elementOrSelectorOrNumber=="number")elementPosition=elementOrSelectorOrNumber;else{const element=dom.getElement(elementOrSelectorOrNumber);element&&(centerElement=element,scrollContainerElement=scrollElement||dom.findScrollParentElement(element),elementPosition=layout.getCumulativeOffsetTop(element))}if(centerElement&&scrollContainerElement&&typeof elementPosition=="number"){const offsetValue=typeof offset=="number"?offset:typeof offset=="string"&&!isNaN(parseFloat(offset))?parseFloat(offset):(((_a=dom.getElement(offset))==null?void 0:_a.offsetHeight)||0)*-1,height=centerElement instanceof HTMLElement?centerElement.offsetHeight:innerHeight,centerValue=center?innerHeight/2*-1+height/2:0,top=elementPosition+offsetValue+centerValue,scrollToValue=__name(value=>{scrollContainerElement instanceof HTMLElement&&scrollContainerElement.tagName==="E-SMOOTH-SCROLL"?scrollContainerElement.scrollToValue(value,duration?"instant":behavior):scrollContainerElement.scroll({top:value,behavior:duration?"instant":behavior})},"scrollToValue");if(duration){tweened&&tweened.close();let tweenedStart=0;startValue?tweenedStart=startValue:scrollContainerElement instanceof HTMLElement?tweenedStart=scrollContainerElement.scrollTop:tweenedStart=window.scrollY,tweened=new Tweened.Tweened(tweenedStart,{duration,easing,order:order_index.TICK_ORDER.SCROLL}),tweened.subscribe(e=>{scrollCallback?scrollCallback(e.current):scrollToValue(e.current)}),tweened.set(top,{duration,easing})}else scrollCallback?scrollCallback(top):scrollToValue(top)}}__name(scrollToElement,"scrollToElement");exports.scrollToElement=scrollToElement;