return elementTypeFromWlxmlNode(node).create(node, canvas);
},
- createDOM: function(wlxmlNode) {
- return elementTypeFromParams(wlxmlNode).createDOM(params);
- },
-
fromHTMLElement: function(htmlElement, canvas) {
var $element = $(htmlElement);
if(htmlElement.nodeType === Node.ELEMENT_NODE && $element.attr('document-node-element') !== undefined) {
element.setWlxml({tag: wlxmlNode.getTagName(), klass: wlxmlNode.getClass()});
wlxmlNode.contents().forEach(function(node) {
- container.append(DocumentElement.create(node).dom());
+ container.append(DocumentElement.create(node, canvas).dom());
}.bind(this));
return dom;
return this;
},
append: function(params) {
- if(params.tag !== 'span') {
- this.data('orig-end', undefined);
- }
return manipulate(this, params, 'append');
},
prepend: function(params) {
var elementContent = this._container().contents();
var element = this;
- elementContent.each(function(idx) {
+ elementContent.each(function() {
var childElement = DocumentElement.fromHTMLElement(this, element.canvas);
if(childElement === undefined) {
return true;
}
- if(idx === 0 && elementContent.length > 1 && elementContent[1].nodeType === Node.ELEMENT_NODE && (childElement instanceof DocumentTextElement) && $.trim($(this).text()) === '') {
- return true;
- }
- if(idx > 0 && childElement instanceof DocumentTextElement) {
- if(toret[toret.length-1] instanceof DocumentNodeElement && $.trim($(this).text()) === '') {
- return true;
- }
- }
toret.push(childElement);
});
return toret;
};
$.extend(DocumentTextElement, {
- createDOM: function(wlxmlTextNode) {
+ createDOM: function(wlxmlTextNode, canvas) {
var dom = $('<div>')
.attr('document-text-element', '')
.text(wlxmlTextNode.getText() || utils.unicode.ZWS),
- element = this.fromHTMLElement(dom[0], this);
+ element = this.fromHTMLElement(dom[0], canvas);
element.data('wlxmlNode', wlxmlTextNode);
return dom;
},
create: function(wlxmlTextNode, canvas) {
- return this.fromHTMLElement(this.createDOM(wlxmlTextNode)[0]);
+ return this.fromHTMLElement(this.createDOM(wlxmlTextNode, canvas)[0], canvas);
},
fromHTMLElement: function(htmlElement, canvas) {