{"version":3,"names":["HaloResizeItem","HaloItem","nodes","events","pt","Preferences","Snapping","Grid","HaloService","default","initialize","lively","addEventListener","e","onMouseDown","evt","start","document","body","parentElement","move","onPointerUp","removeEventListener","stop","preventDefault","target","window","that","snapping","halo","console","error","info","showInfoBox","update","haloResizeStart","initialExtent","getExtent","eventOffset","globalPosition","removeRestrictions","haloResizeMove","delta","clientX","clientY","subPt","newextent","addPt","rounded","setExtent","optSnapPosition","altKey","style","position","snapBounds","innerHTML","x","y","showHalos","haloResizeStop","node","minWidth","minHeight","maxWidth","maxHeight"],"sources":["lively-halo-resize-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 {default as HaloService} from \"src/components/halo/lively-halo.js\"\n\n/*globals that */\n\nexport default class HaloResizeItem extends HaloItem {\n  initialize() {\n    lively.addEventListener(\"Morphic\", this, 'mousedown',  e => this.onMouseDown(e));\n  }\n\n  onMouseDown(evt) {\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) {\n      console.error(\"this.halo dont defined....\")\n      return\n    }\n    \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.initialExtent  = lively.getExtent(this.target)\n      this.eventOffset  = events.globalPosition(evt)\n      this.removeRestrictions(this.target)\n    }\n  }\n\n  move(evt) {\n    \n    evt.preventDefault();\n    if (this.target.haloResizeMove) {\n      this.target.haloResizeMove(evt, this)\n    } else {\n      var delta = pt(evt.clientX, evt.clientY).subPt(this.eventOffset)\n      // console.log(\"this.initialExtent \" + this.initialExtent)\n\n      var newextent =  this.initialExtent.addPt(delta);\n      newextent = newextent.rounded()\n\n      lively.setExtent(this.target, Grid.optSnapPosition(newextent, evt)) \n      if(!evt.altKey && that.style.position == \"absolute\") {\n        this.snapping.snapBounds(\"bottomRight\")\n      }\n      newextent = lively.getExtent(this.target)\n      this.halo.info.innerHTML = \"resize w=\" + newextent.x + \" h=\" + newextent.y \n\n      HaloService.showHalos(window.that);\n    }\n  }\n\n  stop(evt) {\n    this.halo.info.stop()\n    evt.preventDefault();\n    if (this.target.haloResizeStop) {\n      this.target.haloResizeStop(evt, this)\n    } else {\n      // do nothing... anymore\n    }\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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"}