{"version":3,"names":["HaloDragItem","__SystemJSRewritingHack","_export","setters","_srcClientLivelyJs","lively","default","_srcClientMorphicNodeHelpersJs","nodes","_srcClientMorphicEventHelpersJs","events","_srcClientGraphicsJs","pt","_srcComponentsHaloLivelyHaloItemJs","HaloItem","_srcClientPreferencesJs","Preferences","_srcClientMorphicSnappingJs","Snapping","Grid","execute","_recorder_","_src_components_halo_lively_halo_drag_item_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","initialize","startCustomDragging","start","evt","dragTarget","window","that","dragStartNodePosition","getPosition","dragStartEventPosition","globalPosition","preventDefault","snapping","halo","info","showInfoBox","haloDragStart","move","isDragging","noticableDistanceTo","dragTo","stop","clearHelpers","haloDragTo","eventPos","newPosition","subPt","addPt","rounded","style","position","setPosition","optSnapPosition","altKey","snap","innerHTML"],"sources":["lively-halo-drag-item.js"],"sourcesContent":["import lively from 'src/client/lively.js'\nimport * as nodes from 'src/client/morphic/node-helpers.js';\nimport * as events from 'src/client/morphic/event-helpers.js';\nimport {pt} from 'src/client/graphics.js'\nimport HaloItem from 'src/components/halo/lively-halo-item.js';\nimport Preferences from 'src/client/preferences.js'; \nimport Snapping from \"src/client/morphic/snapping.js\"\nimport {Grid} from 'src/client/morphic/snapping.js';\n\nexport default class HaloDragItem extends HaloItem {\n\n  initialize() {\n    this.startCustomDragging()\n  }\n\n  // Drag API\n  start(evt) {\n    this.dragTarget = window.that;\n    if (this.dragTarget) {\n      this.dragStartNodePosition = lively.getPosition(this.dragTarget);\n      this.dragStartEventPosition = events.globalPosition(evt);\n      evt.preventDefault();\n    \n      this.snapping = new Snapping(this.dragTarget) \n      this.halo.info =  lively.showInfoBox(this.dragTarget)\n     \n      if (this.dragTarget.haloDragStart) {\n        this.dragTarget.haloDragStart(this.dragStartEventPosition)\n      }\n    }\n  }\n  \n  move(evt) {\n    if (this.dragTarget && !this.isDragging && \n      events.noticableDistanceTo(evt, this.dragStartEventPosition)) {\n      // this.dragTarget.style.position = 'absolute';\n      this.isDragging = true;\n    }\n    if (this.isDragging) {\n      this.dragTo(evt);\n    }\n  }\n   \n  stop(evt) {\n    this.halo.info && this.halo.info.stop()\n    //  STOP DRAGGING\n    if (this.isDragging) {    \n      this.isDragging = false;\n      evt.preventDefault();\n    }\n    this.dragTarget = null;\n    this.dragStartEventPosition = null;\n    this.dragStartNodePosition = null;\n    this.snapping.clearHelpers()\n    this.snapping = null\n  }\n\n  dragTo(evt) {\n    if (this.dragTarget.haloDragTo) {\n      this.dragTarget.haloDragTo(events.globalPosition(evt), this.dragStartEventPosition)\n    } else {\n      var eventPos = events.globalPosition(evt);\n      var newPosition = eventPos.subPt(this.dragStartEventPosition).\n        addPt(this.dragStartNodePosition)\n        \n      newPosition = newPosition.rounded()\n      if (this.dragTarget.style.position == \"absolute\") {\n        lively.setPosition(this.dragTarget, Grid.optSnapPosition(newPosition, evt));\n        if(!evt.altKey) {\n          this.snapping.snap()\n        }\n      } else {\n         lively.setPosition(this.dragTarget, newPosition, \"relative\");\n      }\n      if (this.halo.info) {\n        this.halo.info.innerHTML = \"drag \" + lively.getPosition(this.dragTarget)\n      }\n    }\n    evt.preventDefault();\n  }\n}"],"mappings":"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"}