{"version":3,"names":["HaloHandleItem","__SystemJSRewritingHack","_export","setters","_srcComponentsHaloLivelyHaloItemJs","HaloItem","default","_srcClientMorphicNodeHelpersJs","nodes","_srcClientMorphicEventHelpersJs","events","_srcClientGraphicsJs","pt","_srcClientPreferencesJs","Preferences","_srcClientMorphicSnappingJs","Snapping","Grid","_srcClientStringsJs","Strings","_srcComponentsHaloLivelyHaloJs","HaloService","execute","_recorder_","_src_components_halo_lively_halo_handle_item_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","isMetaNode","initialize","lively","addEventListener","e","onMouseDown","evt","isDragging","start","document","body","parentElement","move","onPointerUp","removeEventListener","stop","preventDefault","target","window","that","snapping","halo","info","showInfoBox","update","haloResizeStart","initialBounds","getBounds","eventOffset","globalPosition","removeRestrictions","delta","subPt","cornerOrSide","id","newPos","addPt","rounded","optSnapPosition","newBounds","prefixSelector","style","position","setBounds","setPosition","topLeft","setExtent","width","height","altKey","snapBounds","innerHTML","x","y","showHalos","node","minWidth","minHeight","maxWidth","maxHeight"],"sources":["lively-halo-handle-item.js"],"sourcesContent":["import HaloItem from 'src/components/halo/lively-halo-item.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 Preferences from 'src/client/preferences.js';\nimport Snapping from \"src/client/morphic/snapping.js\"\nimport {Grid} from 'src/client/morphic/snapping.js';\nimport Strings from 'src/client/strings.js';\n\nimport {default as HaloService} from \"src/components/halo/lively-halo.js\"\n\nexport default class HaloHandleItem extends HaloItem {\n  \n  get isMetaNode() {\n    return true\n  }\n  \n  initialize() {\n    lively.addEventListener(\"Morphic\", this, 'mousedown',  e => this.onMouseDown(e));\n  }\n\n  onMouseDown(evt) {\n    HaloService.isDragging  =true\n    this.start(evt);\n\n    // attach mousemove handler to body only after mousedown occured\n    lively.addEventListener(\"HaloResize\", document.body.parentElement, 'pointermove', (evt) => {\n      this.move(evt);\n    });\n    // and capture the following mouse up anywere \n    lively.addEventListener(\"HaloResize\", document.body.parentElement, 'pointerup',  e => this.onPointerUp(e));\n  }\n\n  onPointerUp(evt) {\n    lively.removeEventListener(\"HaloResize\", document.body.parentElement, 'pointerup');\n    lively.removeEventListener(\"HaloResize\", document.body.parentElement, 'pointermove');\n\n    this.stop(evt);\n  }\n\n  start(evt) {\n    evt.preventDefault();\n    this.target = window.that\n    this.snapping = new Snapping(this.target) \n    \n    if(this.halo.info)\n      this.halo.info.stop();\n    this.halo.info = lively.showInfoBox(this.target)\n    this.halo.info.update()\n\n    if (this.target.haloResizeStart) {\n      this.target.haloResizeStart(evt, this)\n    } else {\n      this.initialBounds = lively.getBounds(this.target)\n      this.eventOffset = events.globalPosition(evt)\n      this.removeRestrictions(this.target)\n    }\n  }\n\n  move(evt) {\n    \n    evt.preventDefault();\n    \n    var delta = events.globalPosition(evt).subPt(this.eventOffset)\n\n    var cornerOrSide = this.id\n    var newPos = this.initialBounds[cornerOrSide]().addPt(delta).rounded()\n    \n    newPos = Grid.optSnapPosition(newPos, evt) \n\n    var newBounds = this.initialBounds[Strings.prefixSelector(\"with\", cornerOrSide)](newPos)\n\n    if ( this.target.style.position == \"absolute\") {\n      lively.setBounds(this.target, newBounds)\n    } else {\n      \n      // this.target.style.left  =  + \"px\"\n      // this.target.style.top  = ( newBounds.y - this.initialBounds.y) + \"px\"\n      lively.setPosition(this.target, \n        newBounds.topLeft().subPt(this.initialBounds.topLeft()), \"relative\")\n      \n      lively.setExtent(this.target, pt(newBounds.width, newBounds.height))\n    }\n    \n    if(!evt.altKey && this.target.style.position == \"absolute\") {\n       this.snapping.snapBounds(cornerOrSide)\n    }\n    \n    this.halo.info.innerHTML = `${newPos.x}, ${newPos.y}`\n    HaloService.showHalos(window.that);\n  \n  }\n\n  stop(evt) {\n    HaloService.isDragging = false\n    this.halo.info.stop()\n    evt.preventDefault();\n  }\n\n  removeRestrictions(node) {\n    node.style.minWidth = null;\n    node.style.minHeight = null;\n    node.style.maxWidth = null;\n    node.style.maxHeight = null;\n  }\n    \n}"],"mappings":"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"}