05-tilda-export-backup/Tilda_ Фантомные тигры Петербурга_files/t-sortable-lite.min.js

1 line
15 KiB
JavaScript
Raw Permalink Normal View History

2025-10-29 16:50:39 +00:00
(()=>{"use strict";class t extends CustomEvent{constructor(t,e,n){super(n,{cancelable:!0});const{_pointerState:i}=t;this.originalEvent=e,this.draggingElement=i.targetElement,this.dragStartPos={x:i.startPosX,y:i.startPosY},this.dragStartTimestamp=i.startTimestamp}}class e extends t{constructor(t,e){super(t,e,"tDragStartLite")}}class n extends t{constructor(t,e){super(t,e,"tDragMoveLite")}}class i extends t{constructor(t,e,n){super(t,e,n||"tDragEndLite")}}class s extends i{constructor(t,e){super(t,e,"tDropLite"),this.relativeTargets={prevEl:t._draggingElement.previousElementSibling||null,nextEl:t._draggingElement.nextElementSibling||null}}}window.TSortableLite=class{constructor(t,e){if(!(t instanceof Element))throw new TypeError("TSortable container is not an Element");this._container=t;const n=(e="[object Object]"===Object.prototype.toString.call(e)?e:{}).dragImage||{},i=e.ghost||{},s=e.autoScroll||{};this._config={containerClassName:e.containerClassName||"tsort",dragImage:{className:n.className||"tsort__drag-image",opacity:!isNaN(n.opacity)&&n.opacity>=0&&n.opacity<=1?n.opacity:1,zIndex:isNaN(n.zIndex)?1e4:n.zIndex,appendTo:n.appendTo instanceof Element?n.appendTo:document.body},selector:e.selector||".tsort__item",cancelSelector:e.cancelSelector||".tsort__item_cancel",handleSelector:e.handleSelector||".tsort__item",ghost:{className:i.className||"tsort__ghost"},autoScroll:{isEnabled:void 0===s.isEnabled||!!s.isEnabled,speedIndex:!isNaN(s.speedIndex)&&s.speedIndex>0?s.speedIndex:1,offset:!isNaN(s.offset)&&s.offset>0?s.offset:60},toleranceDistance:!isNaN(e.toleranceDistance)&&e.toleranceDistance>=0?e.toleranceDistance:6,delay:!isNaN(e.delay)&&e.delay>=0?e.delay:50,touchDelay:!isNaN(e.touchDelay)&&e.touchDelay>=0?e.touchDelay:300,touchDistance:!isNaN(e.touchDistance)&&e.touchDistance>=0?e.touchDistance:20,axis:["x","y","both"].includes(e.axis)?e.axis:"both",isAutoUpdateEnabled:!!e.isAutoUpdateEnabled},this._config.autoScroll.container=s.container instanceof Element?s.container:this._getAutoScrollContainer(),this._sortableElements=Array.from(this._container.querySelectorAll(this._config.selector)),this._onStart="function"==typeof e.onStart?e.onStart:function(){},this._onMove="function"==typeof e.onMove?e.onMove:function(){},this._onEnd="function"==typeof e.onEnd?e.onEnd:function(){},this._onDrop="function"==typeof e.onDrop?e.onDrop:function(){},this._handlePointerDown=this._handlePointerDown.bind(this),this._handlePointerUp=this._handlePointerUp.bind(this),this._handlePointerMove=this._handlePointerMove.bind(this),this._handleDragStart=this._handleDragStart.bind(this),this._handleDrop=this._handleDrop.bind(this),this._handleDragMove=this._handleDragMove.bind(this),this._handleDragEnd=this._handleDragEnd.bind(this),this._preventDefaultDrag=this._preventDefaultDrag.bind(this),this._preventContextMenu=this._preventContextMenu.bind(this),this._handleTouchStart=this._handleTouchStart.bind(this),this._handleTouchMove=this._handleTouchMove.bind(this),this._handleTouchEnd=this._handleTouchEnd.bind(this),this._pointerState={isButtonPressed:!1,startPosX:null,startPosY:null,startTimestamp:null,targetElement:null},this._isDropped=!1,this._isDisabled=!1,this._isDragStarted=!1,this._dragImage=null,this._draggingElement=null,this._autoScrollSpeed=0,this._autoScrollAccumulator=0,this._draggingElIndex=null,this._prevSwappedEl=null,this._isTouchDevice=!window.matchMedia("(hover: hover)").matches}_getAutoScrollContainer(){let t=this._container;const e=["auto","scroll","overlay"];for(;t&&t!==document.documentElement;){const n=window.getComputedStyle(t).getPropertyValue("overflow-y");if(e.includes(n))break;t=t.parentElement}return t||document.documentElement}_getDragImage(t){const e=this._config.dragImage,n=t.cloneNode(!0),i=t.getBoundingClientRect();n.classList.add(e.className),n.style.opacity=e.opacity,n.style.zIndex=e.zIndex,n.style.position="fixed",n.style.width=i.width+"px",n.style.height=i.height+"px",n.style.top=i.top+"px",n.style.left=i.left+"px",e.appendTo.appendChild(n);const s=n.querySelectorAll("select"),o=t.querySelectorAll("select"