PageSourceSearch

https://spitzmund.com/theme/7c273f4cb4ca20173b102432a81e7634/js/ze…n-offcanvas-swipe-to-close.plugin.650df4.js

js spitzmund.com collected 2026-10-04 21:04:15 UTC 4,891 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkzenitPlatformHorizon=self.webpackChunkzenitPlatformHorizon||[]).push([[99736],{4632(t,e,s){s.d(e,{A:()=>i});class i{static isTouchDevice(){return"ontouchstart"in document.documentElement}static isIOSDevice(){return i.isIPhoneDevice()||i.isIPadDevice()}static isNativeWindowsBrowser(){return i.isIEBrowser()||i.isEdgeBrowser()}static isIPhoneDevice(){return!!navigator.userAgent.match(/iPhone/i)}static isIPadDevice(){return!!navigator.userAgent.match(/iPad/i)}static isIEBrowser(){return -1!==navigator.userAgent.toLowerCase().indexOf("msie")||!!navigator.userAgent.match(/Trident.*rv:\d+\./)}static isEdgeBrowser(){return!!navigator.userAgent.match(/Edge\/\d+/i)}static getList(){return{"is-touch":i.isTouchDevice(),"is-ios":i.isIOSDevice(),"is-native-windows":i.isNativeWindowsBrowser(),"is-iphone":i.isIPhoneDevice(),"is-ipad":i.isIPadDevice(),"is-ie":i.isIEBrowser(),"is-edge":i.isEdgeBrowser()}}}},9736(t,e,s){s.r(e),s.d(e,{default:()=>a});var i=s(4632);class a extends window.PluginBaseClass{static #t=this.options={threshold:.3,velocityThreshold:.5,showHandle:!0,handleClass:"offcanvas-swipe-handle",draggingClass:"is-swiping",excludeSelector:"[data-offcanvas-no-swipe]"};init(){this._onShown=this._onShown.bind(this),document.addEventListener("shown.bs.offcanvas",this._onShown)}_onShown(t){let e=t.target,s=this.options;if(!i.A.isTouchDevice()||!e||s.excludeSelector&&e.matches(s.excludeSelector))return;let a=this._getCloseDirection(e);if(!a)return;this._ensureHandle(e);let n=new AbortController,{signal:r}=n,o=this._createGesture();e.addEventListener("touchstart",t=>this._onTouchStart(t,o,a,e),{signal:r,passive:!0}),e.addEventListener("touchmove",t=>this._onTouchMove(t,o,a,e),{signal:r,passive:!1}),e.addEventListener("touchend",t=>this._onTouchEnd(t,o,a,e),{signal:r}),e.addEventListener("touchcancel",t=>this._onTouchEnd(t,o,a,e),{signal:r}),e.addEventListener("hidden.bs.offcanvas",()=>{n.abort(),this._resetPanel(e)},{once:!0})}_createGesture(){return{active:!1,locked:!1,fromHandle:!1,scroller:null,startX:0,startY:0,startTime:0,delta:0,size:0,backdrop:null}}_onTouchStart(t,e,s,i){if(1!==t.touches.length){e.active=!1;return}let a=t.touches[0];e.active=!0,e.locked=!1,e.fromHandle=!!t.target.closest(`.${this.options.handleClass}`),e.scroller="y"===s.axis?this._scrollableAncestor(t.target,i):null,e.startX=a.clientX,e.startY=a.clientY,e.startTime=t.timeStamp,e.delta=0,e.size="x"===s.axis?i.offsetWidth:i.offsetHeight}_onTouchMove(t,e,s,i){if(!e.active)return;let a=t.touches[0];if(!e.locked){let n="x"===s.axis?a.clientX-e.startX:a.clientY-e.startY,r="x"===s.axis?a.clientY-e.startY:a.clientX-e.startX;if(8>Math.abs(n)&&8>Math.abs(r))return;if(Math.abs(r)>Math.abs(n)||Math.sign(n)!==s.sign){e.active=!1;return}if("y"===s.axis&&!e.fromHandle&&!this._isAtClosingEdge(e.scroller,s))return;this._startDrag(e,i),e.startX=a.clientX,e.startY=a.clientY,e.startTime=t.timeStamp}t.preventDefault();let n="x"===s.axis?a.clientX-e.startX:a.clientY-e.startY;e.delta=Math.max(0,Math.min(n*s.sign,e.size)),i.style.transform=this._transformFor(s,e.delta),this._fadeBackdrop(e)}_onTouchEnd(t,e,s,i){if(!e.active||(e.active=!1,!e.locked))return;i.classList.remove(this.options.draggingClass),i.style.transition="",e.backdrop&&(e.backdrop.style.opacity="");let a=e.delta/Math.max(1,t.timeStamp-e.startTime);e.delta>=e.size*this.options.threshold||a>=this.options.velocityThreshold?(i.style.transform=this._transformFor(s,e.size),this._close(i)):i.style.transform=""}_startDrag(t,e){t.locked=!0,t.backdrop=document.querySelector(".offcanvas-backdrop"),e.classList.add(this.options.draggingClass),e.style.transition="none"}_close(t){window.bootstrap.Offcanvas.getOrCreateInstance(t).hide(),this.$emitter.publish("swipeClose",{offcanvas:t})}_fadeBackdrop(t){t.backdrop&&t.size>0&&(t.backdrop.style.opacity=(1-t.delta/t.size).toString())}_transformFor(t,e){let s=t.sign*e;return"x"===t.axis?`translateX(${s}px)`:`translateY(${s}px)`}_resetPanel(t){t.classList.remove(this.options.draggingClass),t.style.transform="",t.style.transition=""}_ensureHandle(t){if(!this.options.showHandle||t.querySelector(`.${this.options.handleClass}`))return;let e=document.createElement("span");e.className=this.options.handleClass,e.setAttribute("aria-hidden","true"),t.prepend(e)}_getCloseDirection(t){return t.classList.contains("offcanvas-start")?{axis:"x",sign:-1}:t.classList.contains("offcanvas-end")?{axis:"x",sign:1}:t.classList.contains("offcanvas-top")?{axis:"y",sign:-1}:t.classList.contains("offcanvas-bottom")?{axis:"y",sign:1}:null}_isAtClosingEdge(t,e){return!t||(e.sign>0?t.scrollTop<=0:t.scrollTop+t.clientHeight>=t.scrollHeight-1)}_scrollableAncestor(t,e){let s=t;for(;s&&s!==e.parentElement;){if(s.scrollHeight>s.clientHeight){let t=window.getComputedStyle(s).overflowY;if("auto"===t||"scroll"===t)return s}if(s===e)break;s=s.parentElement}return null}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.