aptechka 0.95.0 → 0.95.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.
- package/lib/scroll-kit/index.cjs +1 -1
- package/lib/scroll-kit/index.d.ts +2 -1
- package/lib/scroll-kit/index.js +146 -145
- package/package.json +1 -1
package/lib/scroll-kit/index.cjs
CHANGED
|
@@ -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 intersector_index=require("../index-BrasTsja.cjs"),browser=require("../browser-CIp8NsnF.cjs"),dom=require("../dom-B40i6NXw.cjs"),gestures=require("../gestures-DtYbQr49.cjs");require("construct-style-sheets-polyfill");const Damped=require("../Damped-DTVkIAqc.cjs"),cssProperty_index=require("../css-property/index.cjs"),Viewport=require("../Viewport-BdFs1Zsn.cjs"),order_index=require("../order/index.cjs"),scrollEntries_index=require("../scroll-entries/index.cjs"),ScrollNavigator=require("../ScrollNavigator-CNKI1Iae.cjs"),elementLinkedStore_index=require("../element-linked-store/index.cjs"),elementResizer_index=require("../element-resizer/index.cjs"),events=require("../events-UlGk63iC.cjs"),layout=require("../layout-rR4-aYTY.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,init_fn,destroy_fn,scrollPosition_get,scrollSize_get,scrollViewportSize_get,_scrollListener,_resizeListener,_grabListener,_tickListener,_intersectionListener,_spaUpdateListener;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?(intersector_index.ticker.subscribe(__privateGet(this,_tickListener),{maxFPS:5}),__privateGet(this,_tickListener).call(this)):intersector_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#intersectionListener"));__privateAdd(this,_spaUpdateListener,__name(()=>{__privateMethod(this,_ScrollbarElement_instances,destroy_fn).call(this),__privateMethod(this,_ScrollbarElement_instances,init_fn).call(this)},"#spaUpdateListener"))}connectedCallback(){__privateMethod(this,_ScrollbarElement_instances,init_fn).call(this),document.addEventListener("spaAfterUpdate",__privateGet(this,_spaUpdateListener))}disconnectedCallback(){__privateMethod(this,_ScrollbarElement_instances,destroy_fn).call(this),document.removeEventListener("spaAfterUpdate",__privateGet(this,_spaUpdateListener))}};_scrollElement=new WeakMap,_thumbElement=new WeakMap,_thumbScrollSize=new WeakMap,_limit=new WeakMap,_isHorizontal=new WeakMap,_activeTimeoutId=new WeakMap,_ScrollbarElement_instances=new WeakSet,init_fn=__name(function(){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)),intersector_index.intersector.subscribe(this.parentElement===document.body?this:this.parentElement,__privateGet(this,_intersectionListener)))},"#init"),destroy_fn=__name(function(){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)),intersector_index.intersector.unsubscribe(__privateGet(this,_intersectionListener)),intersector_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#destroy"),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,_spaUpdateListener=new WeakMap,__name(_ScrollbarElement,"ScrollbarElement");let ScrollbarElement=_ScrollbarElement;browser.isBrowser&&!customElements.get("e-scrollbar")&&customElements.define("e-scrollbar",ScrollbarElement);const scrollKeys=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End","Space"]);var _scrollElement2,_pointerElement,_cssDisabled,_cssDamping,_damped,_rounded,_needSync,_SmoothScrollElement_instances,currentScroll_get,setNativeScroll_fn,initScrollElement_fn,addListeners_fn,removeListeners_fn,checkDisabled_fn,inOverflowDirection_fn,shouldSkipSmoothScroll_fn,_wheelListener,_pointerdownListener,_resizeListener2,_keydownListener,_scrollListener2;const _SmoothScrollElement=class _SmoothScrollElement extends HTMLElement{constructor(){super();__privateAdd(this,_SmoothScrollElement_instances);__privateAdd(this,_scrollElement2,this);__privateAdd(this,_pointerElement,this);__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,_damped,new Damped.Damped);__privateAdd(this,_rounded,0);__privateAdd(this,_needSync,!1);__privateAdd(this,_wheelListener,__name(e=>{__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||Viewport.device.isMobile||(__privateMethod(this,_SmoothScrollElement_instances,inOverflowDirection_fn).call(this,e)||e.stopPropagation(),!__privateMethod(this,_SmoothScrollElement_instances,shouldSkipSmoothScroll_fn).call(this,e)&&(Math.abs(e.deltaX)>Math.abs(e.deltaY)||(ScrollNavigator.ScrollNavigator.tryStop(__privateGet(this,_scrollElement2),this.scrollTop),e.preventDefault(),this.shiftPosition(e.deltaY))))},"#wheelListener"));__privateAdd(this,_pointerdownListener,__name(e=>{if(!(e.target instanceof Element))return;const anchor=e.target.closest("a");if(!(e.button!==0||__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)&&!anchor)&&anchor&&!anchor.hasAttribute("data-smooth-scroll-skip")&&this.contains(anchor)){const url=new URL(anchor.href);url.hash&&(e.preventDefault(),this.stop(),this.scrollToElement(url.hash,{behavior:anchor.getAttribute("data-scroll-behavior")||"smooth",offset:anchor.getAttribute("data-scroll-offset")||void 0,center:anchor.hasAttribute("data-scroll-center"),duration:parseFloat(anchor.getAttribute("data-scroll-duration")||"0")||void 0,easing:anchor.getAttribute("data-scroll-easing")||void 0}))}},"#pointerdownListener"));__privateAdd(this,_resizeListener2,__name(()=>{this.resize(),this.trySync()},"#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(()=>{this.trySync()},"#scrollListener"));__privateGet(this,_damped).setTickerOptions({order:order_index.TICK_ORDER.SCROLL})}resize(){const max=__privateGet(this,_scrollElement2)instanceof HTMLElement?__privateGet(this,_scrollElement2).scrollHeight-__privateGet(this,_scrollElement2).offsetHeight:document.documentElement.offsetHeight-Viewport.viewport.height;__privateGet(this,_damped).setEdges(0,max)}stop(){ScrollNavigator.ScrollNavigator.tryStop(__privateGet(this,_scrollElement2),this.scrollTop),__privateGet(this,_damped).stopAnimation(),__privateSet(this,_needSync,!0)}trySync(){const cv=__privateGet(this,_SmoothScrollElement_instances,currentScroll_get);(Viewport.device.isMobile||__privateGet(this,_needSync)||Math.abs(cv-__privateGet(this,_damped).current)>100)&&(__privateSet(this,_needSync,!1),__privateGet(this,_damped).setWithoutAnimation(cv))}shiftPosition(value){this.resize(),this.trySync(),__privateGet(this,_damped).set(__privateGet(this,_damped).target+value)}setPosition(value,behavior){this.resize(),this.trySync(),behavior==="instant"?__privateGet(this,_damped).setWithoutAnimation(value):__privateGet(this,_damped).set(value)}scrollToValue(value,behavior){Viewport.device.isMobile?this.scroll({top:value,behavior}):this.setPosition(value,behavior)}scrollToElement(elementOrSelector,options){ScrollNavigator.ScrollNavigator.scrollToElement(elementOrSelector,__spreadProps(__spreadValues({},options),{scrollElement:__privateGet(this,_scrollElement2),startValue:__privateGet(this,_damped).current,scrollCallback:__name(top=>{this.scrollToValue(top,options!=null&&options.duration?"instant":options==null?void 0:options.behavior)},"scrollCallback")}))}connectedCallback(){__privateMethod(this,_SmoothScrollElement_instances,initScrollElement_fn).call(this),__privateMethod(this,_SmoothScrollElement_instances,addListeners_fn).call(this),__privateGet(this,_damped).setWithoutAnimation(this.scrollTop),__privateGet(this,_damped).subscribe(e=>{const rounded=Math.round(e.current);scrollEntries_index.scrollEntries.update(this,"y",e.current),rounded!==__privateGet(this,_rounded)&&!Viewport.device.isMobile&&__privateMethod(this,_SmoothScrollElement_instances,setNativeScroll_fn).call(this,rounded),document.documentElement.classList.toggle("scrolling",rounded!==__privateGet(this,_rounded)),console.log(rounded),__privateSet(this,_rounded,rounded)}),__privateGet(this,_cssDamping).observe(),__privateGet(this,_cssDisabled).observe(),__privateGet(this,_cssDamping).subscribe(e=>{__privateGet(this,_damped).setOptions({damping:e.current})}),scrollEntries_index.scrollEntries.register(this),this.resize()}disconnectedCallback(){__privateGet(this,_damped).close(),__privateGet(this,_cssDamping).close(),__privateGet(this,_cssDisabled).close(),scrollEntries_index.scrollEntries.unregister(this),document.documentElement.classList.remove("scrolling"),__privateMethod(this,_SmoothScrollElement_instances,removeListeners_fn).call(this)}};_scrollElement2=new WeakMap,_pointerElement=new WeakMap,_cssDisabled=new WeakMap,_cssDamping=new WeakMap,_damped=new WeakMap,_rounded=new WeakMap,_needSync=new WeakMap,_SmoothScrollElement_instances=new WeakSet,currentScroll_get=__name(function(){return __privateGet(this,_scrollElement2)instanceof HTMLElement?__privateGet(this,_scrollElement2).scrollTop:__privateGet(this,_scrollElement2).scrollY},"#currentScroll"),setNativeScroll_fn=__name(function(top){__privateGet(this,_scrollElement2).scroll({top,behavior:"instant"})},"#setNativeScroll"),initScrollElement_fn=__name(function(){this.dataset.element==="window"?(__privateSet(this,_scrollElement2,window),__privateSet(this,_pointerElement,document.documentElement)):(__privateSet(this,_scrollElement2,dom.getElement(this.dataset.element)||this),__privateGet(this,_scrollElement2).setAttribute("tabindex","0"),__privateSet(this,_pointerElement,this))},"#initScrollElement"),addListeners_fn=__name(function(){window.addEventListener("resize",__privateGet(this,_resizeListener2)),__privateGet(this,_scrollElement2).addEventListener("keydown",__privateGet(this,_keydownListener)),__privateGet(this,_pointerElement).addEventListener("click",__privateGet(this,_pointerdownListener)),__privateGet(this,_scrollElement2).addEventListener("wheel",__privateGet(this,_wheelListener),{passive:!1}),__privateGet(this,_scrollElement2).addEventListener("scroll",__privateGet(this,_scrollListener2))},"#addListeners"),removeListeners_fn=__name(function(){window.removeEventListener("resize",__privateGet(this,_resizeListener2)),__privateGet(this,_scrollElement2).removeEventListener("keydown",__privateGet(this,_keydownListener)),__privateGet(this,_pointerElement).removeEventListener("click",__privateGet(this,_pointerdownListener)),__privateGet(this,_scrollElement2).removeEventListener("wheel",__privateGet(this,_wheelListener)),__privateGet(this,_scrollElement2).removeEventListener("scroll",__privateGet(this,_scrollListener2))},"#removeListeners"),checkDisabled_fn=__name(function(){return __privateGet(this,_cssDisabled).current||getComputedStyle(this).getPropertyValue("overflow")==="hidden"},"#checkDisabled"),inOverflowDirection_fn=__name(function(e){const dy=Math.sign(e.deltaY);return!(dy<0&&__privateGet(this,_damped).target===0&&__privateGet(this,_damped).direction<0||dy>0&&__privateGet(this,_damped).target===__privateGet(this,_damped).max&&__privateGet(this,_damped).direction>0)},"#inOverflowDirection"),shouldSkipSmoothScroll_fn=__name(function(e){if(!(e.target instanceof Element))return!1;const el=e.target.closest("[data-prevent-smooth-scroll]");if(!el)return!1;const attr=el.getAttribute("data-prevent-smooth-scroll");return attr?!matchMedia(attr).matches:!0},"#shouldSkipSmoothScroll"),_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,_scrollElement3,_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_fn2,_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,_scrollElement3,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_fn2).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,_scrollElement3)instanceof HTMLElement?__privateGet(this,_scrollElement3).scrollTop:__privateGet(this,_scrollElement3).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).setKey("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(){intersector_index.ticker.subscribe(__privateGet(this,_tickListener2),{culling:this.getAttribute("data-culling-element")||this}),elementResizer_index.elementResizer.subscribe(this,__privateGet(this,_resizeListener3)),windowResizer_index.windowResizer.subscribe(__privateGet(this,_resizeListener3)),__privateGet(this,_tickListener2).call(this),__privateGet(this,_status).setKey("enabled",!0)}disable(resetStatus=!0){intersector_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,_scrollElement3,document.querySelector(scrollSelector)),__privateSet(this,_loadingUnsub,loading.requestLoadingCallback("load",__privateGet(this,_loadingListener)))}disconnectedCallback(){this.destroy()}};_statusHolderElements=new WeakMap,_progressHolderElements=new WeakMap,_scrollElement3=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_fn2=__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).setKey("entered",!0),scrollValue===0&&__privateGet(this,_status).setKey("enteredOnLoad",!0),__privateMethod(this,_ScrollRegionElement_instances,addGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionEnter")},"#enter"),exit_fn=__name(function(){__privateGet(this,_status).setKey("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 intersector_index=require("../index-BrasTsja.cjs"),browser=require("../browser-CIp8NsnF.cjs"),dom=require("../dom-B40i6NXw.cjs"),gestures=require("../gestures-DtYbQr49.cjs");require("construct-style-sheets-polyfill");const ScrollNavigator=require("../ScrollNavigator-CNKI1Iae.cjs"),cssProperty_index=require("../css-property/index.cjs"),elementLinkedStore_index=require("../element-linked-store/index.cjs"),elementResizer_index=require("../element-resizer/index.cjs"),events=require("../events-UlGk63iC.cjs"),layout=require("../layout-rR4-aYTY.cjs"),loading=require("../loading-7Ju1mFST.cjs"),math=require("../math-C-knY2TL.cjs"),windowResizer_index=require("../window-resizer/index.cjs"),Damped=require("../Damped-DTVkIAqc.cjs"),Viewport=require("../Viewport-BdFs1Zsn.cjs"),order_index=require("../order/index.cjs"),scrollEntries_index=require("../scroll-entries/index.cjs");var _scrollElement,_thumbElement,_thumbScrollSize,_limit,_isHorizontal,_activeTimeoutId,_ScrollbarElement_instances,init_fn,destroy_fn,scrollPosition_get,scrollSize_get,scrollViewportSize_get,_scrollListener,_resizeListener,_grabListener,_tickListener,_intersectionListener,_spaUpdateListener;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?(intersector_index.ticker.subscribe(__privateGet(this,_tickListener),{maxFPS:5}),__privateGet(this,_tickListener).call(this)):intersector_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#intersectionListener"));__privateAdd(this,_spaUpdateListener,__name(()=>{__privateMethod(this,_ScrollbarElement_instances,destroy_fn).call(this),__privateMethod(this,_ScrollbarElement_instances,init_fn).call(this)},"#spaUpdateListener"))}connectedCallback(){__privateMethod(this,_ScrollbarElement_instances,init_fn).call(this),document.addEventListener("spaAfterUpdate",__privateGet(this,_spaUpdateListener))}disconnectedCallback(){__privateMethod(this,_ScrollbarElement_instances,destroy_fn).call(this),document.removeEventListener("spaAfterUpdate",__privateGet(this,_spaUpdateListener))}};_scrollElement=new WeakMap,_thumbElement=new WeakMap,_thumbScrollSize=new WeakMap,_limit=new WeakMap,_isHorizontal=new WeakMap,_activeTimeoutId=new WeakMap,_ScrollbarElement_instances=new WeakSet,init_fn=__name(function(){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)),intersector_index.intersector.subscribe(this.parentElement===document.body?this:this.parentElement,__privateGet(this,_intersectionListener)))},"#init"),destroy_fn=__name(function(){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)),intersector_index.intersector.unsubscribe(__privateGet(this,_intersectionListener)),intersector_index.ticker.unsubscribe(__privateGet(this,_tickListener))},"#destroy"),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,_spaUpdateListener=new WeakMap,__name(_ScrollbarElement,"ScrollbarElement");let ScrollbarElement=_ScrollbarElement;browser.isBrowser&&!customElements.get("e-scrollbar")&&customElements.define("e-scrollbar",ScrollbarElement);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_fn2,_resizeListener2,_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,_resizeListener2,__name(()=>{this.resize()},"#resizeListener"));__privateAdd(this,_tickListener2,__name(()=>{this.tick()},"#tickListener"));__privateAdd(this,_loadingListener,__name(()=>{__privateMethod(this,_ScrollRegionElement_instances,init_fn2).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).setKey("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(){intersector_index.ticker.subscribe(__privateGet(this,_tickListener2),{culling:this.getAttribute("data-culling-element")||this}),elementResizer_index.elementResizer.subscribe(this,__privateGet(this,_resizeListener2)),windowResizer_index.windowResizer.subscribe(__privateGet(this,_resizeListener2)),__privateGet(this,_tickListener2).call(this),__privateGet(this,_status).setKey("enabled",!0)}disable(resetStatus=!0){intersector_index.ticker.unsubscribe(__privateGet(this,_tickListener2)),elementResizer_index.elementResizer.unsubscribe(__privateGet(this,_resizeListener2)),windowResizer_index.windowResizer.unsubscribe(__privateGet(this,_resizeListener2)),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_fn2=__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,_resizeListener2).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"),_resizeListener2=new WeakMap,_tickListener2=new WeakMap,enter_fn=__name(function(){const scrollValue=this.scrollValue;__privateGet(this,_status).setKey("entered",!0),scrollValue===0&&__privateGet(this,_status).setKey("enteredOnLoad",!0),__privateMethod(this,_ScrollRegionElement_instances,addGlobalClasses_fn).call(this),events.dispatchEvent(this,"scrollRegionEnter")},"#enter"),exit_fn=__name(function(){__privateGet(this,_status).setKey("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);const scrollKeys=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End","Space"]);var _scrollElement3,_pointerElement,_cssDisabled,_cssDamping,_damped,_rounded,_needSync,_SmoothScrollElement_instances,currentScroll_get,setNativeScroll_fn,initScrollElement_fn,addListeners_fn,removeListeners_fn,checkDisabled_fn,inOverflowDirection_fn,shouldSkipSmoothScroll_fn,_wheelListener,_pointerdownListener,_resizeListener3,_keydownListener,_scrollListener2;const _SmoothScrollElement=class _SmoothScrollElement extends HTMLElement{constructor(){super();__privateAdd(this,_SmoothScrollElement_instances);__privateAdd(this,_scrollElement3,this);__privateAdd(this,_pointerElement,this);__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,_damped,new Damped.Damped);__privateAdd(this,_rounded,0);__privateAdd(this,_needSync,!1);__privateAdd(this,_wheelListener,__name(e=>{__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)||Viewport.device.isMobile||(__privateMethod(this,_SmoothScrollElement_instances,inOverflowDirection_fn).call(this,e)||e.stopPropagation(),!__privateMethod(this,_SmoothScrollElement_instances,shouldSkipSmoothScroll_fn).call(this,e)&&(Math.abs(e.deltaX)>Math.abs(e.deltaY)||(ScrollNavigator.ScrollNavigator.tryStop(__privateGet(this,_scrollElement3),this.scrollTop),e.preventDefault(),this.shiftPosition(e.deltaY))))},"#wheelListener"));__privateAdd(this,_pointerdownListener,__name(e=>{if(!(e.target instanceof Element))return;const anchor=e.target.closest("a");if(!(e.button!==0||__privateMethod(this,_SmoothScrollElement_instances,checkDisabled_fn).call(this)&&!anchor)&&anchor&&!anchor.hasAttribute("data-smooth-scroll-skip")&&this.contains(anchor)){const url=new URL(anchor.href);url.hash&&(e.preventDefault(),this.stop(),this.scrollToElement(url.hash,{behavior:anchor.getAttribute("data-scroll-behavior")||"smooth",offset:anchor.getAttribute("data-scroll-offset")||void 0,center:anchor.hasAttribute("data-scroll-center"),duration:parseFloat(anchor.getAttribute("data-scroll-duration")||"0")||void 0,easing:anchor.getAttribute("data-scroll-easing")||void 0}))}},"#pointerdownListener"));__privateAdd(this,_resizeListener3,__name(()=>{this.resize(),this.trySync()},"#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(()=>{this.trySync()},"#scrollListener"));__privateGet(this,_damped).setTickerOptions({order:order_index.TICK_ORDER.SCROLL})}resize(){const max=__privateGet(this,_scrollElement3)instanceof HTMLElement?__privateGet(this,_scrollElement3).scrollHeight-__privateGet(this,_scrollElement3).offsetHeight:document.documentElement.offsetHeight-Viewport.viewport.height;__privateGet(this,_damped).setEdges(0,max)}stop(){ScrollNavigator.ScrollNavigator.tryStop(__privateGet(this,_scrollElement3),this.scrollTop),__privateGet(this,_damped).stopAnimation(),__privateSet(this,_needSync,!0)}trySync(){const cv=__privateGet(this,_SmoothScrollElement_instances,currentScroll_get);(Viewport.device.isMobile||__privateGet(this,_needSync)||Math.abs(cv-__privateGet(this,_damped).current)>100)&&(__privateSet(this,_needSync,!1),__privateGet(this,_damped).setWithoutAnimation(cv))}shiftPosition(value){this.resize(),this.trySync(),__privateGet(this,_damped).set(__privateGet(this,_damped).target+value)}setPosition(value,behavior){this.resize(),this.trySync(),behavior==="instant"?__privateGet(this,_damped).setWithoutAnimation(value):__privateGet(this,_damped).set(value)}scrollToValue(value,behavior){Viewport.device.isMobile?this.scroll({top:value,behavior}):this.setPosition(value,behavior)}scrollToElement(elementOrSelector,options){ScrollNavigator.ScrollNavigator.scrollToElement(elementOrSelector,__spreadProps(__spreadValues({},options),{scrollElement:__privateGet(this,_scrollElement3),startValue:__privateGet(this,_damped).current,scrollCallback:__name(top=>{this.scrollToValue(top,options!=null&&options.duration?"instant":options==null?void 0:options.behavior)},"scrollCallback")}))}connectedCallback(){__privateMethod(this,_SmoothScrollElement_instances,initScrollElement_fn).call(this),__privateMethod(this,_SmoothScrollElement_instances,addListeners_fn).call(this),__privateGet(this,_damped).setWithoutAnimation(this.scrollTop),__privateGet(this,_damped).subscribe(e=>{const rounded=Math.round(e.current);scrollEntries_index.scrollEntries.update(this,"y",e.current),rounded!==__privateGet(this,_rounded)&&!Viewport.device.isMobile&&__privateMethod(this,_SmoothScrollElement_instances,setNativeScroll_fn).call(this,rounded),document.documentElement.classList.toggle("scrolling",rounded!==__privateGet(this,_rounded)),__privateSet(this,_rounded,rounded)}),__privateGet(this,_cssDamping).observe(),__privateGet(this,_cssDisabled).observe(),__privateGet(this,_cssDamping).subscribe(e=>{__privateGet(this,_damped).setOptions({damping:e.current})}),scrollEntries_index.scrollEntries.register(this),this.resize()}disconnectedCallback(){__privateGet(this,_damped).close(),__privateGet(this,_cssDamping).close(),__privateGet(this,_cssDisabled).close(),scrollEntries_index.scrollEntries.unregister(this),document.documentElement.classList.remove("scrolling"),__privateMethod(this,_SmoothScrollElement_instances,removeListeners_fn).call(this)}};_scrollElement3=new WeakMap,_pointerElement=new WeakMap,_cssDisabled=new WeakMap,_cssDamping=new WeakMap,_damped=new WeakMap,_rounded=new WeakMap,_needSync=new WeakMap,_SmoothScrollElement_instances=new WeakSet,currentScroll_get=__name(function(){return __privateGet(this,_scrollElement3)instanceof HTMLElement?__privateGet(this,_scrollElement3).scrollTop:__privateGet(this,_scrollElement3).scrollY},"#currentScroll"),setNativeScroll_fn=__name(function(top){__privateGet(this,_scrollElement3).scroll({top,behavior:"instant"})},"#setNativeScroll"),initScrollElement_fn=__name(function(){this.dataset.element==="window"?(__privateSet(this,_scrollElement3,window),__privateSet(this,_pointerElement,document.documentElement)):(__privateSet(this,_scrollElement3,dom.getElement(this.dataset.element)||this),__privateGet(this,_scrollElement3).setAttribute("tabindex","0"),__privateSet(this,_pointerElement,this))},"#initScrollElement"),addListeners_fn=__name(function(){window.addEventListener("resize",__privateGet(this,_resizeListener3)),__privateGet(this,_scrollElement3).addEventListener("keydown",__privateGet(this,_keydownListener)),__privateGet(this,_pointerElement).addEventListener("click",__privateGet(this,_pointerdownListener)),__privateGet(this,_scrollElement3).addEventListener("wheel",__privateGet(this,_wheelListener),{passive:!1}),__privateGet(this,_scrollElement3).addEventListener("scroll",__privateGet(this,_scrollListener2))},"#addListeners"),removeListeners_fn=__name(function(){window.removeEventListener("resize",__privateGet(this,_resizeListener3)),__privateGet(this,_scrollElement3).removeEventListener("keydown",__privateGet(this,_keydownListener)),__privateGet(this,_pointerElement).removeEventListener("click",__privateGet(this,_pointerdownListener)),__privateGet(this,_scrollElement3).removeEventListener("wheel",__privateGet(this,_wheelListener)),__privateGet(this,_scrollElement3).removeEventListener("scroll",__privateGet(this,_scrollListener2))},"#removeListeners"),checkDisabled_fn=__name(function(){return __privateGet(this,_cssDisabled).current||getComputedStyle(this).getPropertyValue("overflow")==="hidden"},"#checkDisabled"),inOverflowDirection_fn=__name(function(e){const dy=Math.sign(e.deltaY);return!(dy<0&&__privateGet(this,_damped).target===0&&__privateGet(this,_damped).direction<0||dy>0&&__privateGet(this,_damped).target===__privateGet(this,_damped).max&&__privateGet(this,_damped).direction>0)},"#inOverflowDirection"),shouldSkipSmoothScroll_fn=__name(function(e){if(!(e.target instanceof Element))return!1;const el=e.target.closest("[data-prevent-smooth-scroll]");if(!el)return!1;const attr=el.getAttribute("data-prevent-smooth-scroll");return attr?!matchMedia(attr).matches:!0},"#shouldSkipSmoothScroll"),_wheelListener=new WeakMap,_pointerdownListener=new WeakMap,_resizeListener3=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);exports.ScrollNavigator=ScrollNavigator.ScrollNavigator;exports.ScrollRegionElement=ScrollRegionElement;exports.ScrollbarElement=ScrollbarElement;exports.SmoothScrollElement=SmoothScrollElement;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { ScrollbarElement } from './ScrollbarElement';
|
|
2
|
-
export {
|
|
2
|
+
export { ScrollNavigator, type ScrollNavigatorOptions } from './ScrollNavigator';
|
|
3
3
|
export { ScrollRegionElement, type ScrollRegionElementEvents, } from './ScrollRegionElement';
|
|
4
|
+
export { SmoothScrollElement } from './SmoothScrollElement';
|
package/lib/scroll-kit/index.js
CHANGED
|
@@ -20,12 +20,8 @@ import { i as isBrowser } from "../browser-B9QXFVgG.js";
|
|
|
20
20
|
import { f as findScrollParentElement, g as getElement } from "../dom-D8D-_9ty.js";
|
|
21
21
|
import { s as setupDrag } from "../gestures-DmKKNnh4.js";
|
|
22
22
|
import "construct-style-sheets-polyfill";
|
|
23
|
-
import { D as Damped } from "../Damped-BxBI6Dds.js";
|
|
24
|
-
import { CSSProperty } from "../css-property/index.js";
|
|
25
|
-
import { v as viewport, d as device } from "../Viewport-CPB14lI1.js";
|
|
26
|
-
import { TICK_ORDER } from "../order/index.js";
|
|
27
|
-
import { scrollEntries } from "../scroll-entries/index.js";
|
|
28
23
|
import { S as ScrollNavigator } from "../ScrollNavigator-CiZjoiyk.js";
|
|
24
|
+
import { CSSProperty } from "../css-property/index.js";
|
|
29
25
|
import { ElementLinkedStore } from "../element-linked-store/index.js";
|
|
30
26
|
import { elementResizer } from "../element-resizer/index.js";
|
|
31
27
|
import { d as dispatchEvent } from "../events-Ds-TuvYW.js";
|
|
@@ -33,6 +29,10 @@ import { b as getCumulativeOffsetTop, g as getStickyOffset } from "../layout-DxO
|
|
|
33
29
|
import { r as requestLoadingCallback } from "../loading-BYWPyUhc.js";
|
|
34
30
|
import { c as clamp } from "../math-r8V23YFe.js";
|
|
35
31
|
import { windowResizer } from "../window-resizer/index.js";
|
|
32
|
+
import { D as Damped } from "../Damped-BxBI6Dds.js";
|
|
33
|
+
import { v as viewport, d as device } from "../Viewport-CPB14lI1.js";
|
|
34
|
+
import { TICK_ORDER } from "../order/index.js";
|
|
35
|
+
import { scrollEntries } from "../scroll-entries/index.js";
|
|
36
36
|
var _scrollElement, _thumbElement, _thumbScrollSize, _limit, _isHorizontal, _activeTimeoutId, _ScrollbarElement_instances, init_fn, destroy_fn, scrollPosition_get, scrollSize_get, scrollViewportSize_get, _scrollListener, _resizeListener, _grabListener, _tickListener, _intersectionListener, _spaUpdateListener;
|
|
37
37
|
const _ScrollbarElement = class _ScrollbarElement extends HTMLElement {
|
|
38
38
|
constructor() {
|
|
@@ -122,144 +122,14 @@ _scrollElement = new WeakMap(), _thumbElement = new WeakMap(), _thumbScrollSize
|
|
|
122
122
|
}, "#scrollViewportSize"), _scrollListener = new WeakMap(), _resizeListener = new WeakMap(), _grabListener = new WeakMap(), _tickListener = new WeakMap(), _intersectionListener = new WeakMap(), _spaUpdateListener = new WeakMap(), __name(_ScrollbarElement, "ScrollbarElement");
|
|
123
123
|
let ScrollbarElement = _ScrollbarElement;
|
|
124
124
|
isBrowser && !customElements.get("e-scrollbar") && customElements.define("e-scrollbar", ScrollbarElement);
|
|
125
|
-
|
|
126
|
-
"ArrowUp",
|
|
127
|
-
"ArrowDown",
|
|
128
|
-
"ArrowLeft",
|
|
129
|
-
"ArrowRight",
|
|
130
|
-
"PageUp",
|
|
131
|
-
"PageDown",
|
|
132
|
-
"Home",
|
|
133
|
-
"End",
|
|
134
|
-
"Space"
|
|
135
|
-
]);
|
|
136
|
-
var _scrollElement2, _pointerElement, _cssDisabled, _cssDamping, _damped, _rounded, _needSync, _SmoothScrollElement_instances, currentScroll_get, setNativeScroll_fn, initScrollElement_fn, addListeners_fn, removeListeners_fn, checkDisabled_fn, inOverflowDirection_fn, shouldSkipSmoothScroll_fn, _wheelListener, _pointerdownListener, _resizeListener2, _keydownListener, _scrollListener2;
|
|
137
|
-
const _SmoothScrollElement = class _SmoothScrollElement extends HTMLElement {
|
|
138
|
-
constructor() {
|
|
139
|
-
super();
|
|
140
|
-
__privateAdd(this, _SmoothScrollElement_instances);
|
|
141
|
-
__privateAdd(this, _scrollElement2, this);
|
|
142
|
-
__privateAdd(this, _pointerElement, this);
|
|
143
|
-
__privateAdd(this, _cssDisabled, new CSSProperty(this, "--smooth-scroll-disabled", !1));
|
|
144
|
-
__privateAdd(this, _cssDamping, new CSSProperty(this, "--smooth-scroll-damping", 10));
|
|
145
|
-
__privateAdd(this, _damped, new Damped());
|
|
146
|
-
__privateAdd(this, _rounded, 0);
|
|
147
|
-
__privateAdd(this, _needSync, !1);
|
|
148
|
-
__privateAdd(this, _wheelListener, /* @__PURE__ */ __name((e) => {
|
|
149
|
-
__privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) || device.isMobile || (__privateMethod(this, _SmoothScrollElement_instances, inOverflowDirection_fn).call(this, e) || e.stopPropagation(), !__privateMethod(this, _SmoothScrollElement_instances, shouldSkipSmoothScroll_fn).call(this, e) && (Math.abs(e.deltaX) > Math.abs(e.deltaY) || (ScrollNavigator.tryStop(__privateGet(this, _scrollElement2), this.scrollTop), e.preventDefault(), this.shiftPosition(e.deltaY))));
|
|
150
|
-
}, "#wheelListener"));
|
|
151
|
-
__privateAdd(this, _pointerdownListener, /* @__PURE__ */ __name((e) => {
|
|
152
|
-
if (!(e.target instanceof Element)) return;
|
|
153
|
-
const anchor = e.target.closest("a");
|
|
154
|
-
if (!(e.button !== 0 || __privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) && !anchor) && anchor && !anchor.hasAttribute("data-smooth-scroll-skip") && this.contains(anchor)) {
|
|
155
|
-
const url = new URL(anchor.href);
|
|
156
|
-
url.hash && (e.preventDefault(), this.stop(), this.scrollToElement(url.hash, {
|
|
157
|
-
behavior: anchor.getAttribute("data-scroll-behavior") || "smooth",
|
|
158
|
-
offset: anchor.getAttribute("data-scroll-offset") || void 0,
|
|
159
|
-
center: anchor.hasAttribute("data-scroll-center"),
|
|
160
|
-
duration: parseFloat(anchor.getAttribute("data-scroll-duration") || "0") || void 0,
|
|
161
|
-
easing: anchor.getAttribute("data-scroll-easing") || void 0
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
164
|
-
}, "#pointerdownListener"));
|
|
165
|
-
__privateAdd(this, _resizeListener2, /* @__PURE__ */ __name(() => {
|
|
166
|
-
this.resize(), this.trySync();
|
|
167
|
-
}, "#resizeListener"));
|
|
168
|
-
__privateAdd(this, _keydownListener, /* @__PURE__ */ __name((e) => {
|
|
169
|
-
__privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) || scrollKeys.has(e.code) && this.stop();
|
|
170
|
-
}, "#keydownListener"));
|
|
171
|
-
__privateAdd(this, _scrollListener2, /* @__PURE__ */ __name(() => {
|
|
172
|
-
this.trySync();
|
|
173
|
-
}, "#scrollListener"));
|
|
174
|
-
__privateGet(this, _damped).setTickerOptions({ order: TICK_ORDER.SCROLL });
|
|
175
|
-
}
|
|
176
|
-
resize() {
|
|
177
|
-
const max = __privateGet(this, _scrollElement2) instanceof HTMLElement ? __privateGet(this, _scrollElement2).scrollHeight - __privateGet(this, _scrollElement2).offsetHeight : document.documentElement.offsetHeight - viewport.height;
|
|
178
|
-
__privateGet(this, _damped).setEdges(0, max);
|
|
179
|
-
}
|
|
180
|
-
stop() {
|
|
181
|
-
ScrollNavigator.tryStop(__privateGet(this, _scrollElement2), this.scrollTop), __privateGet(this, _damped).stopAnimation(), __privateSet(this, _needSync, !0);
|
|
182
|
-
}
|
|
183
|
-
trySync() {
|
|
184
|
-
const cv = __privateGet(this, _SmoothScrollElement_instances, currentScroll_get);
|
|
185
|
-
(device.isMobile || __privateGet(this, _needSync) || Math.abs(cv - __privateGet(this, _damped).current) > 100) && (__privateSet(this, _needSync, !1), __privateGet(this, _damped).setWithoutAnimation(cv));
|
|
186
|
-
}
|
|
187
|
-
shiftPosition(value) {
|
|
188
|
-
this.resize(), this.trySync(), __privateGet(this, _damped).set(__privateGet(this, _damped).target + value);
|
|
189
|
-
}
|
|
190
|
-
setPosition(value, behavior) {
|
|
191
|
-
this.resize(), this.trySync(), behavior === "instant" ? __privateGet(this, _damped).setWithoutAnimation(value) : __privateGet(this, _damped).set(value);
|
|
192
|
-
}
|
|
193
|
-
scrollToValue(value, behavior) {
|
|
194
|
-
device.isMobile ? this.scroll({ top: value, behavior }) : this.setPosition(value, behavior);
|
|
195
|
-
}
|
|
196
|
-
scrollToElement(elementOrSelector, options) {
|
|
197
|
-
ScrollNavigator.scrollToElement(elementOrSelector, __spreadProps(__spreadValues({}, options), {
|
|
198
|
-
scrollElement: __privateGet(this, _scrollElement2),
|
|
199
|
-
startValue: __privateGet(this, _damped).current,
|
|
200
|
-
scrollCallback: /* @__PURE__ */ __name((top) => {
|
|
201
|
-
this.scrollToValue(
|
|
202
|
-
top,
|
|
203
|
-
options != null && options.duration ? "instant" : options == null ? void 0 : options.behavior
|
|
204
|
-
);
|
|
205
|
-
}, "scrollCallback")
|
|
206
|
-
}));
|
|
207
|
-
}
|
|
208
|
-
connectedCallback() {
|
|
209
|
-
__privateMethod(this, _SmoothScrollElement_instances, initScrollElement_fn).call(this), __privateMethod(this, _SmoothScrollElement_instances, addListeners_fn).call(this), __privateGet(this, _damped).setWithoutAnimation(this.scrollTop), __privateGet(this, _damped).subscribe((e) => {
|
|
210
|
-
const rounded = Math.round(e.current);
|
|
211
|
-
scrollEntries.update(this, "y", e.current), rounded !== __privateGet(this, _rounded) && !device.isMobile && __privateMethod(this, _SmoothScrollElement_instances, setNativeScroll_fn).call(this, rounded), document.documentElement.classList.toggle(
|
|
212
|
-
"scrolling",
|
|
213
|
-
rounded !== __privateGet(this, _rounded)
|
|
214
|
-
), console.log(rounded), __privateSet(this, _rounded, rounded);
|
|
215
|
-
}), __privateGet(this, _cssDamping).observe(), __privateGet(this, _cssDisabled).observe(), __privateGet(this, _cssDamping).subscribe((e) => {
|
|
216
|
-
__privateGet(this, _damped).setOptions({ damping: e.current });
|
|
217
|
-
}), scrollEntries.register(this), this.resize();
|
|
218
|
-
}
|
|
219
|
-
disconnectedCallback() {
|
|
220
|
-
__privateGet(this, _damped).close(), __privateGet(this, _cssDamping).close(), __privateGet(this, _cssDisabled).close(), scrollEntries.unregister(this), document.documentElement.classList.remove("scrolling"), __privateMethod(this, _SmoothScrollElement_instances, removeListeners_fn).call(this);
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
_scrollElement2 = new WeakMap(), _pointerElement = new WeakMap(), _cssDisabled = new WeakMap(), _cssDamping = new WeakMap(), _damped = new WeakMap(), _rounded = new WeakMap(), _needSync = new WeakMap(), _SmoothScrollElement_instances = new WeakSet(), currentScroll_get = /* @__PURE__ */ __name(function() {
|
|
224
|
-
return __privateGet(this, _scrollElement2) instanceof HTMLElement ? __privateGet(this, _scrollElement2).scrollTop : __privateGet(this, _scrollElement2).scrollY;
|
|
225
|
-
}, "#currentScroll"), setNativeScroll_fn = /* @__PURE__ */ __name(function(top) {
|
|
226
|
-
__privateGet(this, _scrollElement2).scroll({ top, behavior: "instant" });
|
|
227
|
-
}, "#setNativeScroll"), initScrollElement_fn = /* @__PURE__ */ __name(function() {
|
|
228
|
-
this.dataset.element === "window" ? (__privateSet(this, _scrollElement2, window), __privateSet(this, _pointerElement, document.documentElement)) : (__privateSet(this, _scrollElement2, getElement(this.dataset.element) || this), __privateGet(this, _scrollElement2).setAttribute("tabindex", "0"), __privateSet(this, _pointerElement, this));
|
|
229
|
-
}, "#initScrollElement"), addListeners_fn = /* @__PURE__ */ __name(function() {
|
|
230
|
-
window.addEventListener("resize", __privateGet(this, _resizeListener2)), __privateGet(this, _scrollElement2).addEventListener(
|
|
231
|
-
"keydown",
|
|
232
|
-
__privateGet(this, _keydownListener)
|
|
233
|
-
), __privateGet(this, _pointerElement).addEventListener("click", __privateGet(this, _pointerdownListener)), __privateGet(this, _scrollElement2).addEventListener("wheel", __privateGet(this, _wheelListener), {
|
|
234
|
-
passive: !1
|
|
235
|
-
}), __privateGet(this, _scrollElement2).addEventListener("scroll", __privateGet(this, _scrollListener2));
|
|
236
|
-
}, "#addListeners"), removeListeners_fn = /* @__PURE__ */ __name(function() {
|
|
237
|
-
window.removeEventListener("resize", __privateGet(this, _resizeListener2)), __privateGet(this, _scrollElement2).removeEventListener(
|
|
238
|
-
"keydown",
|
|
239
|
-
__privateGet(this, _keydownListener)
|
|
240
|
-
), __privateGet(this, _pointerElement).removeEventListener("click", __privateGet(this, _pointerdownListener)), __privateGet(this, _scrollElement2).removeEventListener("wheel", __privateGet(this, _wheelListener)), __privateGet(this, _scrollElement2).removeEventListener("scroll", __privateGet(this, _scrollListener2));
|
|
241
|
-
}, "#removeListeners"), checkDisabled_fn = /* @__PURE__ */ __name(function() {
|
|
242
|
-
return __privateGet(this, _cssDisabled).current || getComputedStyle(this).getPropertyValue("overflow") === "hidden";
|
|
243
|
-
}, "#checkDisabled"), inOverflowDirection_fn = /* @__PURE__ */ __name(function(e) {
|
|
244
|
-
const dy = Math.sign(e.deltaY);
|
|
245
|
-
return !(dy < 0 && __privateGet(this, _damped).target === 0 && __privateGet(this, _damped).direction < 0 || dy > 0 && __privateGet(this, _damped).target === __privateGet(this, _damped).max && __privateGet(this, _damped).direction > 0);
|
|
246
|
-
}, "#inOverflowDirection"), shouldSkipSmoothScroll_fn = /* @__PURE__ */ __name(function(e) {
|
|
247
|
-
if (!(e.target instanceof Element)) return !1;
|
|
248
|
-
const el = e.target.closest("[data-prevent-smooth-scroll]");
|
|
249
|
-
if (!el) return !1;
|
|
250
|
-
const attr = el.getAttribute("data-prevent-smooth-scroll");
|
|
251
|
-
return attr ? !matchMedia(attr).matches : !0;
|
|
252
|
-
}, "#shouldSkipSmoothScroll"), _wheelListener = new WeakMap(), _pointerdownListener = new WeakMap(), _resizeListener2 = new WeakMap(), _keydownListener = new WeakMap(), _scrollListener2 = new WeakMap(), __name(_SmoothScrollElement, "SmoothScrollElement");
|
|
253
|
-
let SmoothScrollElement = _SmoothScrollElement;
|
|
254
|
-
customElements.get("e-smooth-scroll") || customElements.define("e-smooth-scroll", SmoothScrollElement);
|
|
255
|
-
var _statusHolderElements, _progressHolderElements, _scrollElement3, _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_fn2, _resizeListener3, _tickListener2, enter_fn, exit_fn, cssVar_fn, _loadingListener;
|
|
125
|
+
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_fn2, _resizeListener2, _tickListener2, enter_fn, exit_fn, cssVar_fn, _loadingListener;
|
|
256
126
|
const _ScrollRegionElement = class _ScrollRegionElement extends HTMLElement {
|
|
257
127
|
constructor() {
|
|
258
128
|
super(...arguments);
|
|
259
129
|
__privateAdd(this, _ScrollRegionElement_instances);
|
|
260
130
|
__privateAdd(this, _statusHolderElements, [this]);
|
|
261
131
|
__privateAdd(this, _progressHolderElements, [this]);
|
|
262
|
-
__privateAdd(this,
|
|
132
|
+
__privateAdd(this, _scrollElement2, null);
|
|
263
133
|
__privateAdd(this, _statusHolderCSSProperty, new CSSProperty(
|
|
264
134
|
this,
|
|
265
135
|
"--scroll-region-status-holder",
|
|
@@ -339,7 +209,7 @@ const _ScrollRegionElement = class _ScrollRegionElement extends HTMLElement {
|
|
|
339
209
|
__privateAdd(this, _progress, 0);
|
|
340
210
|
__privateAdd(this, _visible, !1);
|
|
341
211
|
__privateAdd(this, _loadingUnsub);
|
|
342
|
-
__privateAdd(this,
|
|
212
|
+
__privateAdd(this, _resizeListener2, /* @__PURE__ */ __name(() => {
|
|
343
213
|
this.resize();
|
|
344
214
|
}, "#resizeListener"));
|
|
345
215
|
__privateAdd(this, _tickListener2, /* @__PURE__ */ __name(() => {
|
|
@@ -368,7 +238,7 @@ const _ScrollRegionElement = class _ScrollRegionElement extends HTMLElement {
|
|
|
368
238
|
return __privateGet(this, _status);
|
|
369
239
|
}
|
|
370
240
|
get scrollValue() {
|
|
371
|
-
return __privateGet(this,
|
|
241
|
+
return __privateGet(this, _scrollElement2) instanceof HTMLElement ? __privateGet(this, _scrollElement2).scrollTop : __privateGet(this, _scrollElement2).scrollY;
|
|
372
242
|
}
|
|
373
243
|
resize() {
|
|
374
244
|
__privateGet(this, _disabledCSSProperty).current || (__privateSet(this, _initialPosition, getCumulativeOffsetTop(this)), __privateSet(this, _start, __privateGet(this, _initialPosition)), typeof __privateGet(this, _startOffsetMinCSSProperty).current == "number" ? __privateSet(this, _start, __privateGet(this, _start) + Math.max(
|
|
@@ -400,20 +270,20 @@ const _ScrollRegionElement = class _ScrollRegionElement extends HTMLElement {
|
|
|
400
270
|
enable() {
|
|
401
271
|
ticker.subscribe(__privateGet(this, _tickListener2), {
|
|
402
272
|
culling: this.getAttribute("data-culling-element") || this
|
|
403
|
-
}), elementResizer.subscribe(this, __privateGet(this,
|
|
273
|
+
}), elementResizer.subscribe(this, __privateGet(this, _resizeListener2)), windowResizer.subscribe(__privateGet(this, _resizeListener2)), __privateGet(this, _tickListener2).call(this), __privateGet(this, _status).setKey("enabled", !0);
|
|
404
274
|
}
|
|
405
275
|
disable(resetStatus = !0) {
|
|
406
|
-
ticker.unsubscribe(__privateGet(this, _tickListener2)), elementResizer.unsubscribe(__privateGet(this,
|
|
276
|
+
ticker.unsubscribe(__privateGet(this, _tickListener2)), elementResizer.unsubscribe(__privateGet(this, _resizeListener2)), windowResizer.unsubscribe(__privateGet(this, _resizeListener2)), resetStatus && __privateGet(this, _status).reset(), __privateMethod(this, _ScrollRegionElement_instances, removeGlobalClasses_fn).call(this);
|
|
407
277
|
}
|
|
408
278
|
connectedCallback() {
|
|
409
279
|
const scrollSelector = this.getAttribute("data-scroll") || ".page-scroll";
|
|
410
|
-
__privateSet(this,
|
|
280
|
+
__privateSet(this, _scrollElement2, document.querySelector(scrollSelector)), __privateSet(this, _loadingUnsub, requestLoadingCallback("load", __privateGet(this, _loadingListener)));
|
|
411
281
|
}
|
|
412
282
|
disconnectedCallback() {
|
|
413
283
|
this.destroy();
|
|
414
284
|
}
|
|
415
285
|
};
|
|
416
|
-
_statusHolderElements = new WeakMap(), _progressHolderElements = new WeakMap(),
|
|
286
|
+
_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 = /* @__PURE__ */ __name(function() {
|
|
417
287
|
this.hasAttribute("data-global-class") && document.documentElement.classList.add(
|
|
418
288
|
this.getAttribute("data-global-class")
|
|
419
289
|
);
|
|
@@ -445,9 +315,9 @@ _statusHolderElements = new WeakMap(), _progressHolderElements = new WeakMap(),
|
|
|
445
315
|
el.style.removeProperty(__privateMethod(this, _ScrollRegionElement_instances, cssVar_fn).call(this, e.previous));
|
|
446
316
|
});
|
|
447
317
|
}), __privateGet(this, _distanceCSSProperty).subscribe(() => {
|
|
448
|
-
__privateGet(this,
|
|
318
|
+
__privateGet(this, _resizeListener2).call(this);
|
|
449
319
|
}), __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();
|
|
450
|
-
}, "#init"),
|
|
320
|
+
}, "#init"), _resizeListener2 = new WeakMap(), _tickListener2 = new WeakMap(), enter_fn = /* @__PURE__ */ __name(function() {
|
|
451
321
|
const scrollValue = this.scrollValue;
|
|
452
322
|
__privateGet(this, _status).setKey("entered", !0), scrollValue === 0 && __privateGet(this, _status).setKey("enteredOnLoad", !0), __privateMethod(this, _ScrollRegionElement_instances, addGlobalClasses_fn).call(this), dispatchEvent(this, "scrollRegionEnter");
|
|
453
323
|
}, "#enter"), exit_fn = /* @__PURE__ */ __name(function() {
|
|
@@ -457,7 +327,138 @@ _statusHolderElements = new WeakMap(), _progressHolderElements = new WeakMap(),
|
|
|
457
327
|
}, "#cssVar"), _loadingListener = new WeakMap(), __name(_ScrollRegionElement, "ScrollRegionElement");
|
|
458
328
|
let ScrollRegionElement = _ScrollRegionElement;
|
|
459
329
|
customElements.get("e-scroll-region") || customElements.define("e-scroll-region", ScrollRegionElement);
|
|
330
|
+
const scrollKeys = /* @__PURE__ */ new Set([
|
|
331
|
+
"ArrowUp",
|
|
332
|
+
"ArrowDown",
|
|
333
|
+
"ArrowLeft",
|
|
334
|
+
"ArrowRight",
|
|
335
|
+
"PageUp",
|
|
336
|
+
"PageDown",
|
|
337
|
+
"Home",
|
|
338
|
+
"End",
|
|
339
|
+
"Space"
|
|
340
|
+
]);
|
|
341
|
+
var _scrollElement3, _pointerElement, _cssDisabled, _cssDamping, _damped, _rounded, _needSync, _SmoothScrollElement_instances, currentScroll_get, setNativeScroll_fn, initScrollElement_fn, addListeners_fn, removeListeners_fn, checkDisabled_fn, inOverflowDirection_fn, shouldSkipSmoothScroll_fn, _wheelListener, _pointerdownListener, _resizeListener3, _keydownListener, _scrollListener2;
|
|
342
|
+
const _SmoothScrollElement = class _SmoothScrollElement extends HTMLElement {
|
|
343
|
+
constructor() {
|
|
344
|
+
super();
|
|
345
|
+
__privateAdd(this, _SmoothScrollElement_instances);
|
|
346
|
+
__privateAdd(this, _scrollElement3, this);
|
|
347
|
+
__privateAdd(this, _pointerElement, this);
|
|
348
|
+
__privateAdd(this, _cssDisabled, new CSSProperty(this, "--smooth-scroll-disabled", !1));
|
|
349
|
+
__privateAdd(this, _cssDamping, new CSSProperty(this, "--smooth-scroll-damping", 10));
|
|
350
|
+
__privateAdd(this, _damped, new Damped());
|
|
351
|
+
__privateAdd(this, _rounded, 0);
|
|
352
|
+
__privateAdd(this, _needSync, !1);
|
|
353
|
+
__privateAdd(this, _wheelListener, /* @__PURE__ */ __name((e) => {
|
|
354
|
+
__privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) || device.isMobile || (__privateMethod(this, _SmoothScrollElement_instances, inOverflowDirection_fn).call(this, e) || e.stopPropagation(), !__privateMethod(this, _SmoothScrollElement_instances, shouldSkipSmoothScroll_fn).call(this, e) && (Math.abs(e.deltaX) > Math.abs(e.deltaY) || (ScrollNavigator.tryStop(__privateGet(this, _scrollElement3), this.scrollTop), e.preventDefault(), this.shiftPosition(e.deltaY))));
|
|
355
|
+
}, "#wheelListener"));
|
|
356
|
+
__privateAdd(this, _pointerdownListener, /* @__PURE__ */ __name((e) => {
|
|
357
|
+
if (!(e.target instanceof Element)) return;
|
|
358
|
+
const anchor = e.target.closest("a");
|
|
359
|
+
if (!(e.button !== 0 || __privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) && !anchor) && anchor && !anchor.hasAttribute("data-smooth-scroll-skip") && this.contains(anchor)) {
|
|
360
|
+
const url = new URL(anchor.href);
|
|
361
|
+
url.hash && (e.preventDefault(), this.stop(), this.scrollToElement(url.hash, {
|
|
362
|
+
behavior: anchor.getAttribute("data-scroll-behavior") || "smooth",
|
|
363
|
+
offset: anchor.getAttribute("data-scroll-offset") || void 0,
|
|
364
|
+
center: anchor.hasAttribute("data-scroll-center"),
|
|
365
|
+
duration: parseFloat(anchor.getAttribute("data-scroll-duration") || "0") || void 0,
|
|
366
|
+
easing: anchor.getAttribute("data-scroll-easing") || void 0
|
|
367
|
+
}));
|
|
368
|
+
}
|
|
369
|
+
}, "#pointerdownListener"));
|
|
370
|
+
__privateAdd(this, _resizeListener3, /* @__PURE__ */ __name(() => {
|
|
371
|
+
this.resize(), this.trySync();
|
|
372
|
+
}, "#resizeListener"));
|
|
373
|
+
__privateAdd(this, _keydownListener, /* @__PURE__ */ __name((e) => {
|
|
374
|
+
__privateMethod(this, _SmoothScrollElement_instances, checkDisabled_fn).call(this) || scrollKeys.has(e.code) && this.stop();
|
|
375
|
+
}, "#keydownListener"));
|
|
376
|
+
__privateAdd(this, _scrollListener2, /* @__PURE__ */ __name(() => {
|
|
377
|
+
this.trySync();
|
|
378
|
+
}, "#scrollListener"));
|
|
379
|
+
__privateGet(this, _damped).setTickerOptions({ order: TICK_ORDER.SCROLL });
|
|
380
|
+
}
|
|
381
|
+
resize() {
|
|
382
|
+
const max = __privateGet(this, _scrollElement3) instanceof HTMLElement ? __privateGet(this, _scrollElement3).scrollHeight - __privateGet(this, _scrollElement3).offsetHeight : document.documentElement.offsetHeight - viewport.height;
|
|
383
|
+
__privateGet(this, _damped).setEdges(0, max);
|
|
384
|
+
}
|
|
385
|
+
stop() {
|
|
386
|
+
ScrollNavigator.tryStop(__privateGet(this, _scrollElement3), this.scrollTop), __privateGet(this, _damped).stopAnimation(), __privateSet(this, _needSync, !0);
|
|
387
|
+
}
|
|
388
|
+
trySync() {
|
|
389
|
+
const cv = __privateGet(this, _SmoothScrollElement_instances, currentScroll_get);
|
|
390
|
+
(device.isMobile || __privateGet(this, _needSync) || Math.abs(cv - __privateGet(this, _damped).current) > 100) && (__privateSet(this, _needSync, !1), __privateGet(this, _damped).setWithoutAnimation(cv));
|
|
391
|
+
}
|
|
392
|
+
shiftPosition(value) {
|
|
393
|
+
this.resize(), this.trySync(), __privateGet(this, _damped).set(__privateGet(this, _damped).target + value);
|
|
394
|
+
}
|
|
395
|
+
setPosition(value, behavior) {
|
|
396
|
+
this.resize(), this.trySync(), behavior === "instant" ? __privateGet(this, _damped).setWithoutAnimation(value) : __privateGet(this, _damped).set(value);
|
|
397
|
+
}
|
|
398
|
+
scrollToValue(value, behavior) {
|
|
399
|
+
device.isMobile ? this.scroll({ top: value, behavior }) : this.setPosition(value, behavior);
|
|
400
|
+
}
|
|
401
|
+
scrollToElement(elementOrSelector, options) {
|
|
402
|
+
ScrollNavigator.scrollToElement(elementOrSelector, __spreadProps(__spreadValues({}, options), {
|
|
403
|
+
scrollElement: __privateGet(this, _scrollElement3),
|
|
404
|
+
startValue: __privateGet(this, _damped).current,
|
|
405
|
+
scrollCallback: /* @__PURE__ */ __name((top) => {
|
|
406
|
+
this.scrollToValue(
|
|
407
|
+
top,
|
|
408
|
+
options != null && options.duration ? "instant" : options == null ? void 0 : options.behavior
|
|
409
|
+
);
|
|
410
|
+
}, "scrollCallback")
|
|
411
|
+
}));
|
|
412
|
+
}
|
|
413
|
+
connectedCallback() {
|
|
414
|
+
__privateMethod(this, _SmoothScrollElement_instances, initScrollElement_fn).call(this), __privateMethod(this, _SmoothScrollElement_instances, addListeners_fn).call(this), __privateGet(this, _damped).setWithoutAnimation(this.scrollTop), __privateGet(this, _damped).subscribe((e) => {
|
|
415
|
+
const rounded = Math.round(e.current);
|
|
416
|
+
scrollEntries.update(this, "y", e.current), rounded !== __privateGet(this, _rounded) && !device.isMobile && __privateMethod(this, _SmoothScrollElement_instances, setNativeScroll_fn).call(this, rounded), document.documentElement.classList.toggle(
|
|
417
|
+
"scrolling",
|
|
418
|
+
rounded !== __privateGet(this, _rounded)
|
|
419
|
+
), __privateSet(this, _rounded, rounded);
|
|
420
|
+
}), __privateGet(this, _cssDamping).observe(), __privateGet(this, _cssDisabled).observe(), __privateGet(this, _cssDamping).subscribe((e) => {
|
|
421
|
+
__privateGet(this, _damped).setOptions({ damping: e.current });
|
|
422
|
+
}), scrollEntries.register(this), this.resize();
|
|
423
|
+
}
|
|
424
|
+
disconnectedCallback() {
|
|
425
|
+
__privateGet(this, _damped).close(), __privateGet(this, _cssDamping).close(), __privateGet(this, _cssDisabled).close(), scrollEntries.unregister(this), document.documentElement.classList.remove("scrolling"), __privateMethod(this, _SmoothScrollElement_instances, removeListeners_fn).call(this);
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
_scrollElement3 = new WeakMap(), _pointerElement = new WeakMap(), _cssDisabled = new WeakMap(), _cssDamping = new WeakMap(), _damped = new WeakMap(), _rounded = new WeakMap(), _needSync = new WeakMap(), _SmoothScrollElement_instances = new WeakSet(), currentScroll_get = /* @__PURE__ */ __name(function() {
|
|
429
|
+
return __privateGet(this, _scrollElement3) instanceof HTMLElement ? __privateGet(this, _scrollElement3).scrollTop : __privateGet(this, _scrollElement3).scrollY;
|
|
430
|
+
}, "#currentScroll"), setNativeScroll_fn = /* @__PURE__ */ __name(function(top) {
|
|
431
|
+
__privateGet(this, _scrollElement3).scroll({ top, behavior: "instant" });
|
|
432
|
+
}, "#setNativeScroll"), initScrollElement_fn = /* @__PURE__ */ __name(function() {
|
|
433
|
+
this.dataset.element === "window" ? (__privateSet(this, _scrollElement3, window), __privateSet(this, _pointerElement, document.documentElement)) : (__privateSet(this, _scrollElement3, getElement(this.dataset.element) || this), __privateGet(this, _scrollElement3).setAttribute("tabindex", "0"), __privateSet(this, _pointerElement, this));
|
|
434
|
+
}, "#initScrollElement"), addListeners_fn = /* @__PURE__ */ __name(function() {
|
|
435
|
+
window.addEventListener("resize", __privateGet(this, _resizeListener3)), __privateGet(this, _scrollElement3).addEventListener(
|
|
436
|
+
"keydown",
|
|
437
|
+
__privateGet(this, _keydownListener)
|
|
438
|
+
), __privateGet(this, _pointerElement).addEventListener("click", __privateGet(this, _pointerdownListener)), __privateGet(this, _scrollElement3).addEventListener("wheel", __privateGet(this, _wheelListener), {
|
|
439
|
+
passive: !1
|
|
440
|
+
}), __privateGet(this, _scrollElement3).addEventListener("scroll", __privateGet(this, _scrollListener2));
|
|
441
|
+
}, "#addListeners"), removeListeners_fn = /* @__PURE__ */ __name(function() {
|
|
442
|
+
window.removeEventListener("resize", __privateGet(this, _resizeListener3)), __privateGet(this, _scrollElement3).removeEventListener(
|
|
443
|
+
"keydown",
|
|
444
|
+
__privateGet(this, _keydownListener)
|
|
445
|
+
), __privateGet(this, _pointerElement).removeEventListener("click", __privateGet(this, _pointerdownListener)), __privateGet(this, _scrollElement3).removeEventListener("wheel", __privateGet(this, _wheelListener)), __privateGet(this, _scrollElement3).removeEventListener("scroll", __privateGet(this, _scrollListener2));
|
|
446
|
+
}, "#removeListeners"), checkDisabled_fn = /* @__PURE__ */ __name(function() {
|
|
447
|
+
return __privateGet(this, _cssDisabled).current || getComputedStyle(this).getPropertyValue("overflow") === "hidden";
|
|
448
|
+
}, "#checkDisabled"), inOverflowDirection_fn = /* @__PURE__ */ __name(function(e) {
|
|
449
|
+
const dy = Math.sign(e.deltaY);
|
|
450
|
+
return !(dy < 0 && __privateGet(this, _damped).target === 0 && __privateGet(this, _damped).direction < 0 || dy > 0 && __privateGet(this, _damped).target === __privateGet(this, _damped).max && __privateGet(this, _damped).direction > 0);
|
|
451
|
+
}, "#inOverflowDirection"), shouldSkipSmoothScroll_fn = /* @__PURE__ */ __name(function(e) {
|
|
452
|
+
if (!(e.target instanceof Element)) return !1;
|
|
453
|
+
const el = e.target.closest("[data-prevent-smooth-scroll]");
|
|
454
|
+
if (!el) return !1;
|
|
455
|
+
const attr = el.getAttribute("data-prevent-smooth-scroll");
|
|
456
|
+
return attr ? !matchMedia(attr).matches : !0;
|
|
457
|
+
}, "#shouldSkipSmoothScroll"), _wheelListener = new WeakMap(), _pointerdownListener = new WeakMap(), _resizeListener3 = new WeakMap(), _keydownListener = new WeakMap(), _scrollListener2 = new WeakMap(), __name(_SmoothScrollElement, "SmoothScrollElement");
|
|
458
|
+
let SmoothScrollElement = _SmoothScrollElement;
|
|
459
|
+
customElements.get("e-smooth-scroll") || customElements.define("e-smooth-scroll", SmoothScrollElement);
|
|
460
460
|
export {
|
|
461
|
+
ScrollNavigator,
|
|
461
462
|
ScrollRegionElement,
|
|
462
463
|
ScrollbarElement,
|
|
463
464
|
SmoothScrollElement
|