UNPKG

grid-layout-plus-no-pnpm

Version:

<p align="center"> <a href="https://grid-layout-plus.netlify.app/" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/grid-layout-plus.svg" width="180" style="width: 120px;" /> </a> </p>

1 lines 2.66 kB
{"version":3,"file":"draggable.mjs","sources":["../../src/helpers/draggable.ts"],"sourcesContent":["// Get {x, y} positions from event.\r\nexport function getControlPosition(e: MouseEvent) {\r\n return offsetXYFromParentOf(e)\r\n}\r\n\r\n// Get from offsetParent\r\nexport function offsetXYFromParentOf(evt: MouseEvent) {\r\n const offsetParent = (evt.target as HTMLElement)?.offsetParent || document.body\r\n const offsetParentRect =\r\n (evt as any).offsetParent === document.body\r\n ? { left: 0, top: 0 }\r\n : offsetParent.getBoundingClientRect()\r\n\r\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left\r\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top\r\n\r\n /* const x = Math.round(evt.clientX + offsetParent.scrollLeft - offsetParentRect.left);\r\n const y = Math.round(evt.clientY + offsetParent.scrollTop - offsetParentRect.top); */\r\n\r\n return { x, y }\r\n}\r\n\r\n// Create an data object exposed by <DraggableCore>'s events\r\nexport function createCoreData(lastX: number, lastY: number, x: number, y: number) {\r\n // State changes are often (but not always!) async. We want the latest value.\r\n const isStart = !isNum(lastX)\r\n\r\n if (isStart) {\r\n // If this is our first move, use the x and y as last coords.\r\n return {\r\n deltaX: 0,\r\n deltaY: 0,\r\n lastX: x,\r\n lastY: y,\r\n x,\r\n y\r\n }\r\n } else {\r\n // Otherwise calculate proper values.\r\n return {\r\n deltaX: x - lastX,\r\n deltaY: y - lastY,\r\n lastX,\r\n lastY,\r\n x,\r\n y\r\n }\r\n }\r\n}\r\n\r\nfunction isNum(num: unknown): num is number {\r\n return typeof num === 'number' && !Number.isNaN(num)\r\n}\r\n"],"names":["getControlPosition","e","offsetXYFromParentOf","evt","_a","offsetParent","offsetParentRect","x","y","createCoreData","lastX","lastY","isNum","num"],"mappings":"AACO,SAASA,EAAmBC,GAAe;AAChD,SAAOC,EAAqBD,CAAC;AAC/B;AAGO,SAASC,EAAqBC,GAAiB;AAL/C,MAAAC;AAML,QAAMC,MAAgBD,IAAAD,EAAI,WAAJ,gBAAAC,EAA4B,iBAAgB,SAAS,MACrEE,IACHH,EAAY,iBAAiB,SAAS,OACnC,EAAE,MAAM,GAAG,KAAK,EAChB,IAAAE,EAAa,sBAAsB,GAEnCE,IAAIJ,EAAI,UAAUE,EAAa,aAAaC,EAAiB,MAC7DE,IAAIL,EAAI,UAAUE,EAAa,YAAYC,EAAiB;AAK3D,SAAA,EAAE,GAAAC,GAAG,GAAAC;AACd;AAGO,SAASC,EAAeC,GAAeC,GAAeJ,GAAWC,GAAW;AAIjF,SAFiBI,EAAMF,CAAK,IAcnB;AAAA,IACL,QAAQH,IAAIG;AAAA,IACZ,QAAQF,IAAIG;AAAA,IACZ,OAAAD;AAAA,IACA,OAAAC;AAAA,IACA,GAAAJ;AAAA,IACA,GAAAC;AAAA,EAAA,IAhBK;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAOD;AAAA,IACP,OAAOC;AAAA,IACP,GAAAD;AAAA,IACA,GAAAC;AAAA,EAAA;AAaN;AAEA,SAASI,EAAMC,GAA6B;AAC1C,SAAO,OAAOA,KAAQ,YAAY,CAAC,OAAO,MAAMA,CAAG;AACrD;"}