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

drag-enable

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

drag-enable - npm Package Compare versions

Comparing version 1.0.2 to 1.0.3

2

package.json
{
"name": "drag-enable",
"version": "1.0.2",
"version": "1.0.3",
"description": "Enable drag element",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -0,1 +1,3 @@

// @ts-check
let targetElement;

@@ -41,3 +43,5 @@ let difX, difY, initialX, initialY;

function checkMatch(element, match){
let a, def;
/** @type {*} */
let def
let a

@@ -59,3 +63,3 @@ if (match){

def.type = 'css';
def.value = a.substring(1);
def.value = def.value.substring(1);
}

@@ -123,38 +127,38 @@ }

function onMouseMove(event) {
let rect, targetDrop, targetMouseOver, gd, x, y, dropName, evt;
let rect, targetDrop, targetMouseOver, gd, x, y, dropName, evt
deslocX = event.pageX - initialX;
deslocY = event.pageY - initialY;
mouseX = event.pageX;
mouseY = event.pageY;
deslocX = event.pageX - initialX
deslocY = event.pageY - initialY
mouseX = event.pageX
mouseY = event.pageY
evt = createEvent();
evt = createEvent()
// encontra o target drop
if (!targetElement.__display){
targetElement.__display = targetElement.style.display;
targetElement.__display = targetElement.style.display
}
targetElement.style.display = 'none';
targetDrop = targetMouseOver = document.elementFromPoint(event.pageX, event.pageY);
targetElement.style.display = targetElement.__display;
evt.target = targetDrop; // element que o mouse está dentro
targetElement.style.display = 'none'
targetDrop = targetMouseOver = document.elementFromPoint(event.pageX, event.pageY)
targetElement.style.display = targetElement.__display
evt.target = targetDrop // element que o mouse está dentro
if (targetDrop){
targetDrop = targetDrop.closest('[drop-enabled]');
if (targetDrop){
evt.targetDrop = targetDrop;
dropName = targetDrop.getAttribute('drop-enabled');
targetDrop = targetDrop.closest('[drop-enabled]')
if (targetDrop){
evt.targetDrop = targetDrop
dropName = targetDrop.getAttribute('drop-enabled')
if (targetElement.getAttribute('drop-target') && targetElement.getAttribute('drop-target') != dropName){
evt.targetDrop = targetDrop = null;
evt.targetDrop = targetDrop = null
} else {
// posição do mouse dentro target drop
rect = targetDrop.getBoundingClientRect();
evt.dropX = mouseX - rect.left;
evt.dropY = mouseY - rect.top;
rect = targetDrop.getBoundingClientRect()
evt.dropX = mouseX - rect.left
evt.dropY = mouseY - rect.top
// posição do mouse dentro do elemento mouseover
rect = targetMouseOver.getBoundingClientRect();
evt.dropChildX = mouseX - rect.left;
evt.dropChildY = mouseY - rect.top;
rect = targetMouseOver.getBoundingClientRect()
evt.dropChildX = mouseX - rect.left
evt.dropChildY = mouseY - rect.top
}

@@ -165,31 +169,34 @@ }

if (!targetElement.__drag_started) {
lockTextSelection();
lockTextSelection()
if (targetElement.getAttribute('drag-container')!='self'){
document.body.appendChild(targetElement);
if (targetElement.getAttribute('drag-container') != 'self'){
document.body.appendChild(targetElement)
}
targetElement.setAttribute('drag-moving', '');
targetElement.__drag_started = true;
dragData = {};
gd = targetElement.parentNode.getAttribute('grid');
targetElement.setAttribute('drag-moving', '')
targetElement.__drag_started = true
dragData = {}
gd = targetElement.parentNode.getAttribute('grid')
if (gd){
grid = gd.split(',');
grid = gd.split(',')
grid.forEach((n, i, a) => {
a[i] = Number(n);
});
a[i] = Number(n)
})
} else {
grid = [1,1];
grid = [1, 1]
}
dispatch('dragStart', {data:dragData, target:targetElement});
dispatch('dragStart', {data:dragData, target:targetElement, targetOrigin: event.target})
}
x = targetElement.parentNode == document.body ? mouseX - difX : targetElement.initialOffsetLeft + deslocX;
y = targetElement.parentNode == document.body ? mouseY - difY : targetElement.initialOffsetTop + deslocY;
x = targetElement.parentNode == document.body ? mouseX - difX : targetElement.initialOffsetLeft + deslocX
y = targetElement.parentNode == document.body ? mouseY - difY : targetElement.initialOffsetTop + deslocY
x = round(x, grid[0]);
y = round(y, grid[1]);
x = round(x, grid[0])
y = round(y, grid[1])
dispatch('dragMove', evt);
evt.x = x
evt.y = y
dispatch('dragMove', evt)

@@ -199,19 +206,19 @@ if (evt.cancel !== true) {

// posiciona o elemento
targetElement.style.zIndex = 9999999;
targetElement.style.position = 'absolute';
targetElement.style.margin = 0;
targetElement.style.top = `${y}px`;
targetElement.style.left = `${x}px`;
targetElement.style.zIndex = 9999999
targetElement.style.position = 'absolute'
targetElement.style.margin = 0
targetElement.style.top = `${evt.y}px`
targetElement.style.left = `${evt.x}px`
}
dispatch('dragAfterMove', evt);
dispatch('dragAfterMove', evt)
if (activeTargetDrop && activeTargetDrop != targetDrop){
// saiu da drop zone
evt.targetDrop = activeTargetDrop;
activeTargetDrop.removeAttribute('drop-over');
targetElement.removeAttribute('droppable');
evt.targetDrop = activeTargetDrop
activeTargetDrop.removeAttribute('drop-over')
targetElement.removeAttribute('droppable')
activeTargetDrop = null;
dispatch('dropExit', evt, targetDrop);
activeTargetDrop = null
dispatch('dropExit', evt) //, targetDrop)
}

@@ -221,10 +228,9 @@

// entrou na drop zone
targetDrop.setAttribute('drop-over', '');
targetElement.setAttribute('droppable', '');
activeTargetDrop = targetDrop;
dispatch('dropEnter', evt, targetDrop);
targetDrop.setAttribute('drop-over', '')
targetElement.setAttribute('droppable', '')
activeTargetDrop = targetDrop
dispatch('dropEnter', evt) //, targetDrop)
}
event.preventDefault()
// window.dispatchEvent(new Event('resize'));
// window.dispatchEvent(new Event('resize'))
}

@@ -263,56 +269,64 @@

function onMouseDown(event) {
let t = event.target;
let r;
let evt;
let t = event.target
let r, k, o, mode, evt, _isDraggable
if (targetElement){
onMouseUp();
targetElement = null;
activeOptions = [];
onMouseUp()
targetElement = null
activeOptions = []
}
while (t.parentNode) {
while (t.parentNode && t != document.body) {
if (t.hasAttribute('drag-disabled')){
return;
return
}
if (t.hasAttribute('drag-enabled')) {
activeOptions = getActiveOptions(t);
targetElement = t;
for (k in observers){
o = observers[k]
_isDraggable = o.isDraggable || isDraggable
mode = _isDraggable(t)
r = targetElement.getBoundingClientRect();
if (mode) {
activeOptions = getActiveOptions(t)
targetElement = t
difX = event.pageX - r.left;
difY = event.pageY - r.top;
initialX = event.pageX;
initialY = event.pageY;
targetElement.initialOffsetLeft = targetElement.offsetLeft;
targetElement.initialOffsetTop = targetElement.offsetTop;
r = targetElement.getBoundingClientRect()
if (targetElement.getAttribute('drag-enabled') == 'clone'){
targetElement = targetElement.cloneNode(true);
targetElement.__isClone = true;
}
difX = event.pageX - r.left
difY = event.pageY - r.top
initialX = event.pageX
initialY = event.pageY
targetElement.initialOffsetLeft = targetElement.offsetLeft
targetElement.initialOffsetTop = targetElement.offsetTop
evt = {target:targetElement};
dispatch('dragBeforeStart', evt);
evt.target.__isClone = targetElement.__isClone;
targetElement = evt.target;
if (mode == 'clone' || targetElement.getAttribute('drag-enabled') == 'clone'){
targetElement = targetElement.cloneNode(true)
targetElement.__isClone = true
}
targetElement.ondragstart = function() {
return false;
};
document.addEventListener('mouseup', onMouseUp);
document.addEventListener('mousemove', onMouseMove);
break;
evt = {target:targetElement}
dispatch('dragBeforeStart', evt)
evt.target.__isClone = targetElement.__isClone
targetElement = evt.target
} else {
t = t.parentNode;
targetElement.ondragstart = function() {
return false
}
document.addEventListener('mouseup', onMouseUp)
document.addEventListener('mousemove', onMouseMove)
return
}
}
t = t.parentNode
}
}
function isDraggable(node){
return node.hasAttribute('drag-enabled')
}
function lockTextSelection(){

@@ -319,0 +333,0 @@ if (initialUserSelect === undefined){

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