+ },
+
+ getVerticallyFirstTextElement: function() {
+ var toret;
+ this.children().some(function(child) {
+ if(!child.isVisible())
+ return false; // continue
+ if(child instanceof DocumentTextElement) {
+ toret = child;
+ return true; // break
+ } else {
+ toret = child.getVerticallyFirstTextElement();
+ if(toret)
+ return true; // break
+ }
+ });
+ return toret;
+ },
+
+ isVisible: function() {
+ return this instanceof DocumentTextElement || this.getWlxmlTag() !== 'metadata';