{"version":3,"names":["HaloDragItem","lively","nodes","events","pt","HaloItem","Preferences","Snapping","Grid","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":";;;wEASqBA,YAAY;EAAA;EAAA;IAAA;MAT1BC,MAAM;IAAA;MACDC,KAAK;IAAA;MACLC,MAAM;IAAA;MACVC,EAAE,wBAAFA,EAAE;IAAA;MACHC,QAAQ;IAAA;MACRC,WAAW;IAAA;MACXC,QAAQ;MACPC,IAAI,+BAAJA,IAAI;IAAA;IAAA;MAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UAPLP,uCAAM;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACDC,sCAAK;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACLC,uCAAM;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACVC,mCAAE;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACHC,yCAAQ;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACRC,4CAAW;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACXC,yCAAQ;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA;QAAA;UAAA;QAAA;QAAA;UACPC,qCAAI;UAAA;QAAA;QAAA;QAAA;MAAA;MAAA,mBAESR,YAAY,GAAlB,MAAMA,YAAY,SAASK,QAAQ,CAAC;QAEjDI,UAAU,GAAG;UACX,IAAI,CAACC,mBAAmB,EAAE;QAC5B;;QAEA;QACAC,KAAK,CAACC,GAAG,EAAE;UACT,IAAI,CAACC,UAAU,GAAGC,MAAM,CAACC,IAAI;UAC7B,IAAI,IAAI,CAACF,UAAU,EAAE;YACnB,IAAI,CAACG,qBAAqB,GAAGf,MAAM,CAACgB,WAAW,CAAC,IAAI,CAACJ,UAAU,CAAC;YAChE,IAAI,CAACK,sBAAsB,GAAGf,MAAM,CAACgB,cAAc,CAACP,GAAG,CAAC;YACxDA,GAAG,CAACQ,cAAc,EAAE;YAEpB,IAAI,CAACC,QAAQ,GAAG,IAAId,QAAQ,CAAC,IAAI,CAACM,UAAU,CAAC;YAC7C,IAAI,CAACS,IAAI,CAACC,IAAI,GAAItB,MAAM,CAACuB,WAAW,CAAC,IAAI,CAACX,UAAU,CAAC;YAErD,IAAI,IAAI,CAACA,UAAU,CAACY,aAAa,EAAE;cACjC,IAAI,CAACZ,UAAU,CAACY,aAAa,CAAC,IAAI,CAACP,sBAAsB,CAAC;YAC5D;UACF;QACF;QAEAQ,IAAI,CAACd,GAAG,EAAE;UACR,IAAI,IAAI,CAACC,UAAU,IAAI,CAAC,IAAI,CAACc,UAAU,IACrCxB,MAAM,CAACyB,mBAAmB,CAAChB,GAAG,EAAE,IAAI,CAACM,sBAAsB,CAAC,EAAE;YAC9D;YACA,IAAI,CAACS,UAAU,GAAG,IAAI;UACxB;UACA,IAAI,IAAI,CAACA,UAAU,EAAE;YACnB,IAAI,CAACE,MAAM,CAACjB,GAAG,CAAC;UAClB;QACF;QAEAkB,IAAI,CAAClB,GAAG,EAAE;UACR,IAAI,CAACU,IAAI,CAACC,IAAI,IAAI,IAAI,CAACD,IAAI,CAACC,IAAI,CAACO,IAAI,EAAE;UACvC;UACA,IAAI,IAAI,CAACH,UAAU,EAAE;YACnB,IAAI,CAACA,UAAU,GAAG,KAAK;YACvBf,GAAG,CAACQ,cAAc,EAAE;UACtB;UACA,IAAI,CAACP,UAAU,GAAG,IAAI;UACtB,IAAI,CAACK,sBAAsB,GAAG,IAAI;UAClC,IAAI,CAACF,qBAAqB,GAAG,IAAI;UACjC,IAAI,CAACK,QAAQ,CAACU,YAAY,EAAE;UAC5B,IAAI,CAACV,QAAQ,GAAG,IAAI;QACtB;QAEAQ,MAAM,CAACjB,GAAG,EAAE;UACV,IAAI,IAAI,CAACC,UAAU,CAACmB,UAAU,EAAE;YAC9B,IAAI,CAACnB,UAAU,CAACmB,UAAU,CAAC7B,MAAM,CAACgB,cAAc,CAACP,GAAG,CAAC,EAAE,IAAI,CAACM,sBAAsB,CAAC;UACrF,CAAC,MAAM;YACL,IAAIe,QAAQ,GAAG9B,MAAM,CAACgB,cAAc,CAACP,GAAG,CAAC;YACzC,IAAIsB,WAAW,GAAGD,QAAQ,CAACE,KAAK,CAAC,IAAI,CAACjB,sBAAsB,CAAC,CAC3DkB,KAAK,CAAC,IAAI,CAACpB,qBAAqB,CAAC;YAEnCkB,WAAW,GAAGA,WAAW,CAACG,OAAO,EAAE;YACnC,IAAI,IAAI,CAACxB,UAAU,CAACyB,KAAK,CAACC,QAAQ,IAAI,UAAU,EAAE;cAChDtC,MAAM,CAACuC,WAAW,CAAC,IAAI,CAAC3B,UAAU,EAAEL,IAAI,CAACiC,eAAe,CAACP,WAAW,EAAEtB,GAAG,CAAC,CAAC;cAC3E,IAAG,CAACA,GAAG,CAAC8B,MAAM,EAAE;gBACd,IAAI,CAACrB,QAAQ,CAACsB,IAAI,EAAE;cACtB;YACF,CAAC,MAAM;cACJ1C,MAAM,CAACuC,WAAW,CAAC,IAAI,CAAC3B,UAAU,EAAEqB,WAAW,EAAE,UAAU,CAAC;YAC/D;YACA,IAAI,IAAI,CAACZ,IAAI,CAACC,IAAI,EAAE;cAClB,IAAI,CAACD,IAAI,CAACC,IAAI,CAACqB,SAAS,GAAG,OAAO,GAAG3C,MAAM,CAACgB,WAAW,CAAC,IAAI,CAACJ,UAAU,CAAC;YAC1E;UACF;UACAD,GAAG,CAACQ,cAAc,EAAE;QACtB;MACF,CAAC;MAAA;QAAA;UAAA;QAAA;QAAA;UAAA,mBAvEoBpB,6CAAY;UAAA;QAAA;QAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}