2014-03-29 02:05:50 +00:00
|
|
|
/* 18.7.3 CT_Comment */
|
2017-02-10 19:23:01 +00:00
|
|
|
function parse_comments_xml(data/*:string*/, opts)/*:Array<Comment>*/ {
|
2014-04-03 22:51:54 +00:00
|
|
|
if(data.match(/<(?:\w+:)?comments *\/>/)) return [];
|
2014-03-29 02:05:50 +00:00
|
|
|
var authors = [];
|
|
|
|
var commentList = [];
|
2017-02-10 19:23:01 +00:00
|
|
|
var authtag = data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/);
|
|
|
|
if(authtag && authtag[1]) authtag[1].split(/<\/\w*:?author>/).forEach(function(x) {
|
2014-03-29 02:05:50 +00:00
|
|
|
if(x === "" || x.trim() === "") return;
|
2017-02-10 19:23:01 +00:00
|
|
|
var a = x.match(/<(?:\w+:)?author[^>]*>(.*)/);
|
|
|
|
if(a) authors.push(a[1]);
|
2014-03-29 02:05:50 +00:00
|
|
|
});
|
2017-02-10 19:23:01 +00:00
|
|
|
var cmnttag = data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/);
|
|
|
|
if(cmnttag && cmnttag[1]) cmnttag[1].split(/<\/\w*:?comment>/).forEach(function(x, index) {
|
2014-03-29 02:05:50 +00:00
|
|
|
if(x === "" || x.trim() === "") return;
|
2017-02-10 19:23:01 +00:00
|
|
|
var cm = x.match(/<(?:\w+:)?comment[^>]*>/);
|
|
|
|
if(!cm) return;
|
|
|
|
var y = parsexmltag(cm[0]);
|
|
|
|
var comment/*:Comment*/ = ({ author: y.authorId && authors[y.authorId] ? authors[y.authorId] : undefined, ref: y.ref, guid: y.guid }/*:any*/);
|
2014-03-29 02:05:50 +00:00
|
|
|
var cell = decode_cell(y.ref);
|
|
|
|
if(opts.sheetRows && opts.sheetRows <= cell.r) return;
|
2017-02-10 19:23:01 +00:00
|
|
|
var textMatch = x.match(/<(?:\w+:)?text>([^\u2603]*)<\/(?:\w+:)?text>/);
|
2014-03-29 02:05:50 +00:00
|
|
|
if (!textMatch || !textMatch[1]) return; // a comment may contain an empty text tag.
|
|
|
|
var rt = parse_si(textMatch[1]);
|
2017-02-10 19:23:01 +00:00
|
|
|
if(!rt) return;
|
2014-03-29 02:05:50 +00:00
|
|
|
comment.r = rt.r;
|
|
|
|
comment.t = rt.t;
|
|
|
|
if(opts.cellHTML) comment.h = rt.h;
|
|
|
|
commentList.push(comment);
|
|
|
|
});
|
|
|
|
return commentList;
|
|
|
|
}
|
2014-05-29 22:30:03 +00:00
|
|
|
|
|
|
|
function write_comments_xml(data, opts) { }
|