{"version":3,"names":["HaloCopyItem","HaloGrabItem","nodes","events","pt","scriptManager","persistence","HaloService","default","copyBlacklist","isCopyItem","onClick","copiedObject","copyObject","window","that","style","position","setPosition","getPosition","copyTarget","addPt","showHalos","cloneObject","obj","html","lively","clipboard","nodesToHTML","lastClickPos","getClientPosition","result","pasteHTMLDataInto","parentElement","el","haloCopyObject","isAllowedToBeCopied","parentNode","appendChild","notify","element","indexOf","tagName","toLowerCase","prepareGrabTarget","grabTarget"],"sources":["lively-halo-copy-item.js"],"sourcesContent":["import HaloGrabItem from './lively-halo-grab-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 scriptManager from  \"src/client/script-manager.js\";\nimport persistence from  \"src/client/persistence.js\";\n\nvar copyBlacklist = [\"body\", \"html\"];\n\nimport {default as HaloService} from \"src/components/halo/lively-halo.js\"\n\nexport default class HaloCopyItem extends HaloGrabItem {\n \n  get isCopyItem() {\n    return true;\n  }\n  \n  \n  onClick() {\n    if (!this.copiedObject) {\n      this.copyObject(window.that);\n      this.copiedObject.style.position = 'absolute';\n      nodes.setPosition(this.copiedObject, nodes.getPosition(this.copyTarget).addPt(pt(10,10)));\n      window.that = this.copiedObject;\n      HaloService.showHalos(window.that);\n    } \n    this.copiedObject = null;\n  }\n  \n  cloneObject(obj) {\n    var html = lively.clipboard.nodesToHTML([obj])\n    lively.clipboard.lastClickPos = lively.getClientPosition(obj) // used in pasted as offset\n    var result = lively.clipboard.pasteHTMLDataInto(html, obj.parentElement, true)\n    return result[0];\n  }\n  \n  copyObject(el) {\n    this.copyTarget = el;\n    if (el.haloCopyObject) {\n        this.copiedObject = el.haloCopyObject(this); // copy selection etc...\n    } else {\n      if (this.isAllowedToBeCopied(this.copyTarget)) {\n        this.copiedObject = this.cloneObject(this.copyTarget);\n        this.copyTarget.parentNode.appendChild(this.copiedObject);    \n      } else {\n        lively.notify(\"Could not copy \" + this.copyTarget);\n      }\n    }\n    return this.copiedObject;\n  }\n\n  isAllowedToBeCopied(element) {\n    return copyBlacklist.indexOf(element.tagName.toLowerCase()) < 0;\n  }\n\n  // DRAG API\n  prepareGrabTarget() {\n    this.grabTarget = this.copyObject(this.grabTarget);\n    window.that = this.grabTarget;\n    HaloService.showHalos(this.grabTarget);\n    \n    super.prepareGrabTarget();\n  }\n}"],"mappings":"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"}