{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-tom/src/components/halo/lively-halo-vivide-add-outport-item.js"],"names":["nodes","events","pt","HaloItem","Preferences","Snapping","Grid","getTempKeyFor","asDragImageFor","HaloVivideAddOutportItem","initialize","style","setAttribute","addEventListener","evt","startMyDrag","lively","warn","HaloService","hideHalos","_view","stopPropagation","addDragInfoTo","x","y","clientX","clientY","subPt","getGlobalPosition","updateTarget","view"],"mappings":";;;;;;AAAYA,W;;AACAC,Y;;AACJC,Q,wBAAAA,E;;AACDC,c;;AACAC,iB;;AACAC,c;AACCC,U,+BAAAA,I;;AACCC,mB,UAAAA,a;AAAeC,oB,UAAAA,c;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,YAAMC,wBAAN,SAAuCN,QAAvC,CAAgD;;AAE7DO,qBAAa;AACX,eAAKC,KAAL,CAAW,aAAX,IAA4B,MAA5B;AACA,eAAKC,YAAL,CAAkB,WAAlB,EAA+B,MAA/B;AACA,eAAKD,KAAL,CAAW,WAAX,IAA0B,SAA1B;AACA,eAAKE,gBAAL,CAAsB,WAAtB,EAAmCC,OAAO,KAAKC,WAAL,CAAiBD,GAAjB,CAA1C;AACA,eAAKD,gBAAL,CAAsB,MAAtB,EAA8BC,OAAO;AACnCE,mBAAOC,IAAP,CAAY,MAAZ;AACD,WAFD;AAGA,eAAKJ,gBAAL,CAAsB,SAAtB,EAAiCC,OAAO;AACtCI,wBAAYC,SAAZ;AACD,WAFD;AAGD;;AAEDJ,oBAAYD,GAAZ,EAAiB;AACf,cAAG,CAAC,KAAKM,KAAT,EAAgB;AACdJ,mBAAOC,IAAP,CAAY,oCAAZ;AACA;AACD;AACDH,cAAIO,eAAJ;AACA;;AAEA,eAAKD,KAAL,CAAWE,aAAX,CAAyBR,GAAzB;AACA,gBAAM,EAAES,CAAF,EAAKC,CAAL,KAAWtB,GAAGY,IAAIW,OAAP,EAAgBX,IAAIY,OAApB,EAA6BC,KAA7B,CAAmCX,OAAOY,iBAAP,CAAyB,IAAzB,CAAnC,CAAjB;AACMpB,wBAAN,YAAqBM,GAArB,EAA0BS,CAA1B,EAA6BC,CAA7B;AACD;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEEK,qBAAaC,IAAb,EAAmB;AACjB,eAAKV,KAAL,GAAaU,IAAb;AACD;AAlG4D;;yBAA1CrB,wB","file":"lively-halo-vivide-add-outport-item.js","sourcesContent":["import * 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';\nimport { getTempKeyFor, asDragImageFor } from 'utils';\n\nexport default class HaloVivideAddOutportItem extends HaloItem {\n\n  initialize() {\n    this.style['user-select'] = 'none';\n    this.setAttribute('draggable', \"true\");\n    this.style['user-drag'] = 'element';\n    this.addEventListener('dragstart', evt => this.startMyDrag(evt));\n    this.addEventListener('drag', evt => {\n      lively.warn('drag');\n    });\n    this.addEventListener('dragend', evt => {\n      HaloService.hideHalos();\n    });\n  }\n  \n  startMyDrag(evt) {\n    if(!this._view) {\n      lively.warn('No view given to add a connection.')\n      return;\n    }\n    evt.stopPropagation();\n    // preventDefault is harmful here: it prevents drag data and images\n    \n    this._view.addDragInfoTo(evt);\n    const { x, y } = pt(evt.clientX, evt.clientY).subPt(lively.getGlobalPosition(this));\n    this::asDragImageFor(evt, x, y);\n  }\n\n//   // Drag API\n//   start(evt) {\n//     return lively.warn('start')\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//     return lively.warn('move')\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//     return lively.warn('stop')\n//     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//     return lively.warn('dragTo')\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//       this.halo.info.innerHTML = \"drag \" + lively.getPosition(this.dragTarget)\n//     }\n//     evt.preventDefault();\n//   }\n  \n  updateTarget(view) {\n    this._view = view;\n  }\n}"]}