{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-synctool/src/components/halo/lively-halo-vivide-inport-connection-item.js"],"names":["lively","nodes","events","pt","HaloItem","Preferences","Snapping","Grid","VivideView","svg","cancelEvent","HaloVivideInportConnectionItem","path","get","overlay","initialize","addEventListener","evt","removeConnection","setSource","source","_source","updateTarget","view","_view","classList","add","offset","getGlobalPosition","startPoint","getGlobalBounds","leftCenter","subPt","startOffsetPoint","addPt","sourceCenterPoint","getGlobalCenter","setPathVertices","c","x1","x","y1","y","setGlobalPosition","setExtent","extent","notify","target","removeOutportTarget","HaloService","showHalos","window","that"],"mappings":"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","file":"lively-halo-vivide-inport-connection-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';\nimport VivideView from 'src/client/vivide/components/vivide-view.js';\nimport svg from \"src/client/svg.js\"\nimport { cancelEvent } from 'utils';\n\nexport default class HaloVivideInportConnectionItem extends HaloItem {\n\n  get path() { return this.get('#path-to-target'); }\n  get overlay() { return this.get('#overlay-target'); }\n\n  initialize() {\n    this.addEventListener('click', evt => this.removeConnection(evt));\n    this.path.addEventListener('click', cancelEvent);\n    this.overlay.addEventListener('click', cancelEvent);\n  }\n  setSource(source) {\n    this._source = source;\n  }\n\n  updateTarget(view) {\n    this._view = view;\n    if(!this._source) {\n      this.classList.add('broken');\n      return;\n    }\n\n    let offset = lively.getGlobalPosition(this.get('svg'));\n    let startPoint = lively.getGlobalBounds(this).leftCenter().subPt(offset);\n    let startOffsetPoint = startPoint.addPt(pt(-20, 0));\n    let sourceCenterPoint = lively.getGlobalCenter(this._source).subPt(offset);\n\n    svg.setPathVertices(this.path, [\n      { c: 'M', x1: startPoint.x, y1: startPoint.y},\n      { c: 'L', x1: startOffsetPoint.x, y1: startOffsetPoint.y},\n      { c: 'L', x1: startOffsetPoint.x, y1: sourceCenterPoint.y},\n      { c: 'L', x1: sourceCenterPoint.x, y1: sourceCenterPoint.y},\n    ]);\n\n    lively.setGlobalPosition(this.overlay, lively.getGlobalPosition(this._source));\n    lively.setExtent(this.overlay, lively.getGlobalBounds(this._source).extent());\n  }\n  \n  removeConnection(evt) {\n    lively.notify('target', evt.target);\n    if(this._view && this._source) {\n      this._source.removeOutportTarget(this._view);\n      HaloService.showHalos(window.that);\n      cancelEvent(evt);\n    }\n  }\n}\n"]}