function parse_Theme(blob, length, opts) { var end = blob.l + length; var dwThemeVersion = blob.read_shift(4); if(dwThemeVersion === 124226) return; if(!opts.cellStyles) { blob.l = end; return; } var data = blob.slice(blob.l); blob.l = end; var zip; try { zip = zip_read(data, {type: "array"}); } catch(e) { return; } var themeXML = getzipstr(zip, "theme/theme/theme1.xml", true); if(!themeXML) return; return parse_theme_xml(themeXML, opts);}
function parse_ColorTheme(blob) { return blob.read_shift(4); }
function parse_FullColorExt(blob) { var o = {}; o.xclrType = blob.read_shift(2); o.nTintShade = blob.read_shift(2); switch(o.xclrType) { case 0: blob.l += 4; break; case 1: o.xclrValue = parse_IcvXF(blob, 4); break; case 2: o.xclrValue = parse_LongRGBA(blob, 4); break; case 3: o.xclrValue = parse_ColorTheme(blob, 4); break; case 4: blob.l += 4; break; } blob.l += 8; return o;}
function parse_IcvXF(blob, length) { return parsenoop(blob, length);}
function parse_XFExtGradient(blob, length) { return parsenoop(blob, length);}
function parse_ExtProp(blob) { var extType = blob.read_shift(2); var cb = blob.read_shift(2) - 4; var o = [extType]; switch(extType) { case 0x04: case 0x05: case 0x07: case 0x08: case 0x09: case 0x0A: case 0x0B: case 0x0D: o[1] = parse_FullColorExt(blob, cb); break; case 0x06: o[1] = parse_XFExtGradient(blob, cb); break; case 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break; default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb); } return o;}
function parse_XFExt(blob, length) { var end = blob.l + length; blob.l += 2; var ixfe = blob.read_shift(2); blob.l += 2; var cexts = blob.read_shift(2); var ext = []; while(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l)); return {ixfe:ixfe, ext:ext};}
function update_xfext(xf, xfext) { xfext.forEach(function(xfe) { switch(xfe[0]) { case 0x04: break; case 0x05: break; case 0x06: break; case 0x07: break; case 0x08: break; case 0x09: break; case 0x0a: break; case 0x0b: break; case 0x0d: break; case 0x0e: break; case 0x0f: break; } });}