New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

draggables

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

draggables - npm Package Compare versions

Comparing version 0.3.0 to 0.3.1

2

dist/draggables.browser.js
var draggables=function(t){"use strict";var e=Object.defineProperty,r=(t,r,n)=>((t,r,n)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n)(t,"symbol"!=typeof r?r+"":r,n)
/*! draggables v0.3.0 | MIT License | © Itai Tenenbaum 2025 | git+https://github.com/taitulism/draggables */;const n='[data-drag-role="draggable"]',i='[data-drag-role="grip"]',a=`${n}, ${i}`,o=t=>"dragDisabled"in t&&"false"!==t.dragDisabled,s=(t,e=0,r=0)=>{t.style.translate=`${e}px ${r}px`},d=t=>{if(!(t&&t instanceof HTMLElement))return;const e=t.closest(a)||void 0;if(!e)return;const{dragRole:r}=e.dataset;if("draggable"===r){if(o(e.dataset))return;if(Boolean(e.querySelector(i)))return;return e}if("grip"===r){const t=(t=>t.closest(n))(e);if(!t)throw new Error(`A grip must be inside a draggable ${n}`);if("true"===t.dataset.dragDisabled)return;return t}};const l="pointerdown",g="pointermove",v="pointerup";class c{constructor(t,e){r(this,"isEnabled",!0),r(this,"contextElm"),r(this,"opts"),r(this,"activeDrag"),r(this,"events",{grab:void 0,dragStart:void 0,dragging:void 0,dragEnd:void 0}),r(this,"onDragStart",(t=>{var e,r;if(!this.isEnabled||0!==t.button)return;const n=d(t.target);if(!n)return;const i=n.getBoundingClientRect();if(function(t,e,r){const{clientX:n,clientY:i}=e,{padding:a,cornerPadding:o}=r,s=n-t.x,d=i-t.y,l=t.x+t.width-n,g=t.y+t.height-i;return a?d<=a||g<=a||s<=a||l<=a:o?s<=o&&d<=o||l<=o&&d<=o||l<=o&&g<=o||s<=o&&g<=o:void 0}(i,t,this.opts))return;const a=n.closest("[data-drag-zone]")||document.body;this.activeDrag=function(t,e,r,n){const{dragAxis:i,dragPosition:a}=t.dataset,o={hasStarted:!1,elm:t,box:e,dragzoneBox:n.getBoundingClientRect(),axis:i,mouseStartX:r.clientX,mouseStartY:r.clientY,moveX:0,moveY:0,prevX:0,prevY:0};if(a){const[t,e]=a.split(",");o.prevX=parseInt(t,10),o.prevY=parseInt(e,10)}return o}(n,i,t,a),this.contextElm.style.userSelect="none",n.dataset.dragActive="",window.addEventListener(g,this.onDragging),window.addEventListener(v,this.onDrop),null==(r=(e=this.events).grab)||r.call(e,{ev:t,elm:n,relPos:[0,0]}),t.stopPropagation()})),r(this,"onDragging",(t=>{var e,r;const n=t.target;if(!this.isEnabled||o(n.dataset))return;const{activeDrag:i,events:a}=this,{axis:d,hasStarted:l,elm:g,prevX:v,prevY:c,mouseStartX:h,mouseStartY:u}=i,m=t.clientX-h,b=t.clientY-u,p=d&&"x"!==d?0:m,f=d&&"y"!==d?0:b,[E,w]=function(t,e,r){let n=t,i=e;const{box:a,dragzoneBox:o}=r;return t&&(a.x+t<o.x?n=o.x-a.x:a.right+t>o.right&&(n=o.right-a.right)),e&&(a.y+e<o.y?i=o.y-a.y:a.bottom+e>o.bottom&&(i=o.bottom-a.bottom)),[n,i]}(p,f,i),x=v+E,D=c+w;if(l)s(g,x,D),null==(e=a.dragging)||e.call(a,{ev:t,elm:g,relPos:[x,D]});else{Math.sqrt(m**2+b**2)>3&&(s(g,x,D),i.hasStarted=!0,null==(r=a.dragStart)||r.call(a,{ev:t,elm:g,relPos:[x,D]}))}i.moveX=x,i.moveY=D})),r(this,"onDrop",(t=>{var e,r,n;window.removeEventListener(g,this.onDragging),window.removeEventListener(v,this.onDrop);const{activeDrag:i}=this,{hasStarted:a,elm:o,moveX:s,moveY:d,prevX:l,prevY:c}=i;if(a){const i=s||l,a=d||c;o.dataset.dragPosition=`${i},${a}`,null==(r=(e=this.events).dragEnd)||r.call(e,{ev:t,elm:o,relPos:[i,a]}),(h=t.target)instanceof HTMLElement&&"dragPreventClick"in h.dataset&&(null==(n=t.target)||n.addEventListener("click",(t=>{t.stopImmediatePropagation()}),{once:!0,capture:!0}))}var h;delete o.dataset.dragActive,this.contextElm.style.userSelect=""})),this.opts=e,this.contextElm=t,t.addEventListener(l,this.onDragStart)}destroy(){var t;window.removeEventListener(g,this.onDragging),window.removeEventListener(v,this.onDrop),this.contextElm&&(this.contextElm.removeEventListener(l,this.onDragStart),this.contextElm=void 0),this.events={grab:void 0,dragStart:void 0,dragging:void 0,dragEnd:void 0},(null==(t=this.activeDrag)?void 0:t.elm)&&(delete this.activeDrag.elm.dataset.dragActive,this.activeDrag.elm=void 0),this.disable()}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}on(t,e){if(!(t in this.events))throw new Error("No such event name");return this.events[t]=e,this}off(t){if(!(t in this.events))throw new Error("No such event name");return this.events[t]=void 0,this}}const h={padding:0,cornerPadding:0};return t.Draggables=c,t.draggables=(t,e)=>t instanceof HTMLElement?new c(t,e||h):new c(document.body,t||h),Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({});
/*! draggables v0.3.1 | MIT License | © Itai Tenenbaum 2025 | git+https://github.com/taitulism/draggables */;const n='[data-drag-role="draggable"]',i='[data-drag-role="grip"]',a=`${n}, ${i}`,o=t=>"dragDisabled"in t&&"false"!==t.dragDisabled,s=(t,e=0,r=0)=>{t.style.translate=`${e}px ${r}px`},d=t=>{if(!(t&&t instanceof HTMLElement))return;const e=t.closest(a)||void 0;if(!e)return;const{dragRole:r}=e.dataset;if("draggable"===r){if(o(e.dataset))return;if(Boolean(e.querySelector(i)))return;return e}if("grip"===r){const t=(t=>t.closest(n))(e);if(!t)throw new Error(`A grip must be inside a draggable ${n}`);if("true"===t.dataset.dragDisabled)return;return t}};const l="pointerdown",g="pointermove",v="pointerup";class c{constructor(t,e){r(this,"isEnabled",!0),r(this,"contextElm"),r(this,"opts"),r(this,"activeDrag"),r(this,"events",{grab:void 0,dragStart:void 0,dragging:void 0,dragEnd:void 0}),r(this,"onDragStart",(t=>{var e,r;if(!this.isEnabled||0!==t.button)return;const n=d(t.target);if(!n)return;const i=n.getBoundingClientRect();if(function(t,e,r){const{clientX:n,clientY:i}=e,{padding:a,cornerPadding:o}=r,s=n-t.x,d=i-t.y,l=t.x+t.width-n,g=t.y+t.height-i;return a?d<=a||g<=a||s<=a||l<=a:o?s<=o&&d<=o||l<=o&&d<=o||l<=o&&g<=o||s<=o&&g<=o:void 0}(i,t,this.opts))return;const a=n.closest("[data-drag-zone]")||document.body;this.activeDrag=function(t,e,r,n){const{dragAxis:i,dragPosition:a}=t.dataset,o={hasStarted:!1,elm:t,box:e,dragzoneBox:n.getBoundingClientRect(),axis:i,mouseStartX:r.clientX,mouseStartY:r.clientY,moveX:0,moveY:0,prevX:0,prevY:0};if(a){const[t,e]=a.split(",");o.prevX=parseInt(t,10),o.prevY=parseInt(e,10)}return o}(n,i,t,a),this.contextElm.style.userSelect="none",n.dataset.dragActive="",window.addEventListener(g,this.onDragging),window.addEventListener(v,this.onDrop),null==(r=(e=this.events).grab)||r.call(e,{ev:t,elm:n,relPos:[0,0]}),t.stopPropagation()})),r(this,"onDragging",(t=>{var e,r;const n=t.target;if(!this.isEnabled||o(n.dataset))return;const{activeDrag:i,events:a}=this,{axis:d,hasStarted:l,elm:g,prevX:v,prevY:c,mouseStartX:h,mouseStartY:u}=i,m=t.clientX-h,b=t.clientY-u,p=d&&"x"!==d?0:m,f=d&&"y"!==d?0:b,[E,w]=function(t,e,r){let n=t,i=e;const{box:a,dragzoneBox:o}=r;return t&&(a.x+t<o.x?n=o.x-a.x:a.right+t>o.right&&(n=o.right-a.right)),e&&(a.y+e<o.y?i=o.y-a.y:a.bottom+e>o.bottom&&(i=o.bottom-a.bottom)),[n,i]}(p,f,i),x=v+E,D=c+w;if(l)s(g,x,D),null==(e=a.dragging)||e.call(a,{ev:t,elm:g,relPos:[x,D]});else{Math.sqrt(m**2+b**2)>3&&(s(g,x,D),i.hasStarted=!0,null==(r=a.dragStart)||r.call(a,{ev:t,elm:g,relPos:[x,D]}))}i.moveX=x,i.moveY=D})),r(this,"onDrop",(t=>{var e,r,n;window.removeEventListener(g,this.onDragging),window.removeEventListener(v,this.onDrop);const{activeDrag:i}=this,{hasStarted:a,elm:o,moveX:s,moveY:d,prevX:l,prevY:c}=i;if(a){const i=s||l,a=d||c;o.dataset.dragPosition=`${i},${a}`,null==(r=(e=this.events).dragEnd)||r.call(e,{ev:t,elm:o,relPos:[i,a]}),(h=t.target)instanceof HTMLElement&&"dragPreventClick"in h.dataset&&(null==(n=t.target)||n.addEventListener("click",(t=>{t.stopImmediatePropagation()}),{once:!0,capture:!0}))}var h;delete o.dataset.dragActive,this.contextElm.style.userSelect=""})),this.opts=e,this.contextElm=t,t.addEventListener(l,this.onDragStart)}destroy(){var t;window.removeEventListener(g,this.onDragging),window.removeEventListener(v,this.onDrop),this.contextElm&&(this.contextElm.removeEventListener(l,this.onDragStart),this.contextElm=void 0),this.events={grab:void 0,dragStart:void 0,dragging:void 0,dragEnd:void 0},(null==(t=this.activeDrag)?void 0:t.elm)&&(delete this.activeDrag.elm.dataset.dragActive,this.activeDrag.elm=void 0),this.disable()}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}on(t,e){if(!(t in this.events))throw new Error("No such event name");return this.events[t]=e,this}off(t){if(!(t in this.events))throw new Error("No such event name");return this.events[t]=void 0,this}}const h={padding:0,cornerPadding:0};return t.Draggables=c,t.draggables=(t,e)=>t instanceof HTMLElement?new c(t,e||h):new c(document.body,t||h),Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({});
//# sourceMappingURL=draggables.browser.js.map
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
/*! draggables v0.3.0 | MIT License | © Itai Tenenbaum 2025 | git+https://github.com/taitulism/draggables */
/*! draggables v0.3.1 | MIT License | © Itai Tenenbaum 2025 | git+https://github.com/taitulism/draggables */
const DragzoneSelector = "[data-drag-zone]";

@@ -6,0 +6,0 @@ const DraggableSelector = '[data-drag-role="draggable"]';

{
"name": "draggables",
"description": "Draggable elements.",
"version": "0.3.0",
"version": "0.3.1",
"license": "MIT",

@@ -34,13 +34,13 @@ "type": "module",

"devDependencies": {
"@eslint/js": "9.14.0",
"@eslint/js": "9.18.0",
"@rollup/plugin-terser": "0.4.4",
"@vitest/browser": "2.1.5",
"@vitest/coverage-v8": "2.1.5",
"eslint": "9.14.0",
"globals": "15.12.0",
"playwright": "1.48.2",
"typescript": "5.6.3",
"typescript-eslint": "8.14.0",
"vite": "5.4.11",
"vitest": "2.1.5"
"@vitest/browser": "3.0.3",
"@vitest/coverage-v8": "3.0.3",
"eslint": "9.18.0",
"globals": "15.14.0",
"playwright": "1.49.1",
"typescript": "5.7.3",
"typescript-eslint": "8.21.0",
"vite": "6.0.11",
"vitest": "3.0.3"
},

@@ -47,0 +47,0 @@ "homepage": "https://github.com/taitulism/draggables#readme",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc