@dflex/draggable
Advanced tools
Comparing version 3.9.0 to 3.9.1
@@ -1,1 +0,1 @@ | ||
"use strict";class t{constructor(t,s){this.x=t,this.y=s}}class s extends t{setAxes(t,s){this.x=t,this.y=s}clone(t){this.setAxes(t.x,t.y)}getInstance(){return{x:this.x,y:this.y}}isInstanceEqual(t){return this.x===t.x&&this.y===t.y}isEqual(t,s){return this.x===t&&this.y===s}isNotEqual(t,s){return this.x!==t||this.y!==s}}class i{constructor(t,s,i,h){this.top=t,this.right=s,this.bottom=i,this.left=h}}class h extends i{clone(t){this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left}setBox(t,s,i,h){return this.top=t,this.right=s,this.bottom=i,this.left=h,this}getBox(){return{top:this.top,right:this.right,bottom:this.bottom,left:this.left}}setByAxis(t,s,i){if("x"===t)this.left=s,this.right=i;else this.top=s,this.bottom=i}setOne(t,s,i){if("x"===t)-1===s?this.left=i:this.right=i;else-1===s?this.top=i:this.bottom=i}getOne(t,s){return"x"===t?-1===s?this.left:this.right:-1===s?this.top:this.bottom}setPositionInstance(t){this.top=t.y,this.left=t.x}setPosition(t,s){this.top=s,this.left=t}hasEqualPosition(t,s){return this.top===s||this.left===t}getPosition(){return{x:this.left,y:this.top}}}class e extends h{t(t){return this.top>=t.bottom}i(t){return this.bottom<=t.top}h(t){return this.right<=t.left}o(t){return this.left>=t.right}l(t){return this.top<t.top}u(t){return this.right>t.right}g(t){return this.bottom>t.bottom}p(t){return this.left<t.left}m(t){return this.top>=t.top}_(t){return this.right<=t.right}D(t){return this.bottom<=t.bottom}v(t){return this.left>=t.left}isBoxIntersect(t){return!(this.i(t)||this.o(t)||this.t(t)||this.h(t))}isOutThreshold(t,s,i){if(s.setBox(!1,!1,!1,!1),i){if("y"===i){const i=this.l(t),h=this.g(t);return i&&(s.top=!0),h&&(s.bottom=!0),i||h}const h=this.p(t),e=this.u(t);return h&&(s.left=!0),e&&(s.right=!0),h||e}return this.l(t)?(s.top=!0,!0):this.u(t)?(s.right=!0,!0):this.g(t)?(s.bottom=!0,!0):!!this.p(t)&&(s.left=!0,!0)}isInsideThreshold(t){return this.m(t)&&this._(t)&&this.D(t)&&this.v(t)}getSurroundingBox(t){return{left:Math.min(t.left,this.left),top:Math.min(t.top,this.top),right:Math.max(t.right,this.right),bottom:Math.max(t.bottom,this.bottom)}}isPositionedY(t){return this.t(t)||this.i(t)}assignBiggestBox(t){const{top:s,left:i,right:h,bottom:e}=t;i<this.left&&(this.left=i),s<this.top&&(this.top=s),h>this.right&&(this.right=h),e>this.bottom&&(this.bottom=e)}}function n(t,s){return`${t}_${s}`}const r="height",o="width",l="position";class u extends e{constructor(t,s,i,h){super(t,s,i,h),this.width=s-h,this.height=i-t}setByPointAndDimensions(t,s,i,h){this.top=t,this.left=s,this.width=h,this.height=i,this.right=s+h,this.bottom=t+i}setAxes(t,s){this.left=t,this.right=this.width+t,this.top=s,this.bottom=this.height+s}getDimensionDiff(t,s){const i=function(t){return"x"===t?o:r}(t);return this[i]-s[i]}getPositionDiff(t,s){const i=function(t){return"x"===t?"left":"top"}(t);return this[i]-s[t]}}class c extends s{increase(t){this.x+=t.x,this.y+=t.y}composeBox(t,s){const{top:i,left:h,bottom:n,right:r}=t;return s?new e(i+this.y,r-this.x,n-this.y,h+this.x):new e(i-this.y,r+this.x,n+this.y,h-this.x)}onSameAxis(t,s){return"y"===t?s.x===this.x:s.y===this.y}}class a{constructor(){this.O={}}newTravel(t){return void 0===this.O[t]?this.O[t]=0:this.O[t]+=1,`${t}${this.O[t]}`}}a.PREFIX_CYCLE="dflex_cycle_",a.PREFIX_ID="dflex_id_",a.PREFIX_ky="dflex_ky_";class d{constructor(){this.S={},this.K=new Set}insertBeforeEnd(t,s,i,h){Array.isArray(this.S[i])||(this.S[i]=[]);const e=this.S[i].length;0===e?this.S[i].push(s):this.S[i][e-1]=s,this.S[i].push(t),h&&this.K.add(h)}add(t,s,i){Array.isArray(this.S[s])||(this.S[s]=[]),this.S[s].push(t),i&&this.K.add(i)}cancelQueuedTask(){void 0!==this.T&&(clearTimeout(this.T),this.T=void 0)}clear(){this.cancelQueuedTask(),this.S={},this.K.clear()}hasElm(t){return this.K.has(t)}handleQueue(t){const s=[];try{if(!Array.isArray(this.S[t])||0===this.S[t].length)return s;const i=this.S[t];this.S[t]=[],i.forEach((t=>{const i=t();s.push(i)}))}catch(t){}finally{this.T=void 0}return s}A(t){this.T=setTimeout((()=>{this.handleQueue(t[0]),queueMicrotask((()=>this.handleQueue(t[1]))),this.K.clear()}),0)}scheduleNextTask(t){void 0===this.T&&this.A(t)}}const f=Object.freeze(["x","y"]);let g=new WeakMap;function p(t,s,i){const h=function(t){if(g.has(t))return g.get(t);const s={computedStyle:getComputedStyle(t),parsedProperties:new Map};return g.set(t,s),s}(t),{parsedProperties:e,computedStyle:n}=h,r=e.get(s);if(void 0===r){const t=n.getPropertyValue(s),h=i?function(t){const s=parseFloat(t);return Number.isNaN(s)?0:s}(t):t;return e.set(s,h),h}return r}const m={height:["border-top-width","border-bottom-width","padding-top","padding-bottom"],width:["border-left-width","border-right-width","padding-left","padding-right"]},x={height:"offsetHeight",width:"offsetWidth"};function y(t,s){let i=0;m[s].forEach((s=>{i+=p(t,s,!0)}));return t[x[s]]-i}const b=/absolute|fixed/;function _(t){const s=function(t){return p(t,l,!1)}(t);b.test(s)&&t.style.setProperty(l,"relative")}const w="dflex_ky_",D="dflex_sk_",v="dflex_bk_";class O{constructor(){this.$()}$(){this.B={},this.P=0,this.I={},this.M={},this.k={},this.N={},this.R=-99,this.q=null,this.C=`${w}${n(0,0)}`}F(t,s){if(!Array.isArray(this.M[s]))return void(this.M[s]=[t]);this.M[s].find((s=>s===t))||this.M[s].push(t)}H(t,s){Array.isArray(this.I[s])||(this.I[s]=[]);return this.I[s].push(t)-1}L(t){for(let s=t;s<=t+2;s+=1)void 0===this.B[s]&&(this.B[s]=0)}X(t,s,i,h){const{BK:e,PK:r}=i,o=e!==this.q;this.q=e,o&&(this.B[t]=0);const l=`${D}${n(t,h)}`;let u=null;return t>0&&(u=this.C),o&&(this.k[e][t]={SK:l,id:s}),this.B[t]+=1,{siblingsIndex:h,CHK:u,SK:l,PK:r,BK:e}}j(t,s,i){const h=t+1;void 0===this.B[h]&&this.L(t);if(t<this.R){this.P+=1;const s=i?t:t-1;for(let t=0;t<=s;t+=1)this.B[t]=0}const e=`${v}${this.P}`;Array.isArray(this.k[e])||(this.k[e]=[]),i&&this.B[h]>0&&(this.B[h]-=1);const r=this.B[h],o=`${D}${n(t,r)}`;let l=`${w}${n(t+1,this.P)}`;i?l=this.N[t]:this.N[t]=l;let u=null;t>0&&(u=this.C),this.C=l;if(this.k[e].find((t=>t&&t.SK===o))||this.k[e].push({SK:o,id:s}),i){const t=`${v}${this.P-1}`,s=this.k[t],i=s.length;if(i===this.k[e].length+1){const t=s[i-1];this.k[e].push(t)}}return this.R=t,this.B[t]+=1,{siblingsIndex:r,CHK:u,SK:o,PK:l,BK:e}}G(t,s,i,h){this.F(i.SK,s);return{order:{self:this.H(t,i.SK),parent:h},keys:i}}register(t,s,i,h,e){const{CHK:n,SK:r,PK:o,BK:l,siblingsIndex:u}=h?this.X(s,t,h,e):this.j(s,t,i),c={CHK:n,SK:r,PK:o,BK:l};return this.G(t,s,c,u)}mutateSiblings(t,s){t in this.I&&Object.assign(this.I,{[t]:s})}getSiblingKeysByDepth(t){return this.M[t]||[]}getElmSiblingsByKey(t){return this.I[t]||[]}getHighestSKInAllBranches(){const t=new Set;return Object.keys(this.k).forEach((s=>{const i=this.k[s].length,h=this.k[s][i-1];h&&t.add(h)})),t}W(t){return Array.isArray(this.I[t])}removeIDFromBranch(t,s){this.k[s].find((s=>s&&s.id===t))&&(this.k[s]=this.k[s].map((s=>s&&s.id!==t?s:null)))}U(t,s){this.k[s]=this.k[s].map((s=>s&&s.SK!==t?s:null))}V(t,s){this.M[s]=this.M[s].filter((s=>s!==t)),this.M[s].length}destroySiblings(t,s,i,h){if(this.W(t)){if("function"==typeof h)for(;this.I[t].length;)h(this.I[t].pop());delete this.I[t],this.V(t,i),this.U(t,s)}}endRegistration(){this.q=null}clear(){this.$()}}const S=Object.freeze({DRAGGED:"dragged",INDEX:"data-index",OUT_POS:"data-dragged-out-position",OUT_CONTAINER:"data-dragged-out-container"});class K{static getType(){return"base:element"}constructor(t){this.id=t,this.isPaused=!1,this.translate=new c(0,0),this.Y=new Set}setAttribute(t,s,i){"INDEX"!==s?this.Y.has(s)||(t.setAttribute(S[s],`${i}`),this.Y.add(s)):t.setAttribute(S[s],`${i}`)}removeAttribute(t,s){"INDEX"!==s&&this.Y.has(s)&&(t.removeAttribute(S[s]),this.Y.delete(s))}clearAttributes(t){this.Y.forEach((s=>{this.removeAttribute(t,s)})),this.Y.clear()}}K.transform=function(t,s,i){t.style.transform=`translate3d(${s}px,${i}px, 0)`};const E=class extends K{constructor(t){const{order:s,keys:i,depth:h,readonly:e,id:n}=t;super(n),this.VDOMOrder={...s},this.DOMOrder={...s},this.keys={...i},this.depth=h,this.readonly=e,this.isPaused=!1,this.isVisible=!this.isPaused,this.animatedFrame=null,this.hasPendingTransform=!1,this.J=void 0,this.Z=null,this.tt=new c(0,0),this.rect=new u(0,0,0,0),this.DOMGrid=new c(0,0)}static getType(){return"core:element"}initElmRect(t,s,i){const{height:h,width:e,left:n,top:r}=t.getBoundingClientRect(),o=n+s,l=r+i;this.tt.setAxes(o,l),this.rect.setByPointAndDimensions(l,o,h,e)}getDimensions(t){if(this.Z)return this.Z;const{width:s,height:i}=function(t){return{width:p(t,o,!0),height:p(t,r,!0)}}(t);return this.Z=new c(s,i),this.Z}getInitialPosition(){return this.tt}changeVisibility(t,s){s!==this.isVisible&&(this.isVisible=s,this.hasPendingTransform&&this.isVisible&&(this.st(t),this.hasPendingTransform=!1))}st(t,s){this.isVisible?(null!==this.animatedFrame&&cancelAnimationFrame(this.animatedFrame),this.animatedFrame=requestAnimationFrame((()=>{E.transform(t,this.translate.x,this.translate.y),s&&s(),this.animatedFrame=null}))):this.hasPendingTransform=!0}updateIndex(t,s){this.setAttribute(t,"INDEX",s),this.VDOMOrder.self=s}assignNewIndex(t,s){t[s]=this.id}it(t,s,i){const h={axes:t,numberOfPassedElm:i,translate:this.translate.getInstance()};void 0===this.J&&(this.J=new Map),this.J.has(s)||this.J.set(s,[]),this.J.get(s).push(h)}ht(t,s){if(s)return!this.isVisible&&this.hasPendingTransform?void(this.hasPendingTransform=!1):void this.st(t);this.isVisible?this.st(t):this.hasPendingTransform=!0}et(t,s,i,h){this.translate.increase(s),this.rect.setAxes(this.tt.x+this.translate.x,this.tt.y+this.translate.y),this.ht(t,i);const{self:e}=this.VDOMOrder,n=e+h;return this.updateIndex(t,n),[e,n]}nt(t,s,i){if(-1!==t)for(let t=0;t<s;t+=1)this.DOMGrid.x+=1,this.DOMGrid.x>i.x&&(this.DOMGrid.x=0,this.DOMGrid.y+=1);else for(let t=0;t<s;t+=1)this.DOMGrid.x-=1,this.DOMGrid.x<0&&(this.DOMGrid.x=i.x,this.DOMGrid.y-=1)}reconcilePosition(t,s,i,h,e,n,r,o){let l;const u={x:1===s?-1:1,y:s};"z"===t?l=f:(l=[t],u[t]=s),l.forEach((t=>{e[t]*=u[t],this.nt(u[t],n,r)})),this.it(t,o,n);const c=s*n,[a,d]=this.et(i,e,!1,c);h[a]="",h[d]=this.id}restorePosition(t){this.st(t),this.setAttribute(t,"INDEX",this.VDOMOrder.self)}assignNewPosition(t,s){this.translate.clone(s),this.st(t)}rollBackPosition(t,s){if(void 0===this.J||!this.J.has(s))return;const i=this.J.get(s),{translate:h,axes:e,numberOfPassedElm:n}=i.pop(),r={x:h.x-this.translate.x,y:h.y-this.translate.y};let o=0;const l={x:r.x>0?1:-1,y:r.y>0?1:-1};if("z"===e?(o=r.x>0||r.y>0?1:-1,this.DOMGrid.increase({x:l.x*n,y:l.y*n})):(o=l[e]*n,this.DOMGrid[e]+=o),this.et(t,r,!0,o),0===i.length)return this.J.delete(s),void(0===this.J.size&&(this.J=void 0));this.rollBackPosition(t,s)}hasTransformedFromOrigin(){return this.tt.isNotEqual(this.rect.left,this.rect.top)}needDOMReconciliation(){return this.VDOMOrder.self!==this.DOMOrder.self}refreshIndicators(t,s,i){this.J=void 0,this.translate.setAxes(0,0),this.hasPendingTransform=!1,this.DOMOrder.self=this.VDOMOrder.self,function(t){t.style.removeProperty("transform"),t.getAttribute("style")||t.removeAttribute("style")}(t),this.initElmRect(t,s,i),this.DOMGrid.setAxes(0,0)}getSerializedInstance(){return{type:E.getType(),version:3,id:this.id,grid:this.DOMGrid,translate:this.translate instanceof c?this.translate:null,order:this.VDOMOrder,initialPosition:this.tt.getInstance(),rect:this.rect,hasTransformedFromOrigin:this.hasTransformedFromOrigin(),hasPendingTransformation:this.hasPendingTransform,isVisible:this.isVisible}}};let T=E;T.transform=K.transform;class A extends T{static getDistance(t,s,i){let h=t[i]-s.rect["x"===i?"left":"top"];return h+=s.translate[i],h}static getDisplacement(t,s,i){const h="x"===i?s.rect.right:s.rect.bottom;return t[i]-h}getDisplacement(t,s){return A.getDisplacement(this.rect.getPosition(),t,s)}getDistance(t,s){return A.getDistance(this.rect.getPosition(),t,s)}}const $="registerQ",B="submitQ";class P{constructor(){this.globals={removeContainerWhenEmpty:!1},this.rt=null,this.tracker=new a,this.ot=new d,this.registry=new Map,this.interactiveDOM=new Map,this.DOMGen=new O}config(t){t.removeContainerWhenEmpty,Object.assign(this.globals,t)}lt(t,s,i){const{id:h,depth:e,readonly:n}=s;let l,u,c=!1;e>0&&(c=function(t,s,i,h){let e=!1;const n=s.getSiblingKeysByDepth(h),r=n.length;if(r>0){const h=s.getElmSiblingsByKey(n[r-1]),o=h.length;if(o>0){const s=h[o-1],{previousElementSibling:n}=t;n&&(e=n.isSameNode(i.get(s)))}}return e}(t,this.DOMGen,this.interactiveDOM,e),_(t),this.globals.removeContainerWhenEmpty||function(t){const s=y(t,r),i=y(t,o);t.style.setProperty(r,`${s}px`),t.style.setProperty(o,`${i}px`)}(t)),i&&({keys:l,VDOMOrder:{self:u}}=i);const{order:a,keys:d}=this.DOMGen.register(h,e,c,l,u),f=new A({id:h,order:a,keys:d,depth:e,readonly:n});return this.registry.set(h,f),this.interactiveDOM.set(h,t),f.setAttribute(t,"INDEX",f.VDOMOrder.self),e>0&&(t.dataset.dflexKey=d.SK),d}ut(t,s,i,h){let e=null;return t.childNodes.forEach(((t,n)=>{if(t instanceof HTMLElement){let{id:n}=t;if(n||(n=this.tracker.newTravel(a.PREFIX_ID),t.id=n),!this.registry.has(n)){const r={depth:s,readonly:i!==n,id:n};({SK:e}=this.lt(t,r,h))}}})),e}endRegistration(){this.rt=null,this.DOMGen.endRegistration()}register(t,s,i){this.ot.cancelQueuedTask();const{id:h,depth:e,readonly:n}=t;let r,o,l=this.registry.has(h);if(l){r=this.interactiveDOM.get(h);const t=this.registry.get(h);t.readonly=n,({SK:o}=t.keys)}else r=function(t){let s=document.getElementById(t);return s&&s.nodeType===Node.ELEMENT_NODE||(s=null),s}(h);!function(t,s){let i=0,h=t;try{do{if(i+=1,i>1&&s(h))return i=0,h;h=h.parentElement}while(null!==h&&!h.isSameNode(document.body))}catch(t){}finally{i=0}}(r,(t=>{let r=!1,{id:u}=t;if(u?r=this.registry.has(u):(u=this.tracker.newTravel(a.PREFIX_ID),t.id=u),this.ot.hasElm(h)){0,[o]=this.ot.handleQueue($);this.registry.get(h).readonly=n,l=!0}if(null===this.rt||!this.rt.isSameNode(t)){const n=s=>{o=this.ut(t,e,h,s),l=!0},c=()=>{if(s&&i){0;const h=()=>s(o,e+1,t);this.ot.insertBeforeEnd(i,h,B)}};if(this.rt=t,r)l||(n(this.registry.get(u)),c());else{0,this.ot.handleQueue($);const s=e+1;l||n(null);const i=()=>{const{SK:i}=this.lt(t,{id:u,depth:s,readonly:!0},null);return i};0,this.ot.add(i,$,u),c()}}return this.ot.scheduleNextTask([$,B]),!0}))}getElmWithDOM(t){return[this.registry.get(t),this.interactiveDOM.get(t)]}has(t){return this.interactiveDOM.has(t)&&this.registry.has(t)}getElmSiblingsByKey(t){return this.DOMGen.getElmSiblingsByKey(t)}getSiblingKeysByDepth(t){return this.DOMGen.getSiblingKeysByDepth(t)}mutateSiblings(t,s){this.DOMGen.mutateSiblings(t,s)}unregister(t){this.registry.delete(t),this.interactiveDOM.delete(t)}destroy(){this.DOMGen.clear(),this.interactiveDOM.clear(),this.registry.clear(),this.ot.clear(),this.rt=null}}class I extends P{constructor(){super(),this.ct=this.ct.bind(this),this.dt=this.dt.bind(this)}dt(t){const[s,i]=this.getElmWithDOM(t);s.initElmRect(i,0,0)}ct(t){this.getElmSiblingsByKey(t).forEach(this.dt)}register(t){super.register({id:t,depth:0,readonly:!1},this.ct)}}var M=new I;function k(t,s){if(s)return t.setProperty("position","relative"),void t.setProperty("z-index","99");t.removeProperty("position"),t.removeProperty("z-index")}function N(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}class R{constructor(t,s,i){this.draggedElm=t,this.draggedDOM=s;const{translate:h}=this.draggedElm;this.ft=new c(h.x-i.x,h.y-i.y),this.translatePlaceholder=new c(0,0),this.gt="true",this.xt=null}yt(t,s){if(s)return this.xt=t.ariaDisabled,this.gt=t.contentEditable,t.ariaDisabled="true",void(t.contentEditable="false");t.ariaDisabled=this.xt,t.contentEditable=this.gt}setDOMAttrAndStyle(t,s,i,h,e,n){const{style:r}=t;if(i){this.yt(t,!0),this.draggedElm.setAttribute(t,"DRAGGED","true"),null!==s?(s.ariaLabel="Draggable",s.id=`dflex-draggable-mirror_${t.id}`,delete s.dataset.index,function(t,s,i){const[h=0,e=0]=s||[];t.setProperty("position","fixed"),t.setProperty("top",`${h}px`),t.setProperty("left",`${e}px`),i&&(i.y>0&&t.setProperty("height",`${i.y}px`),i.x>0&&t.setProperty("width",`${i.x}px`)),t.setProperty("z-index","99"),t.setProperty("margin","0")}(s.style,n,e),r.setProperty("opacity","0")):(t.ariaLabel="Draggable",k(r,!0)),document.body.style.setProperty("user-select","none");const i=window.getSelection();i&&i.removeAllRanges()}else document.body.style.removeProperty("user-select"),this.yt(t,!1),t.ariaLabel=null,this.draggedElm.clearAttributes(t),null!==s?(h&&(r.setProperty("position","absolute"),e.x>0&&r.setProperty("width",`${e.x}px`),e.y>0&&r.setProperty("height",`${e.y}px`)),r.removeProperty("opacity"),s.remove()):k(r,!1),N(t,"style"),N(document.body,"style")}translate(t,s){this.translatePlaceholder.setAxes(t+this.ft.x,s+this.ft.y),K.transform(this.draggedDOM,this.translatePlaceholder.x,this.translatePlaceholder.y)}}exports.DFlexBaseDraggable=R,exports.Draggable=class extends R{constructor(t,s){const[i,h]=M.getElmWithDOM(t);super(i,h,s),this.setDOMAttrAndStyle(this.draggedDOM,null,!0,!1,null,null)}dragAt(t,s){this.translate(t,s),this.draggedElm.translate.clone(this.translatePlaceholder)}endDragging(){this.setDOMAttrAndStyle(this.draggedDOM,null,!1,!1,null,null)}},exports.store=M; | ||
"use strict";class t{constructor(t,s){this.x=t,this.y=s}}class s extends t{setAxes(t,s){this.x=t,this.y=s}clone(t){this.setAxes(t.x,t.y)}getInstance(){return{x:this.x,y:this.y}}isInstanceEqual(t){return this.x===t.x&&this.y===t.y}isEqual(t,s){return this.x===t&&this.y===s}isNotEqual(t,s){return this.x!==t||this.y!==s}}class i{constructor(t,s,i,h){this.top=t,this.right=s,this.bottom=i,this.left=h}}class h extends i{clone(t){this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left}setBox(t,s,i,h){return this.top=t,this.right=s,this.bottom=i,this.left=h,this}getBox(){return{top:this.top,right:this.right,bottom:this.bottom,left:this.left}}setByAxis(t,s,i){if("x"===t)this.left=s,this.right=i;else this.top=s,this.bottom=i}setOne(t,s,i){if("x"===t)-1===s?this.left=i:this.right=i;else-1===s?this.top=i:this.bottom=i}getOne(t,s){return"x"===t?-1===s?this.left:this.right:-1===s?this.top:this.bottom}setPositionInstance(t){this.top=t.y,this.left=t.x}setPosition(t,s){this.top=s,this.left=t}hasEqualPosition(t,s){return this.top===s||this.left===t}getPosition(){return{x:this.left,y:this.top}}}class e extends h{t(t){return this.top>=t.bottom}i(t){return this.bottom<=t.top}h(t){return this.right<=t.left}o(t){return this.left>=t.right}l(t){return this.top<t.top}u(t){return this.right>t.right}g(t){return this.bottom>t.bottom}m(t){return this.left<t.left}p(t){return this.top>=t.top}S(t){return this.right<=t.right}_(t){return this.bottom<=t.bottom}T(t){return this.left>=t.left}isBoxIntersect(t){return!(this.i(t)||this.o(t)||this.t(t)||this.h(t))}isOutThreshold(t,s,i){if(s.setBox(!1,!1,!1,!1),i){if("y"===i){const i=this.l(t),h=this.g(t);return i&&(s.top=!0),h&&(s.bottom=!0),i||h}const h=this.m(t),e=this.u(t);return h&&(s.left=!0),e&&(s.right=!0),h||e}return this.l(t)?(s.top=!0,!0):this.u(t)?(s.right=!0,!0):this.g(t)?(s.bottom=!0,!0):!!this.m(t)&&(s.left=!0,!0)}isInsideThreshold(t){return this.p(t)&&this.S(t)&&this._(t)&&this.T(t)}getSurroundingBox(t){return{left:Math.min(t.left,this.left),top:Math.min(t.top,this.top),right:Math.max(t.right,this.right),bottom:Math.max(t.bottom,this.bottom)}}isPositionedY(t){return this.t(t)||this.i(t)}assignBiggestBox(t){const{top:s,left:i,right:h,bottom:e}=t;i<this.left&&(this.left=i),s<this.top&&(this.top=s),h>this.right&&(this.right=h),e>this.bottom&&(this.bottom=e)}}function n(t,s){return`${t}_${s}`}function r(t){const s={easing:"ease-in",duration:"dynamic"};return void 0===t?s:null===t?null:{...s,...t}}function o(){}const l="height",u="width",a="position";class c extends e{constructor(t,s,i,h){super(t,s,i,h),this.width=s-h,this.height=i-t}setByPointAndDimensions(t,s,i,h){this.top=t,this.left=s,this.width=h,this.height=i,this.right=s+h,this.bottom=t+i}setAxes(t,s){this.left=t,this.right=this.width+t,this.top=s,this.bottom=this.height+s}getDimensionDiff(t,s){const i=function(t){return"x"===t?u:l}(t);return this[i]-s[i]}getPositionDiff(t,s){const i=function(t){return"x"===t?"left":"top"}(t);return this[i]-s[t]}}class d extends s{increase(t){return this.x+=t.x,this.y+=t.y,this}composeBox(t,s){const{top:i,left:h,bottom:n,right:r}=t;return s?new e(i+this.y,r-this.x,n-this.y,h+this.x):new e(i-this.y,r+this.x,n+this.y,h-this.x)}onSameAxis(t,s){return"y"===t?s.x===this.x:s.y===this.y}}class f{constructor(){this.v={}}newTravel(t){return void 0===this.v[t]?this.v[t]=0:this.v[t]+=1,`${t}${this.v[t]}`}}const g="dflex_id_";class m{constructor(){this.O={},this.D=new Set}insertBeforeEnd(t,s,i,h){Array.isArray(this.O[i])||(this.O[i]=[]);const e=this.O[i].length;0===e?this.O[i].push(s):this.O[i][e-1]=s,this.O[i].push(t),h&&this.D.add(h)}add(t,s,i){Array.isArray(this.O[s])||(this.O[s]=[]),this.O[s].push(t),i&&this.D.add(i)}cancelQueuedTask(){void 0!==this.K&&(clearTimeout(this.K),this.K=void 0)}clear(){this.cancelQueuedTask(),this.O={},this.D.clear()}hasElm(t){return this.D.has(t)}handleQueue(t){const s=[];try{if(!Array.isArray(this.O[t])||0===this.O[t].length)return s;const i=this.O[t];this.O[t]=[],i.forEach((t=>{const i=t();s.push(i)}))}catch(t){}finally{this.K=void 0}return s}$(t){this.K=setTimeout((()=>{this.handleQueue(t[0]),queueMicrotask((()=>this.handleQueue(t[1]))),this.D.clear()}),0)}scheduleNextTask(t){void 0===this.K&&this.$(t)}}const p=Object.freeze(["x","y"]);let y=new WeakMap;function x(t,s,i){const h=function(t){if(y.has(t))return y.get(t);const s={computedStyle:getComputedStyle(t),parsedProperties:new Map};return y.set(t,s),s}(t),{parsedProperties:e,computedStyle:n}=h,r=e.get(s);if(void 0===r){const t=n.getPropertyValue(s),h=i?function(t){const s=parseFloat(t);return Number.isNaN(s)?0:s}(t):t;return e.set(s,h),h}return r}function b(t){const s=function(t){const s=t.match(/matrix\(\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^)]+)\)/);if(s)return[parseFloat(s[5]),parseFloat(s[6])];return null}(x(t,"transform",!1));return s}const S={height:["border-top-width","border-bottom-width","padding-top","padding-bottom"],width:["border-left-width","border-right-width","padding-left","padding-right"]},_={height:"offsetHeight",width:"offsetWidth"};function w(t,s){let i=0;S[s].forEach((s=>{i+=x(t,s,!0)}));return t[_[s]]-i}const T=/absolute|fixed/;function v(t){const s=function(t){return x(t,a,!1)}(t);T.test(s)&&t.style.setProperty(a,"relative")}const O="dflex_ky_",D="dflex_sk_",E="dflex_bk_";class K{constructor(){this.A()}A(){this.B={},this.P=0,this.I={},this.M={},this.C={},this.N={},this.R=-99,this.k=null,this.q=`${O}${n(0,0)}`}F(t,s){if(!Array.isArray(this.M[s]))return void(this.M[s]=[t]);this.M[s].find((s=>s===t))||this.M[s].push(t)}H(t,s){Array.isArray(this.I[s])||(this.I[s]=[]);return this.I[s].push(t)-1}j(t){for(let s=t;s<=t+2;s+=1)void 0===this.B[s]&&(this.B[s]=0)}L(t,s,i,h){const{BK:e,PK:r}=i,o=e!==this.k;this.k=e,o&&(this.B[t]=0);const l=`${D}${n(t,h)}`;let u=null;return t>0&&(u=this.q),o&&(this.C[e][t]={SK:l,id:s}),this.B[t]+=1,{siblingsIndex:h,CHK:u,SK:l,PK:r,BK:e}}X(t,s,i){const h=t+1;void 0===this.B[h]&&this.j(t);if(t<this.R){this.P+=1;const s=i?t:t-1;for(let t=0;t<=s;t+=1)this.B[t]=0}const e=`${E}${this.P}`;Array.isArray(this.C[e])||(this.C[e]=[]),i&&this.B[h]>0&&(this.B[h]-=1);const r=this.B[h],o=`${D}${n(t,r)}`;let l=`${O}${n(t+1,this.P)}`;i?l=this.N[t]:this.N[t]=l;let u=null;t>0&&(u=this.q),this.q=l;if(this.C[e].find((t=>t&&t.SK===o))||this.C[e].push({SK:o,id:s}),i){const t=`${E}${this.P-1}`,s=this.C[t],i=s.length;if(i===this.C[e].length+1){const t=s[i-1];this.C[e].push(t)}}return this.R=t,this.B[t]+=1,{siblingsIndex:r,CHK:u,SK:o,PK:l,BK:e}}G(t,s,i,h){this.F(i.SK,s);return{order:{self:this.H(t,i.SK),parent:h},keys:i}}register(t,s,i,h,e){const{CHK:n,SK:r,PK:o,BK:l,siblingsIndex:u}=h?this.L(s,t,h,e):this.X(s,t,i),a={CHK:n,SK:r,PK:o,BK:l};return this.G(t,s,a,u)}mutateSiblings(t,s){t in this.I&&Object.assign(this.I,{[t]:s})}getSiblingKeysByDepth(t){return this.M[t]||[]}getElmSiblingsByKey(t){return this.I[t]||[]}getHighestSKInAllBranches(){const t=new Set;return Object.keys(this.C).forEach((s=>{const i=this.C[s].length,h=this.C[s][i-1];h&&t.add(h)})),t}W(t){return Array.isArray(this.I[t])}removeIDFromBranch(t,s){this.C[s].find((s=>s&&s.id===t))&&(this.C[s]=this.C[s].map((s=>s&&s.id!==t?s:null)))}U(t,s){this.C[s]=this.C[s].map((s=>s&&s.SK!==t?s:null))}V(t,s){this.M[s]=this.M[s].filter((s=>s!==t)),this.M[s].length}destroySiblings(t,s,i,h){if(this.W(t)){if("function"==typeof h)for(;this.I[t].length;)h(this.I[t].pop());delete this.I[t],this.V(t,i),this.U(t,s)}}endRegistration(){this.k=null}clear(){this.A()}}const $=Object.freeze({DRAGGED:"dragged",INDEX:"data-index",OUT_POS:"data-dragged-out-position",OUT_CONTAINER:"data-dragged-out-container"});function A(t,s,i){t.style.setProperty("transform",`translate3d(${s}px, ${i}px, 0)`)}class B{static getType(){return"base:element"}static transform=A;constructor(t){this.id=t,this.translate=new d(0,0),this.Y=new Set}setAttribute(t,s,i){"INDEX"!==s?this.Y.has(s)||(t.setAttribute($[s],`${i}`),this.Y.add(s)):t.setAttribute($[s],`${i}`)}removeAttribute(t,s){"INDEX"!==s&&this.Y.has(s)&&(t.removeAttribute($[s]),this.Y.delete(s))}clearAttributes(t){this.Y.forEach((s=>{this.removeAttribute(t,s)})),this.Y.clear()}}const P="transition-property",I="transition-delay",M="transition-duration",C="transition-timing-function";function N(t,s){"string"!=typeof s?function(t,s){Object.entries(s).forEach((([s,i])=>{t.style.setProperty(s,i)}))}(t,s):function(t,s){t.classList.add(s)}(t,s)}function R(t,s){"string"!=typeof s?function(t,s){Object.keys(s).forEach((s=>{t.style.removeProperty(s)}))}(t,s):function(t,s){t.classList.remove(s)}(t,s)}const k="transitionend";class q extends B{static getType(){return"core:element"}constructor(t){const{order:s,keys:i,depth:h,readonly:e,animation:n,id:r,CSSTransform:o}=t;super(r),this.VDOMOrder={...s},this.DOMOrder={...s},this.keys={...i},this.depth=h,this.readonly=e,this.J=n,this.Z=o,this.tt=!0,this.st=null,this.it=!1,this.ht=void 0,this.et=null,this.nt=new d(0,0),this.rect=new c(0,0,0,0),this.DOMGrid=new d(0,0)}updateConfig(t,s,i){this.readonly=t,this.J=s,this.Z=i}initElmRect(t,s,i){const{height:h,width:e,left:n,top:r}=t.getBoundingClientRect(),o=n+s,l=r+i;this.nt.setAxes(o,l),this.rect.setByPointAndDimensions(l,o,h,e),this.rt(t)}rt(t){const s=b(t);if(s){const[t,i]=s,h=this.nt.x-t,e=this.nt.y-i;this.nt.setAxes(h,e),this.rect.setByPointAndDimensions(e,h,this.rect.height,this.rect.width),this.translate.setAxes(t,i)}}getDimensions(t){if(this.et)return this.et;const{width:s,height:i}=function(t){return{width:x(t,u,!0),height:x(t,l,!0)}}(t);return this.et=new d(s,i),this.et}getInitialPosition(){return this.nt}changeVisibility(t,s){s!==this.tt&&(this.tt=s,this.it&&this.tt&&(this.ot(t,null),this.it=!1))}ot(t,s,i=o){if(!this.tt)return void(this.it=!0);null!==this.st&&(cancelAnimationFrame(this.st),this.st=null);const h=()=>{this.st=null,this.Z&&R(t,this.Z),this.J&&function(t){const{style:s}=t;s.removeProperty(P),s.removeProperty(I),s.removeProperty(M),s.removeProperty(C)}(t),s&&t.removeEventListener(k,h),i()};this.st=requestAnimationFrame((()=>{if(this.Z&&N(t,this.Z),null===s)return q.transform(t,this.translate.x,this.translate.y),void h();t.addEventListener(k,h),function(t,s,i,h){const{style:e}=t;e.setProperty(P,"transform"),e.setProperty(I,`${s}ms`),e.setProperty(M,`${i}ms`),e.setProperty(C,h)}(t,0,s,this.J.easing),q.transform(t,this.translate.x,this.translate.y)}))}updateIndex(t,s){this.setAttribute(t,"INDEX",s),this.VDOMOrder.self=s}assignNewIndex(t,s){t[s]=this.id}lt(t,s,i){const h={axes:t,numberOfPassedElm:i,translate:this.translate.getInstance()};void 0===this.ht&&(this.ht=new Map),this.ht.has(s)||this.ht.set(s,[]),this.ht.get(s).push(h)}ut(t,s,i){if(s)return!this.tt&&this.it?void(this.it=!1):void this.ot(t,i);this.tt?this.ot(t,i):this.it=!0}ct(t,s,i,h){let e=null;if(this.J){const{duration:t}=this.J,i=this.translate.getInstance(),h=this.translate.increase(s).getInstance();e="number"==typeof t?t:function(t,s){const i=t.x-s.x,h=t.y-s.y,e=Math.sqrt(i*i+h*h);return 20*Math.sqrt(e)}(i,h)}else this.translate.increase(s);this.rect.setAxes(this.nt.x+this.translate.x,this.nt.y+this.translate.y),this.ut(t,i,e);const{self:n}=this.VDOMOrder,r=n+h;return this.updateIndex(t,r),[n,r]}dt(t,s,i){if(-1!==t)for(let t=0;t<s;t+=1)this.DOMGrid.x+=1,this.DOMGrid.x>i.x&&(this.DOMGrid.x=0,this.DOMGrid.y+=1);else for(let t=0;t<s;t+=1)this.DOMGrid.x-=1,this.DOMGrid.x<0&&(this.DOMGrid.x=i.x,this.DOMGrid.y-=1)}reconcilePosition(t,s,i,h,e,n,r,o){let l;const u={x:1===s?-1:1,y:s};"z"===t?l=p:(l=[t],u[t]=s),l.forEach((t=>{e[t]*=u[t],this.dt(u[t],n,r)})),this.lt(t,o,n);const a=s*n,[c,d]=this.ct(i,e,!1,a);h[c]="",h[d]=this.id}restorePosition(t){this.ot(t,null),this.setAttribute(t,"INDEX",this.VDOMOrder.self)}assignNewPosition(t,s){this.translate.clone(s),this.ot(t,null)}rollBackPosition(t,s){if(void 0===this.ht||!this.ht.has(s))return;const i=this.ht.get(s),{translate:h,axes:e,numberOfPassedElm:n}=i.pop(),r={x:h.x-this.translate.x,y:h.y-this.translate.y};let o=0;const l={x:r.x>0?1:-1,y:r.y>0?1:-1};if("z"===e?(o=r.x>0||r.y>0?1:-1,this.DOMGrid.increase({x:l.x*n,y:l.y*n})):(o=l[e]*n,this.DOMGrid[e]+=o),this.ct(t,r,!0,o),0===i.length)return this.ht.delete(s),void(0===this.ht.size&&(this.ht=void 0));this.rollBackPosition(t,s)}hasTransformedFromOrigin(){return this.nt.isNotEqual(this.rect.left,this.rect.top)}needDOMReconciliation(){return this.VDOMOrder.self!==this.DOMOrder.self}refreshIndicators(t,s,i){this.ht=void 0,this.translate.setAxes(0,0),this.it=!1,this.DOMOrder.self=this.VDOMOrder.self,t.style.removeProperty("transform"),function(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}(t,"style"),this.initElmRect(t,s,i),this.DOMGrid.setAxes(0,0)}getSerializedInstance(){return{type:q.getType(),version:3,id:this.id,grid:this.DOMGrid,translate:this.translate instanceof d?this.translate:null,order:this.VDOMOrder,initialPosition:this.nt.getInstance(),rect:this.rect,hasTransformedFromOrigin:this.hasTransformedFromOrigin(),hasPendingTransformation:this.it,isVisible:this.tt}}}class F extends q{static getDistance(t,s,i){let h=t[i]-s.rect["x"===i?"left":"top"];return h+=s.translate[i],h}static getDisplacement(t,s,i){const h="x"===i?s.rect.right:s.rect.bottom;return t[i]-h}getDisplacement(t,s){return F.getDisplacement(this.rect.getPosition(),t,s)}getDistance(t,s){return F.getDistance(this.rect.getPosition(),t,s)}}const H="registerQ",j="submitQ";class L{constructor(){this.globals={removeContainerWhenEmpty:!1},this.ft=null,this.tracker=new f,this.gt=new m,this.registry=new Map,this.interactiveDOM=new Map,this.DOMGen=new K}config(t){t.removeContainerWhenEmpty,Object.assign(this.globals,t)}yt(t,s,i){const{id:h,depth:e,readonly:n,animation:r,CSSTransform:o}=s;let a,c,d=!1;e>0&&(d=function(t,s,i,h){let e=!1;const n=s.getSiblingKeysByDepth(h),r=n.length;if(r>0){const h=s.getElmSiblingsByKey(n[r-1]),o=h.length;if(o>0){const s=h[o-1],{previousElementSibling:n}=t;n&&(e=n.isSameNode(i.get(s)))}}return e}(t,this.DOMGen,this.interactiveDOM,e),v(t),this.globals.removeContainerWhenEmpty||function(t){const s=w(t,l),i=w(t,u),{style:h}=t;h.setProperty(l,`${s}px`),h.setProperty(u,`${i}px`)}(t)),i&&({keys:a,VDOMOrder:{self:c}}=i);const{order:f,keys:g}=this.DOMGen.register(h,e,d,a,c),m=new F({id:h,order:f,keys:g,depth:e,readonly:n,animation:r,CSSTransform:o});return this.registry.set(h,m),this.interactiveDOM.set(h,t),m.setAttribute(t,"INDEX",m.VDOMOrder.self),e>0&&(t.dataset.dflexKey=g.SK),g}xt(t,s,i,h,e,n){let r=null;return t.childNodes.forEach(((t,o)=>{if(t instanceof HTMLElement){let{id:o}=t;if(o||(o=this.tracker.newTravel(g),t.id=o),!this.registry.has(o)){const l={depth:s,readonly:e!==o,animation:i,id:o,CSSTransform:h};({SK:r}=this.yt(t,l,n))}}})),r}endRegistration(){this.ft=null,this.DOMGen.endRegistration()}addElmToRegistry(t,s,i){this.gt.cancelQueuedTask();const{id:h,depth:e,readonly:n,animation:o,CSSTransform:l}=t;let u,a,c=this.registry.has(h);if(c){u=this.interactiveDOM.get(h);const t=this.registry.get(h);t.updateConfig(n,o,l),({SK:a}=t.keys)}else u=function(t){let s=document.getElementById(t);return s&&s.nodeType===Node.ELEMENT_NODE||(s=null),s}(h);!function(t,s){let i=0,h=t;try{do{if(i+=1,i>1&&s(h))return i=0,h;h=h.parentElement}while(null!==h&&!h.isSameNode(document.body))}catch(t){}finally{i=0}}(u,(t=>{let u=!1,{id:d}=t;if(d?u=this.registry.has(d):(d=this.tracker.newTravel(g),t.id=d),this.gt.hasElm(h)){0,[a]=this.gt.handleQueue(H);this.registry.get(h).updateConfig(n,o,l),c=!0}if(null===this.ft||!this.ft.isSameNode(t)){const n=s=>{a=this.xt(t,e,o,l,h,s),c=!0},f=()=>{if(s&&i){0;const h=()=>s(a,e+1,t);this.gt.insertBeforeEnd(i,h,j)}};if(this.ft=t,u)c||(n(this.registry.get(d)),f());else{0,this.gt.handleQueue(H);const s=e+1;c||n(null);const i=()=>{const{SK:i}=this.yt(t,{id:d,depth:s,readonly:!0,animation:r(),CSSTransform:null},null);return i};0,this.gt.add(i,H,d),f()}}return this.gt.scheduleNextTask([H,j]),!0}))}getElmWithDOM(t){return[this.registry.get(t),this.interactiveDOM.get(t)]}has(t){return this.interactiveDOM.has(t)&&this.registry.has(t)}getElmSiblingsByKey(t){return this.DOMGen.getElmSiblingsByKey(t)}getSiblingKeysByDepth(t){return this.DOMGen.getSiblingKeysByDepth(t)}mutateSiblings(t,s){this.DOMGen.mutateSiblings(t,s)}unregister(t){this.registry.delete(t),this.interactiveDOM.delete(t)}destroy(){this.DOMGen.clear(),this.interactiveDOM.clear(),this.registry.clear(),this.gt.clear(),this.ft=null}}class z extends L{constructor(){super(),this.bt=this.bt.bind(this),this.St=this.St.bind(this)}St(t){const[s,i]=this.getElmWithDOM(t);s.initElmRect(i,0,0)}bt(t){this.getElmSiblingsByKey(t).forEach(this.St)}register(t){this.addElmToRegistry({id:t,depth:0,readonly:!1,animation:r(),CSSTransform:null},this.bt)}}var X=new z;function G(t,s){if(s)return t.setProperty("position","relative"),void t.setProperty("z-index","99");t.removeProperty("position"),t.removeProperty("z-index")}function Q(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}class W{constructor(t,s,i){this.draggedElm=t,this.draggedDOM=s;const{translate:h}=this.draggedElm;this._t=new d(h.x-i.x,h.y-i.y),this.translatePlaceholder=new d(0,0),this.wt="true",this.Tt=null}vt(t,s){if(s)return this.Tt=t.ariaDisabled,this.wt=t.contentEditable,t.ariaDisabled="true",void(t.contentEditable="false");t.ariaDisabled=this.Tt,t.contentEditable=this.wt}setDOMAttrAndStyle(t,s,i,h,e,n){const{style:r}=t;if(i){this.vt(t,!0),this.draggedElm.setAttribute(t,"DRAGGED","true"),null!==s?(s.ariaLabel="Draggable",s.id=`dflex-draggable-mirror_${t.id}`,delete s.dataset.index,function(t,s,i){const[h=0,e=0]=s||[];t.setProperty("position","fixed"),t.setProperty("top",`${h}px`),t.setProperty("left",`${e}px`),i&&(i.y>0&&t.setProperty("height",`${i.y}px`),i.x>0&&t.setProperty("width",`${i.x}px`)),t.setProperty("z-index","99"),t.setProperty("margin","0")}(s.style,n,e),r.setProperty("opacity","0")):(t.ariaLabel="Draggable",G(r,!0)),document.body.style.setProperty("user-select","none");const i=window.getSelection();i&&i.removeAllRanges()}else document.body.style.removeProperty("user-select"),this.vt(t,!1),t.ariaLabel=null,this.draggedElm.clearAttributes(t),null!==s?(h&&(r.setProperty("position","absolute"),e.x>0&&r.setProperty("width",`${e.x}px`),e.y>0&&r.setProperty("height",`${e.y}px`)),r.removeProperty("opacity"),s.remove()):G(r,!1),Q(t,"style"),Q(document.body,"style")}translate(t,s){this.translatePlaceholder.setAxes(t+this._t.x,s+this._t.y),B.transform(this.draggedDOM,this.translatePlaceholder.x,this.translatePlaceholder.y)}}exports.DFlexBaseDraggable=W,exports.Draggable=class extends W{constructor(t,s){const[i,h]=X.getElmWithDOM(t);super(i,h,s),this.setDOMAttrAndStyle(this.draggedDOM,null,!0,!1,null,null)}dragAt(t,s){this.translate(t,s),this.draggedElm.translate.clone(this.translatePlaceholder)}endDragging(){this.setDOMAttrAndStyle(this.draggedDOM,null,!1,!1,null,null)}},exports.store=X; |
@@ -1,1 +0,1 @@ | ||
"use strict";class t{constructor(t,s){this.x=t,this.y=s}}class s extends t{setAxes(t,s){this.x=t,this.y=s}clone(t){this.setAxes(t.x,t.y)}getInstance(){return{x:this.x,y:this.y}}isInstanceEqual(t){return this.x===t.x&&this.y===t.y}isEqual(t,s){return this.x===t&&this.y===s}isNotEqual(t,s){return this.x!==t||this.y!==s}}class i{constructor(t,s,i,h){this.top=t,this.right=s,this.bottom=i,this.left=h}}class h extends i{clone(t){this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left}setBox(t,s,i,h){return this.top=t,this.right=s,this.bottom=i,this.left=h,this}getBox(){return{top:this.top,right:this.right,bottom:this.bottom,left:this.left}}setByAxis(t,s,i){if("x"===t)this.left=s,this.right=i;else this.top=s,this.bottom=i}setOne(t,s,i){if("x"===t)-1===s?this.left=i:this.right=i;else-1===s?this.top=i:this.bottom=i}getOne(t,s){return"x"===t?-1===s?this.left:this.right:-1===s?this.top:this.bottom}setPositionInstance(t){this.top=t.y,this.left=t.x}setPosition(t,s){this.top=s,this.left=t}hasEqualPosition(t,s){return this.top===s||this.left===t}getPosition(){return{x:this.left,y:this.top}}}class e extends h{t(t){return this.top>=t.bottom}i(t){return this.bottom<=t.top}h(t){return this.right<=t.left}o(t){return this.left>=t.right}l(t){return this.top<t.top}u(t){return this.right>t.right}g(t){return this.bottom>t.bottom}p(t){return this.left<t.left}m(t){return this.top>=t.top}_(t){return this.right<=t.right}D(t){return this.bottom<=t.bottom}v(t){return this.left>=t.left}isBoxIntersect(t){return!(this.i(t)||this.o(t)||this.t(t)||this.h(t))}isOutThreshold(t,s,i){if(s.setBox(!1,!1,!1,!1),i){if("y"===i){const i=this.l(t),h=this.g(t);return i&&(s.top=!0),h&&(s.bottom=!0),i||h}const h=this.p(t),e=this.u(t);return h&&(s.left=!0),e&&(s.right=!0),h||e}return this.l(t)?(s.top=!0,!0):this.u(t)?(s.right=!0,!0):this.g(t)?(s.bottom=!0,!0):!!this.p(t)&&(s.left=!0,!0)}isInsideThreshold(t){return this.m(t)&&this._(t)&&this.D(t)&&this.v(t)}getSurroundingBox(t){return{left:Math.min(t.left,this.left),top:Math.min(t.top,this.top),right:Math.max(t.right,this.right),bottom:Math.max(t.bottom,this.bottom)}}isPositionedY(t){return this.t(t)||this.i(t)}assignBiggestBox(t){const{top:s,left:i,right:h,bottom:e}=t;i<this.left&&(this.left=i),s<this.top&&(this.top=s),h>this.right&&(this.right=h),e>this.bottom&&(this.bottom=e)}}function n(t,s){return`${t}_${s}`}const r="height",o="width",l="position";class u extends e{constructor(t,s,i,h){super(t,s,i,h),this.width=s-h,this.height=i-t}setByPointAndDimensions(t,s,i,h){this.top=t,this.left=s,this.width=h,this.height=i,this.right=s+h,this.bottom=t+i}setAxes(t,s){this.left=t,this.right=this.width+t,this.top=s,this.bottom=this.height+s}getDimensionDiff(t,s){const i=function(t){return"x"===t?o:r}(t);return this[i]-s[i]}getPositionDiff(t,s){const i=function(t){return"x"===t?"left":"top"}(t);return this[i]-s[t]}}class c extends s{increase(t){this.x+=t.x,this.y+=t.y}composeBox(t,s){const{top:i,left:h,bottom:n,right:r}=t;return s?new e(i+this.y,r-this.x,n-this.y,h+this.x):new e(i-this.y,r+this.x,n+this.y,h-this.x)}onSameAxis(t,s){return"y"===t?s.x===this.x:s.y===this.y}}class a{constructor(){this.O={}}newTravel(t){return void 0===this.O[t]?this.O[t]=0:this.O[t]+=1,`${t}${this.O[t]}`}}a.PREFIX_CYCLE="dflex_cycle_",a.PREFIX_ID="dflex_id_",a.PREFIX_ky="dflex_ky_";class d{constructor(){this.S={},this.K=new Set}insertBeforeEnd(t,s,i,h){Array.isArray(this.S[i])||(this.S[i]=[]);const e=this.S[i].length;0===e?this.S[i].push(s):this.S[i][e-1]=s,this.S[i].push(t),h&&this.K.add(h)}add(t,s,i){Array.isArray(this.S[s])||(this.S[s]=[]),this.S[s].push(t),i&&this.K.add(i)}cancelQueuedTask(){void 0!==this.T&&(clearTimeout(this.T),this.T=void 0)}clear(){this.cancelQueuedTask(),this.S={},this.K.clear()}hasElm(t){return this.K.has(t)}handleQueue(t){const s=[];try{if(!Array.isArray(this.S[t])||0===this.S[t].length)return s;const i=this.S[t];this.S[t]=[],i.forEach((t=>{const i=t();s.push(i)}))}catch(t){}finally{this.T=void 0}return s}A(t){this.T=setTimeout((()=>{this.handleQueue(t[0]),queueMicrotask((()=>this.handleQueue(t[1]))),this.K.clear()}),0)}scheduleNextTask(t){void 0===this.T&&this.A(t)}}const f=Object.freeze(["x","y"]);let g=new WeakMap;function p(t,s,i){const h=function(t){if(g.has(t))return g.get(t);const s={computedStyle:getComputedStyle(t),parsedProperties:new Map};return g.set(t,s),s}(t),{parsedProperties:e,computedStyle:n}=h,r=e.get(s);if(void 0===r){const t=n.getPropertyValue(s),h=i?function(t){const s=parseFloat(t);return Number.isNaN(s)?0:s}(t):t;return e.set(s,h),h}return r}const m={height:["border-top-width","border-bottom-width","padding-top","padding-bottom"],width:["border-left-width","border-right-width","padding-left","padding-right"]},x={height:"offsetHeight",width:"offsetWidth"};function y(t,s){let i=0;m[s].forEach((s=>{i+=p(t,s,!0)}));return t[x[s]]-i}const b=/absolute|fixed/;function _(t){const s=function(t){return p(t,l,!1)}(t);b.test(s)&&t.style.setProperty(l,"relative")}const w="dflex_ky_",D="dflex_sk_",v="dflex_bk_";class O{constructor(){this.$()}$(){this.B={},this.P=0,this.I={},this.M={},this.k={},this.N={},this.R=-99,this.q=null,this.C=`${w}${n(0,0)}`}F(t,s){if(!Array.isArray(this.M[s]))return void(this.M[s]=[t]);this.M[s].find((s=>s===t))||this.M[s].push(t)}H(t,s){Array.isArray(this.I[s])||(this.I[s]=[]);return this.I[s].push(t)-1}L(t){for(let s=t;s<=t+2;s+=1)void 0===this.B[s]&&(this.B[s]=0)}X(t,s,i,h){const{BK:e,PK:r}=i,o=e!==this.q;this.q=e,o&&(this.B[t]=0);const l=`${D}${n(t,h)}`;let u=null;return t>0&&(u=this.C),o&&(this.k[e][t]={SK:l,id:s}),this.B[t]+=1,{siblingsIndex:h,CHK:u,SK:l,PK:r,BK:e}}j(t,s,i){const h=t+1;void 0===this.B[h]&&this.L(t);if(t<this.R){this.P+=1;const s=i?t:t-1;for(let t=0;t<=s;t+=1)this.B[t]=0}const e=`${v}${this.P}`;Array.isArray(this.k[e])||(this.k[e]=[]),i&&this.B[h]>0&&(this.B[h]-=1);const r=this.B[h],o=`${D}${n(t,r)}`;let l=`${w}${n(t+1,this.P)}`;i?l=this.N[t]:this.N[t]=l;let u=null;t>0&&(u=this.C),this.C=l;if(this.k[e].find((t=>t&&t.SK===o))||this.k[e].push({SK:o,id:s}),i){const t=`${v}${this.P-1}`,s=this.k[t],i=s.length;if(i===this.k[e].length+1){const t=s[i-1];this.k[e].push(t)}}return this.R=t,this.B[t]+=1,{siblingsIndex:r,CHK:u,SK:o,PK:l,BK:e}}G(t,s,i,h){this.F(i.SK,s);return{order:{self:this.H(t,i.SK),parent:h},keys:i}}register(t,s,i,h,e){const{CHK:n,SK:r,PK:o,BK:l,siblingsIndex:u}=h?this.X(s,t,h,e):this.j(s,t,i),c={CHK:n,SK:r,PK:o,BK:l};return this.G(t,s,c,u)}mutateSiblings(t,s){t in this.I&&Object.assign(this.I,{[t]:s})}getSiblingKeysByDepth(t){return this.M[t]||[]}getElmSiblingsByKey(t){return this.I[t]||[]}getHighestSKInAllBranches(){const t=new Set;return Object.keys(this.k).forEach((s=>{const i=this.k[s].length,h=this.k[s][i-1];h&&t.add(h)})),t}W(t){return Array.isArray(this.I[t])}removeIDFromBranch(t,s){this.k[s].find((s=>s&&s.id===t))&&(this.k[s]=this.k[s].map((s=>s&&s.id!==t?s:null)))}U(t,s){this.k[s]=this.k[s].map((s=>s&&s.SK!==t?s:null))}V(t,s){this.M[s]=this.M[s].filter((s=>s!==t)),this.M[s].length}destroySiblings(t,s,i,h){if(this.W(t)){if("function"==typeof h)for(;this.I[t].length;)h(this.I[t].pop());delete this.I[t],this.V(t,i),this.U(t,s)}}endRegistration(){this.q=null}clear(){this.$()}}const S=Object.freeze({DRAGGED:"dragged",INDEX:"data-index",OUT_POS:"data-dragged-out-position",OUT_CONTAINER:"data-dragged-out-container"});class K{static getType(){return"base:element"}constructor(t){this.id=t,this.isPaused=!1,this.translate=new c(0,0),this.Y=new Set}setAttribute(t,s,i){"INDEX"!==s?this.Y.has(s)||(t.setAttribute(S[s],`${i}`),this.Y.add(s)):t.setAttribute(S[s],`${i}`)}removeAttribute(t,s){"INDEX"!==s&&this.Y.has(s)&&(t.removeAttribute(S[s]),this.Y.delete(s))}clearAttributes(t){this.Y.forEach((s=>{this.removeAttribute(t,s)})),this.Y.clear()}}K.transform=function(t,s,i){t.style.transform=`translate3d(${s}px,${i}px, 0)`};const E=class extends K{constructor(t){const{order:s,keys:i,depth:h,readonly:e,id:n}=t;super(n),this.VDOMOrder={...s},this.DOMOrder={...s},this.keys={...i},this.depth=h,this.readonly=e,this.isPaused=!1,this.isVisible=!this.isPaused,this.animatedFrame=null,this.hasPendingTransform=!1,this.J=void 0,this.Z=null,this.tt=new c(0,0),this.rect=new u(0,0,0,0),this.DOMGrid=new c(0,0)}static getType(){return"core:element"}initElmRect(t,s,i){const{height:h,width:e,left:n,top:r}=t.getBoundingClientRect(),o=n+s,l=r+i;this.tt.setAxes(o,l),this.rect.setByPointAndDimensions(l,o,h,e)}getDimensions(t){if(this.Z)return this.Z;const{width:s,height:i}=function(t){return{width:p(t,o,!0),height:p(t,r,!0)}}(t);return this.Z=new c(s,i),this.Z}getInitialPosition(){return this.tt}changeVisibility(t,s){s!==this.isVisible&&(this.isVisible=s,this.hasPendingTransform&&this.isVisible&&(this.st(t),this.hasPendingTransform=!1))}st(t,s){this.isVisible?(null!==this.animatedFrame&&cancelAnimationFrame(this.animatedFrame),this.animatedFrame=requestAnimationFrame((()=>{E.transform(t,this.translate.x,this.translate.y),s&&s(),this.animatedFrame=null}))):this.hasPendingTransform=!0}updateIndex(t,s){this.setAttribute(t,"INDEX",s),this.VDOMOrder.self=s}assignNewIndex(t,s){t[s]=this.id}it(t,s,i){const h={axes:t,numberOfPassedElm:i,translate:this.translate.getInstance()};void 0===this.J&&(this.J=new Map),this.J.has(s)||this.J.set(s,[]),this.J.get(s).push(h)}ht(t,s){if(s)return!this.isVisible&&this.hasPendingTransform?void(this.hasPendingTransform=!1):void this.st(t);this.isVisible?this.st(t):this.hasPendingTransform=!0}et(t,s,i,h){this.translate.increase(s),this.rect.setAxes(this.tt.x+this.translate.x,this.tt.y+this.translate.y),this.ht(t,i);const{self:e}=this.VDOMOrder,n=e+h;return this.updateIndex(t,n),[e,n]}nt(t,s,i){if(-1!==t)for(let t=0;t<s;t+=1)this.DOMGrid.x+=1,this.DOMGrid.x>i.x&&(this.DOMGrid.x=0,this.DOMGrid.y+=1);else for(let t=0;t<s;t+=1)this.DOMGrid.x-=1,this.DOMGrid.x<0&&(this.DOMGrid.x=i.x,this.DOMGrid.y-=1)}reconcilePosition(t,s,i,h,e,n,r,o){let l;const u={x:1===s?-1:1,y:s};"z"===t?l=f:(l=[t],u[t]=s),l.forEach((t=>{e[t]*=u[t],this.nt(u[t],n,r)})),this.it(t,o,n);const c=s*n,[a,d]=this.et(i,e,!1,c);h[a]="",h[d]=this.id}restorePosition(t){this.st(t),this.setAttribute(t,"INDEX",this.VDOMOrder.self)}assignNewPosition(t,s){this.translate.clone(s),this.st(t)}rollBackPosition(t,s){if(void 0===this.J||!this.J.has(s))return;const i=this.J.get(s),{translate:h,axes:e,numberOfPassedElm:n}=i.pop(),r={x:h.x-this.translate.x,y:h.y-this.translate.y};let o=0;const l={x:r.x>0?1:-1,y:r.y>0?1:-1};if("z"===e?(o=r.x>0||r.y>0?1:-1,this.DOMGrid.increase({x:l.x*n,y:l.y*n})):(o=l[e]*n,this.DOMGrid[e]+=o),this.et(t,r,!0,o),0===i.length)return this.J.delete(s),void(0===this.J.size&&(this.J=void 0));this.rollBackPosition(t,s)}hasTransformedFromOrigin(){return this.tt.isNotEqual(this.rect.left,this.rect.top)}needDOMReconciliation(){return this.VDOMOrder.self!==this.DOMOrder.self}refreshIndicators(t,s,i){this.J=void 0,this.translate.setAxes(0,0),this.hasPendingTransform=!1,this.DOMOrder.self=this.VDOMOrder.self,function(t){t.style.removeProperty("transform"),t.getAttribute("style")||t.removeAttribute("style")}(t),this.initElmRect(t,s,i),this.DOMGrid.setAxes(0,0)}getSerializedInstance(){return{type:E.getType(),version:3,id:this.id,grid:this.DOMGrid,translate:this.translate instanceof c?this.translate:null,order:this.VDOMOrder,initialPosition:this.tt.getInstance(),rect:this.rect,hasTransformedFromOrigin:this.hasTransformedFromOrigin(),hasPendingTransformation:this.hasPendingTransform,isVisible:this.isVisible}}};let T=E;T.transform=K.transform;class A extends T{static getDistance(t,s,i){let h=t[i]-s.rect["x"===i?"left":"top"];return h+=s.translate[i],h}static getDisplacement(t,s,i){const h="x"===i?s.rect.right:s.rect.bottom;return t[i]-h}getDisplacement(t,s){return A.getDisplacement(this.rect.getPosition(),t,s)}getDistance(t,s){return A.getDistance(this.rect.getPosition(),t,s)}}const $="registerQ",B="submitQ";class P{constructor(){this.globals={removeContainerWhenEmpty:!1},this.rt=null,this.tracker=new a,this.ot=new d,this.registry=new Map,this.interactiveDOM=new Map,this.DOMGen=new O}config(t){t.removeContainerWhenEmpty,Object.assign(this.globals,t)}lt(t,s,i){const{id:h,depth:e,readonly:n}=s;let l,u,c=!1;e>0&&(c=function(t,s,i,h){let e=!1;const n=s.getSiblingKeysByDepth(h),r=n.length;if(r>0){const h=s.getElmSiblingsByKey(n[r-1]),o=h.length;if(o>0){const s=h[o-1],{previousElementSibling:n}=t;n&&(e=n.isSameNode(i.get(s)))}}return e}(t,this.DOMGen,this.interactiveDOM,e),_(t),this.globals.removeContainerWhenEmpty||function(t){const s=y(t,r),i=y(t,o);t.style.setProperty(r,`${s}px`),t.style.setProperty(o,`${i}px`)}(t)),i&&({keys:l,VDOMOrder:{self:u}}=i);const{order:a,keys:d}=this.DOMGen.register(h,e,c,l,u),f=new A({id:h,order:a,keys:d,depth:e,readonly:n});return this.registry.set(h,f),this.interactiveDOM.set(h,t),f.setAttribute(t,"INDEX",f.VDOMOrder.self),e>0&&(t.dataset.dflexKey=d.SK),d}ut(t,s,i,h){let e=null;return t.childNodes.forEach(((t,n)=>{if(t instanceof HTMLElement){let{id:n}=t;if(n||(n=this.tracker.newTravel(a.PREFIX_ID),t.id=n),!this.registry.has(n)){const r={depth:s,readonly:i!==n,id:n};({SK:e}=this.lt(t,r,h))}}})),e}endRegistration(){this.rt=null,this.DOMGen.endRegistration()}register(t,s,i){this.ot.cancelQueuedTask();const{id:h,depth:e,readonly:n}=t;let r,o,l=this.registry.has(h);if(l){r=this.interactiveDOM.get(h);const t=this.registry.get(h);t.readonly=n,({SK:o}=t.keys)}else r=function(t){let s=document.getElementById(t);return s&&s.nodeType===Node.ELEMENT_NODE||(s=null),s}(h);!function(t,s){let i=0,h=t;try{do{if(i+=1,i>1&&s(h))return i=0,h;h=h.parentElement}while(null!==h&&!h.isSameNode(document.body))}catch(t){}finally{i=0}}(r,(t=>{let r=!1,{id:u}=t;if(u?r=this.registry.has(u):(u=this.tracker.newTravel(a.PREFIX_ID),t.id=u),this.ot.hasElm(h)){0,[o]=this.ot.handleQueue($);this.registry.get(h).readonly=n,l=!0}if(null===this.rt||!this.rt.isSameNode(t)){const n=s=>{o=this.ut(t,e,h,s),l=!0},c=()=>{if(s&&i){0;const h=()=>s(o,e+1,t);this.ot.insertBeforeEnd(i,h,B)}};if(this.rt=t,r)l||(n(this.registry.get(u)),c());else{0,this.ot.handleQueue($);const s=e+1;l||n(null);const i=()=>{const{SK:i}=this.lt(t,{id:u,depth:s,readonly:!0},null);return i};0,this.ot.add(i,$,u),c()}}return this.ot.scheduleNextTask([$,B]),!0}))}getElmWithDOM(t){return[this.registry.get(t),this.interactiveDOM.get(t)]}has(t){return this.interactiveDOM.has(t)&&this.registry.has(t)}getElmSiblingsByKey(t){return this.DOMGen.getElmSiblingsByKey(t)}getSiblingKeysByDepth(t){return this.DOMGen.getSiblingKeysByDepth(t)}mutateSiblings(t,s){this.DOMGen.mutateSiblings(t,s)}unregister(t){this.registry.delete(t),this.interactiveDOM.delete(t)}destroy(){this.DOMGen.clear(),this.interactiveDOM.clear(),this.registry.clear(),this.ot.clear(),this.rt=null}}class I extends P{constructor(){super(),this.ct=this.ct.bind(this),this.dt=this.dt.bind(this)}dt(t){const[s,i]=this.getElmWithDOM(t);s.initElmRect(i,0,0)}ct(t){this.getElmSiblingsByKey(t).forEach(this.dt)}register(t){super.register({id:t,depth:0,readonly:!1},this.ct)}}var M=new I;function k(t,s){if(s)return t.setProperty("position","relative"),void t.setProperty("z-index","99");t.removeProperty("position"),t.removeProperty("z-index")}function N(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}class R{constructor(t,s,i){this.draggedElm=t,this.draggedDOM=s;const{translate:h}=this.draggedElm;this.ft=new c(h.x-i.x,h.y-i.y),this.translatePlaceholder=new c(0,0),this.gt="true",this.xt=null}yt(t,s){if(s)return this.xt=t.ariaDisabled,this.gt=t.contentEditable,t.ariaDisabled="true",void(t.contentEditable="false");t.ariaDisabled=this.xt,t.contentEditable=this.gt}setDOMAttrAndStyle(t,s,i,h,e,n){const{style:r}=t;if(i){this.yt(t,!0),this.draggedElm.setAttribute(t,"DRAGGED","true"),null!==s?(s.ariaLabel="Draggable",s.id=`dflex-draggable-mirror_${t.id}`,delete s.dataset.index,function(t,s,i){const[h=0,e=0]=s||[];t.setProperty("position","fixed"),t.setProperty("top",`${h}px`),t.setProperty("left",`${e}px`),i&&(i.y>0&&t.setProperty("height",`${i.y}px`),i.x>0&&t.setProperty("width",`${i.x}px`)),t.setProperty("z-index","99"),t.setProperty("margin","0")}(s.style,n,e),r.setProperty("opacity","0")):(t.ariaLabel="Draggable",k(r,!0)),document.body.style.setProperty("user-select","none");const i=window.getSelection();i&&i.removeAllRanges()}else document.body.style.removeProperty("user-select"),this.yt(t,!1),t.ariaLabel=null,this.draggedElm.clearAttributes(t),null!==s?(h&&(r.setProperty("position","absolute"),e.x>0&&r.setProperty("width",`${e.x}px`),e.y>0&&r.setProperty("height",`${e.y}px`)),r.removeProperty("opacity"),s.remove()):k(r,!1),N(t,"style"),N(document.body,"style")}translate(t,s){this.translatePlaceholder.setAxes(t+this.ft.x,s+this.ft.y),K.transform(this.draggedDOM,this.translatePlaceholder.x,this.translatePlaceholder.y)}}exports.DFlexBaseDraggable=R,exports.Draggable=class extends R{constructor(t,s){const[i,h]=M.getElmWithDOM(t);super(i,h,s),this.setDOMAttrAndStyle(this.draggedDOM,null,!0,!1,null,null)}dragAt(t,s){this.translate(t,s),this.draggedElm.translate.clone(this.translatePlaceholder)}endDragging(){this.setDOMAttrAndStyle(this.draggedDOM,null,!1,!1,null,null)}},exports.store=M; | ||
"use strict";class t{constructor(t,s){this.x=t,this.y=s}}class s extends t{setAxes(t,s){this.x=t,this.y=s}clone(t){this.setAxes(t.x,t.y)}getInstance(){return{x:this.x,y:this.y}}isInstanceEqual(t){return this.x===t.x&&this.y===t.y}isEqual(t,s){return this.x===t&&this.y===s}isNotEqual(t,s){return this.x!==t||this.y!==s}}class i{constructor(t,s,i,h){this.top=t,this.right=s,this.bottom=i,this.left=h}}class h extends i{clone(t){this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left}setBox(t,s,i,h){return this.top=t,this.right=s,this.bottom=i,this.left=h,this}getBox(){return{top:this.top,right:this.right,bottom:this.bottom,left:this.left}}setByAxis(t,s,i){if("x"===t)this.left=s,this.right=i;else this.top=s,this.bottom=i}setOne(t,s,i){if("x"===t)-1===s?this.left=i:this.right=i;else-1===s?this.top=i:this.bottom=i}getOne(t,s){return"x"===t?-1===s?this.left:this.right:-1===s?this.top:this.bottom}setPositionInstance(t){this.top=t.y,this.left=t.x}setPosition(t,s){this.top=s,this.left=t}hasEqualPosition(t,s){return this.top===s||this.left===t}getPosition(){return{x:this.left,y:this.top}}}class e extends h{t(t){return this.top>=t.bottom}i(t){return this.bottom<=t.top}h(t){return this.right<=t.left}o(t){return this.left>=t.right}l(t){return this.top<t.top}u(t){return this.right>t.right}g(t){return this.bottom>t.bottom}m(t){return this.left<t.left}p(t){return this.top>=t.top}S(t){return this.right<=t.right}_(t){return this.bottom<=t.bottom}T(t){return this.left>=t.left}isBoxIntersect(t){return!(this.i(t)||this.o(t)||this.t(t)||this.h(t))}isOutThreshold(t,s,i){if(s.setBox(!1,!1,!1,!1),i){if("y"===i){const i=this.l(t),h=this.g(t);return i&&(s.top=!0),h&&(s.bottom=!0),i||h}const h=this.m(t),e=this.u(t);return h&&(s.left=!0),e&&(s.right=!0),h||e}return this.l(t)?(s.top=!0,!0):this.u(t)?(s.right=!0,!0):this.g(t)?(s.bottom=!0,!0):!!this.m(t)&&(s.left=!0,!0)}isInsideThreshold(t){return this.p(t)&&this.S(t)&&this._(t)&&this.T(t)}getSurroundingBox(t){return{left:Math.min(t.left,this.left),top:Math.min(t.top,this.top),right:Math.max(t.right,this.right),bottom:Math.max(t.bottom,this.bottom)}}isPositionedY(t){return this.t(t)||this.i(t)}assignBiggestBox(t){const{top:s,left:i,right:h,bottom:e}=t;i<this.left&&(this.left=i),s<this.top&&(this.top=s),h>this.right&&(this.right=h),e>this.bottom&&(this.bottom=e)}}function n(t,s){return`${t}_${s}`}function r(t){const s={easing:"ease-in",duration:"dynamic"};return void 0===t?s:null===t?null:{...s,...t}}function o(){}const l="height",u="width",a="position";class c extends e{constructor(t,s,i,h){super(t,s,i,h),this.width=s-h,this.height=i-t}setByPointAndDimensions(t,s,i,h){this.top=t,this.left=s,this.width=h,this.height=i,this.right=s+h,this.bottom=t+i}setAxes(t,s){this.left=t,this.right=this.width+t,this.top=s,this.bottom=this.height+s}getDimensionDiff(t,s){const i=function(t){return"x"===t?u:l}(t);return this[i]-s[i]}getPositionDiff(t,s){const i=function(t){return"x"===t?"left":"top"}(t);return this[i]-s[t]}}class d extends s{increase(t){return this.x+=t.x,this.y+=t.y,this}composeBox(t,s){const{top:i,left:h,bottom:n,right:r}=t;return s?new e(i+this.y,r-this.x,n-this.y,h+this.x):new e(i-this.y,r+this.x,n+this.y,h-this.x)}onSameAxis(t,s){return"y"===t?s.x===this.x:s.y===this.y}}class f{constructor(){this.v={}}newTravel(t){return void 0===this.v[t]?this.v[t]=0:this.v[t]+=1,`${t}${this.v[t]}`}}const g="dflex_id_";class m{constructor(){this.O={},this.D=new Set}insertBeforeEnd(t,s,i,h){Array.isArray(this.O[i])||(this.O[i]=[]);const e=this.O[i].length;0===e?this.O[i].push(s):this.O[i][e-1]=s,this.O[i].push(t),h&&this.D.add(h)}add(t,s,i){Array.isArray(this.O[s])||(this.O[s]=[]),this.O[s].push(t),i&&this.D.add(i)}cancelQueuedTask(){void 0!==this.K&&(clearTimeout(this.K),this.K=void 0)}clear(){this.cancelQueuedTask(),this.O={},this.D.clear()}hasElm(t){return this.D.has(t)}handleQueue(t){const s=[];try{if(!Array.isArray(this.O[t])||0===this.O[t].length)return s;const i=this.O[t];this.O[t]=[],i.forEach((t=>{const i=t();s.push(i)}))}catch(t){}finally{this.K=void 0}return s}$(t){this.K=setTimeout((()=>{this.handleQueue(t[0]),queueMicrotask((()=>this.handleQueue(t[1]))),this.D.clear()}),0)}scheduleNextTask(t){void 0===this.K&&this.$(t)}}const p=Object.freeze(["x","y"]);let y=new WeakMap;function x(t,s,i){const h=function(t){if(y.has(t))return y.get(t);const s={computedStyle:getComputedStyle(t),parsedProperties:new Map};return y.set(t,s),s}(t),{parsedProperties:e,computedStyle:n}=h,r=e.get(s);if(void 0===r){const t=n.getPropertyValue(s),h=i?function(t){const s=parseFloat(t);return Number.isNaN(s)?0:s}(t):t;return e.set(s,h),h}return r}function b(t){const s=function(t){const s=t.match(/matrix\(\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^,]+),\s*([^)]+)\)/);if(s)return[parseFloat(s[5]),parseFloat(s[6])];return null}(x(t,"transform",!1));return s}const S={height:["border-top-width","border-bottom-width","padding-top","padding-bottom"],width:["border-left-width","border-right-width","padding-left","padding-right"]},_={height:"offsetHeight",width:"offsetWidth"};function w(t,s){let i=0;S[s].forEach((s=>{i+=x(t,s,!0)}));return t[_[s]]-i}const T=/absolute|fixed/;function v(t){const s=function(t){return x(t,a,!1)}(t);T.test(s)&&t.style.setProperty(a,"relative")}const O="dflex_ky_",D="dflex_sk_",E="dflex_bk_";class K{constructor(){this.A()}A(){this.B={},this.P=0,this.I={},this.M={},this.C={},this.N={},this.R=-99,this.k=null,this.q=`${O}${n(0,0)}`}F(t,s){if(!Array.isArray(this.M[s]))return void(this.M[s]=[t]);this.M[s].find((s=>s===t))||this.M[s].push(t)}H(t,s){Array.isArray(this.I[s])||(this.I[s]=[]);return this.I[s].push(t)-1}j(t){for(let s=t;s<=t+2;s+=1)void 0===this.B[s]&&(this.B[s]=0)}L(t,s,i,h){const{BK:e,PK:r}=i,o=e!==this.k;this.k=e,o&&(this.B[t]=0);const l=`${D}${n(t,h)}`;let u=null;return t>0&&(u=this.q),o&&(this.C[e][t]={SK:l,id:s}),this.B[t]+=1,{siblingsIndex:h,CHK:u,SK:l,PK:r,BK:e}}X(t,s,i){const h=t+1;void 0===this.B[h]&&this.j(t);if(t<this.R){this.P+=1;const s=i?t:t-1;for(let t=0;t<=s;t+=1)this.B[t]=0}const e=`${E}${this.P}`;Array.isArray(this.C[e])||(this.C[e]=[]),i&&this.B[h]>0&&(this.B[h]-=1);const r=this.B[h],o=`${D}${n(t,r)}`;let l=`${O}${n(t+1,this.P)}`;i?l=this.N[t]:this.N[t]=l;let u=null;t>0&&(u=this.q),this.q=l;if(this.C[e].find((t=>t&&t.SK===o))||this.C[e].push({SK:o,id:s}),i){const t=`${E}${this.P-1}`,s=this.C[t],i=s.length;if(i===this.C[e].length+1){const t=s[i-1];this.C[e].push(t)}}return this.R=t,this.B[t]+=1,{siblingsIndex:r,CHK:u,SK:o,PK:l,BK:e}}G(t,s,i,h){this.F(i.SK,s);return{order:{self:this.H(t,i.SK),parent:h},keys:i}}register(t,s,i,h,e){const{CHK:n,SK:r,PK:o,BK:l,siblingsIndex:u}=h?this.L(s,t,h,e):this.X(s,t,i),a={CHK:n,SK:r,PK:o,BK:l};return this.G(t,s,a,u)}mutateSiblings(t,s){t in this.I&&Object.assign(this.I,{[t]:s})}getSiblingKeysByDepth(t){return this.M[t]||[]}getElmSiblingsByKey(t){return this.I[t]||[]}getHighestSKInAllBranches(){const t=new Set;return Object.keys(this.C).forEach((s=>{const i=this.C[s].length,h=this.C[s][i-1];h&&t.add(h)})),t}W(t){return Array.isArray(this.I[t])}removeIDFromBranch(t,s){this.C[s].find((s=>s&&s.id===t))&&(this.C[s]=this.C[s].map((s=>s&&s.id!==t?s:null)))}U(t,s){this.C[s]=this.C[s].map((s=>s&&s.SK!==t?s:null))}V(t,s){this.M[s]=this.M[s].filter((s=>s!==t)),this.M[s].length}destroySiblings(t,s,i,h){if(this.W(t)){if("function"==typeof h)for(;this.I[t].length;)h(this.I[t].pop());delete this.I[t],this.V(t,i),this.U(t,s)}}endRegistration(){this.k=null}clear(){this.A()}}const $=Object.freeze({DRAGGED:"dragged",INDEX:"data-index",OUT_POS:"data-dragged-out-position",OUT_CONTAINER:"data-dragged-out-container"});function A(t,s,i){t.style.setProperty("transform",`translate3d(${s}px, ${i}px, 0)`)}class B{static getType(){return"base:element"}static transform=A;constructor(t){this.id=t,this.translate=new d(0,0),this.Y=new Set}setAttribute(t,s,i){"INDEX"!==s?this.Y.has(s)||(t.setAttribute($[s],`${i}`),this.Y.add(s)):t.setAttribute($[s],`${i}`)}removeAttribute(t,s){"INDEX"!==s&&this.Y.has(s)&&(t.removeAttribute($[s]),this.Y.delete(s))}clearAttributes(t){this.Y.forEach((s=>{this.removeAttribute(t,s)})),this.Y.clear()}}const P="transition-property",I="transition-delay",M="transition-duration",C="transition-timing-function";function N(t,s){"string"!=typeof s?function(t,s){Object.entries(s).forEach((([s,i])=>{t.style.setProperty(s,i)}))}(t,s):function(t,s){t.classList.add(s)}(t,s)}function R(t,s){"string"!=typeof s?function(t,s){Object.keys(s).forEach((s=>{t.style.removeProperty(s)}))}(t,s):function(t,s){t.classList.remove(s)}(t,s)}const k="transitionend";class q extends B{static getType(){return"core:element"}constructor(t){const{order:s,keys:i,depth:h,readonly:e,animation:n,id:r,CSSTransform:o}=t;super(r),this.VDOMOrder={...s},this.DOMOrder={...s},this.keys={...i},this.depth=h,this.readonly=e,this.J=n,this.Z=o,this.tt=!0,this.st=null,this.it=!1,this.ht=void 0,this.et=null,this.nt=new d(0,0),this.rect=new c(0,0,0,0),this.DOMGrid=new d(0,0)}updateConfig(t,s,i){this.readonly=t,this.J=s,this.Z=i}initElmRect(t,s,i){const{height:h,width:e,left:n,top:r}=t.getBoundingClientRect(),o=n+s,l=r+i;this.nt.setAxes(o,l),this.rect.setByPointAndDimensions(l,o,h,e),this.rt(t)}rt(t){const s=b(t);if(s){const[t,i]=s,h=this.nt.x-t,e=this.nt.y-i;this.nt.setAxes(h,e),this.rect.setByPointAndDimensions(e,h,this.rect.height,this.rect.width),this.translate.setAxes(t,i)}}getDimensions(t){if(this.et)return this.et;const{width:s,height:i}=function(t){return{width:x(t,u,!0),height:x(t,l,!0)}}(t);return this.et=new d(s,i),this.et}getInitialPosition(){return this.nt}changeVisibility(t,s){s!==this.tt&&(this.tt=s,this.it&&this.tt&&(this.ot(t,null),this.it=!1))}ot(t,s,i=o){if(!this.tt)return void(this.it=!0);null!==this.st&&(cancelAnimationFrame(this.st),this.st=null);const h=()=>{this.st=null,this.Z&&R(t,this.Z),this.J&&function(t){const{style:s}=t;s.removeProperty(P),s.removeProperty(I),s.removeProperty(M),s.removeProperty(C)}(t),s&&t.removeEventListener(k,h),i()};this.st=requestAnimationFrame((()=>{if(this.Z&&N(t,this.Z),null===s)return q.transform(t,this.translate.x,this.translate.y),void h();t.addEventListener(k,h),function(t,s,i,h){const{style:e}=t;e.setProperty(P,"transform"),e.setProperty(I,`${s}ms`),e.setProperty(M,`${i}ms`),e.setProperty(C,h)}(t,0,s,this.J.easing),q.transform(t,this.translate.x,this.translate.y)}))}updateIndex(t,s){this.setAttribute(t,"INDEX",s),this.VDOMOrder.self=s}assignNewIndex(t,s){t[s]=this.id}lt(t,s,i){const h={axes:t,numberOfPassedElm:i,translate:this.translate.getInstance()};void 0===this.ht&&(this.ht=new Map),this.ht.has(s)||this.ht.set(s,[]),this.ht.get(s).push(h)}ut(t,s,i){if(s)return!this.tt&&this.it?void(this.it=!1):void this.ot(t,i);this.tt?this.ot(t,i):this.it=!0}ct(t,s,i,h){let e=null;if(this.J){const{duration:t}=this.J,i=this.translate.getInstance(),h=this.translate.increase(s).getInstance();e="number"==typeof t?t:function(t,s){const i=t.x-s.x,h=t.y-s.y,e=Math.sqrt(i*i+h*h);return 20*Math.sqrt(e)}(i,h)}else this.translate.increase(s);this.rect.setAxes(this.nt.x+this.translate.x,this.nt.y+this.translate.y),this.ut(t,i,e);const{self:n}=this.VDOMOrder,r=n+h;return this.updateIndex(t,r),[n,r]}dt(t,s,i){if(-1!==t)for(let t=0;t<s;t+=1)this.DOMGrid.x+=1,this.DOMGrid.x>i.x&&(this.DOMGrid.x=0,this.DOMGrid.y+=1);else for(let t=0;t<s;t+=1)this.DOMGrid.x-=1,this.DOMGrid.x<0&&(this.DOMGrid.x=i.x,this.DOMGrid.y-=1)}reconcilePosition(t,s,i,h,e,n,r,o){let l;const u={x:1===s?-1:1,y:s};"z"===t?l=p:(l=[t],u[t]=s),l.forEach((t=>{e[t]*=u[t],this.dt(u[t],n,r)})),this.lt(t,o,n);const a=s*n,[c,d]=this.ct(i,e,!1,a);h[c]="",h[d]=this.id}restorePosition(t){this.ot(t,null),this.setAttribute(t,"INDEX",this.VDOMOrder.self)}assignNewPosition(t,s){this.translate.clone(s),this.ot(t,null)}rollBackPosition(t,s){if(void 0===this.ht||!this.ht.has(s))return;const i=this.ht.get(s),{translate:h,axes:e,numberOfPassedElm:n}=i.pop(),r={x:h.x-this.translate.x,y:h.y-this.translate.y};let o=0;const l={x:r.x>0?1:-1,y:r.y>0?1:-1};if("z"===e?(o=r.x>0||r.y>0?1:-1,this.DOMGrid.increase({x:l.x*n,y:l.y*n})):(o=l[e]*n,this.DOMGrid[e]+=o),this.ct(t,r,!0,o),0===i.length)return this.ht.delete(s),void(0===this.ht.size&&(this.ht=void 0));this.rollBackPosition(t,s)}hasTransformedFromOrigin(){return this.nt.isNotEqual(this.rect.left,this.rect.top)}needDOMReconciliation(){return this.VDOMOrder.self!==this.DOMOrder.self}refreshIndicators(t,s,i){this.ht=void 0,this.translate.setAxes(0,0),this.it=!1,this.DOMOrder.self=this.VDOMOrder.self,t.style.removeProperty("transform"),function(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}(t,"style"),this.initElmRect(t,s,i),this.DOMGrid.setAxes(0,0)}getSerializedInstance(){return{type:q.getType(),version:3,id:this.id,grid:this.DOMGrid,translate:this.translate instanceof d?this.translate:null,order:this.VDOMOrder,initialPosition:this.nt.getInstance(),rect:this.rect,hasTransformedFromOrigin:this.hasTransformedFromOrigin(),hasPendingTransformation:this.it,isVisible:this.tt}}}class F extends q{static getDistance(t,s,i){let h=t[i]-s.rect["x"===i?"left":"top"];return h+=s.translate[i],h}static getDisplacement(t,s,i){const h="x"===i?s.rect.right:s.rect.bottom;return t[i]-h}getDisplacement(t,s){return F.getDisplacement(this.rect.getPosition(),t,s)}getDistance(t,s){return F.getDistance(this.rect.getPosition(),t,s)}}const H="registerQ",j="submitQ";class L{constructor(){this.globals={removeContainerWhenEmpty:!1},this.ft=null,this.tracker=new f,this.gt=new m,this.registry=new Map,this.interactiveDOM=new Map,this.DOMGen=new K}config(t){t.removeContainerWhenEmpty,Object.assign(this.globals,t)}yt(t,s,i){const{id:h,depth:e,readonly:n,animation:r,CSSTransform:o}=s;let a,c,d=!1;e>0&&(d=function(t,s,i,h){let e=!1;const n=s.getSiblingKeysByDepth(h),r=n.length;if(r>0){const h=s.getElmSiblingsByKey(n[r-1]),o=h.length;if(o>0){const s=h[o-1],{previousElementSibling:n}=t;n&&(e=n.isSameNode(i.get(s)))}}return e}(t,this.DOMGen,this.interactiveDOM,e),v(t),this.globals.removeContainerWhenEmpty||function(t){const s=w(t,l),i=w(t,u),{style:h}=t;h.setProperty(l,`${s}px`),h.setProperty(u,`${i}px`)}(t)),i&&({keys:a,VDOMOrder:{self:c}}=i);const{order:f,keys:g}=this.DOMGen.register(h,e,d,a,c),m=new F({id:h,order:f,keys:g,depth:e,readonly:n,animation:r,CSSTransform:o});return this.registry.set(h,m),this.interactiveDOM.set(h,t),m.setAttribute(t,"INDEX",m.VDOMOrder.self),e>0&&(t.dataset.dflexKey=g.SK),g}xt(t,s,i,h,e,n){let r=null;return t.childNodes.forEach(((t,o)=>{if(t instanceof HTMLElement){let{id:o}=t;if(o||(o=this.tracker.newTravel(g),t.id=o),!this.registry.has(o)){const l={depth:s,readonly:e!==o,animation:i,id:o,CSSTransform:h};({SK:r}=this.yt(t,l,n))}}})),r}endRegistration(){this.ft=null,this.DOMGen.endRegistration()}addElmToRegistry(t,s,i){this.gt.cancelQueuedTask();const{id:h,depth:e,readonly:n,animation:o,CSSTransform:l}=t;let u,a,c=this.registry.has(h);if(c){u=this.interactiveDOM.get(h);const t=this.registry.get(h);t.updateConfig(n,o,l),({SK:a}=t.keys)}else u=function(t){let s=document.getElementById(t);return s&&s.nodeType===Node.ELEMENT_NODE||(s=null),s}(h);!function(t,s){let i=0,h=t;try{do{if(i+=1,i>1&&s(h))return i=0,h;h=h.parentElement}while(null!==h&&!h.isSameNode(document.body))}catch(t){}finally{i=0}}(u,(t=>{let u=!1,{id:d}=t;if(d?u=this.registry.has(d):(d=this.tracker.newTravel(g),t.id=d),this.gt.hasElm(h)){0,[a]=this.gt.handleQueue(H);this.registry.get(h).updateConfig(n,o,l),c=!0}if(null===this.ft||!this.ft.isSameNode(t)){const n=s=>{a=this.xt(t,e,o,l,h,s),c=!0},f=()=>{if(s&&i){0;const h=()=>s(a,e+1,t);this.gt.insertBeforeEnd(i,h,j)}};if(this.ft=t,u)c||(n(this.registry.get(d)),f());else{0,this.gt.handleQueue(H);const s=e+1;c||n(null);const i=()=>{const{SK:i}=this.yt(t,{id:d,depth:s,readonly:!0,animation:r(),CSSTransform:null},null);return i};0,this.gt.add(i,H,d),f()}}return this.gt.scheduleNextTask([H,j]),!0}))}getElmWithDOM(t){return[this.registry.get(t),this.interactiveDOM.get(t)]}has(t){return this.interactiveDOM.has(t)&&this.registry.has(t)}getElmSiblingsByKey(t){return this.DOMGen.getElmSiblingsByKey(t)}getSiblingKeysByDepth(t){return this.DOMGen.getSiblingKeysByDepth(t)}mutateSiblings(t,s){this.DOMGen.mutateSiblings(t,s)}unregister(t){this.registry.delete(t),this.interactiveDOM.delete(t)}destroy(){this.DOMGen.clear(),this.interactiveDOM.clear(),this.registry.clear(),this.gt.clear(),this.ft=null}}class z extends L{constructor(){super(),this.bt=this.bt.bind(this),this.St=this.St.bind(this)}St(t){const[s,i]=this.getElmWithDOM(t);s.initElmRect(i,0,0)}bt(t){this.getElmSiblingsByKey(t).forEach(this.St)}register(t){this.addElmToRegistry({id:t,depth:0,readonly:!1,animation:r(),CSSTransform:null},this.bt)}}var X=new z;function G(t,s){if(s)return t.setProperty("position","relative"),void t.setProperty("z-index","99");t.removeProperty("position"),t.removeProperty("z-index")}function Q(t,s){if(!t.hasAttribute(s))return;const i=t.getAttribute(s);i&&""===i.trim()&&t.removeAttribute(s)}class W{constructor(t,s,i){this.draggedElm=t,this.draggedDOM=s;const{translate:h}=this.draggedElm;this._t=new d(h.x-i.x,h.y-i.y),this.translatePlaceholder=new d(0,0),this.wt="true",this.Tt=null}vt(t,s){if(s)return this.Tt=t.ariaDisabled,this.wt=t.contentEditable,t.ariaDisabled="true",void(t.contentEditable="false");t.ariaDisabled=this.Tt,t.contentEditable=this.wt}setDOMAttrAndStyle(t,s,i,h,e,n){const{style:r}=t;if(i){this.vt(t,!0),this.draggedElm.setAttribute(t,"DRAGGED","true"),null!==s?(s.ariaLabel="Draggable",s.id=`dflex-draggable-mirror_${t.id}`,delete s.dataset.index,function(t,s,i){const[h=0,e=0]=s||[];t.setProperty("position","fixed"),t.setProperty("top",`${h}px`),t.setProperty("left",`${e}px`),i&&(i.y>0&&t.setProperty("height",`${i.y}px`),i.x>0&&t.setProperty("width",`${i.x}px`)),t.setProperty("z-index","99"),t.setProperty("margin","0")}(s.style,n,e),r.setProperty("opacity","0")):(t.ariaLabel="Draggable",G(r,!0)),document.body.style.setProperty("user-select","none");const i=window.getSelection();i&&i.removeAllRanges()}else document.body.style.removeProperty("user-select"),this.vt(t,!1),t.ariaLabel=null,this.draggedElm.clearAttributes(t),null!==s?(h&&(r.setProperty("position","absolute"),e.x>0&&r.setProperty("width",`${e.x}px`),e.y>0&&r.setProperty("height",`${e.y}px`)),r.removeProperty("opacity"),s.remove()):G(r,!1),Q(t,"style"),Q(document.body,"style")}translate(t,s){this.translatePlaceholder.setAxes(t+this._t.x,s+this._t.y),B.transform(this.draggedDOM,this.translatePlaceholder.x,this.translatePlaceholder.y)}}exports.DFlexBaseDraggable=W,exports.Draggable=class extends W{constructor(t,s){const[i,h]=X.getElmWithDOM(t);super(i,h,s),this.setDOMAttrAndStyle(this.draggedDOM,null,!0,!1,null,null)}dragAt(t,s){this.translate(t,s),this.draggedElm.translate.clone(this.translatePlaceholder)}endDragging(){this.setDOMAttrAndStyle(this.draggedDOM,null,!1,!1,null,null)}},exports.store=X; |
{ | ||
"name": "@dflex/draggable", | ||
"version": "3.9.0", | ||
"version": "3.9.1", | ||
"description": "Draggable only package for all JavaScript frameworks", | ||
@@ -29,5 +29,5 @@ "author": "Jalal Maskoun", | ||
"devDependencies": { | ||
"@dflex/core-instance": "^3.9.0", | ||
"@dflex/store": "^3.9.0", | ||
"@dflex/utils": "^3.9.0", | ||
"@dflex/core-instance": "^3.9.1", | ||
"@dflex/store": "^3.9.1", | ||
"@dflex/utils": "^3.9.1", | ||
"eslint-config-dflex-react": "0.3.0" | ||
@@ -34,0 +34,0 @@ }, |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
197821
4926