'libs/jquery',
'libs/underscore',
'modules/documentCanvas/canvas/utils',
-'modules/documentCanvas/canvas/widgets',
'modules/documentCanvas/canvas/wlxmlManagers'
-], function($, _, utils, widgets, wlxmlManagers) {
+], function($, _, utils, wlxmlManagers) {
'use strict';
/* global Node:false, document:false */
};
$.extend(DocumentNodeElement, {
- create: function(wlxmlNode, canvas) {
- return this.fromHTMLElement(this.createDOM(wlxmlNode, canvas)[0], canvas);
- },
-
fromHTMLElement: function(htmlElement, canvas) {
return new this(htmlElement, canvas);
},
- createDOM: function(wlxmlNode, canvas) {
+ create: function(wlxmlNode, canvas) {
var dom = $('<div>')
.attr('document-node-element', ''),
widgetsContainer = $('<div>')
container.append(DocumentElement.create(node, canvas).dom());
}.bind(this));
- return dom;
+ return element;
}
-
});
var manipulate = function(e, params, action) {
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, canvas) {
+ create: function(wlxmlTextNode, canvas) {
var dom = $('<div>')
.attr('document-text-element', '')
.text(wlxmlTextNode.getText() || utils.unicode.ZWS),
element = this.fromHTMLElement(dom[0], canvas);
element.data('wlxmlNode', wlxmlTextNode);
- return dom;
- },
-
- create: function(wlxmlTextNode, canvas) {
- return this.fromHTMLElement(this.createDOM(wlxmlTextNode, canvas)[0], canvas);
+ return element;
},
fromHTMLElement: function(htmlElement, canvas) {
return new this(htmlElement, canvas);
},
+
isContentContainer: function(htmlElement) {
return htmlElement.nodeType === Node.TEXT_NODE && $(htmlElement).parent().is('[document-text-element]');
}