{"version":3,"names":["DragBehavior","__SystemJSRewritingHack","_export","setters","_reactiveJsx","_addSourceLocation","addSourceLocation","_srcClientGraphicsJs","pt","execute","_recorder_","_src_client_morphic_dragbehavior_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","on","target","constructor","draggable","lively","addEventListener","evt","onDragStart","originalPosition","getPosition","offset","subPt","clientX","clientY","dataTransfer","setDragImage","document","createElement","file","end","column","line","start","onDrag","onDragEnd","dragBehaviorStart","offsetX","pos","addPt","dragBehaviorMove","setPosition","removeEventListener","dragBehaviorEnd"],"sources":["dragbehavior.js"],"sourcesContent":["import {pt} from \"src/client/graphics.js\" \n\nexport default class DragBehavior {\n  static on(target) {\n    return new DragBehavior(target)  \n  }\n  \n  constructor(target) {\n    this.target = target\n    this.target.draggable = true\n    lively.addEventListener(\"DragBehavior\", this.target, \"dragstart\", \n      (evt) => this.onDragStart(evt))\n\n  }\n  \n  onDragStart(evt) {\n    this.originalPosition = lively.getPosition(this.target)\n    this.offset = this.originalPosition.subPt(pt(evt.clientX, evt.clientY))\n    evt.dataTransfer.setDragImage(document.createElement(\"div\"), 0, 0); \n\n    lively.addEventListener(\"DragBehavior\", this.target, \"drag\", \n      (evt) => this.onDrag(evt))\n    lively.addEventListener(\"DragBehavior\", this.target, \"dragend\", \n      (evt) => this.onDragEnd(evt))\n      \n    if (this.target.dragBehaviorStart) {\n      this.target.dragBehaviorStart(evt, this.originalPosition)\n    }\n  }\n  \n  onDrag(evt) {\n    // console.log(\"pos \" + evt.clientX, evt.offsetX, evt.clientX - evt.offsetX, evt )\n    if (evt.clientX == 0 && evt.clientY == 0) return; // #Garbage event\n    if (evt.offsetX < 0) return; // another #Garbage event\n\n    var pos = pt(evt.clientX, evt.clientY).addPt(this.offset)\n    if (this.target.dragBehaviorMove) {\n      this.target.dragBehaviorMove(evt, pos, this.originalPosition)\n    } else {\n      lively.setPosition(this.target, pos)\n    }\n  }\n\n  onDragEnd(evt) {\n    lively.removeEventListener(\"DragBehavior\", this.target, \"drag\")\n    lively.removeEventListener(\"DragBehavior\", this.target, \"dragend\")\n\n    if (this.target.dragBehaviorEnd) {\n      this.target.dragBehaviorEnd(evt, this.originalPosition)\n    }\n  }\n}\n"],"mappings":"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"}