{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/test/templates/lively-hand-test.js"],"names":["expect","MockEvent","createHTML","testWorld","loadComponent","pt","describe","that","hand","before","done","timeout","templateName","then","c","catch","e","it","element","other","onPointerDown","altKey","parentElement","to","be","equal","onPointerUp","xit","root","createShadowRoot","inner","appendChild","evt","oldPath","path","generatePath","concat","indexOf","gt","elementUnderHand","not","document","createElement","innerHTML","pos","lively","getGlobalPosition","setGlobalPosition","grab","addPt","drop","after"],"mappings":"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","file":"lively-hand-test.js","sourcesContent":["import {expect} from 'src/external/chai.js';\nimport {MockEvent, createHTML, testWorld, loadComponent} from './templates-fixture.js';\nimport {pt} from 'src/client/graphics.js';\n\n\ndescribe(\"Hand Component\",  function() {\n\n  var that;\n  var hand;\n  before(\"load\", function(done){\n    this.timeout(35000);\n    var templateName = \"lively-hand\";\n    loadComponent(templateName).then(c => {\n      that = c;\n      hand = c;\n      done();\n    }).catch(e => done(e));\n  });\n\n  it(\"should grab on pointer down\", function(done) {\n\n    var element = createHTML(\"<div>Hello</div>\")\n    var other = createHTML(\"<div>World</div>\")\n    hand.onPointerDown(new MockEvent(element, {altKey: true}))\n    expect(element.parentElement).to.be.equal(hand);\n    hand.onPointerUp(new MockEvent(other))\n    done()\n  })\n  \n  \n  // fuck it\n  xit(\"should not grab elements in shadow dom\", function(done) {\n    var element = createHTML(\"<div>Element</div>\")\n    var root = element.createShadowRoot();\n    var inner = createHTML(\"<div>Inner</div>\")\n    root.appendChild(inner)\n\n    var evt = new MockEvent(element, {altKey: true})\n    \n    // #TODO evt.path not support in #FireFox #Refactor\n    // emulate the evt.path of an event hitting inside the shadow \n    var oldPath = evt.path\n    evt.path = []\n    evt.generatePath(inner)\n    evt.path = evt.path.concat(oldPath)\n    \n    expect(evt.path.indexOf(element)).to.be.gt(0)\n    expect(hand.elementUnderHand(evt)).to.be.equal(element)\n    \n    \n    hand.onPointerDown(evt)\n    try {\n      expect(inner.parentElement).not.to.be.equal(hand);\n      expect(element.parentElement).to.be.equal(hand);\n    } finally {\n      hand.onPointerUp(evt)\n    }    \n    done();\n  });\n\n\n\n  it(\"should grab and drop elements\", function(done) {\n    \n    var element = document.createElement(\"div\")\n    element.innerHTML = \"Hallo\"\n    testWorld().appendChild(element)\n\n    var pos = lively.getGlobalPosition(element)\n    lively.setGlobalPosition(hand,pos)\n    hand.grab(element)\n    expect(element.parentElement).to.be.equal(hand);\n    \n    lively.setGlobalPosition(hand, pos.addPt(pt(0,100)))\n    hand.drop()\n    expect(element.parentElement).to.be.not.equal(hand);\n    lively.setGlobalPosition(hand, pos.addPt(pt(0,0)))\n\n    done();\n  });\n\n\n\n  it(\"should load\", function(done) {\n    done();\n  });\n\n\n  after(\"cleanup\", function() {\n    testWorld().innerHTML = \"\";\n  });\n\n});\n"]}