@@ -39,6 +39,7 @@ The document follows the conventions described in [“Keep a CHANGELOG”](http: | |||
- fixed internals of ObjectBag which can hold other Morphable values now | |||
- fixed animate transform which didnt change its origin on retarget for declaritive animations | |||
- fixed path parsing (#1145) | |||
- fixed `clone()` to return the correct instance (#1154) | |||
### Added | |||
- added second Parameter to `SVG(el, isHTML)` which allows to explicitely create elements in the HTML namespace (#1058) |
@@ -172,6 +172,12 @@ describe('Dom.js', function () { | |||
expect(clone.get(0).id()).not.toBe(rect.id()) | |||
expect(clone.id()).not.toBe(group.id()) | |||
}) | |||
it('returns an instance of the same class the method was called on', () => { | |||
const rect = new Dom(create('rect')) | |||
expect(rect.constructor).toBe(Dom) | |||
expect(rect.clone().constructor).toBe(Dom) | |||
}) | |||
}) | |||
describe('each()', () => { |
@@ -72,7 +72,7 @@ export default class Dom extends EventTarget { | |||
this.writeDataToDom() | |||
// clone element and assign new id | |||
return assignNewId(this.node.cloneNode(deep)) | |||
return new this.constructor(assignNewId(this.node.cloneNode(deep))) | |||
} | |||
// Iterates over all children and invokes a given block |
@@ -107,10 +107,11 @@ export function assignNewId (node) { | |||
} | |||
if (node.id) { | |||
return adopt(node).id(eid(node.nodeName)) | |||
node.id = eid(node.nodeName) | |||
return node | |||
} | |||
return adopt(node) | |||
return node | |||
} | |||
// Method for extending objects |