grid-layout-plus
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.56 kB
Source Map (JSON)
{"version":3,"file":"draggable.mjs","sources":["../../src/helpers/draggable.ts"],"sourcesContent":["// Get {x, y} positions from event.\nexport function getControlPosition(e: MouseEvent) {\n return offsetXYFromParentOf(e)\n}\n\n// Get from offsetParent\nexport function offsetXYFromParentOf(evt: MouseEvent) {\n const offsetParent = (evt.target as HTMLElement)?.offsetParent || document.body\n const offsetParentRect =\n (evt as any).offsetParent === document.body\n ? { left: 0, top: 0 }\n : offsetParent.getBoundingClientRect()\n\n const x = evt.clientX + offsetParent.scrollLeft - offsetParentRect.left\n const y = evt.clientY + offsetParent.scrollTop - offsetParentRect.top\n\n /* const x = Math.round(evt.clientX + offsetParent.scrollLeft - offsetParentRect.left);\n const y = Math.round(evt.clientY + offsetParent.scrollTop - offsetParentRect.top); */\n\n return { x, y }\n}\n\n// Create an data object exposed by <DraggableCore>'s events\nexport function createCoreData(lastX: number, lastY: number, x: number, y: number) {\n // State changes are often (but not always!) async. We want the latest value.\n const isStart = !isNum(lastX)\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n }\n } else {\n // Otherwise calculate proper values.\n return {\n deltaX: x - lastX,\n deltaY: y - lastY,\n lastX,\n lastY,\n x,\n y\n }\n }\n}\n\nfunction isNum(num: unknown): num is number {\n return typeof num === 'number' && !Number.isNaN(num)\n}\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,MAChBE,EAAa,sBAAsB,GAEnCE,IAAIJ,EAAI,UAAUE,EAAa,aAAaC,EAAiB,MAC7DE,IAAIL,EAAI,UAAUE,EAAa,YAAYC,EAAiB;AAK3D,SAAA,EAAE,GAAAC,GAAG,GAAAC,EAAE;AAChB;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,EACF,IAjBO;AAAA,IACL,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAOD;AAAA,IACP,OAAOC;AAAA,IACP,GAAAD;AAAA,IACA,GAAAC;AAAA,EACF;AAYJ;AAEA,SAASI,EAAMC,GAA6B;AAC1C,SAAO,OAAOA,KAAQ,YAAY,CAAC,OAAO,MAAMA,CAAG;AACrD;"}